{"ecosystem":"npm","package":"yargs","from_version":null,"to_version":null,"changes":[{"from_version":"8.0.2","to_version":"9.0.0","change_type":"behavior","description":"parse() now behaves as an alias for .argv, unless a parseCallback is provided.","migration_hint":null},{"from_version":"8.0.2","to_version":"9.0.0","change_type":"behavior","description":"version() and help() are now enabled by default, and show up in help output; the implicit help command can no longer be enabled/disabled independently from the help command itself (which can now be disabled).","migration_hint":null},{"from_version":"7.1.0","to_version":"8.0.0","change_type":"api","description":"the first argument to strict() is now used to enable/disable its functionality, rather than controlling whether or not it is global.","migration_hint":null},{"from_version":"7.1.0","to_version":"8.0.0","change_type":"breaking","description":"extends functionality now always loads the JSON provided, rather than reading from a specific key","migration_hint":null},{"from_version":"7.1.0","to_version":"8.0.0","change_type":"breaking","description":"Node 4+ is now required; this will allow us to start updating our dependencies.","migration_hint":null},{"from_version":"6.6.0","to_version":"7.0.0","change_type":"api","description":"the arguments passed to functions are now validated, there's a good chance this will throw exceptions for a few folks who are using the API in an unexpected way.","migration_hint":null},{"from_version":"6.6.0","to_version":"7.0.0","change_type":"behavior","description":"by default options, and many of yargs' parsing helpers will now default to being applied globally; such that they are no-longer reset before being passed into commands.","migration_hint":null},{"from_version":"6.6.0","to_version":"7.0.0","change_type":"behavior","description":"context now takes precedence over argv and defaults","migration_hint":null},{"from_version":"6.6.0","to_version":"7.0.0","change_type":"breaking","description":"`extends` key in config file is now used for extending other config files","migration_hint":null},{"from_version":"6.6.0","to_version":"7.0.0","change_type":"breaking","description":"yargs will no longer aggressively suppress errors, allowing errors that are not generated internally to bubble.","migration_hint":null},{"from_version":"6.6.0","to_version":"7.0.0","change_type":"breaking","description":"environment variables now take precedence over config files.","migration_hint":null},{"from_version":"5.0.0","to_version":"6.0.0","change_type":"breaking","description":"coerce is now applied as a final step after other parsing is complete","migration_hint":null},{"from_version":"4.8.1","to_version":"5.0.0","change_type":"behavior","description":"we now default to an empty builder function when command is executed with no builder.","migration_hint":null},{"from_version":"4.8.1","to_version":"5.0.0","change_type":"behavior","description":"introduces a default `help` command which outputs help, as an alternative to a help flag.","migration_hint":null},{"from_version":"4.8.1","to_version":"5.0.0","change_type":"breaking","description":"fail is now applied globally.","migration_hint":null},{"from_version":"4.8.1","to_version":"5.0.0","change_type":"breaking","description":"yargs-parser now better handles negative integer values, at the cost of handling numeric option names, e.g., -1 hello","migration_hint":null},{"from_version":"4.8.1","to_version":"5.0.0","change_type":"breaking","description":"interpret demand() numbers as relative to executing command ([#582](https://github.com/yargs/yargs/issues/582)) ([927810c](https://github.com/yargs/yargs/commit/927810c))","migration_hint":null},{"from_version":"4.8.1","to_version":"5.0.0","change_type":"removed","description":"default: removed undocumented `defaults` alias for `default`.","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"api","description":"[#330](https://github.com/bcoe/yargs/pull/330) **breaking change**, fix inconsistencies with `.version()` API. (@maxrimue).","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"api","description":"[#368](https://github.com/bcoe/yargs/pull/368) **breaking change**, overhaul to command handling API:","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"api","description":"[#376](https://github.com/bcoe/yargs/pull/376) **breaking change**, make help() method signature","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"api","description":"[#382](https://github.com/bcoe/yargs/pull/382) pass error as extra parameter to fail (@gajus)","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"breaking","description":"[#384](https://github.com/bcoe/yargs/pull/384) add new number type to yargs (@lrlna, @maxrimue)","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"breaking","description":"[#378](https://github.com/bcoe/yargs/pull/378) introduces the pkgConf feature, which tells","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"breaking","description":"[#364](https://github.com/bcoe/yargs/pull/364) add the slick new yargs website to the package.json (@iarna).","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"breaking","description":"[#357](https://github.com/bcoe/yargs/pull/357) .strict() now requires that a valid command is provided (@lrlna)","migration_hint":null},{"from_version":"3.32.0","to_version":"4.0.0","change_type":"breaking","description":"[#356](https://github.com/bcoe/yargs/pull/356) pull the parsing bits of yargs into the separate module yargs-parser. Various parsing options can now be turned on and off using configuration (@bcoe).","migration_hint":null},{"from_version":"17.7.2","to_version":"18.0.0","change_type":"breaking","description":"minimum node.js versions now `^20.19.0 || ^22.12.0 || >=23`.","migration_hint":null},{"from_version":"17.7.2","to_version":"18.0.0","change_type":"breaking","description":"yargs is now ESM first","migration_hint":null},{"from_version":"17.7.2","to_version":"18.0.0","change_type":"breaking","description":"command names are not derived from modules passed to `command`.","migration_hint":null},{"from_version":"17.7.2","to_version":"18.0.0","change_type":"removed","description":"singleton usage of yargs yargs.foo, yargs().argv, has been removed.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"api","description":"#1823 contains the following breaking API changes:","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":".positional() now allowed at root level of yargs.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"**node:** drop Node 10 (#1919)","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"implicitly private methods are now actually private","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"**yargs-factory:** refactor yargs-factory to use class (#1895)","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"**coerce:** coerce is now applied before validation.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"**async:** yargs now returns a promise if async or check are asynchronous.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"**middleware:** global middleware now applied when no command is configured.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"now returns a promise if handler is async.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"breaking","description":"getCompletion now invokes callback with err and `completions, returns promise of completions.","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"deprecated","description":"deprecated reset() method is now private (call yargs() instead).","migration_hint":null},{"from_version":"16.2.0","to_version":"17.0.0","change_type":"removed","description":"onFinishCommand removed, in favor of being able to await promise.","migration_hint":null},{"from_version":"15.4.0","to_version":"16.0.0","change_type":"api","description":"tweaks to ESM/Deno API surface: now exports yargs function by default; getProcessArgvWithoutBin becomes hideBin; types now exported for Deno.","migration_hint":null},{"from_version":"15.4.0","to_version":"16.0.0","change_type":"breaking","description":"rebase helper is no longer provided on yargs instance.","migration_hint":null},{"from_version":"15.4.0","to_version":"16.0.0","change_type":"breaking","description":"find-up replaced with escalade; export map added (limits importable files in Node >= 12); yarser-parser@19.x.x (new decamelize/camelcase implementation).","migration_hint":null},{"from_version":"15.4.0","to_version":"16.0.0","change_type":"breaking","description":"**usage:** single character aliases are now shown first in help output","migration_hint":null},{"from_version":"15.4.0","to_version":"16.0.0","change_type":"breaking","description":"drop support for EOL Node 8 (#1686)","migration_hint":null},{"from_version":"15.1.0","to_version":"15.2.0","change_type":"breaking","description":"**deps:** yargs-parser@17.0.0 no longer implicitly creates arrays out of boolean","migration_hint":null},{"from_version":"14.2.0","to_version":"15.0.0","change_type":"breaking","description":"**deps:** yargs-parser now throws on invalid combinations of config (#1470)","migration_hint":null},{"from_version":"14.2.0","to_version":"15.0.0","change_type":"breaking","description":"yargs-parser@16.0.0 drops support for Node 6","migration_hint":null},{"from_version":"14.2.0","to_version":"15.0.0","change_type":"breaking","description":"drop Node 6 support (#1461)","migration_hint":null},{"from_version":"14.2.0","to_version":"15.0.0","change_type":"removed","description":"remove package.json-based parserConfiguration (#1460)","migration_hint":null},{"from_version":"13.3.0","to_version":"14.0.0","change_type":"api","description":"we now only officially support yargs.$0 parameter and discourage direct access to yargs.parsed","migration_hint":null},{"from_version":"13.3.0","to_version":"14.0.0","change_type":"breaking","description":"previously to this fix methods like `yargs.getOptions()` contained the state of the last command to execute.","migration_hint":null},{"from_version":"13.3.0","to_version":"14.0.0","change_type":"breaking","description":"do not allow additional positionals in strict mode","migration_hint":null},{"from_version":"12.0.5","to_version":"13.0.0","change_type":"breaking","description":"options with leading '+' or '0' now parse as strings","migration_hint":null},{"from_version":"12.0.5","to_version":"13.0.0","change_type":"breaking","description":"dropping Node 6 which hits end of life in April 2019","migration_hint":null},{"from_version":"12.0.5","to_version":"13.0.0","change_type":"breaking","description":"see [yargs-parser@12.0.0 CHANGELOG](https://github.com/yargs/yargs-parser/blob/main/CHANGELOG.md#breaking-changes)","migration_hint":null},{"from_version":"12.0.5","to_version":"13.0.0","change_type":"breaking","description":"we now warn if the yargs stanza package.json is used.","migration_hint":null},{"from_version":"11.1.0","to_version":"12.0.0","change_type":"api","description":"Options absent from `argv` (not set via CLI argument) are now absent from the parsed result object rather than being set with `undefined`","migration_hint":null},{"from_version":"11.1.0","to_version":"12.0.0","change_type":"breaking","description":"yargs-parser does not populate 'false' when boolean flag is not passed","migration_hint":null},{"from_version":"11.1.0","to_version":"12.0.0","change_type":"breaking","description":"drop Node 4 from testing matrix, such that we'll gradually start drifting away from supporting Node 4.","migration_hint":null},{"from_version":"11.1.0","to_version":"12.0.0","change_type":"breaking","description":"tests that assert against help output will need to be updated","migration_hint":null},{"from_version":"10.1.2","to_version":"11.0.0","change_type":"breaking","description":"requiresArg now has significantly different error output, matching nargs.","migration_hint":null},{"from_version":"9.1.0","to_version":"10.0.0","change_type":"api","description":".usage() no longer accepts an options object as the second argument. It can instead be used as an alias for configuring a default command.","migration_hint":null},{"from_version":"9.1.0","to_version":"10.0.0","change_type":"breaking","description":"previously hidden options were simply implied using a falsy description","migration_hint":null},{"from_version":"9.1.0","to_version":"10.0.0","change_type":"breaking","description":"help command now only executes if it's the last positional in argv._","migration_hint":null}],"total":68,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"miss"}