tj/commander.js
### [`v6.2.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#621-2020-12-13)
[Compare Source](https://togithub.com/tj/commander.js/compare/v6.2.0...v6.2.1)
##### Fixed
- some tests failed if directory path included a space ([1390])
### [`v6.2.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#620-2020-10-25)
[Compare Source](https://togithub.com/tj/commander.js/compare/v6.1.0...v6.2.0)
##### Added
- added 'tsx' file extension for stand-alone executable subcommands ([#1368])
- documented second parameter to `.description()` to describe command arguments ([#1353])
- documentation of special cases with options taking varying numbers of option-arguments ([#1332])
- documentation for terminology ([#1361])
##### Fixed
- add missing TypeScript definition for \`.addHelpCommand()' ([#1375])
- removed blank line after "Arguments:" in help, to match "Options:" and "Commands:" ([#1360])
##### Changed
- update dependencies
### [`v6.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#610-2020-08-28)
[Compare Source](https://togithub.com/tj/commander.js/compare/v6.0.0...v6.1.0)
##### Added
- include URL to relevant section of README for error for potential conflict between Command properties and option values ([#1306])
- `.combineFlagAndOptionalValue(false)` to ease upgrade path from older versions of Commander ([#1326])
- allow disabling the built-in help option using `.helpOption(false)` ([#1325])
- allow just some arguments in `argumentDescription` to `.description()` ([#1323])
##### Changed
- tidy async test and remove lint override ([#1312])
##### Fixed
- executable subcommand launching when script path not known ([#1322])
### [`v6.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#600-2020-07-21)
[Compare Source](https://togithub.com/tj/commander.js/compare/v5.1.0...v6.0.0)
##### Added
- add support for variadic options ([#1250])
- allow options to be added with just a short flag ([#1256])
- _Breaking_ the option property has same case as flag. e.g. flag `-n` accessed as `opts().n` (previously uppercase)
- _Breaking_ throw an error if there might be a clash between option name and a Command property, with advice on how to resolve ([#1275])
##### Fixed
- Options which contain -no- in the middle of the option flag should not be treated as negatable. ([#1301])
### [`v5.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#510-2020-04-25)
[Compare Source](https://togithub.com/tj/commander.js/compare/v5.0.0...v5.1.0)
##### Added
- support for multiple command aliases, the first of which is shown in the auto-generated help ([#531], [#1236])
- configuration support in `addCommand()` for `hidden` and `isDefault` ([#1232])
##### Fixed
- omit masked help flags from the displayed help ([#645], [#1247])
- remove old short help flag when change help flags using `helpOption` ([#1248])
##### Changed
- remove use of `arguments` to improve auto-generated help in editors ([#1235])
- rename `.command()` configuration `noHelp` to `hidden` (but not remove old support) ([#1232])
- improvements to documentation
- update dependencies
- update tested versions of node
- eliminate lint errors in TypeScript ([#1208])
### [`v5.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#500-2020-03-14)
[Compare Source](https://togithub.com/tj/commander.js/compare/v4.1.1...v5.0.0)
##### Added
- support for nested commands with action-handlers ([#1][#764] [#1149])
- `.addCommand()` for adding a separately configured command ([#764][#1149])
- allow a non-executable to be set as the default command ([#742][#1149])
- implicit help command when there are subcommands (previously only if executables) ([#1149])
- customise implicit help command with `.addHelpCommand()` ([#1149])
- display error message for unknown subcommand, by default ([#432][#1088] [#1149])
- display help for missing subcommand, by default ([#1088][#1149])
- combined short options as single argument may include boolean flags and value flag and value (e.g. `-a -b -p 80` can be written as `-abp80`) ([#1145])
- `.parseOption()` includes short flag and long flag expansions ([#1145])
- `.helpInformation()` returns help text as a string, previously a private routine ([#1169])
- `.parse()` implicitly uses `process.argv` if arguments not specified ([#1172])
- optionally specify where `.parse()` arguments "from", if not following node conventions ([#512][#1172])
- suggest help option along with unknown command error ([#1179])
- TypeScript definition for `commands` property of `Command` ([#1184])
- export `program` property ([#1195])
- `createCommand` factory method to simplify subclassing ([#1191])
##### Fixed
- preserve argument order in subcommands ([#508][#962] [#1138])
- do not emit `command:*` for executable subcommands ([#809][#1149])
- action handler called whether or not there are non-option arguments ([#1062][#1149])
- combining option short flag and value in single argument now works for subcommands ([#1145])
- only add implicit help command when it will not conflict with other uses of argument ([#1153][#1149])
- implicit help command works with command aliases ([#948][#1149])
- options are validated whether or not there is an action handler ([#1149])
##### Changed
- _Breaking_ `.args` contains command arguments with just recognised options removed ([#1032][#1138])
- _Breaking_ display error if required argument for command is missing ([#995][#1149])
- tighten TypeScript definition of custom option processing function passed to `.option()` ([#1119])
- _Breaking_ `.allowUnknownOption()` ([#802][#1138])
- unknown options included in arguments passed to command action handler
- unknown options included in `.args`
- only recognised option short flags and long flags are expanded (e.g. `-ab` or `--foo=bar`) ([#1145])
- _Breaking_ `.parseOptions()` ([#1138])
- `args` in returned result renamed `operands` and does not include anything after first unknown option
- `unknown` in returned result has arguments after first unknown option including operands, not just options and values
- _Breaking_ `.on('command:*', callback)` and other command events passed (changed) results from `.parseOptions`, i.e. operands and unknown ([#1138])
- refactor Option from prototype to class ([#1133])
- refactor Command from prototype to class ([#1159])
- changes to error handling ([#1165])
- throw for author error, not just display message
- preflight for variadic error
- add tips to missing subcommand executable
- TypeScript fluent return types changed to be more subclass friendly, return `this` rather than `Command` ([#1180])
- `.parseAsync` returns `Promise` to be consistent with `.parse()` ([#1180])
- update dependencies
##### Removed
- removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on `@types/node` ([#1146])
- removed private function `normalize` (the functionality has been integrated into `parseOptions`) ([#1145])
- `parseExpectedArgs` is now private ([#1149])
##### Migration Tips
If you use `.on('command:*')` or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.
If you use `program.args` or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.
If you use `.command('*')` to add a default command, you may be be able to switch to `isDefault:true` with a named command.
If you want to continue combining short options with optional values as though they were boolean flags, set `combineFlagAndOptionalValue(false)`
to expand `-fb` to `-f -b` rather than `-f b`.
### [`v4.1.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#411-2020-02-02)
[Compare Source](https://togithub.com/tj/commander.js/compare/v4.1.0...v4.1.1)
##### Fixed
- TypeScript definition for `.action()` should include Promise for async ([#1157])
### [`v4.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#410-2020-01-06)
[Compare Source](https://togithub.com/tj/commander.js/compare/v4.0.1...v4.1.0)
##### Added
- two routines to change how option values are handled, and eliminate name clashes with command properties ([#933][#1102])
- see storeOptionsAsProperties and passCommandToAction in README
- `.parseAsync` to use instead of `.parse` if supply async action handlers ([#806][#1118])
##### Fixed
- Remove trailing blanks from wrapped help text ([#1096])
##### Changed
- update dependencies
- extend security coverage for Commander 2.x to 2020-02-03
- improvements to README
- improvements to TypeScript definition documentation
- move old versions out of main CHANGELOG
- removed explicit use of `ts-node` in tests
### [`v4.0.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#401-2019-11-12)
[Compare Source](https://togithub.com/tj/commander.js/compare/v4.0.0...v4.0.1)
##### Fixed
- display help when requested, even if there are missing required options ([#1091])
### [`v4.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#400-2019-11-02)
[Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.2...v4.0.0)
##### Added
- automatically wrap and indent help descriptions for options and commands ([#1051])
- `.exitOverride()` allows override of calls to `process.exit` for additional error handling and to keep program running ([#1040])
- support for declaring required options with `.requiredOptions()` ([#1071])
- GitHub Actions support ([#1027])
- translation links in README
##### Changed
- dev: switch tests from Sinon+Should to Jest with major rewrite of tests ([#1035])
- call default subcommand even when there are unknown options ([#1047])
- _Breaking_ Commander is only officially supported on Node 8 and above, and requires Node 6 ([#1053])
##### Fixed
- _Breaking_ keep command object out of program.args when action handler called ([#1048])
- also, action handler now passed array of unknown arguments
- complain about unknown options when program argument supplied and action handler ([#1049])
- this changes parameters to `command:*` event to include unknown arguments
- removed deprecated `customFds` option from call to `child_process.spawn` ([#1052])
- rework TypeScript declarations to bring all types into imported namespace ([#1081])
##### Migration Tips
##### Testing for no arguments
If you were previously using code like:
```js
if (!program.args.length) ...
```
a partial replacement is:
```js
if (program.rawArgs.length < 3) ...
```
### [`v3.0.2`](https://togithub.com/tj/commander.js/releases/v3.0.2)
[Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.1...v3.0.2)
##### Fixed
- Improve tracking of executable subcommands.
##### Changed
- update development dependencies
Credits:
- issue identified by Checkmarx Application Security Research Team
### [`v3.0.1`](https://togithub.com/tj/commander.js/releases/v3.0.1)
[Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.0...v3.0.1)
##### Added
- .name and .usage to README ([#1010](https://togithub.com/tj/commander.js/issues/1010))
- Table of Contents to README ([#1010](https://togithub.com/tj/commander.js/issues/1010))
- TypeScript definition for `executableFile` in CommandOptions ([#1028](https://togithub.com/tj/commander.js/issues/1028))
##### Changed
- consistently use `const` rather than `var` in README ([#1026](https://togithub.com/tj/commander.js/issues/1026))
##### Fixed
- help for sub commands with custom executableFile ([#1018](https://togithub.com/tj/commander.js/issues/1018))
### [`v3.0.0`](https://togithub.com/tj/commander.js/releases/v3.0.0)
[Compare Source](https://togithub.com/tj/commander.js/compare/v2.20.3...v3.0.0)
- Add option to specify executable file name ([#999](https://togithub.com/tj/commander.js/issues/999))
- e.g. `.command('clone', 'clone description', { executableFile: 'myClone' })`
- Change docs for `.command` to contrast action handler vs git-style executable. ([#938](https://togithub.com/tj/commander.js/issues/938) [#990](https://togithub.com/tj/commander.js/issues/990))
- **Breaking** Change TypeScript to use overloaded function for `.command`. ([#938](https://togithub.com/tj/commander.js/issues/938) [#990](https://togithub.com/tj/commander.js/issues/990))
- Change to use straight quotes around strings in error messages (like 'this' instead of \`this') ([#915](https://togithub.com/tj/commander.js/issues/915))
- Add TypeScript "reference types" for node ([#974](https://togithub.com/tj/commander.js/issues/974))
- Add support for hyphen as an option argument in subcommands ([#697](https://togithub.com/tj/commander.js/issues/697))
- Add support for a short option flag and its value to be concatenated for action handler subcommands ([#599](https://togithub.com/tj/commander.js/issues/599))
- e.g. `-p 80` can also be supplied as `-p80`
- Add executable arguments to spawn in win32, for git-style executables ([#611](https://togithub.com/tj/commander.js/issues/611))
- e.g. `node --harmony myCommand.js clone`
- Add parent command as prefix of subcommand in help ([#980](https://togithub.com/tj/commander.js/issues/980))
- Add optional custom description to `.version` ([#963](https://togithub.com/tj/commander.js/issues/963))
- e.g. `program.version('0.0.1', '-v, --vers', 'output the current version')`
- Add `.helpOption(flags, description)` routine to customise help flags and description ([#963](https://togithub.com/tj/commander.js/issues/963))
- e.g. `.helpOption('-e, --HELP', 'read more information')`
- Fix behavior of --no-\* options ([#795](https://togithub.com/tj/commander.js/issues/795))
- can now define both `--foo` and `--no-foo`
- **Breaking** custom event listeners: `--no-foo` on cli now emits `option:no-foo` (previously `option:foo`)
- **Breaking** default value: defining `--no-foo` after defining `--foo` leaves the default value unchanged (previously set it to false)
- allow boolean default value, such as from environment ([#987](https://togithub.com/tj/commander.js/issues/987))
- Increment inspector port for spawned subcommands ([#991](https://togithub.com/tj/commander.js/issues/991))
- e.g. `node --inspect myCommand.js clone`
## Migration Tips
The custom event for a negated option like `--no-foo` is `option:no-foo` (previously `option:foo`).
```js
program
.option('--no-foo')
.on('option:no-foo', () => {
console.log('removing foo');
});
```
When using TypeScript, adding a command does not allow an explicit `undefined` for an unwanted executable description (e.g. for a command with an action handler).
```js
program
.command('action1', undefined, { noHelp: true }) // No longer valid
.command('action2', { noHelp: true }) // Correct
```
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: 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:
2.20.3
->6.2.1
Release Notes
tj/commander.js
### [`v6.2.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#621-2020-12-13) [Compare Source](https://togithub.com/tj/commander.js/compare/v6.2.0...v6.2.1) ##### Fixed - some tests failed if directory path included a space ([1390]) ### [`v6.2.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#620-2020-10-25) [Compare Source](https://togithub.com/tj/commander.js/compare/v6.1.0...v6.2.0) ##### Added - added 'tsx' file extension for stand-alone executable subcommands ([#1368]) - documented second parameter to `.description()` to describe command arguments ([#1353]) - documentation of special cases with options taking varying numbers of option-arguments ([#1332]) - documentation for terminology ([#1361]) ##### Fixed - add missing TypeScript definition for \`.addHelpCommand()' ([#1375]) - removed blank line after "Arguments:" in help, to match "Options:" and "Commands:" ([#1360]) ##### Changed - update dependencies ### [`v6.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#610-2020-08-28) [Compare Source](https://togithub.com/tj/commander.js/compare/v6.0.0...v6.1.0) ##### Added - include URL to relevant section of README for error for potential conflict between Command properties and option values ([#1306]) - `.combineFlagAndOptionalValue(false)` to ease upgrade path from older versions of Commander ([#1326]) - allow disabling the built-in help option using `.helpOption(false)` ([#1325]) - allow just some arguments in `argumentDescription` to `.description()` ([#1323]) ##### Changed - tidy async test and remove lint override ([#1312]) ##### Fixed - executable subcommand launching when script path not known ([#1322]) ### [`v6.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#600-2020-07-21) [Compare Source](https://togithub.com/tj/commander.js/compare/v5.1.0...v6.0.0) ##### Added - add support for variadic options ([#1250]) - allow options to be added with just a short flag ([#1256]) - _Breaking_ the option property has same case as flag. e.g. flag `-n` accessed as `opts().n` (previously uppercase) - _Breaking_ throw an error if there might be a clash between option name and a Command property, with advice on how to resolve ([#1275]) ##### Fixed - Options which contain -no- in the middle of the option flag should not be treated as negatable. ([#1301]) ### [`v5.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#510-2020-04-25) [Compare Source](https://togithub.com/tj/commander.js/compare/v5.0.0...v5.1.0) ##### Added - support for multiple command aliases, the first of which is shown in the auto-generated help ([#531], [#1236]) - configuration support in `addCommand()` for `hidden` and `isDefault` ([#1232]) ##### Fixed - omit masked help flags from the displayed help ([#645], [#1247]) - remove old short help flag when change help flags using `helpOption` ([#1248]) ##### Changed - remove use of `arguments` to improve auto-generated help in editors ([#1235]) - rename `.command()` configuration `noHelp` to `hidden` (but not remove old support) ([#1232]) - improvements to documentation - update dependencies - update tested versions of node - eliminate lint errors in TypeScript ([#1208]) ### [`v5.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#500-2020-03-14) [Compare Source](https://togithub.com/tj/commander.js/compare/v4.1.1...v5.0.0) ##### Added - support for nested commands with action-handlers ([#1][#764] [#1149]) - `.addCommand()` for adding a separately configured command ([#764][#1149]) - allow a non-executable to be set as the default command ([#742][#1149]) - implicit help command when there are subcommands (previously only if executables) ([#1149]) - customise implicit help command with `.addHelpCommand()` ([#1149]) - display error message for unknown subcommand, by default ([#432][#1088] [#1149]) - display help for missing subcommand, by default ([#1088][#1149]) - combined short options as single argument may include boolean flags and value flag and value (e.g. `-a -b -p 80` can be written as `-abp80`) ([#1145]) - `.parseOption()` includes short flag and long flag expansions ([#1145]) - `.helpInformation()` returns help text as a string, previously a private routine ([#1169]) - `.parse()` implicitly uses `process.argv` if arguments not specified ([#1172]) - optionally specify where `.parse()` arguments "from", if not following node conventions ([#512][#1172]) - suggest help option along with unknown command error ([#1179]) - TypeScript definition for `commands` property of `Command` ([#1184]) - export `program` property ([#1195]) - `createCommand` factory method to simplify subclassing ([#1191]) ##### Fixed - preserve argument order in subcommands ([#508][#962] [#1138]) - do not emit `command:*` for executable subcommands ([#809][#1149]) - action handler called whether or not there are non-option arguments ([#1062][#1149]) - combining option short flag and value in single argument now works for subcommands ([#1145]) - only add implicit help command when it will not conflict with other uses of argument ([#1153][#1149]) - implicit help command works with command aliases ([#948][#1149]) - options are validated whether or not there is an action handler ([#1149]) ##### Changed - _Breaking_ `.args` contains command arguments with just recognised options removed ([#1032][#1138]) - _Breaking_ display error if required argument for command is missing ([#995][#1149]) - tighten TypeScript definition of custom option processing function passed to `.option()` ([#1119]) - _Breaking_ `.allowUnknownOption()` ([#802][#1138]) - unknown options included in arguments passed to command action handler - unknown options included in `.args` - only recognised option short flags and long flags are expanded (e.g. `-ab` or `--foo=bar`) ([#1145]) - _Breaking_ `.parseOptions()` ([#1138]) - `args` in returned result renamed `operands` and does not include anything after first unknown option - `unknown` in returned result has arguments after first unknown option including operands, not just options and values - _Breaking_ `.on('command:*', callback)` and other command events passed (changed) results from `.parseOptions`, i.e. operands and unknown ([#1138]) - refactor Option from prototype to class ([#1133]) - refactor Command from prototype to class ([#1159]) - changes to error handling ([#1165]) - throw for author error, not just display message - preflight for variadic error - add tips to missing subcommand executable - TypeScript fluent return types changed to be more subclass friendly, return `this` rather than `Command` ([#1180]) - `.parseAsync` returns `PromiseRenovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.