tj/commander.js
### [`v7.2.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#720-2021-03-26)
[Compare Source](https://togithub.com/tj/commander.js/compare/v7.1.0...v7.2.0)
##### Added
- TypeScript typing for `parent` property on `Command` (\[[#1475](https://togithub.com/tj/commander.js/issues/1475)])
- TypeScript typing for `.attributeName()` on `Option` (\[[#1483](https://togithub.com/tj/commander.js/issues/1483)])
- support information in package (\[[#1477](https://togithub.com/tj/commander.js/issues/1477)])
##### Changed
- improvements to error messages, README, and tests
- update dependencies
### [`v7.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#710-2021-02-15)
[Compare Source](https://togithub.com/tj/commander.js/compare/v7.0.0...v7.1.0)
##### Added
- support for named imports from ECMAScript modules (\[[#1440](https://togithub.com/tj/commander.js/issues/1440)])
- add `.cjs` to list of expected script file extensions (\[[#1449](https://togithub.com/tj/commander.js/issues/1449)])
- allow using option choices and variadic together (\[[#1454](https://togithub.com/tj/commander.js/issues/1454)])
##### Fixed
- replace use of deprecated `process.mainModule` (\[[#1448](https://togithub.com/tj/commander.js/issues/1448)])
- regression for legacy `command('*')` and call when command line includes options (\[[#1464](https://togithub.com/tj/commander.js/issues/1464)])
- regression for `on('command:*', ...)` and call when command line includes unknown options (\[[#1464](https://togithub.com/tj/commander.js/issues/1464)])
- display best error for combination of unknown command and unknown option (i.e. unknown command) (\[[#1464](https://togithub.com/tj/commander.js/issues/1464)])
##### Changed
- make TypeScript typings tests stricter (\[[#1453](https://togithub.com/tj/commander.js/issues/1453)])
- improvements to README and tests
### [`v7.0.0`](https://togithub.com/tj/commander.js/compare/v6.2.1...v7.0.0)
[Compare Source](https://togithub.com/tj/commander.js/compare/v6.2.1...v7.0.0)
### [`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](https://togithub.com/tj/commander.js/issues/1368)])
- documented second parameter to `.description()` to describe command arguments (\[[#1353](https://togithub.com/tj/commander.js/issues/1353)])
- documentation of special cases with options taking varying numbers of option-arguments (\[[#1332](https://togithub.com/tj/commander.js/issues/1332)])
- documentation for terminology (\[[#1361](https://togithub.com/tj/commander.js/issues/1361)])
##### Fixed
- add missing TypeScript definition for \`.addHelpCommand()' (\[[#1375](https://togithub.com/tj/commander.js/issues/1375)])
- removed blank line after "Arguments:" in help, to match "Options:" and "Commands:" (\[[#1360](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1306)])
- `.combineFlagAndOptionalValue(false)` to ease upgrade path from older versions of Commander (\[[#1326](https://togithub.com/tj/commander.js/issues/1326)])
- allow disabling the built-in help option using `.helpOption(false)` (\[[#1325](https://togithub.com/tj/commander.js/issues/1325)])
- allow just some arguments in `argumentDescription` to `.description()` (\[[#1323](https://togithub.com/tj/commander.js/issues/1323)])
##### Changed
- tidy async test and remove lint override (\[[#1312](https://togithub.com/tj/commander.js/issues/1312)])
##### Fixed
- executable subcommand launching when script path not known (\[[#1322](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1250)])
- allow options to be added with just a short flag (\[[#1256](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1275)])
##### Fixed
- Options which contain -no- in the middle of the option flag should not be treated as negatable. (\[[#1301](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/531)], \[[#1236](https://togithub.com/tj/commander.js/issues/1236)])
- configuration support in `addCommand()` for `hidden` and `isDefault` (\[[#1232](https://togithub.com/tj/commander.js/issues/1232)])
##### Fixed
- omit masked help flags from the displayed help (\[[#645](https://togithub.com/tj/commander.js/issues/645)], \[[#1247](https://togithub.com/tj/commander.js/issues/1247)])
- remove old short help flag when change help flags using `helpOption` (\[[#1248](https://togithub.com/tj/commander.js/issues/1248)])
##### Changed
- remove use of `arguments` to improve auto-generated help in editors (\[[#1235](https://togithub.com/tj/commander.js/issues/1235)])
- rename `.command()` configuration `noHelp` to `hidden` (but not remove old support) (\[[#1232](https://togithub.com/tj/commander.js/issues/1232)])
- improvements to documentation
- update dependencies
- update tested versions of node
- eliminate lint errors in TypeScript (\[[#1208](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1)] \[[#764](https://togithub.com/tj/commander.js/issues/764)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- `.addCommand()` for adding a separately configured command (\[[#764](https://togithub.com/tj/commander.js/issues/764)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- allow a non-executable to be set as the default command (\[[#742](https://togithub.com/tj/commander.js/issues/742)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- implicit help command when there are subcommands (previously only if executables) (\[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- customise implicit help command with `.addHelpCommand()` (\[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- display error message for unknown subcommand, by default (\[[#432](https://togithub.com/tj/commander.js/issues/432)] \[[#1088](https://togithub.com/tj/commander.js/issues/1088)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- display help for missing subcommand, by default (\[[#1088](https://togithub.com/tj/commander.js/issues/1088)] \[[#1149](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1145)])
- `.parseOption()` includes short flag and long flag expansions (\[[#1145](https://togithub.com/tj/commander.js/issues/1145)])
- `.helpInformation()` returns help text as a string, previously a private routine (\[[#1169](https://togithub.com/tj/commander.js/issues/1169)])
- `.parse()` implicitly uses `process.argv` if arguments not specified (\[[#1172](https://togithub.com/tj/commander.js/issues/1172)])
- optionally specify where `.parse()` arguments "from", if not following node conventions (\[[#512](https://togithub.com/tj/commander.js/issues/512)] \[[#1172](https://togithub.com/tj/commander.js/issues/1172)])
- suggest help option along with unknown command error (\[[#1179](https://togithub.com/tj/commander.js/issues/1179)])
- TypeScript definition for `commands` property of `Command` (\[[#1184](https://togithub.com/tj/commander.js/issues/1184)])
- export `program` property (\[[#1195](https://togithub.com/tj/commander.js/issues/1195)])
- `createCommand` factory method to simplify subclassing (\[[#1191](https://togithub.com/tj/commander.js/issues/1191)])
##### Fixed
- preserve argument order in subcommands (\[[#508](https://togithub.com/tj/commander.js/issues/508)] \[[#962](https://togithub.com/tj/commander.js/issues/962)] \[[#1138](https://togithub.com/tj/commander.js/issues/1138)])
- do not emit `command:*` for executable subcommands (\[[#809](https://togithub.com/tj/commander.js/issues/809)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- action handler called whether or not there are non-option arguments (\[[#1062](https://togithub.com/tj/commander.js/issues/1062)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- combining option short flag and value in single argument now works for subcommands (\[[#1145](https://togithub.com/tj/commander.js/issues/1145)])
- only add implicit help command when it will not conflict with other uses of argument (\[[#1153](https://togithub.com/tj/commander.js/issues/1153)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- implicit help command works with command aliases (\[[#948](https://togithub.com/tj/commander.js/issues/948)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- options are validated whether or not there is an action handler (\[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
##### Changed
- *Breaking* `.args` contains command arguments with just recognised options removed (\[[#1032](https://togithub.com/tj/commander.js/issues/1032)] \[[#1138](https://togithub.com/tj/commander.js/issues/1138)])
- *Breaking* display error if required argument for command is missing (\[[#995](https://togithub.com/tj/commander.js/issues/995)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)])
- tighten TypeScript definition of custom option processing function passed to `.option()` (\[[#1119](https://togithub.com/tj/commander.js/issues/1119)])
- *Breaking* `.allowUnknownOption()` (\[[#802](https://togithub.com/tj/commander.js/issues/802)] \[[#1138](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1145)])
- *Breaking* `.parseOptions()` (\[[#1138](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1138)])
- refactor Option from prototype to class (\[[#1133](https://togithub.com/tj/commander.js/issues/1133)])
- refactor Command from prototype to class (\[[#1159](https://togithub.com/tj/commander.js/issues/1159)])
- changes to error handling (\[[#1165](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1180)])
- `.parseAsync` returns `Promise` to be consistent with `.parse()` (\[[#1180](https://togithub.com/tj/commander.js/issues/1180)])
- update dependencies
##### Removed
- removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on `@types/node` (\[[#1146](https://togithub.com/tj/commander.js/issues/1146)])
- removed private function `normalize` (the functionality has been integrated into `parseOptions`) (\[[#1145](https://togithub.com/tj/commander.js/issues/1145)])
- `parseExpectedArgs` is now private (\[[#1149](https://togithub.com/tj/commander.js/issues/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/releases/v4.1.1)
[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](https://togithub.com/tj/commander.js/issues/1157)])
### [`v4.1.0`](https://togithub.com/tj/commander.js/releases/v4.1.0)
[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](https://togithub.com/tj/commander.js/issues/933) [#1102](https://togithub.com/tj/commander.js/issues/1102))
- see storeOptionsAsProperties and passCommandToAction in README
- `.parseAsync` to use instead of `.parse` if supply async action handlers ([#806](https://togithub.com/tj/commander.js/issues/806) [#1118](https://togithub.com/tj/commander.js/issues/1118))
##### Fixed
- Remove trailing blanks from wrapped help text ([#1096](https://togithub.com/tj/commander.js/issues/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/releases/4.0.1)
[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](https://togithub.com/tj/commander.js/issues/1091))
### [`v4.0.0`](https://togithub.com/tj/commander.js/releases/v4.0.0)
[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](https://togithub.com/tj/commander.js/issues/1051))
- `.exitOverride()` allows override of calls to `process.exit` for additional error handling and to keep program running ([#1040](https://togithub.com/tj/commander.js/issues/1040))
- support for declaring required options with `.requiredOptions()` ([#1071](https://togithub.com/tj/commander.js/issues/1071))
- GitHub Actions support ([#1027](https://togithub.com/tj/commander.js/issues/1027))
- translation links in README
##### Changed
- dev: switch tests from Sinon+Should to Jest with major rewrite of tests ([#1035](https://togithub.com/tj/commander.js/issues/1035))
- call default subcommand even when there are unknown options ([#1047](https://togithub.com/tj/commander.js/issues/1047))
- *Breaking* Commander is only officially supported on Node 8 and above, and requires Node 6 ([#1053](https://togithub.com/tj/commander.js/issues/1053))
##### Fixed
- *Breaking* keep command object out of program.args when action handler called ([#1048](https://togithub.com/tj/commander.js/issues/1048))
- also, action handler now passed array of unknown arguments
- complain about unknown options when program argument supplied and action handler ([#1049](https://togithub.com/tj/commander.js/issues/1049))
- this changes parameters to `command:*` event to include unknown arguments
- removed deprecated `customFds` option from call to `child_process.spawn` ([#1052](https://togithub.com/tj/commander.js/issues/1052))
- rework TypeScript declarations to bring all types into imported namespace ([#1081](https://togithub.com/tj/commander.js/issues/1081))
##### Migration Tips
##### Testing for no arguments
If you were previously using code like:
if (!program.args.length) ...
a partial replacement is:
if (program.rawArgs.length < 3) ...
Configuration
📅 Schedule: "after 10pm every weekday,before 5am every weekday,every weekend" in timezone Europe/London.
🚦 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:
^3.0.0
->^7.0.0
:information_source: Find our documentation at https://github.com/Financial-Times/next/wiki/Renovate.
Release Notes
tj/commander.js
### [`v7.2.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#720-2021-03-26) [Compare Source](https://togithub.com/tj/commander.js/compare/v7.1.0...v7.2.0) ##### Added - TypeScript typing for `parent` property on `Command` (\[[#1475](https://togithub.com/tj/commander.js/issues/1475)]) - TypeScript typing for `.attributeName()` on `Option` (\[[#1483](https://togithub.com/tj/commander.js/issues/1483)]) - support information in package (\[[#1477](https://togithub.com/tj/commander.js/issues/1477)]) ##### Changed - improvements to error messages, README, and tests - update dependencies ### [`v7.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#710-2021-02-15) [Compare Source](https://togithub.com/tj/commander.js/compare/v7.0.0...v7.1.0) ##### Added - support for named imports from ECMAScript modules (\[[#1440](https://togithub.com/tj/commander.js/issues/1440)]) - add `.cjs` to list of expected script file extensions (\[[#1449](https://togithub.com/tj/commander.js/issues/1449)]) - allow using option choices and variadic together (\[[#1454](https://togithub.com/tj/commander.js/issues/1454)]) ##### Fixed - replace use of deprecated `process.mainModule` (\[[#1448](https://togithub.com/tj/commander.js/issues/1448)]) - regression for legacy `command('*')` and call when command line includes options (\[[#1464](https://togithub.com/tj/commander.js/issues/1464)]) - regression for `on('command:*', ...)` and call when command line includes unknown options (\[[#1464](https://togithub.com/tj/commander.js/issues/1464)]) - display best error for combination of unknown command and unknown option (i.e. unknown command) (\[[#1464](https://togithub.com/tj/commander.js/issues/1464)]) ##### Changed - make TypeScript typings tests stricter (\[[#1453](https://togithub.com/tj/commander.js/issues/1453)]) - improvements to README and tests ### [`v7.0.0`](https://togithub.com/tj/commander.js/compare/v6.2.1...v7.0.0) [Compare Source](https://togithub.com/tj/commander.js/compare/v6.2.1...v7.0.0) ### [`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](https://togithub.com/tj/commander.js/issues/1368)]) - documented second parameter to `.description()` to describe command arguments (\[[#1353](https://togithub.com/tj/commander.js/issues/1353)]) - documentation of special cases with options taking varying numbers of option-arguments (\[[#1332](https://togithub.com/tj/commander.js/issues/1332)]) - documentation for terminology (\[[#1361](https://togithub.com/tj/commander.js/issues/1361)]) ##### Fixed - add missing TypeScript definition for \`.addHelpCommand()' (\[[#1375](https://togithub.com/tj/commander.js/issues/1375)]) - removed blank line after "Arguments:" in help, to match "Options:" and "Commands:" (\[[#1360](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1306)]) - `.combineFlagAndOptionalValue(false)` to ease upgrade path from older versions of Commander (\[[#1326](https://togithub.com/tj/commander.js/issues/1326)]) - allow disabling the built-in help option using `.helpOption(false)` (\[[#1325](https://togithub.com/tj/commander.js/issues/1325)]) - allow just some arguments in `argumentDescription` to `.description()` (\[[#1323](https://togithub.com/tj/commander.js/issues/1323)]) ##### Changed - tidy async test and remove lint override (\[[#1312](https://togithub.com/tj/commander.js/issues/1312)]) ##### Fixed - executable subcommand launching when script path not known (\[[#1322](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1250)]) - allow options to be added with just a short flag (\[[#1256](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1275)]) ##### Fixed - Options which contain -no- in the middle of the option flag should not be treated as negatable. (\[[#1301](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/531)], \[[#1236](https://togithub.com/tj/commander.js/issues/1236)]) - configuration support in `addCommand()` for `hidden` and `isDefault` (\[[#1232](https://togithub.com/tj/commander.js/issues/1232)]) ##### Fixed - omit masked help flags from the displayed help (\[[#645](https://togithub.com/tj/commander.js/issues/645)], \[[#1247](https://togithub.com/tj/commander.js/issues/1247)]) - remove old short help flag when change help flags using `helpOption` (\[[#1248](https://togithub.com/tj/commander.js/issues/1248)]) ##### Changed - remove use of `arguments` to improve auto-generated help in editors (\[[#1235](https://togithub.com/tj/commander.js/issues/1235)]) - rename `.command()` configuration `noHelp` to `hidden` (but not remove old support) (\[[#1232](https://togithub.com/tj/commander.js/issues/1232)]) - improvements to documentation - update dependencies - update tested versions of node - eliminate lint errors in TypeScript (\[[#1208](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1)] \[[#764](https://togithub.com/tj/commander.js/issues/764)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - `.addCommand()` for adding a separately configured command (\[[#764](https://togithub.com/tj/commander.js/issues/764)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - allow a non-executable to be set as the default command (\[[#742](https://togithub.com/tj/commander.js/issues/742)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - implicit help command when there are subcommands (previously only if executables) (\[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - customise implicit help command with `.addHelpCommand()` (\[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - display error message for unknown subcommand, by default (\[[#432](https://togithub.com/tj/commander.js/issues/432)] \[[#1088](https://togithub.com/tj/commander.js/issues/1088)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - display help for missing subcommand, by default (\[[#1088](https://togithub.com/tj/commander.js/issues/1088)] \[[#1149](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1145)]) - `.parseOption()` includes short flag and long flag expansions (\[[#1145](https://togithub.com/tj/commander.js/issues/1145)]) - `.helpInformation()` returns help text as a string, previously a private routine (\[[#1169](https://togithub.com/tj/commander.js/issues/1169)]) - `.parse()` implicitly uses `process.argv` if arguments not specified (\[[#1172](https://togithub.com/tj/commander.js/issues/1172)]) - optionally specify where `.parse()` arguments "from", if not following node conventions (\[[#512](https://togithub.com/tj/commander.js/issues/512)] \[[#1172](https://togithub.com/tj/commander.js/issues/1172)]) - suggest help option along with unknown command error (\[[#1179](https://togithub.com/tj/commander.js/issues/1179)]) - TypeScript definition for `commands` property of `Command` (\[[#1184](https://togithub.com/tj/commander.js/issues/1184)]) - export `program` property (\[[#1195](https://togithub.com/tj/commander.js/issues/1195)]) - `createCommand` factory method to simplify subclassing (\[[#1191](https://togithub.com/tj/commander.js/issues/1191)]) ##### Fixed - preserve argument order in subcommands (\[[#508](https://togithub.com/tj/commander.js/issues/508)] \[[#962](https://togithub.com/tj/commander.js/issues/962)] \[[#1138](https://togithub.com/tj/commander.js/issues/1138)]) - do not emit `command:*` for executable subcommands (\[[#809](https://togithub.com/tj/commander.js/issues/809)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - action handler called whether or not there are non-option arguments (\[[#1062](https://togithub.com/tj/commander.js/issues/1062)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - combining option short flag and value in single argument now works for subcommands (\[[#1145](https://togithub.com/tj/commander.js/issues/1145)]) - only add implicit help command when it will not conflict with other uses of argument (\[[#1153](https://togithub.com/tj/commander.js/issues/1153)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - implicit help command works with command aliases (\[[#948](https://togithub.com/tj/commander.js/issues/948)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - options are validated whether or not there is an action handler (\[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) ##### Changed - *Breaking* `.args` contains command arguments with just recognised options removed (\[[#1032](https://togithub.com/tj/commander.js/issues/1032)] \[[#1138](https://togithub.com/tj/commander.js/issues/1138)]) - *Breaking* display error if required argument for command is missing (\[[#995](https://togithub.com/tj/commander.js/issues/995)] \[[#1149](https://togithub.com/tj/commander.js/issues/1149)]) - tighten TypeScript definition of custom option processing function passed to `.option()` (\[[#1119](https://togithub.com/tj/commander.js/issues/1119)]) - *Breaking* `.allowUnknownOption()` (\[[#802](https://togithub.com/tj/commander.js/issues/802)] \[[#1138](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1145)]) - *Breaking* `.parseOptions()` (\[[#1138](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1138)]) - refactor Option from prototype to class (\[[#1133](https://togithub.com/tj/commander.js/issues/1133)]) - refactor Command from prototype to class (\[[#1159](https://togithub.com/tj/commander.js/issues/1159)]) - changes to error handling (\[[#1165](https://togithub.com/tj/commander.js/issues/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](https://togithub.com/tj/commander.js/issues/1180)]) - `.parseAsync` returns `PromiseConfiguration
📅 Schedule: "after 10pm every weekday,before 5am every weekday,every weekend" in timezone Europe/London.
🚦 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 has been generated by WhiteSource Renovate. View repository job log here.