tj/commander.js (commander)
### [`v12.1.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1210-2024-05-18)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v12.0.0...v12.1.0)
##### Added
### [`v12.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1200-2024-02-03)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v11.1.0...v12.0.0)
##### Added
- `.addHelpOption()` as another way of configuring built-in help option (\[[#2006](https://redirect.github.com/tj/commander.js/issues/2006)])
- `.helpCommand()` for configuring built-in help command (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)])
##### Fixed
- *Breaking:* use non-zero exit code when spawned executable subcommand terminates due to a signal (\[[#2023](https://redirect.github.com/tj/commander.js/issues/2023)])
- *Breaking:* check `passThroughOptions` constraints when using `.addCommand` and throw if parent command does not have `.enablePositionalOptions()` enabled (\[[#1937](https://redirect.github.com/tj/commander.js/issues/1937)])
##### Changed
- *Breaking:* Commander 12 requires Node.js v18 or higher (\[[#2027](https://redirect.github.com/tj/commander.js/issues/2027)])
- *Breaking:* throw an error if add an option with a flag which is already in use (\[[#2055](https://redirect.github.com/tj/commander.js/issues/2055)])
- *Breaking:* throw an error if add a command with name or alias which is already in use (\[[#2059](https://redirect.github.com/tj/commander.js/issues/2059)])
- *Breaking:* throw error when calling `.storeOptionsAsProperties()` after setting an option value (\[[#1928](https://redirect.github.com/tj/commander.js/issues/1928)])
- replace non-standard JSDoc of `@api private` with documented `@private` (\[[#1949](https://redirect.github.com/tj/commander.js/issues/1949)])
- `.addHelpCommand()` now takes a Command (passing string or boolean still works as before but deprecated) (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)])
- refactor internal implementation of built-in help option (\[[#2006](https://redirect.github.com/tj/commander.js/issues/2006)])
- refactor internal implementation of built-in help command (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)])
##### Deprecated
- `.addHelpCommand()` passing string or boolean (use `.helpCommand()` or pass a Command) (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)])
##### Removed
- *Breaking:* removed default export of a global Command instance from CommonJS (use the named `program` export instead) (\[[#2017](https://redirect.github.com/tj/commander.js/issues/2017)])
##### Migration Tips
**global program**
If you are using the [deprecated](./docs/deprecated.md#default-import-of-global-command-object) default import of the global Command object, you need to switch to using a named import (or create a new `Command`).
```js
// const program = require('commander');
const { program } = require('commander');
```
**option and command clashes**
A couple of configuration problems now throw an error, which will pick up issues in existing programs:
- adding an option which uses the same flag as a previous option
- adding a command which uses the same name or alias as a previous command
### [`v11.1.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1110-2023-10-13)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v11.0.0...v11.1.0)
##### Fixed
- TypeScript: update `OptionValueSource` to allow any string, to match supported use of custom sources (\[[#1983](https://redirect.github.com/tj/commander.js/issues/1983)])
- TypeScript: add that `Command.version()` can also be used as getter (\[[#1982](https://redirect.github.com/tj/commander.js/issues/1982)])
- TypeScript: add null return type to `Commands.executableDir()`, for when not configured (\[[#1965](https://redirect.github.com/tj/commander.js/issues/1965)])
- subcommands with an executable handler and only a short help flag are now handled correctly by the parent's help command (\[[#1930](https://redirect.github.com/tj/commander.js/issues/1930)])
##### Added
- `registeredArguments` property on `Command` with the array of defined `Argument` (like `Command.options` for `Option`) (\[[#2010](https://redirect.github.com/tj/commander.js/issues/2010)])
- TypeScript declarations for Option properties: `envVar`, `presetArg` (\[[#2019](https://redirect.github.com/tj/commander.js/issues/2019)])
- TypeScript declarations for Argument properties: `argChoices`, `defaultValue`, `defaultValueDescription` (\[[#2019](https://redirect.github.com/tj/commander.js/issues/2019)])
- example file which shows how to configure help to display any custom usage in the list of subcommands (\[[#1896](https://redirect.github.com/tj/commander.js/issues/1896)])
##### Changed
- (developer) refactor TypeScript configs for multiple use-cases, and enable checks in JavaScript files in supporting editors (\[[#1969](https://redirect.github.com/tj/commander.js/issues/1969)])
##### Deprecated
- `Command._args` was private anyway, but now available as `registeredArguments` (\[[#2010](https://redirect.github.com/tj/commander.js/issues/2010)])
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^11.0.0
->^12.0.0
Release Notes
tj/commander.js (commander)
### [`v12.1.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1210-2024-05-18) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v12.0.0...v12.1.0) ##### Added ### [`v12.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1200-2024-02-03) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v11.1.0...v12.0.0) ##### Added - `.addHelpOption()` as another way of configuring built-in help option (\[[#2006](https://redirect.github.com/tj/commander.js/issues/2006)]) - `.helpCommand()` for configuring built-in help command (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)]) ##### Fixed - *Breaking:* use non-zero exit code when spawned executable subcommand terminates due to a signal (\[[#2023](https://redirect.github.com/tj/commander.js/issues/2023)]) - *Breaking:* check `passThroughOptions` constraints when using `.addCommand` and throw if parent command does not have `.enablePositionalOptions()` enabled (\[[#1937](https://redirect.github.com/tj/commander.js/issues/1937)]) ##### Changed - *Breaking:* Commander 12 requires Node.js v18 or higher (\[[#2027](https://redirect.github.com/tj/commander.js/issues/2027)]) - *Breaking:* throw an error if add an option with a flag which is already in use (\[[#2055](https://redirect.github.com/tj/commander.js/issues/2055)]) - *Breaking:* throw an error if add a command with name or alias which is already in use (\[[#2059](https://redirect.github.com/tj/commander.js/issues/2059)]) - *Breaking:* throw error when calling `.storeOptionsAsProperties()` after setting an option value (\[[#1928](https://redirect.github.com/tj/commander.js/issues/1928)]) - replace non-standard JSDoc of `@api private` with documented `@private` (\[[#1949](https://redirect.github.com/tj/commander.js/issues/1949)]) - `.addHelpCommand()` now takes a Command (passing string or boolean still works as before but deprecated) (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)]) - refactor internal implementation of built-in help option (\[[#2006](https://redirect.github.com/tj/commander.js/issues/2006)]) - refactor internal implementation of built-in help command (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)]) ##### Deprecated - `.addHelpCommand()` passing string or boolean (use `.helpCommand()` or pass a Command) (\[[#2087](https://redirect.github.com/tj/commander.js/issues/2087)]) ##### Removed - *Breaking:* removed default export of a global Command instance from CommonJS (use the named `program` export instead) (\[[#2017](https://redirect.github.com/tj/commander.js/issues/2017)]) ##### Migration Tips **global program** If you are using the [deprecated](./docs/deprecated.md#default-import-of-global-command-object) default import of the global Command object, you need to switch to using a named import (or create a new `Command`). ```js // const program = require('commander'); const { program } = require('commander'); ``` **option and command clashes** A couple of configuration problems now throw an error, which will pick up issues in existing programs: - adding an option which uses the same flag as a previous option - adding a command which uses the same name or alias as a previous command ### [`v11.1.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1110-2023-10-13) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v11.0.0...v11.1.0) ##### Fixed - TypeScript: update `OptionValueSource` to allow any string, to match supported use of custom sources (\[[#1983](https://redirect.github.com/tj/commander.js/issues/1983)]) - TypeScript: add that `Command.version()` can also be used as getter (\[[#1982](https://redirect.github.com/tj/commander.js/issues/1982)]) - TypeScript: add null return type to `Commands.executableDir()`, for when not configured (\[[#1965](https://redirect.github.com/tj/commander.js/issues/1965)]) - subcommands with an executable handler and only a short help flag are now handled correctly by the parent's help command (\[[#1930](https://redirect.github.com/tj/commander.js/issues/1930)]) ##### Added - `registeredArguments` property on `Command` with the array of defined `Argument` (like `Command.options` for `Option`) (\[[#2010](https://redirect.github.com/tj/commander.js/issues/2010)]) - TypeScript declarations for Option properties: `envVar`, `presetArg` (\[[#2019](https://redirect.github.com/tj/commander.js/issues/2019)]) - TypeScript declarations for Argument properties: `argChoices`, `defaultValue`, `defaultValueDescription` (\[[#2019](https://redirect.github.com/tj/commander.js/issues/2019)]) - example file which shows how to configure help to display any custom usage in the list of subcommands (\[[#1896](https://redirect.github.com/tj/commander.js/issues/1896)]) ##### Changed - (developer) refactor TypeScript configs for multiple use-cases, and enable checks in JavaScript files in supporting editors (\[[#1969](https://redirect.github.com/tj/commander.js/issues/1969)]) ##### Deprecated - `Command._args` was private anyway, but now available as `registeredArguments` (\[[#2010](https://redirect.github.com/tj/commander.js/issues/2010)])Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.