Skip to content

fix(deps): update dependency commander to v9 - autoclosed

Botaniker (Bot) requested to merge renovate/commander-9.x into deploy

This MR contains the following updates:

Package Type Update Change
commander dependencies major 7.2.0 -> 9.5.0

Release Notes

tj/commander.js

v9.5.0

Compare Source

Added
  • .getOptionValueSourceWithGlobals() ([#​1832])
  • showGlobalOptions for .configureHelp{} and Help ([#​1828])

v9.4.1

Compare Source

Fixed
  • .setOptionValue() now also clears option source ([#​1795])
  • TypeScript: add implied to OptionValueSource for option values set by using .implies() ([#​1794])
  • TypeScript : add undefined to return type of .getOptionValueSource() ([#​1794])
Changed
  • additions to README

v9.4.0

Compare Source

Added
  • preSubcommand hook called before direct subcommands ([#​1763])
Fixed
  • export InvalidOptionArgumentError in esm ([#​1756])
Changed

v9.3.0

Compare Source

Added
  • .summary() for a short summary to use instead of description when listing subcommands in help ([#​1726])
  • Option.implies() to set other option values when the option is specified ([#​1724])
  • updated Chinese README with 9.x changes ([#​1727])
Fixed
  • TypeScript: add string[] to .options() default value parameter type for use with variadic options ([#​1721])
Deprecated
  • multi-character short option flag (e.g. -ws) ([#​1718])

v9.2.0

Compare Source

Added
  • conditional export of 'types' for upcoming TypeScript module resolution ([#​1703])
  • example file showing two ways to add global options to subcommands ([#​1708])
Fixed
  • detect option conflicts in parent commands of called subcommand ([#​1710])
Changed
  • replace deprecated String.prototype.substr ([#​1706])

v9.1.0

Compare Source

Added
  • Option .conflicts() to set conflicting options which can not be specified together ([#​1678])
  • (developer) CodeQL configuration for GitHub Actions ([#​1698])

v9.0.0

Compare Source

Added
  • simpler ECMAScript import ([#​1589])
  • Option.preset() allows specifying value/arg for option when used without option-argument (especially optional, but also boolean option) ([#​1652])
  • .executableDir() for custom search for subcommands ([#​1571])
  • throw with helpful message if pass Option to .option() or .requiredOption() ([#​1655])
  • .error() for generating errors from client code just like Commander generated errors, with support for .configureOutput(), .exitOverride(), and .showHelpAfterError() ([#​1675])
  • .optsWithGlobals() to return merged local and global options ([#​1671])
Changed
  • Breaking: Commander 9 requires Node.js v12.20.0 or higher
  • update package-lock.json to lockfile@2 format ([#​1659])
  • showSuggestionAfterError is now on by default ([#​1657])
  • Breaking: default value specified for boolean option now always used as default value (see .preset() to match some previous behaviours) ([#​1652])
  • default value for boolean option only shown in help if true/false ([#​1652])
  • use command name as prefix for subcommand stand-alone executable name (with fallback to script name for backwards compatibility) ([#​1571])
  • allow absolute path with executableFile ([#​1571])
  • removed restriction that nested subcommands must specify executableFile ([#​1571])
  • TypeScript: allow passing readonly string array to .choices() ([#​1667])
  • TypeScript: allow passing readonly string array to .parse(), .parseAsync(), .aliases() ([#​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])
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])

v8.3.0

Compare Source

Added
  • .getOptionValueSource() and .setOptionValueWithSource(), where expected values for source are one of 'default', 'env', 'config', 'cli' ([#​1613])
Deprecated
  • .command('*'), use default command instead ([#​1612])
  • on('command:*'), use .showSuggestionAfterError() instead ([#​1612])

v8.2.0

Compare Source

Added
  • .showSuggestionAfterError() to show suggestions after unknown command or unknown option ([#​1590])
  • add Option support for values from environment variables using .env() ([#​1587])
Changed
  • show error for unknown global option before subcommand (rather than just help) ([#​1590])
Removed
  • TypeScript declaration of unimplemented Option method argumentRejected

v8.1.0

Compare Source

Added
  • .copyInheritedSettings() ([#​1557])
  • update Chinese translations of documentation for Commander v8 ([#​1570])
  • Argument methods for .argRequired() and .argOptional() ([#​1567])

v8.0.0

Compare Source

Added
  • .argument(name, description) for adding command-arguments ([#​1490])
    • supports default value for optional command-arguments ([#​1508])
    • supports custom processing function ([#​1508])
  • .createArgument() factory method ([#​1497])
  • .addArgument() ([#​1490])
  • Argument supports .choices() ([#​1525])
  • .showHelpAfterError() to display full help or a custom message after an error ([#​1534])
  • .hook() with support for 'preAction' and 'postAction' callbacks ([#​1514])
  • client typing of .opts() return type using TypeScript generics ([#​1539])
  • the number of command-arguments is checked for programs without an action handler ([#​1502])
  • .getOptionValue() and .setOptionValue() ([#​1521])
Changed
  • refactor and simplify TypeScript declarations (with no default export) ([#​1520])
  • .parseAsync() is now declared as async ([#​1513])
  • Breaking: Help method .visibleArguments() returns array of Argument ([#​1490])
  • Breaking: Commander 8 requires Node.js 12 or higher ([#​1500])
  • Breaking: CommanderError code commander.invalidOptionArgument renamed commander.invalidArgument ([#​1508])
  • Breaking: TypeScript declaration for .addTextHelp() callback no longer allows result of undefined, now just string ([#​1516])
  • refactor index.tab into a file per class ([#​1522])
  • remove help suggestion from "unknown command" error message (see .showHelpAfteError()) ([#​1534])
  • Command property .arg initialised to empty array (was previously undefined) ([#​1529])
  • update dependencies
Deprecated
  • second parameter of cmd.description(desc, argDescriptions) for adding argument descriptions ([#​1490])
    • (use new .argument(name, description) instead)
  • InvalidOptionArgumentError (replaced by InvalidArgumentError) ([#​1508])
Removed
  • Breaking: TypeScript declaration for default export of global Command object ([#​1520])
    • (still available as named program export)
Migration Tips

If you have a simple program without an action handler, you will now get an error if there are missing command-arguments.

program
  .option('-d, --debug')
  .arguments('<file>');
program.parse();
$ node trivial.js 
error: missing required argument 'file'

If you want to show the help in this situation, you could check the arguments before parsing:

if (process.argv.length === 2)
  program.help();
program.parse();

Or, you might choose to show the help after any user error:

program.showHelpAfterError();

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 MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot. The local configuration can be found in the SI Renovate Bot repository.

Edited by Botaniker (Bot)

Merge request reports