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)])
### [`v11.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1100-2023-06-16)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v10.0.1...v11.0.0)
##### Fixed
- help command works when help option is disabled (\[[#1864](https://redirect.github.com/tj/commander.js/issues/1864)])
##### Changed
- leading and trailing spaces are now ignored by the .arguments() method (\[[#1874](https://redirect.github.com/tj/commander.js/issues/1874)])
- refine "types" exports for ESM to follow TypeScript guidelines (\[[#1886](https://redirect.github.com/tj/commander.js/issues/1886)])
- *Breaking:* Commander 11 requires Node.js v16 or higher
### [`v10.0.1`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1001-2023-04-15)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v10.0.0...v10.0.1)
##### Added
- improvements to documentation (\[[#1858](https://redirect.github.com/tj/commander.js/issues/1858)], \[[#1859](https://redirect.github.com/tj/commander.js/issues/1859)], \[[#1860](https://redirect.github.com/tj/commander.js/issues/1860)])
##### Fixed
- remove unused `Option.optionFlags` property from TypeScript definition (\[[#1844](https://redirect.github.com/tj/commander.js/issues/1844)])
##### Changed
- assume boolean option intended if caller passes string instead of hash to `.implies()` (\[[#1854](https://redirect.github.com/tj/commander.js/issues/1854)])
### [`v10.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1000-2023-01-13)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.5.0...v10.0.0)
##### Added
- wrap command description in help (\[[#1804](https://redirect.github.com/tj/commander.js/issues/1804)])
##### Changed
- *Breaking:* Commander 10 requires Node.js v14 or higher
### [`v9.5.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#950-2023-01-07)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.4.1...v9.5.0)
##### Added
- `.getOptionValueSourceWithGlobals()` (\[[#1832](https://redirect.github.com/tj/commander.js/issues/1832)])
- `showGlobalOptions` for `.configureHelp{}` and `Help` (\[[#1828](https://redirect.github.com/tj/commander.js/issues/1828)])
### [`v9.4.1`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#941-2022-09-30)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.4.0...v9.4.1)
##### Fixed
- `.setOptionValue()` now also clears option source (\[[#1795](https://redirect.github.com/tj/commander.js/issues/1795)])
- TypeScript: add `implied` to `OptionValueSource` for option values set by using `.implies()` (\[[#1794](https://redirect.github.com/tj/commander.js/issues/1794)])
- TypeScript : add `undefined` to return type of `.getOptionValueSource()` (\[[#1794](https://redirect.github.com/tj/commander.js/issues/1794)])
##### Changed
- additions to README
### [`v9.4.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#940-2022-07-15)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.3.0...v9.4.0)
##### Added
- `preSubcommand` hook called before direct subcommands (\[[#1763](https://redirect.github.com/tj/commander.js/issues/1763)])
##### Fixed
- export `InvalidOptionArgumentError` in esm (\[[#1756](https://redirect.github.com/tj/commander.js/issues/1756)])
##### Changed
- update dependencies (\[[#1767](https://redirect.github.com/tj/commander.js/issues/1767)])
### [`v9.3.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#930-2022-05-28)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.2.0...v9.3.0)
##### Added
- `.summary()` for a short summary to use instead of description when listing subcommands in help (\[[#1726](https://redirect.github.com/tj/commander.js/issues/1726)])
- `Option.implies()` to set other option values when the option is specified (\[[#1724](https://redirect.github.com/tj/commander.js/issues/1724)])
- updated Chinese README with 9.x changes (\[[#1727](https://redirect.github.com/tj/commander.js/issues/1727)])
##### Fixed
- TypeScript: add `string[]` to `.options()` default value parameter type for use with variadic options (\[[#1721](https://redirect.github.com/tj/commander.js/issues/1721)])
##### Deprecated
- multi-character short option flag (e.g. `-ws`) (\[[#1718](https://redirect.github.com/tj/commander.js/issues/1718)])
### [`v9.2.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#920-2022-04-15)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.1.0...v9.2.0)
##### Added
- conditional export of 'types' for upcoming TypeScript module resolution (\[[#1703](https://redirect.github.com/tj/commander.js/issues/1703)])
- example file showing two ways to add global options to subcommands (\[[#1708](https://redirect.github.com/tj/commander.js/issues/1708)])
##### Fixed
- detect option conflicts in parent commands of called subcommand (\[[#1710](https://redirect.github.com/tj/commander.js/issues/1710)])
##### Changed
- replace deprecated `String.prototype.substr` (\[[#1706](https://redirect.github.com/tj/commander.js/issues/1706)])
### [`v9.1.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#910-2022-03-19)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.0.0...v9.1.0)
##### Added
- Option `.conflicts()` to set conflicting options which can not be specified together (\[[#1678](https://redirect.github.com/tj/commander.js/issues/1678)])
- (developer) CodeQL configuration for GitHub Actions (\[[#1698](https://redirect.github.com/tj/commander.js/issues/1698)])
### [`v9.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#900-2022-01-28)
[Compare Source](https://redirect.github.com/tj/commander.js/compare/v8.3.0...v9.0.0)
##### Added
- simpler ECMAScript import (\[[#1589](https://redirect.github.com/tj/commander.js/issues/1589)])
- Option.preset() allows specifying value/arg for option when used without option-argument (especially optional, but also boolean option) (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)])
- `.executableDir()` for custom search for subcommands (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)])
- throw with helpful message if pass `Option` to `.option()` or `.requiredOption()` (\[[#1655](https://redirect.github.com/tj/commander.js/issues/1655)])
- .`error()` for generating errors from client code just like Commander generated errors, with support for `.configureOutput()`, `.exitOverride()`, and `.showHelpAfterError()` (\[[#1675](https://redirect.github.com/tj/commander.js/issues/1675)])
- `.optsWithGlobals()` to return merged local and global options (\[[#1671](https://redirect.github.com/tj/commander.js/issues/1671)])
##### Changed
- *Breaking:* Commander 9 requires Node.js v12.20.0 or higher
- update package-lock.json to lockfile@2 format (\[[#1659](https://redirect.github.com/tj/commander.js/issues/1659)])
- `showSuggestionAfterError` is now on by default (\[[#1657](https://redirect.github.com/tj/commander.js/issues/1657)])
- *Breaking:* default value specified for boolean option now always used as default value (see .preset() to match some previous behaviours) (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)])
- default value for boolean option only shown in help if true/false (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)])
- use command name as prefix for subcommand stand-alone executable name (with fallback to script name for backwards compatibility) (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)])
- allow absolute path with `executableFile` (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)])
- removed restriction that nested subcommands must specify `executableFile` (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)])
- TypeScript: allow passing readonly string array to `.choices()` (\[[#1667](https://redirect.github.com/tj/commander.js/issues/1667)])
- TypeScript: allow passing readonly string array to `.parse()`, `.parseAsync()`, `.aliases()` (\[[#1669](https://redirect.github.com/tj/commander.js/issues/1669)])
##### Fixed
- option with optional argument not supplied on command line now works when option already has a value, whether from default value or from previous arguments (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)])
##### Removed
- *Breaking:* removed internal fallback to `require.main.filename` when script not known from arguments passed to `.parse()` (can supply details using `.name()`, and `.executableDir()` or `executableFile`) (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)])
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 is behind base branch, 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:
8.3.0
->12.1.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)]) ### [`v11.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1100-2023-06-16) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v10.0.1...v11.0.0) ##### Fixed - help command works when help option is disabled (\[[#1864](https://redirect.github.com/tj/commander.js/issues/1864)]) ##### Changed - leading and trailing spaces are now ignored by the .arguments() method (\[[#1874](https://redirect.github.com/tj/commander.js/issues/1874)]) - refine "types" exports for ESM to follow TypeScript guidelines (\[[#1886](https://redirect.github.com/tj/commander.js/issues/1886)]) - *Breaking:* Commander 11 requires Node.js v16 or higher ### [`v10.0.1`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1001-2023-04-15) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v10.0.0...v10.0.1) ##### Added - improvements to documentation (\[[#1858](https://redirect.github.com/tj/commander.js/issues/1858)], \[[#1859](https://redirect.github.com/tj/commander.js/issues/1859)], \[[#1860](https://redirect.github.com/tj/commander.js/issues/1860)]) ##### Fixed - remove unused `Option.optionFlags` property from TypeScript definition (\[[#1844](https://redirect.github.com/tj/commander.js/issues/1844)]) ##### Changed - assume boolean option intended if caller passes string instead of hash to `.implies()` (\[[#1854](https://redirect.github.com/tj/commander.js/issues/1854)]) ### [`v10.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1000-2023-01-13) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.5.0...v10.0.0) ##### Added - wrap command description in help (\[[#1804](https://redirect.github.com/tj/commander.js/issues/1804)]) ##### Changed - *Breaking:* Commander 10 requires Node.js v14 or higher ### [`v9.5.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#950-2023-01-07) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.4.1...v9.5.0) ##### Added - `.getOptionValueSourceWithGlobals()` (\[[#1832](https://redirect.github.com/tj/commander.js/issues/1832)]) - `showGlobalOptions` for `.configureHelp{}` and `Help` (\[[#1828](https://redirect.github.com/tj/commander.js/issues/1828)]) ### [`v9.4.1`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#941-2022-09-30) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.4.0...v9.4.1) ##### Fixed - `.setOptionValue()` now also clears option source (\[[#1795](https://redirect.github.com/tj/commander.js/issues/1795)]) - TypeScript: add `implied` to `OptionValueSource` for option values set by using `.implies()` (\[[#1794](https://redirect.github.com/tj/commander.js/issues/1794)]) - TypeScript : add `undefined` to return type of `.getOptionValueSource()` (\[[#1794](https://redirect.github.com/tj/commander.js/issues/1794)]) ##### Changed - additions to README ### [`v9.4.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#940-2022-07-15) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.3.0...v9.4.0) ##### Added - `preSubcommand` hook called before direct subcommands (\[[#1763](https://redirect.github.com/tj/commander.js/issues/1763)]) ##### Fixed - export `InvalidOptionArgumentError` in esm (\[[#1756](https://redirect.github.com/tj/commander.js/issues/1756)]) ##### Changed - update dependencies (\[[#1767](https://redirect.github.com/tj/commander.js/issues/1767)]) ### [`v9.3.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#930-2022-05-28) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.2.0...v9.3.0) ##### Added - `.summary()` for a short summary to use instead of description when listing subcommands in help (\[[#1726](https://redirect.github.com/tj/commander.js/issues/1726)]) - `Option.implies()` to set other option values when the option is specified (\[[#1724](https://redirect.github.com/tj/commander.js/issues/1724)]) - updated Chinese README with 9.x changes (\[[#1727](https://redirect.github.com/tj/commander.js/issues/1727)]) ##### Fixed - TypeScript: add `string[]` to `.options()` default value parameter type for use with variadic options (\[[#1721](https://redirect.github.com/tj/commander.js/issues/1721)]) ##### Deprecated - multi-character short option flag (e.g. `-ws`) (\[[#1718](https://redirect.github.com/tj/commander.js/issues/1718)]) ### [`v9.2.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#920-2022-04-15) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.1.0...v9.2.0) ##### Added - conditional export of 'types' for upcoming TypeScript module resolution (\[[#1703](https://redirect.github.com/tj/commander.js/issues/1703)]) - example file showing two ways to add global options to subcommands (\[[#1708](https://redirect.github.com/tj/commander.js/issues/1708)]) ##### Fixed - detect option conflicts in parent commands of called subcommand (\[[#1710](https://redirect.github.com/tj/commander.js/issues/1710)]) ##### Changed - replace deprecated `String.prototype.substr` (\[[#1706](https://redirect.github.com/tj/commander.js/issues/1706)]) ### [`v9.1.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#910-2022-03-19) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v9.0.0...v9.1.0) ##### Added - Option `.conflicts()` to set conflicting options which can not be specified together (\[[#1678](https://redirect.github.com/tj/commander.js/issues/1678)]) - (developer) CodeQL configuration for GitHub Actions (\[[#1698](https://redirect.github.com/tj/commander.js/issues/1698)]) ### [`v9.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#900-2022-01-28) [Compare Source](https://redirect.github.com/tj/commander.js/compare/v8.3.0...v9.0.0) ##### Added - simpler ECMAScript import (\[[#1589](https://redirect.github.com/tj/commander.js/issues/1589)]) - Option.preset() allows specifying value/arg for option when used without option-argument (especially optional, but also boolean option) (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)]) - `.executableDir()` for custom search for subcommands (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)]) - throw with helpful message if pass `Option` to `.option()` or `.requiredOption()` (\[[#1655](https://redirect.github.com/tj/commander.js/issues/1655)]) - .`error()` for generating errors from client code just like Commander generated errors, with support for `.configureOutput()`, `.exitOverride()`, and `.showHelpAfterError()` (\[[#1675](https://redirect.github.com/tj/commander.js/issues/1675)]) - `.optsWithGlobals()` to return merged local and global options (\[[#1671](https://redirect.github.com/tj/commander.js/issues/1671)]) ##### Changed - *Breaking:* Commander 9 requires Node.js v12.20.0 or higher - update package-lock.json to lockfile@2 format (\[[#1659](https://redirect.github.com/tj/commander.js/issues/1659)]) - `showSuggestionAfterError` is now on by default (\[[#1657](https://redirect.github.com/tj/commander.js/issues/1657)]) - *Breaking:* default value specified for boolean option now always used as default value (see .preset() to match some previous behaviours) (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)]) - default value for boolean option only shown in help if true/false (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)]) - use command name as prefix for subcommand stand-alone executable name (with fallback to script name for backwards compatibility) (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)]) - allow absolute path with `executableFile` (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)]) - removed restriction that nested subcommands must specify `executableFile` (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)]) - TypeScript: allow passing readonly string array to `.choices()` (\[[#1667](https://redirect.github.com/tj/commander.js/issues/1667)]) - TypeScript: allow passing readonly string array to `.parse()`, `.parseAsync()`, `.aliases()` (\[[#1669](https://redirect.github.com/tj/commander.js/issues/1669)]) ##### Fixed - option with optional argument not supplied on command line now works when option already has a value, whether from default value or from previous arguments (\[[#1652](https://redirect.github.com/tj/commander.js/issues/1652)]) ##### Removed - *Breaking:* removed internal fallback to `require.main.filename` when script not known from arguments passed to `.parse()` (can supply details using `.name()`, and `.executableDir()` or `executableFile`) (\[[#1571](https://redirect.github.com/tj/commander.js/issues/1571)])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 is behind base branch, 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.