437 lines
15 KiB
Markdown
437 lines
15 KiB
Markdown
|
# Changelog
|
|||
|
|
|||
|
All notable changes to this project will be documented in this file.
|
|||
|
|
|||
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|||
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). (Format adopted after v3.0.0.)
|
|||
|
|
|||
|
<!-- markdownlint-disable MD024 -->
|
|||
|
|
|||
|
## [4.1.1] (2020-02-02)
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* TypeScript definition for `.action()` should include Promise for async ([#1157])
|
|||
|
|
|||
|
## [4.1.0] (2020-01-06)
|
|||
|
|
|||
|
### 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
|
|||
|
|
|||
|
## [4.0.1] (2019-11-12)
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* display help when requested, even if there are missing required options ([#1091])
|
|||
|
|
|||
|
## [4.0.0] (2019-11-02)
|
|||
|
|
|||
|
### 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) ...
|
|||
|
```
|
|||
|
|
|||
|
## [4.0.0-1] Prerelease (2019-10-08)
|
|||
|
|
|||
|
(Released in 4.0.0)
|
|||
|
|
|||
|
## [4.0.0-0] Prerelease (2019-10-01)
|
|||
|
|
|||
|
(Released in 4.0.0)
|
|||
|
|
|||
|
## [2.20.1] (2019-09-29)
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Improve tracking of executable subcommands.
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* update development dependencies
|
|||
|
|
|||
|
## [3.0.2] (2019-09-27)
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* Improve tracking of executable subcommands.
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* update development dependencies
|
|||
|
|
|||
|
## [3.0.1] (2019-08-30)
|
|||
|
|
|||
|
### Added
|
|||
|
|
|||
|
* .name and .usage to README ([#1010])
|
|||
|
* Table of Contents to README ([#1010])
|
|||
|
* TypeScript definition for `executableFile` in CommandOptions ([#1028])
|
|||
|
|
|||
|
### Changed
|
|||
|
|
|||
|
* consistently use `const` rather than `var` in README ([#1026])
|
|||
|
|
|||
|
### Fixed
|
|||
|
|
|||
|
* help for sub commands with custom executableFile ([#1018])
|
|||
|
|
|||
|
## [3.0.0] / 2019-08-08
|
|||
|
|
|||
|
* Add option to specify executable file name ([#999])
|
|||
|
* e.g. `.command('clone', 'clone description', { executableFile: 'myClone' })`
|
|||
|
* Change docs for `.command` to contrast action handler vs git-style executable. ([#938] [#990])
|
|||
|
* **Breaking** Change TypeScript to use overloaded function for `.command`. ([#938] [#990])
|
|||
|
* Change to use straight quotes around strings in error messages (like 'this' instead of `this') ([#915])
|
|||
|
* Add TypeScript "reference types" for node ([#974])
|
|||
|
* Add support for hyphen as an option argument in subcommands ([#697])
|
|||
|
* Add support for a short option flag and its value to be concatenated for action handler subcommands ([#599])
|
|||
|
* e.g. `-p 80` can also be supplied as `-p80`
|
|||
|
* Add executable arguments to spawn in win32, for git-style executables ([#611])
|
|||
|
* e.g. `node --harmony myCommand.js clone`
|
|||
|
* Add parent command as prefix of subcommand in help ([#980])
|
|||
|
* Add optional custom description to `.version` ([#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])
|
|||
|
* e.g. `.helpOption('-e, --HELP', 'read more information')`
|
|||
|
* Fix behavior of --no-* options ([#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])
|
|||
|
* Increment inspector port for spawned subcommands ([#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
|
|||
|
```
|
|||
|
|
|||
|
## 3.0.0-0 Prerelease / 2019-07-28
|
|||
|
|
|||
|
(Released as 3.0.0)
|
|||
|
|
|||
|
## 2.20.0 / 2019-04-02
|
|||
|
|
|||
|
* fix: resolve symbolic links completely when hunting for subcommands (#935)
|
|||
|
* Update index.d.ts (#930)
|
|||
|
* Update Readme.md (#924)
|
|||
|
* Remove --save option as it isn't required anymore (#918)
|
|||
|
* Add link to the license file (#900)
|
|||
|
* Added example of receiving args from options (#858)
|
|||
|
* Added missing semicolon (#882)
|
|||
|
* Add extension to .eslintrc (#876)
|
|||
|
|
|||
|
## 2.19.0 / 2018-10-02
|
|||
|
|
|||
|
* Removed newline after Options and Commands headers (#864)
|
|||
|
* Bugfix - Error output (#862)
|
|||
|
* Fix to change default value to string (#856)
|
|||
|
|
|||
|
## 2.18.0 / 2018-09-07
|
|||
|
|
|||
|
* Standardize help output (#853)
|
|||
|
* chmod 644 travis.yml (#851)
|
|||
|
* add support for execute typescript subcommand via ts-node (#849)
|
|||
|
|
|||
|
## 2.17.1 / 2018-08-07
|
|||
|
|
|||
|
* Fix bug in command emit (#844)
|
|||
|
|
|||
|
## 2.17.0 / 2018-08-03
|
|||
|
|
|||
|
* fixed newline output after help information (#833)
|
|||
|
* Fix to emit the action even without command (#778)
|
|||
|
* npm update (#823)
|
|||
|
|
|||
|
## 2.16.0 / 2018-06-29
|
|||
|
|
|||
|
* Remove Makefile and `test/run` (#821)
|
|||
|
* Make 'npm test' run on Windows (#820)
|
|||
|
* Add badge to display install size (#807)
|
|||
|
* chore: cache node_modules (#814)
|
|||
|
* chore: remove Node.js 4 (EOL), add Node.js 10 (#813)
|
|||
|
* fixed typo in readme (#812)
|
|||
|
* Fix types (#804)
|
|||
|
* Update eslint to resolve vulnerabilities in lodash (#799)
|
|||
|
* updated readme with custom event listeners. (#791)
|
|||
|
* fix tests (#794)
|
|||
|
|
|||
|
## 2.15.0 / 2018-03-07
|
|||
|
|
|||
|
* Update downloads badge to point to graph of downloads over time instead of duplicating link to npm
|
|||
|
* Arguments description
|
|||
|
|
|||
|
## 2.14.1 / 2018-02-07
|
|||
|
|
|||
|
* Fix typing of help function
|
|||
|
|
|||
|
## 2.14.0 / 2018-02-05
|
|||
|
|
|||
|
* only register the option:version event once
|
|||
|
* Fixes issue #727: Passing empty string for option on command is set to undefined
|
|||
|
* enable eqeqeq rule
|
|||
|
* resolves #754 add linter configuration to project
|
|||
|
* resolves #560 respect custom name for version option
|
|||
|
* document how to override the version flag
|
|||
|
* document using options per command
|
|||
|
|
|||
|
## 2.13.0 / 2018-01-09
|
|||
|
|
|||
|
* Do not print default for --no-
|
|||
|
* remove trailing spaces in command help
|
|||
|
* Update CI's Node.js to LTS and latest version
|
|||
|
* typedefs: Command and Option types added to commander namespace
|
|||
|
|
|||
|
## 2.12.2 / 2017-11-28
|
|||
|
|
|||
|
* fix: typings are not shipped
|
|||
|
|
|||
|
## 2.12.1 / 2017-11-23
|
|||
|
|
|||
|
* Move @types/node to dev dependency
|
|||
|
|
|||
|
## 2.12.0 / 2017-11-22
|
|||
|
|
|||
|
* add attributeName() method to Option objects
|
|||
|
* Documentation updated for options with --no prefix
|
|||
|
* typings: `outputHelp` takes a string as the first parameter
|
|||
|
* typings: use overloads
|
|||
|
* feat(typings): update to match js api
|
|||
|
* Print default value in option help
|
|||
|
* Fix translation error
|
|||
|
* Fail when using same command and alias (#491)
|
|||
|
* feat(typings): add help callback
|
|||
|
* fix bug when description is add after command with options (#662)
|
|||
|
* Format js code
|
|||
|
* Rename History.md to CHANGELOG.md (#668)
|
|||
|
* feat(typings): add typings to support TypeScript (#646)
|
|||
|
* use current node
|
|||
|
|
|||
|
## 2.11.0 / 2017-07-03
|
|||
|
|
|||
|
* Fix help section order and padding (#652)
|
|||
|
* feature: support for signals to subcommands (#632)
|
|||
|
* Fixed #37, --help should not display first (#447)
|
|||
|
* Fix translation errors. (#570)
|
|||
|
* Add package-lock.json
|
|||
|
* Remove engines
|
|||
|
* Upgrade package version
|
|||
|
* Prefix events to prevent conflicts between commands and options (#494)
|
|||
|
* Removing dependency on graceful-readlink
|
|||
|
* Support setting name in #name function and make it chainable
|
|||
|
* Add .vscode directory to .gitignore (Visual Studio Code metadata)
|
|||
|
* Updated link to ruby commander in readme files
|
|||
|
|
|||
|
## 2.10.0 / 2017-06-19
|
|||
|
|
|||
|
* Update .travis.yml. drop support for older node.js versions.
|
|||
|
* Fix require arguments in README.md
|
|||
|
* On SemVer you do not start from 0.0.1
|
|||
|
* Add missing semi colon in readme
|
|||
|
* Add save param to npm install
|
|||
|
* node v6 travis test
|
|||
|
* Update Readme_zh-CN.md
|
|||
|
* Allow literal '--' to be passed-through as an argument
|
|||
|
* Test subcommand alias help
|
|||
|
* link build badge to master branch
|
|||
|
* Support the alias of Git style sub-command
|
|||
|
* added keyword commander for better search result on npm
|
|||
|
* Fix Sub-Subcommands
|
|||
|
* test node.js stable
|
|||
|
* Fixes TypeError when a command has an option called `--description`
|
|||
|
* Update README.md to make it beginner friendly and elaborate on the difference between angled and square brackets.
|
|||
|
* Add chinese Readme file
|
|||
|
|
|||
|
## 2.9.0 / 2015-10-13
|
|||
|
|
|||
|
* Add option `isDefault` to set default subcommand #415 @Qix-
|
|||
|
* Add callback to allow filtering or post-processing of help text #434 @djulien
|
|||
|
* Fix `undefined` text in help information close #414 #416 @zhiyelee
|
|||
|
|
|||
|
## 2.8.1 / 2015-04-22
|
|||
|
|
|||
|
* Back out `support multiline description` Close #396 #397
|
|||
|
|
|||
|
## 2.8.0 / 2015-04-07
|
|||
|
|
|||
|
* Add `process.execArg` support, execution args like `--harmony` will be passed to sub-commands #387 @DigitalIO @zhiyelee
|
|||
|
* Fix bug in Git-style sub-commands #372 @zhiyelee
|
|||
|
* Allow commands to be hidden from help #383 @tonylukasavage
|
|||
|
* When git-style sub-commands are in use, yet none are called, display help #382 @claylo
|
|||
|
* Add ability to specify arguments syntax for top-level command #258 @rrthomas
|
|||
|
* Support multiline descriptions #208 @zxqfox
|
|||
|
|
|||
|
## 2.7.1 / 2015-03-11
|
|||
|
|
|||
|
* Revert #347 (fix collisions when option and first arg have same name) which causes a bug in #367.
|
|||
|
|
|||
|
## 2.7.0 / 2015-03-09
|
|||
|
|
|||
|
* Fix git-style bug when installed globally. Close #335 #349 @zhiyelee
|
|||
|
* Fix collisions when option and first arg have same name. Close #346 #347 @tonylukasavage
|
|||
|
* Add support for camelCase on `opts()`. Close #353 @nkzawa
|
|||
|
* Add node.js 0.12 and io.js to travis.yml
|
|||
|
* Allow RegEx options. #337 @palanik
|
|||
|
* Fixes exit code when sub-command failing. Close #260 #332 @pirelenito
|
|||
|
* git-style `bin` files in $PATH make sense. Close #196 #327 @zhiyelee
|
|||
|
|
|||
|
## 2.6.0 / 2014-12-30
|
|||
|
|
|||
|
* added `Command#allowUnknownOption` method. Close #138 #318 @doozr @zhiyelee
|
|||
|
* Add application description to the help msg. Close #112 @dalssoft
|
|||
|
|
|||
|
## 2.5.1 / 2014-12-15
|
|||
|
|
|||
|
* fixed two bugs incurred by variadic arguments. Close #291 @Quentin01 #302 @zhiyelee
|
|||
|
|
|||
|
## 2.5.0 / 2014-10-24
|
|||
|
|
|||
|
* add support for variadic arguments. Closes #277 @whitlockjc
|
|||
|
|
|||
|
## 2.4.0 / 2014-10-17
|
|||
|
|
|||
|
* fixed a bug on executing the coercion function of subcommands option. Closes #270
|
|||
|
* added `Command.prototype.name` to retrieve command name. Closes #264 #266 @tonylukasavage
|
|||
|
* added `Command.prototype.opts` to retrieve all the options as a simple object of key-value pairs. Closes #262 @tonylukasavage
|
|||
|
* fixed a bug on subcommand name. Closes #248 @jonathandelgado
|
|||
|
* fixed function normalize doesn’t honor option terminator. Closes #216 @abbr
|
|||
|
|
|||
|
## 2.3.0 / 2014-07-16
|
|||
|
|
|||
|
* add command alias'. Closes PR #210
|
|||
|
* fix: Typos. Closes #99
|
|||
|
* fix: Unused fs module. Closes #217
|
|||
|
|
|||
|
## 2.2.0 / 2014-03-29
|
|||
|
|
|||
|
* add passing of previous option value
|
|||
|
* fix: support subcommands on windows. Closes #142
|
|||
|
* Now the defaultValue passed as the second argument of the coercion function.
|
|||
|
|
|||
|
## 2.1.0 / 2013-11-21
|
|||
|
|
|||
|
* add: allow cflag style option params, unit test, fixes #174
|
|||
|
|
|||
|
## 2.0.0 / 2013-07-18
|
|||
|
|
|||
|
* remove input methods (.prompt, .confirm, etc)
|
|||
|
|
|||
|
## Older versions
|
|||
|
|
|||
|
* [1.x](./changelogs/CHANGELOG-1.md)
|
|||
|
* [0.x](./changelogs/CHANGELOG-0.md)
|
|||
|
|
|||
|
[#599]: https://github.com/tj/commander.js/issues/599
|
|||
|
[#611]: https://github.com/tj/commander.js/issues/611
|
|||
|
[#697]: https://github.com/tj/commander.js/issues/697
|
|||
|
[#795]: https://github.com/tj/commander.js/issues/795
|
|||
|
[#806]: https://github.com/tj/commander.js/issues/806
|
|||
|
[#915]: https://github.com/tj/commander.js/issues/915
|
|||
|
[#938]: https://github.com/tj/commander.js/issues/938
|
|||
|
[#963]: https://github.com/tj/commander.js/issues/963
|
|||
|
[#974]: https://github.com/tj/commander.js/issues/974
|
|||
|
[#980]: https://github.com/tj/commander.js/issues/980
|
|||
|
[#987]: https://github.com/tj/commander.js/issues/987
|
|||
|
[#990]: https://github.com/tj/commander.js/issues/990
|
|||
|
[#991]: https://github.com/tj/commander.js/issues/991
|
|||
|
[#993]: https://github.com/tj/commander.js/issues/993
|
|||
|
[#999]: https://github.com/tj/commander.js/issues/999
|
|||
|
[#1010]: https://github.com/tj/commander.js/pull/1010
|
|||
|
[#1018]: https://github.com/tj/commander.js/pull/1018
|
|||
|
[#1026]: https://github.com/tj/commander.js/pull/1026
|
|||
|
[#1027]: https://github.com/tj/commander.js/pull/1027
|
|||
|
[#1028]: https://github.com/tj/commander.js/pull/1028
|
|||
|
[#1035]: https://github.com/tj/commander.js/pull/1035
|
|||
|
[#1040]: https://github.com/tj/commander.js/pull/1040
|
|||
|
[#1047]: https://github.com/tj/commander.js/pull/1047
|
|||
|
[#1048]: https://github.com/tj/commander.js/pull/1048
|
|||
|
[#1049]: https://github.com/tj/commander.js/pull/1049
|
|||
|
[#1051]: https://github.com/tj/commander.js/pull/1051
|
|||
|
[#1052]: https://github.com/tj/commander.js/pull/1052
|
|||
|
[#1053]: https://github.com/tj/commander.js/pull/1053
|
|||
|
[#1071]: https://github.com/tj/commander.js/pull/1071
|
|||
|
[#1081]: https://github.com/tj/commander.js/pull/1081
|
|||
|
[#1091]: https://github.com/tj/commander.js/pull/1091
|
|||
|
[#1096]: https://github.com/tj/commander.js/pull/1096
|
|||
|
[#1102]: https://github.com/tj/commander.js/pull/1102
|
|||
|
[#1118]: https://github.com/tj/commander.js/pull/1118
|
|||
|
[#1157]: https://github.com/tj/commander.js/pull/1157
|
|||
|
|
|||
|
[Unreleased]: https://github.com/tj/commander.js/compare/master...develop
|
|||
|
[4.1.1]: https://github.com/tj/commander.js/compare/v4.0.0..v4.1.1
|
|||
|
[4.1.0]: https://github.com/tj/commander.js/compare/v4.0.1..v4.1.0
|
|||
|
[4.0.1]: https://github.com/tj/commander.js/compare/v4.0.0..v4.0.1
|
|||
|
[4.0.0]: https://github.com/tj/commander.js/compare/v3.0.2..v4.0.0
|
|||
|
[4.0.0-1]: https://github.com/tj/commander.js/compare/v4.0.0-0..v4.0.0-1
|
|||
|
[4.0.0-0]: https://github.com/tj/commander.js/compare/v3.0.2...v4.0.0-0
|
|||
|
[3.0.2]: https://github.com/tj/commander.js/compare/v3.0.1...v3.0.2
|
|||
|
[3.0.1]: https://github.com/tj/commander.js/compare/v3.0.0...v3.0.1
|
|||
|
[3.0.0]: https://github.com/tj/commander.js/compare/v2.20.1...v3.0.0
|
|||
|
[2.20.1]: https://github.com/tj/commander.js/compare/v2.20.0...v2.20.1
|