Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Triage: detecting missing or unknown commands #1088

Closed
shadowspawn opened this issue Nov 2, 2019 · 4 comments
Closed

Triage: detecting missing or unknown commands #1088

shadowspawn opened this issue Nov 2, 2019 · 4 comments
Assignees

Comments

@shadowspawn
Copy link
Collaborator

shadowspawn commented Nov 2, 2019

What is the best way to test for missing or unknown commands? Is the existing support good enough?

Research prompted by Commander v4 which changes program.args and will break some client code which was dependent on the previous behaviour: #1048

Example of affected code: #7 (comment)

Related issues:

@shadowspawn
Copy link
Collaborator Author

A direct test for no arguments at all (including options) is used in the README. This works the same in Commander v4.

if (!process.argv.slice(2).length) {
  program.outputHelp(make_red);
}

or without the slice:

if (process.argv.length < 3) {
  program.help();
}

or equivalently using `rawArgs:

if (program.rawArgs.length < 3) {
  program.help();
}

@shadowspawn
Copy link
Collaborator Author

The example code from the README for detected unknown commands (in a program using action handlers) works the same in Commander v4:

program.on('command:*', function () {
  console.error('Invalid command: %s\nSee --help for a list of available commands.', program.args.join(' '));
  process.exit(1);
});

@shadowspawn
Copy link
Collaborator Author

shadowspawn commented Nov 2, 2019

I am interested in adding more explicit support for testing for an unhandled command, which has not triggered any action handlers or external commands. This would implicitly cover both missing and unknown commands with a single test.

@shadowspawn
Copy link
Collaborator Author

By default, an unknown subcommand shows an error and a missing subcommand shows the help in the published pre-release of Commander v5.0.0 (#1163)

jaebradley pushed a commit to jaebradley/emoji-search-cli that referenced this issue Mar 15, 2020
***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [commander](https://github.com/tj/commander.js) was updated from `4.1.1` to `5.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

**Publisher:** [abetomo](https://www.npmjs.com/~abetomo)
**License:** MIT

<details>
<summary>Release Notes for v5.0.0</summary>

<h3>Added</h3>
<ul>
<li>support for nested commands with action-handlers ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1404480" data-permission-text="Title is private" data-url="tj/commander.js#1" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1">#1</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li><code>.addCommand()</code> for adding a separately configured command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>allow a non-executable to be set as the default command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="286464874" data-permission-text="Title is private" data-url="tj/commander.js#742" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/742/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/742">#742</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command when there are subcommands (previously only if executables) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>customise implicit help command with <code>.addHelpCommand()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display error message for unknown subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="105242369" data-permission-text="Title is private" data-url="tj/commander.js#432" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/432/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/432">#432</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display help for missing subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combined short options as single argument may include boolean flags and value flag and value (e.g. <code>-a -b -p 80</code> can be written as <code>-abp80</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.parseOption()</code> includes short flag and long flag expansions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.helpInformation()</code> returns help text as a string, previously a private routine ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560700420" data-permission-text="Title is private" data-url="tj/commander.js#1169" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1169/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1169">#1169</a>])</li>
<li><code>.parse()</code> implicitly uses <code>process.argv</code> if arguments not specified ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>optionally specify where <code>.parse()</code> arguments "from", if not following node conventions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="143058334" data-permission-text="Title is private" data-url="tj/commander.js#512" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/512/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/512">#512</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>suggest help option along with unknown command error ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561944637" data-permission-text="Title is private" data-url="tj/commander.js#1179" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1179/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1179">#1179</a>])</li>
<li>TypeScript definition for <code>commands</code> property of <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="562675877" data-permission-text="Title is private" data-url="tj/commander.js#1184" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1184/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1184">#1184</a>])</li>
<li>export <code>program</code> property ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565709359" data-permission-text="Title is private" data-url="tj/commander.js#1195" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1195/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1195">#1195</a>])</li>
<li><code>createCommand</code> factory method to simplify subclassing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565215409" data-permission-text="Title is private" data-url="tj/commander.js#1191" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1191/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1191">#1191</a>])</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>preserve argument order in subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="140326981" data-permission-text="Title is private" data-url="tj/commander.js#508" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/508/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/508">#508</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="444530964" data-permission-text="Title is private" data-url="tj/commander.js#962" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/962/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/962">#962</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>do not emit <code>command:*</code> for executable subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="328564529" data-permission-text="Title is private" data-url="tj/commander.js#809" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/809/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/809">#809</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>action handler called whether or not there are non-option arguments ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="499848795" data-permission-text="Title is private" data-url="tj/commander.js#1062" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1062/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1062">#1062</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combining option short flag and value in single argument now works for subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li>only add implicit help command when it will not conflict with other uses of argument ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="551899040" data-permission-text="Title is private" data-url="tj/commander.js#1153" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1153/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1153">#1153</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command works with command aliases ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="429033898" data-permission-text="Title is private" data-url="tj/commander.js#948" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/948/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/948">#948</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>options are validated whether or not there is an action handler ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Changed</h3>
<ul>
<li><em>Breaking</em> <code>.args</code> contains command arguments with just recognised options removed ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="486336653" data-permission-text="Title is private" data-url="tj/commander.js#1032" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1032/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1032">#1032</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li><em>Breaking</em> display error if required argument for command is missing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="467912082" data-permission-text="Title is private" data-url="tj/commander.js#995" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/995/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/995">#995</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>tighten TypeScript definition of custom option processing function passed to <code>.option()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="537071462" data-permission-text="Title is private" data-url="tj/commander.js#1119" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1119/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1119">#1119</a>])</li>
<li><em>Breaking</em> <code>.allowUnknownOption()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="322394861" data-permission-text="Title is private" data-url="tj/commander.js#802" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/802/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/802">#802</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li>unknown options included in arguments passed to command action handler</li>
<li>unknown options included in <code>.args</code></li>
</ul>
</li>
<li>only recognised option short flags and long flags are expanded (e.g. <code>-ab</code> or <code>--foo=bar</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><em>Breaking</em> <code>.parseOptions()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li><code>args</code> in returned result renamed <code>operands</code> and does not include anything after first unknown option</li>
<li><code>unknown</code> in returned result has arguments after first unknown option including operands, not just options and values</li>
</ul>
</li>
<li><em>Breaking</em> <code>.on('command:*', callback)</code> and other command events passed (changed) results from <code>.parseOptions</code>, i.e. operands and unknown  ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>refactor Option from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="544020268" data-permission-text="Title is private" data-url="tj/commander.js#1133" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1133/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1133">#1133</a>])</li>
<li>refactor Command from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558019087" data-permission-text="Title is private" data-url="tj/commander.js#1159" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1159/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1159">#1159</a>])</li>
<li>changes to error handling ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558600050" data-permission-text="Title is private" data-url="tj/commander.js#1165" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1165/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1165">#1165</a>])
<ul>
<li>throw for author error, not just display message</li>
<li>preflight for variadic error</li>
<li>add tips to missing subcommand executable</li>
</ul>
</li>
<li>TypeScript fluent return types changed to be more subclass friendly, return <code>this</code> rather than <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li><code>.parseAsync</code> returns <code>Promise&lt;this&gt;</code> to be consistent with <code>.parse()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li>update dependencies</li>
</ul>
<h3>Removed</h3>
<ul>
<li>removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on <code>@types/node</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548333754" data-permission-text="Title is private" data-url="tj/commander.js#1146" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1146/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1146">#1146</a>])</li>
<li>removed private function <code>normalize</code> (the functionality has been integrated into <code>parseOptions</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>parseExpectedArgs</code> is now private ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Migration Tips</h3>
<p>If you use <code>.on('command:*')</code> or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>program.args</code> or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>.command('*')</code> to add a default command, you may be be able to switch to <code>isDefault:true</code> with a named command.</p>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 53 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2aad525640d5885d9f51ae8dfe07a01c280cf4e3"><code>2aad525</code></a> <code>Update dependencies (#1214)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f86d8781655720eb1429d1b9c883e8c357f7c8c3"><code>f86d878</code></a> <code>Add cli keyword (#1213)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/83af0fd0488dc6f4568435050e7d3d7e0ab11b5b"><code>83af0fd</code></a> <code>Prepare for 5.0.0 (#1211)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f14df0709173abf9ab4732064d77bce34f60fb05"><code>f14df07</code></a> <code>Add eslint settings for TypeScript (#1205)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/95e0d193ec02859f1bdcb08785e21f86942fc5e5"><code>95e0d19</code></a> <code>5.0.0-4</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/bd5a49e9d5ca4f4cf1c8bf60e3567ab5d5e67039"><code>bd5a49e</code></a> <code>Add factory to CHANGELOG</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/8c3dd6ffe90b566c5cabb277f8d9c57a8bfb348b"><code>8c3dd6f</code></a> <code>createCommand factory routine (#1191)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3c9f33fd8440aab061cbb0484712ed77c54df03a"><code>3c9f33f</code></a> <code>Say we support LTS, so do not need to update when node changes (#1204)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3cf8cff2a91d1d38da2ea9e5ace40230f1d9a813"><code>3cf8cff</code></a> <code>Expand typescript checks (#1198)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/a3f453f11cf3ad69d2b15ce82efdfd3af53efe22"><code>a3f453f</code></a> <code>5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/87bfca690eda98a0573b20569f87675466c23dd8"><code>87bfca6</code></a> <code>Add CHANGELOG entries for 5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/1757564a0f6034f803e1e638c6cf34ef64b77775"><code>1757564</code></a> <code>Use a tidier global command (#1200)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/0a50bd6c7696b6c5217258d38613f58684d1585b"><code>0a50bd6</code></a> <code>Add program to exports (#1195)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/77e511fc17cf5857520b0740737d0fc27acf736c"><code>77e511f</code></a> <code>Enable TypeScript checking of javascript, and resolve or suppress errors (#1194)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2491c763e1ba058a5a877d7aa4b30427de83e844"><code>2491c76</code></a> <code>URLEncode several chinese toc link</code></li>
</ul>
<p>There are 53 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/tj/commander.js/compare/d5186ba4b9b64a72cd685fccbb9ec5d0ec0c430d...2aad525640d5885d9f51ae8dfe07a01c280cf4e3">full diff</a></p>
</details>

---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴


Co-authored-by: greenkeeper[bot] <23040076+greenkeeper[bot]@users.noreply.github.com>
jaebradley pushed a commit to jaebradley/github-languages-cli that referenced this issue Mar 16, 2020
***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [commander](https://github.com/tj/commander.js) was updated from `4.1.1` to `5.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

**Publisher:** [abetomo](https://www.npmjs.com/~abetomo)
**License:** MIT

<details>
<summary>Release Notes for v5.0.0</summary>

<h3>Added</h3>
<ul>
<li>support for nested commands with action-handlers ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1404480" data-permission-text="Title is private" data-url="tj/commander.js#1" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1">#1</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li><code>.addCommand()</code> for adding a separately configured command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>allow a non-executable to be set as the default command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="286464874" data-permission-text="Title is private" data-url="tj/commander.js#742" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/742/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/742">#742</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command when there are subcommands (previously only if executables) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>customise implicit help command with <code>.addHelpCommand()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display error message for unknown subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="105242369" data-permission-text="Title is private" data-url="tj/commander.js#432" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/432/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/432">#432</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display help for missing subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combined short options as single argument may include boolean flags and value flag and value (e.g. <code>-a -b -p 80</code> can be written as <code>-abp80</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.parseOption()</code> includes short flag and long flag expansions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.helpInformation()</code> returns help text as a string, previously a private routine ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560700420" data-permission-text="Title is private" data-url="tj/commander.js#1169" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1169/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1169">#1169</a>])</li>
<li><code>.parse()</code> implicitly uses <code>process.argv</code> if arguments not specified ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>optionally specify where <code>.parse()</code> arguments "from", if not following node conventions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="143058334" data-permission-text="Title is private" data-url="tj/commander.js#512" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/512/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/512">#512</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>suggest help option along with unknown command error ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561944637" data-permission-text="Title is private" data-url="tj/commander.js#1179" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1179/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1179">#1179</a>])</li>
<li>TypeScript definition for <code>commands</code> property of <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="562675877" data-permission-text="Title is private" data-url="tj/commander.js#1184" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1184/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1184">#1184</a>])</li>
<li>export <code>program</code> property ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565709359" data-permission-text="Title is private" data-url="tj/commander.js#1195" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1195/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1195">#1195</a>])</li>
<li><code>createCommand</code> factory method to simplify subclassing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565215409" data-permission-text="Title is private" data-url="tj/commander.js#1191" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1191/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1191">#1191</a>])</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>preserve argument order in subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="140326981" data-permission-text="Title is private" data-url="tj/commander.js#508" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/508/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/508">#508</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="444530964" data-permission-text="Title is private" data-url="tj/commander.js#962" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/962/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/962">#962</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>do not emit <code>command:*</code> for executable subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="328564529" data-permission-text="Title is private" data-url="tj/commander.js#809" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/809/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/809">#809</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>action handler called whether or not there are non-option arguments ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="499848795" data-permission-text="Title is private" data-url="tj/commander.js#1062" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1062/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1062">#1062</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combining option short flag and value in single argument now works for subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li>only add implicit help command when it will not conflict with other uses of argument ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="551899040" data-permission-text="Title is private" data-url="tj/commander.js#1153" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1153/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1153">#1153</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command works with command aliases ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="429033898" data-permission-text="Title is private" data-url="tj/commander.js#948" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/948/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/948">#948</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>options are validated whether or not there is an action handler ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Changed</h3>
<ul>
<li><em>Breaking</em> <code>.args</code> contains command arguments with just recognised options removed ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="486336653" data-permission-text="Title is private" data-url="tj/commander.js#1032" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1032/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1032">#1032</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li><em>Breaking</em> display error if required argument for command is missing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="467912082" data-permission-text="Title is private" data-url="tj/commander.js#995" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/995/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/995">#995</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>tighten TypeScript definition of custom option processing function passed to <code>.option()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="537071462" data-permission-text="Title is private" data-url="tj/commander.js#1119" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1119/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1119">#1119</a>])</li>
<li><em>Breaking</em> <code>.allowUnknownOption()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="322394861" data-permission-text="Title is private" data-url="tj/commander.js#802" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/802/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/802">#802</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li>unknown options included in arguments passed to command action handler</li>
<li>unknown options included in <code>.args</code></li>
</ul>
</li>
<li>only recognised option short flags and long flags are expanded (e.g. <code>-ab</code> or <code>--foo=bar</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><em>Breaking</em> <code>.parseOptions()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li><code>args</code> in returned result renamed <code>operands</code> and does not include anything after first unknown option</li>
<li><code>unknown</code> in returned result has arguments after first unknown option including operands, not just options and values</li>
</ul>
</li>
<li><em>Breaking</em> <code>.on('command:*', callback)</code> and other command events passed (changed) results from <code>.parseOptions</code>, i.e. operands and unknown  ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>refactor Option from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="544020268" data-permission-text="Title is private" data-url="tj/commander.js#1133" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1133/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1133">#1133</a>])</li>
<li>refactor Command from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558019087" data-permission-text="Title is private" data-url="tj/commander.js#1159" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1159/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1159">#1159</a>])</li>
<li>changes to error handling ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558600050" data-permission-text="Title is private" data-url="tj/commander.js#1165" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1165/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1165">#1165</a>])
<ul>
<li>throw for author error, not just display message</li>
<li>preflight for variadic error</li>
<li>add tips to missing subcommand executable</li>
</ul>
</li>
<li>TypeScript fluent return types changed to be more subclass friendly, return <code>this</code> rather than <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li><code>.parseAsync</code> returns <code>Promise&lt;this&gt;</code> to be consistent with <code>.parse()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li>update dependencies</li>
</ul>
<h3>Removed</h3>
<ul>
<li>removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on <code>@types/node</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548333754" data-permission-text="Title is private" data-url="tj/commander.js#1146" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1146/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1146">#1146</a>])</li>
<li>removed private function <code>normalize</code> (the functionality has been integrated into <code>parseOptions</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>parseExpectedArgs</code> is now private ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Migration Tips</h3>
<p>If you use <code>.on('command:*')</code> or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>program.args</code> or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>.command('*')</code> to add a default command, you may be be able to switch to <code>isDefault:true</code> with a named command.</p>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 53 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2aad525640d5885d9f51ae8dfe07a01c280cf4e3"><code>2aad525</code></a> <code>Update dependencies (#1214)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f86d8781655720eb1429d1b9c883e8c357f7c8c3"><code>f86d878</code></a> <code>Add cli keyword (#1213)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/83af0fd0488dc6f4568435050e7d3d7e0ab11b5b"><code>83af0fd</code></a> <code>Prepare for 5.0.0 (#1211)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f14df0709173abf9ab4732064d77bce34f60fb05"><code>f14df07</code></a> <code>Add eslint settings for TypeScript (#1205)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/95e0d193ec02859f1bdcb08785e21f86942fc5e5"><code>95e0d19</code></a> <code>5.0.0-4</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/bd5a49e9d5ca4f4cf1c8bf60e3567ab5d5e67039"><code>bd5a49e</code></a> <code>Add factory to CHANGELOG</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/8c3dd6ffe90b566c5cabb277f8d9c57a8bfb348b"><code>8c3dd6f</code></a> <code>createCommand factory routine (#1191)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3c9f33fd8440aab061cbb0484712ed77c54df03a"><code>3c9f33f</code></a> <code>Say we support LTS, so do not need to update when node changes (#1204)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3cf8cff2a91d1d38da2ea9e5ace40230f1d9a813"><code>3cf8cff</code></a> <code>Expand typescript checks (#1198)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/a3f453f11cf3ad69d2b15ce82efdfd3af53efe22"><code>a3f453f</code></a> <code>5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/87bfca690eda98a0573b20569f87675466c23dd8"><code>87bfca6</code></a> <code>Add CHANGELOG entries for 5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/1757564a0f6034f803e1e638c6cf34ef64b77775"><code>1757564</code></a> <code>Use a tidier global command (#1200)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/0a50bd6c7696b6c5217258d38613f58684d1585b"><code>0a50bd6</code></a> <code>Add program to exports (#1195)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/77e511fc17cf5857520b0740737d0fc27acf736c"><code>77e511f</code></a> <code>Enable TypeScript checking of javascript, and resolve or suppress errors (#1194)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2491c763e1ba058a5a877d7aa4b30427de83e844"><code>2491c76</code></a> <code>URLEncode several chinese toc link</code></li>
</ul>
<p>There are 53 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/tj/commander.js/compare/d5186ba4b9b64a72cd685fccbb9ec5d0ec0c430d...2aad525640d5885d9f51ae8dfe07a01c280cf4e3">full diff</a></p>
</details>

---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴


Co-authored-by: greenkeeper[bot] <23040076+greenkeeper[bot]@users.noreply.github.com>
jaebradley pushed a commit to jaebradley/npm-install-search-cli that referenced this issue Mar 16, 2020
* ***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [commander](https://github.com/tj/commander.js) was updated from `4.1.1` to `5.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

**Publisher:** [abetomo](https://www.npmjs.com/~abetomo)
**License:** MIT

<details>
<summary>Release Notes for v5.0.0</summary>

<h3>Added</h3>
<ul>
<li>support for nested commands with action-handlers ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1404480" data-permission-text="Title is private" data-url="tj/commander.js#1" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1">#1</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li><code>.addCommand()</code> for adding a separately configured command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>allow a non-executable to be set as the default command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="286464874" data-permission-text="Title is private" data-url="tj/commander.js#742" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/742/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/742">#742</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command when there are subcommands (previously only if executables) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>customise implicit help command with <code>.addHelpCommand()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display error message for unknown subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="105242369" data-permission-text="Title is private" data-url="tj/commander.js#432" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/432/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/432">#432</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display help for missing subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combined short options as single argument may include boolean flags and value flag and value (e.g. <code>-a -b -p 80</code> can be written as <code>-abp80</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.parseOption()</code> includes short flag and long flag expansions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.helpInformation()</code> returns help text as a string, previously a private routine ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560700420" data-permission-text="Title is private" data-url="tj/commander.js#1169" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1169/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1169">#1169</a>])</li>
<li><code>.parse()</code> implicitly uses <code>process.argv</code> if arguments not specified ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>optionally specify where <code>.parse()</code> arguments "from", if not following node conventions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="143058334" data-permission-text="Title is private" data-url="tj/commander.js#512" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/512/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/512">#512</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>suggest help option along with unknown command error ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561944637" data-permission-text="Title is private" data-url="tj/commander.js#1179" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1179/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1179">#1179</a>])</li>
<li>TypeScript definition for <code>commands</code> property of <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="562675877" data-permission-text="Title is private" data-url="tj/commander.js#1184" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1184/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1184">#1184</a>])</li>
<li>export <code>program</code> property ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565709359" data-permission-text="Title is private" data-url="tj/commander.js#1195" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1195/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1195">#1195</a>])</li>
<li><code>createCommand</code> factory method to simplify subclassing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565215409" data-permission-text="Title is private" data-url="tj/commander.js#1191" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1191/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1191">#1191</a>])</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>preserve argument order in subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="140326981" data-permission-text="Title is private" data-url="tj/commander.js#508" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/508/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/508">#508</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="444530964" data-permission-text="Title is private" data-url="tj/commander.js#962" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/962/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/962">#962</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>do not emit <code>command:*</code> for executable subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="328564529" data-permission-text="Title is private" data-url="tj/commander.js#809" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/809/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/809">#809</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>action handler called whether or not there are non-option arguments ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="499848795" data-permission-text="Title is private" data-url="tj/commander.js#1062" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1062/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1062">#1062</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combining option short flag and value in single argument now works for subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li>only add implicit help command when it will not conflict with other uses of argument ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="551899040" data-permission-text="Title is private" data-url="tj/commander.js#1153" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1153/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1153">#1153</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command works with command aliases ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="429033898" data-permission-text="Title is private" data-url="tj/commander.js#948" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/948/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/948">#948</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>options are validated whether or not there is an action handler ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Changed</h3>
<ul>
<li><em>Breaking</em> <code>.args</code> contains command arguments with just recognised options removed ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="486336653" data-permission-text="Title is private" data-url="tj/commander.js#1032" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1032/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1032">#1032</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li><em>Breaking</em> display error if required argument for command is missing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="467912082" data-permission-text="Title is private" data-url="tj/commander.js#995" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/995/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/995">#995</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>tighten TypeScript definition of custom option processing function passed to <code>.option()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="537071462" data-permission-text="Title is private" data-url="tj/commander.js#1119" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1119/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1119">#1119</a>])</li>
<li><em>Breaking</em> <code>.allowUnknownOption()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="322394861" data-permission-text="Title is private" data-url="tj/commander.js#802" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/802/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/802">#802</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li>unknown options included in arguments passed to command action handler</li>
<li>unknown options included in <code>.args</code></li>
</ul>
</li>
<li>only recognised option short flags and long flags are expanded (e.g. <code>-ab</code> or <code>--foo=bar</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><em>Breaking</em> <code>.parseOptions()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li><code>args</code> in returned result renamed <code>operands</code> and does not include anything after first unknown option</li>
<li><code>unknown</code> in returned result has arguments after first unknown option including operands, not just options and values</li>
</ul>
</li>
<li><em>Breaking</em> <code>.on('command:*', callback)</code> and other command events passed (changed) results from <code>.parseOptions</code>, i.e. operands and unknown  ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>refactor Option from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="544020268" data-permission-text="Title is private" data-url="tj/commander.js#1133" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1133/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1133">#1133</a>])</li>
<li>refactor Command from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558019087" data-permission-text="Title is private" data-url="tj/commander.js#1159" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1159/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1159">#1159</a>])</li>
<li>changes to error handling ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558600050" data-permission-text="Title is private" data-url="tj/commander.js#1165" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1165/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1165">#1165</a>])
<ul>
<li>throw for author error, not just display message</li>
<li>preflight for variadic error</li>
<li>add tips to missing subcommand executable</li>
</ul>
</li>
<li>TypeScript fluent return types changed to be more subclass friendly, return <code>this</code> rather than <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li><code>.parseAsync</code> returns <code>Promise&lt;this&gt;</code> to be consistent with <code>.parse()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li>update dependencies</li>
</ul>
<h3>Removed</h3>
<ul>
<li>removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on <code>@types/node</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548333754" data-permission-text="Title is private" data-url="tj/commander.js#1146" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1146/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1146">#1146</a>])</li>
<li>removed private function <code>normalize</code> (the functionality has been integrated into <code>parseOptions</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>parseExpectedArgs</code> is now private ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Migration Tips</h3>
<p>If you use <code>.on('command:*')</code> or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>program.args</code> or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>.command('*')</code> to add a default command, you may be be able to switch to <code>isDefault:true</code> with a named command.</p>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 53 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2aad525640d5885d9f51ae8dfe07a01c280cf4e3"><code>2aad525</code></a> <code>Update dependencies (#1214)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f86d8781655720eb1429d1b9c883e8c357f7c8c3"><code>f86d878</code></a> <code>Add cli keyword (#1213)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/83af0fd0488dc6f4568435050e7d3d7e0ab11b5b"><code>83af0fd</code></a> <code>Prepare for 5.0.0 (#1211)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f14df0709173abf9ab4732064d77bce34f60fb05"><code>f14df07</code></a> <code>Add eslint settings for TypeScript (#1205)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/95e0d193ec02859f1bdcb08785e21f86942fc5e5"><code>95e0d19</code></a> <code>5.0.0-4</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/bd5a49e9d5ca4f4cf1c8bf60e3567ab5d5e67039"><code>bd5a49e</code></a> <code>Add factory to CHANGELOG</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/8c3dd6ffe90b566c5cabb277f8d9c57a8bfb348b"><code>8c3dd6f</code></a> <code>createCommand factory routine (#1191)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3c9f33fd8440aab061cbb0484712ed77c54df03a"><code>3c9f33f</code></a> <code>Say we support LTS, so do not need to update when node changes (#1204)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3cf8cff2a91d1d38da2ea9e5ace40230f1d9a813"><code>3cf8cff</code></a> <code>Expand typescript checks (#1198)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/a3f453f11cf3ad69d2b15ce82efdfd3af53efe22"><code>a3f453f</code></a> <code>5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/87bfca690eda98a0573b20569f87675466c23dd8"><code>87bfca6</code></a> <code>Add CHANGELOG entries for 5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/1757564a0f6034f803e1e638c6cf34ef64b77775"><code>1757564</code></a> <code>Use a tidier global command (#1200)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/0a50bd6c7696b6c5217258d38613f58684d1585b"><code>0a50bd6</code></a> <code>Add program to exports (#1195)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/77e511fc17cf5857520b0740737d0fc27acf736c"><code>77e511f</code></a> <code>Enable TypeScript checking of javascript, and resolve or suppress errors (#1194)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2491c763e1ba058a5a877d7aa4b30427de83e844"><code>2491c76</code></a> <code>URLEncode several chinese toc link</code></li>
</ul>
<p>There are 53 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/tj/commander.js/compare/d5186ba4b9b64a72cd685fccbb9ec5d0ec0c430d...2aad525640d5885d9f51ae8dfe07a01c280cf4e3">full diff</a></p>
</details>

---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴



* chore(package): update lockfile package-lock.json

Co-authored-by: greenkeeper[bot] <23040076+greenkeeper[bot]@users.noreply.github.com>
jaebradley pushed a commit to jaebradley/http-status-identifier-cli that referenced this issue Mar 16, 2020
***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [commander](https://github.com/tj/commander.js) was updated from `4.1.1` to `5.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

**Publisher:** [abetomo](https://www.npmjs.com/~abetomo)
**License:** MIT

<details>
<summary>Release Notes for v5.0.0</summary>

<h3>Added</h3>
<ul>
<li>support for nested commands with action-handlers ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1404480" data-permission-text="Title is private" data-url="tj/commander.js#1" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1">#1</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li><code>.addCommand()</code> for adding a separately configured command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>allow a non-executable to be set as the default command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="286464874" data-permission-text="Title is private" data-url="tj/commander.js#742" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/742/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/742">#742</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command when there are subcommands (previously only if executables) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>customise implicit help command with <code>.addHelpCommand()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display error message for unknown subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="105242369" data-permission-text="Title is private" data-url="tj/commander.js#432" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/432/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/432">#432</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display help for missing subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combined short options as single argument may include boolean flags and value flag and value (e.g. <code>-a -b -p 80</code> can be written as <code>-abp80</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.parseOption()</code> includes short flag and long flag expansions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.helpInformation()</code> returns help text as a string, previously a private routine ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560700420" data-permission-text="Title is private" data-url="tj/commander.js#1169" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1169/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1169">#1169</a>])</li>
<li><code>.parse()</code> implicitly uses <code>process.argv</code> if arguments not specified ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>optionally specify where <code>.parse()</code> arguments "from", if not following node conventions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="143058334" data-permission-text="Title is private" data-url="tj/commander.js#512" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/512/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/512">#512</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>suggest help option along with unknown command error ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561944637" data-permission-text="Title is private" data-url="tj/commander.js#1179" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1179/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1179">#1179</a>])</li>
<li>TypeScript definition for <code>commands</code> property of <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="562675877" data-permission-text="Title is private" data-url="tj/commander.js#1184" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1184/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1184">#1184</a>])</li>
<li>export <code>program</code> property ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565709359" data-permission-text="Title is private" data-url="tj/commander.js#1195" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1195/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1195">#1195</a>])</li>
<li><code>createCommand</code> factory method to simplify subclassing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565215409" data-permission-text="Title is private" data-url="tj/commander.js#1191" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1191/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1191">#1191</a>])</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>preserve argument order in subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="140326981" data-permission-text="Title is private" data-url="tj/commander.js#508" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/508/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/508">#508</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="444530964" data-permission-text="Title is private" data-url="tj/commander.js#962" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/962/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/962">#962</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>do not emit <code>command:*</code> for executable subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="328564529" data-permission-text="Title is private" data-url="tj/commander.js#809" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/809/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/809">#809</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>action handler called whether or not there are non-option arguments ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="499848795" data-permission-text="Title is private" data-url="tj/commander.js#1062" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1062/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1062">#1062</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combining option short flag and value in single argument now works for subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li>only add implicit help command when it will not conflict with other uses of argument ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="551899040" data-permission-text="Title is private" data-url="tj/commander.js#1153" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1153/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1153">#1153</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command works with command aliases ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="429033898" data-permission-text="Title is private" data-url="tj/commander.js#948" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/948/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/948">#948</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>options are validated whether or not there is an action handler ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Changed</h3>
<ul>
<li><em>Breaking</em> <code>.args</code> contains command arguments with just recognised options removed ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="486336653" data-permission-text="Title is private" data-url="tj/commander.js#1032" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1032/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1032">#1032</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li><em>Breaking</em> display error if required argument for command is missing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="467912082" data-permission-text="Title is private" data-url="tj/commander.js#995" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/995/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/995">#995</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>tighten TypeScript definition of custom option processing function passed to <code>.option()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="537071462" data-permission-text="Title is private" data-url="tj/commander.js#1119" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1119/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1119">#1119</a>])</li>
<li><em>Breaking</em> <code>.allowUnknownOption()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="322394861" data-permission-text="Title is private" data-url="tj/commander.js#802" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/802/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/802">#802</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li>unknown options included in arguments passed to command action handler</li>
<li>unknown options included in <code>.args</code></li>
</ul>
</li>
<li>only recognised option short flags and long flags are expanded (e.g. <code>-ab</code> or <code>--foo=bar</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><em>Breaking</em> <code>.parseOptions()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li><code>args</code> in returned result renamed <code>operands</code> and does not include anything after first unknown option</li>
<li><code>unknown</code> in returned result has arguments after first unknown option including operands, not just options and values</li>
</ul>
</li>
<li><em>Breaking</em> <code>.on('command:*', callback)</code> and other command events passed (changed) results from <code>.parseOptions</code>, i.e. operands and unknown  ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>refactor Option from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="544020268" data-permission-text="Title is private" data-url="tj/commander.js#1133" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1133/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1133">#1133</a>])</li>
<li>refactor Command from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558019087" data-permission-text="Title is private" data-url="tj/commander.js#1159" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1159/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1159">#1159</a>])</li>
<li>changes to error handling ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558600050" data-permission-text="Title is private" data-url="tj/commander.js#1165" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1165/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1165">#1165</a>])
<ul>
<li>throw for author error, not just display message</li>
<li>preflight for variadic error</li>
<li>add tips to missing subcommand executable</li>
</ul>
</li>
<li>TypeScript fluent return types changed to be more subclass friendly, return <code>this</code> rather than <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li><code>.parseAsync</code> returns <code>Promise&lt;this&gt;</code> to be consistent with <code>.parse()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li>update dependencies</li>
</ul>
<h3>Removed</h3>
<ul>
<li>removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on <code>@types/node</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548333754" data-permission-text="Title is private" data-url="tj/commander.js#1146" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1146/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1146">#1146</a>])</li>
<li>removed private function <code>normalize</code> (the functionality has been integrated into <code>parseOptions</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>parseExpectedArgs</code> is now private ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Migration Tips</h3>
<p>If you use <code>.on('command:*')</code> or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>program.args</code> or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>.command('*')</code> to add a default command, you may be be able to switch to <code>isDefault:true</code> with a named command.</p>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 53 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2aad525640d5885d9f51ae8dfe07a01c280cf4e3"><code>2aad525</code></a> <code>Update dependencies (#1214)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f86d8781655720eb1429d1b9c883e8c357f7c8c3"><code>f86d878</code></a> <code>Add cli keyword (#1213)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/83af0fd0488dc6f4568435050e7d3d7e0ab11b5b"><code>83af0fd</code></a> <code>Prepare for 5.0.0 (#1211)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f14df0709173abf9ab4732064d77bce34f60fb05"><code>f14df07</code></a> <code>Add eslint settings for TypeScript (#1205)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/95e0d193ec02859f1bdcb08785e21f86942fc5e5"><code>95e0d19</code></a> <code>5.0.0-4</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/bd5a49e9d5ca4f4cf1c8bf60e3567ab5d5e67039"><code>bd5a49e</code></a> <code>Add factory to CHANGELOG</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/8c3dd6ffe90b566c5cabb277f8d9c57a8bfb348b"><code>8c3dd6f</code></a> <code>createCommand factory routine (#1191)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3c9f33fd8440aab061cbb0484712ed77c54df03a"><code>3c9f33f</code></a> <code>Say we support LTS, so do not need to update when node changes (#1204)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3cf8cff2a91d1d38da2ea9e5ace40230f1d9a813"><code>3cf8cff</code></a> <code>Expand typescript checks (#1198)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/a3f453f11cf3ad69d2b15ce82efdfd3af53efe22"><code>a3f453f</code></a> <code>5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/87bfca690eda98a0573b20569f87675466c23dd8"><code>87bfca6</code></a> <code>Add CHANGELOG entries for 5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/1757564a0f6034f803e1e638c6cf34ef64b77775"><code>1757564</code></a> <code>Use a tidier global command (#1200)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/0a50bd6c7696b6c5217258d38613f58684d1585b"><code>0a50bd6</code></a> <code>Add program to exports (#1195)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/77e511fc17cf5857520b0740737d0fc27acf736c"><code>77e511f</code></a> <code>Enable TypeScript checking of javascript, and resolve or suppress errors (#1194)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2491c763e1ba058a5a877d7aa4b30427de83e844"><code>2491c76</code></a> <code>URLEncode several chinese toc link</code></li>
</ul>
<p>There are 53 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/tj/commander.js/compare/d5186ba4b9b64a72cd685fccbb9ec5d0ec0c430d...2aad525640d5885d9f51ae8dfe07a01c280cf4e3">full diff</a></p>
</details>

---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴

Co-authored-by: greenkeeper[bot] <23040076+greenkeeper[bot]@users.noreply.github.com>
jaebradley pushed a commit to jaebradley/urban-dictionary-cli that referenced this issue Mar 16, 2020
***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [commander](https://github.com/tj/commander.js) was updated from `4.1.1` to `5.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

**Publisher:** [abetomo](https://www.npmjs.com/~abetomo)
**License:** MIT

<details>
<summary>Release Notes for v5.0.0</summary>

<h3>Added</h3>
<ul>
<li>support for nested commands with action-handlers ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1404480" data-permission-text="Title is private" data-url="tj/commander.js#1" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1">#1</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li><code>.addCommand()</code> for adding a separately configured command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="294713045" data-permission-text="Title is private" data-url="tj/commander.js#764" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/764/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/764">#764</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>allow a non-executable to be set as the default command ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="286464874" data-permission-text="Title is private" data-url="tj/commander.js#742" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/742/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/742">#742</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command when there are subcommands (previously only if executables) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>customise implicit help command with <code>.addHelpCommand()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display error message for unknown subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="105242369" data-permission-text="Title is private" data-url="tj/commander.js#432" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/432/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/432">#432</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>display help for missing subcommand, by default ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="516507885" data-permission-text="Title is private" data-url="tj/commander.js#1088" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1088/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1088">#1088</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combined short options as single argument may include boolean flags and value flag and value (e.g. <code>-a -b -p 80</code> can be written as <code>-abp80</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.parseOption()</code> includes short flag and long flag expansions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>.helpInformation()</code> returns help text as a string, previously a private routine ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560700420" data-permission-text="Title is private" data-url="tj/commander.js#1169" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1169/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1169">#1169</a>])</li>
<li><code>.parse()</code> implicitly uses <code>process.argv</code> if arguments not specified ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>optionally specify where <code>.parse()</code> arguments "from", if not following node conventions ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="143058334" data-permission-text="Title is private" data-url="tj/commander.js#512" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/512/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/512">#512</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="560848429" data-permission-text="Title is private" data-url="tj/commander.js#1172" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1172/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1172">#1172</a>])</li>
<li>suggest help option along with unknown command error ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561944637" data-permission-text="Title is private" data-url="tj/commander.js#1179" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1179/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1179">#1179</a>])</li>
<li>TypeScript definition for <code>commands</code> property of <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="562675877" data-permission-text="Title is private" data-url="tj/commander.js#1184" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1184/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1184">#1184</a>])</li>
<li>export <code>program</code> property ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565709359" data-permission-text="Title is private" data-url="tj/commander.js#1195" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1195/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1195">#1195</a>])</li>
<li><code>createCommand</code> factory method to simplify subclassing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="565215409" data-permission-text="Title is private" data-url="tj/commander.js#1191" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1191/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1191">#1191</a>])</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>preserve argument order in subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="140326981" data-permission-text="Title is private" data-url="tj/commander.js#508" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/508/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/508">#508</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="444530964" data-permission-text="Title is private" data-url="tj/commander.js#962" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/962/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/962">#962</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>do not emit <code>command:*</code> for executable subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="328564529" data-permission-text="Title is private" data-url="tj/commander.js#809" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/809/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/809">#809</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>action handler called whether or not there are non-option arguments ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="499848795" data-permission-text="Title is private" data-url="tj/commander.js#1062" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1062/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1062">#1062</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>combining option short flag and value in single argument now works for subcommands ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li>only add implicit help command when it will not conflict with other uses of argument ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="551899040" data-permission-text="Title is private" data-url="tj/commander.js#1153" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1153/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1153">#1153</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>implicit help command works with command aliases ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="429033898" data-permission-text="Title is private" data-url="tj/commander.js#948" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/948/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/948">#948</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>options are validated whether or not there is an action handler ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Changed</h3>
<ul>
<li><em>Breaking</em> <code>.args</code> contains command arguments with just recognised options removed ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="486336653" data-permission-text="Title is private" data-url="tj/commander.js#1032" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/1032/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/1032">#1032</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li><em>Breaking</em> display error if required argument for command is missing ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="467912082" data-permission-text="Title is private" data-url="tj/commander.js#995" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/995/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/995">#995</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
<li>tighten TypeScript definition of custom option processing function passed to <code>.option()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="537071462" data-permission-text="Title is private" data-url="tj/commander.js#1119" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1119/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1119">#1119</a>])</li>
<li><em>Breaking</em> <code>.allowUnknownOption()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="322394861" data-permission-text="Title is private" data-url="tj/commander.js#802" data-hovercard-type="issue" data-hovercard-url="/tj/commander.js/issues/802/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/issues/802">#802</a>] [<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li>unknown options included in arguments passed to command action handler</li>
<li>unknown options included in <code>.args</code></li>
</ul>
</li>
<li>only recognised option short flags and long flags are expanded (e.g. <code>-ab</code> or <code>--foo=bar</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><em>Breaking</em> <code>.parseOptions()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])
<ul>
<li><code>args</code> in returned result renamed <code>operands</code> and does not include anything after first unknown option</li>
<li><code>unknown</code> in returned result has arguments after first unknown option including operands, not just options and values</li>
</ul>
</li>
<li><em>Breaking</em> <code>.on('command:*', callback)</code> and other command events passed (changed) results from <code>.parseOptions</code>, i.e. operands and unknown  ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="545350198" data-permission-text="Title is private" data-url="tj/commander.js#1138" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1138/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1138">#1138</a>])</li>
<li>refactor Option from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="544020268" data-permission-text="Title is private" data-url="tj/commander.js#1133" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1133/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1133">#1133</a>])</li>
<li>refactor Command from prototype to class ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558019087" data-permission-text="Title is private" data-url="tj/commander.js#1159" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1159/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1159">#1159</a>])</li>
<li>changes to error handling ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="558600050" data-permission-text="Title is private" data-url="tj/commander.js#1165" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1165/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1165">#1165</a>])
<ul>
<li>throw for author error, not just display message</li>
<li>preflight for variadic error</li>
<li>add tips to missing subcommand executable</li>
</ul>
</li>
<li>TypeScript fluent return types changed to be more subclass friendly, return <code>this</code> rather than <code>Command</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li><code>.parseAsync</code> returns <code>Promise&lt;this&gt;</code> to be consistent with <code>.parse()</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="561948792" data-permission-text="Title is private" data-url="tj/commander.js#1180" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1180/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1180">#1180</a>])</li>
<li>update dependencies</li>
</ul>
<h3>Removed</h3>
<ul>
<li>removed EventEmitter from TypeScript definition for Command, eliminating implicit peer dependency on <code>@types/node</code> ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548333754" data-permission-text="Title is private" data-url="tj/commander.js#1146" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1146/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1146">#1146</a>])</li>
<li>removed private function <code>normalize</code> (the functionality has been integrated into <code>parseOptions</code>) ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="547256656" data-permission-text="Title is private" data-url="tj/commander.js#1145" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1145/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1145">#1145</a>])</li>
<li><code>parseExpectedArgs</code> is now private ([<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="548552171" data-permission-text="Title is private" data-url="tj/commander.js#1149" data-hovercard-type="pull_request" data-hovercard-url="/tj/commander.js/pull/1149/hovercard" href="https://urls.greenkeeper.io/tj/commander.js/pull/1149">#1149</a>])</li>
</ul>
<h3>Migration Tips</h3>
<p>If you use <code>.on('command:*')</code> or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>program.args</code> or more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.</p>
<p>If you use <code>.command('*')</code> to add a default command, you may be be able to switch to <code>isDefault:true</code> with a named command.</p>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 53 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2aad525640d5885d9f51ae8dfe07a01c280cf4e3"><code>2aad525</code></a> <code>Update dependencies (#1214)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f86d8781655720eb1429d1b9c883e8c357f7c8c3"><code>f86d878</code></a> <code>Add cli keyword (#1213)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/83af0fd0488dc6f4568435050e7d3d7e0ab11b5b"><code>83af0fd</code></a> <code>Prepare for 5.0.0 (#1211)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/f14df0709173abf9ab4732064d77bce34f60fb05"><code>f14df07</code></a> <code>Add eslint settings for TypeScript (#1205)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/95e0d193ec02859f1bdcb08785e21f86942fc5e5"><code>95e0d19</code></a> <code>5.0.0-4</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/bd5a49e9d5ca4f4cf1c8bf60e3567ab5d5e67039"><code>bd5a49e</code></a> <code>Add factory to CHANGELOG</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/8c3dd6ffe90b566c5cabb277f8d9c57a8bfb348b"><code>8c3dd6f</code></a> <code>createCommand factory routine (#1191)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3c9f33fd8440aab061cbb0484712ed77c54df03a"><code>3c9f33f</code></a> <code>Say we support LTS, so do not need to update when node changes (#1204)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/3cf8cff2a91d1d38da2ea9e5ace40230f1d9a813"><code>3cf8cff</code></a> <code>Expand typescript checks (#1198)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/a3f453f11cf3ad69d2b15ce82efdfd3af53efe22"><code>a3f453f</code></a> <code>5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/87bfca690eda98a0573b20569f87675466c23dd8"><code>87bfca6</code></a> <code>Add CHANGELOG entries for 5.0.0-3</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/1757564a0f6034f803e1e638c6cf34ef64b77775"><code>1757564</code></a> <code>Use a tidier global command (#1200)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/0a50bd6c7696b6c5217258d38613f58684d1585b"><code>0a50bd6</code></a> <code>Add program to exports (#1195)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/77e511fc17cf5857520b0740737d0fc27acf736c"><code>77e511f</code></a> <code>Enable TypeScript checking of javascript, and resolve or suppress errors (#1194)</code></li>
<li><a href="https://urls.greenkeeper.io/tj/commander.js/commit/2491c763e1ba058a5a877d7aa4b30427de83e844"><code>2491c76</code></a> <code>URLEncode several chinese toc link</code></li>
</ul>
<p>There are 53 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/tj/commander.js/compare/d5186ba4b9b64a72cd685fccbb9ec5d0ec0c430d...2aad525640d5885d9f51ae8dfe07a01c280cf4e3">full diff</a></p>
</details>

---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴

Co-authored-by: greenkeeper[bot] <23040076+greenkeeper[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant