npm-check-updates 11.8.4 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/build/src/bin/cli.d.ts +2 -0
- package/build/src/bin/cli.js +89 -0
- package/build/src/bin/cli.js.map +1 -0
- package/build/src/cli-options.d.ts +13 -0
- package/build/src/cli-options.js +295 -0
- package/build/src/cli-options.js.map +1 -0
- package/build/src/constants.d.ts +3 -0
- package/{lib → build/src}/constants.js +8 -8
- package/build/src/constants.js.map +1 -0
- package/build/src/doctor.d.ts +3 -0
- package/build/src/doctor.js +154 -0
- package/build/src/doctor.js.map +1 -0
- package/build/src/index.d.ts +11 -0
- package/build/src/index.js +166 -0
- package/build/src/index.js.map +1 -0
- package/build/src/lib/doctor.d.ts +5 -0
- package/build/src/lib/doctor.js +157 -0
- package/build/src/lib/doctor.js.map +1 -0
- package/build/src/lib/filterAndReject.d.ts +11 -0
- package/build/src/lib/filterAndReject.js +65 -0
- package/build/src/lib/filterAndReject.js.map +1 -0
- package/build/src/lib/findPackage.d.ts +14 -0
- package/build/src/lib/findPackage.js +84 -0
- package/build/src/lib/findPackage.js.map +1 -0
- package/build/src/lib/get-ncu-rc.js +31 -0
- package/build/src/lib/get-ncu-rc.js.map +1 -0
- package/build/src/lib/getCurrentDependencies.d.ts +13 -0
- package/build/src/lib/getCurrentDependencies.js +64 -0
- package/build/src/lib/getCurrentDependencies.js.map +1 -0
- package/build/src/lib/getIgnoredUpgrades.d.ts +4 -0
- package/build/src/lib/getIgnoredUpgrades.js +27 -0
- package/build/src/lib/getIgnoredUpgrades.js.map +1 -0
- package/build/src/lib/getInstalledPackages.d.ts +12 -0
- package/build/src/lib/getInstalledPackages.js +30 -0
- package/build/src/lib/getInstalledPackages.js.map +1 -0
- package/build/src/lib/getNcuRc.d.ts +20 -0
- package/build/src/lib/getNcuRc.js +31 -0
- package/build/src/lib/getNcuRc.js.map +1 -0
- package/build/src/lib/getPackageFileName.d.ts +6 -0
- package/build/src/lib/getPackageFileName.js +16 -0
- package/build/src/lib/getPackageFileName.js.map +1 -0
- package/build/src/lib/getPackageManager.d.ts +11 -0
- package/build/src/lib/getPackageManager.js +31 -0
- package/build/src/lib/getPackageManager.js.map +1 -0
- package/build/src/lib/getPeerDependencies.d.ts +4 -0
- package/build/src/lib/getPeerDependencies.js +28 -0
- package/build/src/lib/getPeerDependencies.js.map +1 -0
- package/build/src/lib/getPeerDependenciesFromRegistry.d.ts +10 -0
- package/build/src/lib/getPeerDependenciesFromRegistry.js +35 -0
- package/build/src/lib/getPeerDependenciesFromRegistry.js.map +1 -0
- package/build/src/lib/getPreferredWildcard.d.ts +10 -0
- package/build/src/lib/getPreferredWildcard.js +34 -0
- package/build/src/lib/getPreferredWildcard.js.map +1 -0
- package/build/src/lib/getRepoUrl.d.ts +8 -0
- package/build/src/lib/getRepoUrl.js +70 -0
- package/build/src/lib/getRepoUrl.js.map +1 -0
- package/build/src/lib/initOptions.d.ts +4 -0
- package/build/src/lib/initOptions.js +72 -0
- package/build/src/lib/initOptions.js.map +1 -0
- package/build/src/lib/isUpgradeable.d.ts +10 -0
- package/build/src/lib/isUpgradeable.js +61 -0
- package/build/src/lib/isUpgradeable.js.map +1 -0
- package/build/src/lib/mergeOptions.d.ts +54 -0
- package/build/src/lib/mergeOptions.js +23 -0
- package/build/src/lib/mergeOptions.js.map +1 -0
- package/build/src/lib/programError.d.ts +4 -0
- package/build/src/lib/programError.js +15 -0
- package/build/src/lib/programError.js.map +1 -0
- package/build/src/lib/queryVersions.d.ts +10 -0
- package/build/src/lib/queryVersions.js +102 -0
- package/build/src/lib/queryVersions.js.map +1 -0
- package/build/src/lib/runGlobal.d.ts +4 -0
- package/build/src/lib/runGlobal.js +47 -0
- package/build/src/lib/runGlobal.js.map +1 -0
- package/build/src/lib/runLocal.d.ts +13 -0
- package/build/src/lib/runLocal.js +172 -0
- package/build/src/lib/runLocal.js.map +1 -0
- package/build/src/lib/upgradeDependencies.d.ts +11 -0
- package/build/src/lib/upgradeDependencies.js +86 -0
- package/build/src/lib/upgradeDependencies.js.map +1 -0
- package/build/src/lib/upgradePackageData.d.ts +19 -0
- package/build/src/lib/upgradePackageData.js +60 -0
- package/build/src/lib/upgradePackageData.js.map +1 -0
- package/build/src/lib/upgradePackageDefinitions.d.ts +10 -0
- package/build/src/lib/upgradePackageDefinitions.js +43 -0
- package/build/src/lib/upgradePackageDefinitions.js.map +1 -0
- package/build/src/logging.d.ts +34 -0
- package/build/src/logging.js +157 -0
- package/build/src/logging.js.map +1 -0
- package/build/src/package-managers/filters.d.ts +29 -0
- package/build/src/package-managers/filters.js +81 -0
- package/build/src/package-managers/filters.js.map +1 -0
- package/build/src/package-managers/gitTags.d.ts +11 -0
- package/build/src/package-managers/gitTags.js +109 -0
- package/build/src/package-managers/gitTags.js.map +1 -0
- package/build/src/package-managers/index.d.ts +3 -0
- package/build/src/package-managers/index.js +30 -0
- package/build/src/package-managers/index.js.map +1 -0
- package/build/src/package-managers/npm.d.ts +105 -0
- package/build/src/package-managers/npm.js +336 -0
- package/build/src/package-managers/npm.js.map +1 -0
- package/build/src/package-managers/yarn.d.ts +63 -0
- package/build/src/package-managers/yarn.js +237 -0
- package/build/src/package-managers/yarn.js.map +1 -0
- package/build/src/repo-url.js +67 -0
- package/build/src/repo-url.js.map +1 -0
- package/build/src/types/remote-git-tags.d.ts +3 -0
- package/build/src/types/remote-git-tags.js +2 -0
- package/build/src/types/remote-git-tags.js.map +1 -0
- package/{lib/index.d.ts → build/src/types.d.ts} +81 -57
- package/build/src/types.js +3 -0
- package/build/src/types.js.map +1 -0
- package/build/src/version-util.d.ts +149 -0
- package/build/src/version-util.js +398 -0
- package/build/src/version-util.js.map +1 -0
- package/build/src/versionmanager.js +520 -0
- package/build/src/versionmanager.js.map +1 -0
- package/package.json +58 -30
- package/bin/cli.js +0 -98
- package/lib/cli-options.js +0 -295
- package/lib/doctor.js +0 -199
- package/lib/index.js +0 -600
- package/lib/logging.js +0 -159
- package/lib/merge-options.js +0 -21
- package/lib/package-managers/README.md +0 -16
- package/lib/package-managers/gitTags.js +0 -98
- package/lib/package-managers/index.js +0 -7
- package/lib/package-managers/npm.js +0 -397
- package/lib/package-managers/yarn.js +0 -290
- package/lib/repo-url.js +0 -79
- package/lib/version-util.js +0 -458
- package/lib/versionmanager.js +0 -620
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ npx npm-check-updates
|
|
|
33
33
|
|
|
34
34
|
## Usage
|
|
35
35
|
|
|
36
|
-
Show
|
|
36
|
+
Show all new dependencies ([excluding peerDependencies](https://github.com/raineorshine/npm-check-updates/issues/951)) for the project in the current directory:
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
39
|
$ ncu
|
|
@@ -136,7 +136,8 @@ ncu "/^(?!react-).*$/" # windows
|
|
|
136
136
|
Alias of (--packageFile '**/package.json').
|
|
137
137
|
--dep <value> Check one or more sections of dependencies only:
|
|
138
138
|
dev, optional, peer, prod, bundle
|
|
139
|
-
(comma-delimited).
|
|
139
|
+
(comma-delimited). (default:
|
|
140
|
+
"prod,dev,bundle,optional")
|
|
140
141
|
--deprecated Include deprecated packages.
|
|
141
142
|
--doctor Iteratively installs upgrades and runs tests to
|
|
142
143
|
identify breaking upgrades. Run "ncu --doctor"
|
|
@@ -162,7 +163,7 @@ ncu "/^(?!react-).*$/" # windows
|
|
|
162
163
|
--greatest DEPRECATED. Renamed to "--target greatest".
|
|
163
164
|
-i, --interactive Enable interactive prompts for each dependency;
|
|
164
165
|
implies -u unless one of the json options are
|
|
165
|
-
set
|
|
166
|
+
set.
|
|
166
167
|
-j, --jsonAll Output new package file instead of
|
|
167
168
|
human-readable message.
|
|
168
169
|
--jsonDeps Like `jsonAll` but only lists `dependencies`,
|
|
@@ -204,7 +205,7 @@ ncu "/^(?!react-).*$/" # windows
|
|
|
204
205
|
--target" for details.` (default: "latest")
|
|
205
206
|
--timeout <ms> Global timeout in milliseconds. (default: no
|
|
206
207
|
global timeout and 30 seconds per
|
|
207
|
-
npm-
|
|
208
|
+
npm-registry-fetch).
|
|
208
209
|
-u, --upgrade Overwrite package file with upgraded versions
|
|
209
210
|
instead of just outputting to console.
|
|
210
211
|
-V, --version output the version number
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = __importDefault(require("commander"));
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const update_notifier_1 = __importDefault(require("update-notifier"));
|
|
10
|
+
const index_1 = __importDefault(require("../index"));
|
|
11
|
+
const package_json_1 = __importDefault(require("../../package.json"));
|
|
12
|
+
const cli_options_1 = __importDefault(require("../cli-options"));
|
|
13
|
+
const getNcuRc_1 = __importDefault(require("../lib/getNcuRc"));
|
|
14
|
+
// check if a new version of ncu is available and print an update notification
|
|
15
|
+
const notifier = (0, update_notifier_1.default)({ pkg: package_json_1.default });
|
|
16
|
+
if (notifier.update && notifier.update.latest !== package_json_1.default.version) {
|
|
17
|
+
notifier.notify({ defer: false, isGlobal: true });
|
|
18
|
+
}
|
|
19
|
+
// manually detect option-specific help
|
|
20
|
+
// https://github.com/raineorshine/npm-check-updates/issues/787
|
|
21
|
+
const rawArgs = process.argv.slice(2);
|
|
22
|
+
if (rawArgs.includes('--help') && rawArgs.length > 1) {
|
|
23
|
+
const nonHelpArgs = rawArgs.filter(arg => arg !== '--help');
|
|
24
|
+
nonHelpArgs.forEach(arg => {
|
|
25
|
+
const option = cli_options_1.default.find(({ long }) => `--${long}` === arg);
|
|
26
|
+
if (option) {
|
|
27
|
+
console.log(`Usage: ncu --${option.long}`);
|
|
28
|
+
if (option.short) {
|
|
29
|
+
console.log(` ncu -${option.short}`);
|
|
30
|
+
}
|
|
31
|
+
if (option.default !== undefined && !(Array.isArray(option.default) && option.default.length === 0)) {
|
|
32
|
+
console.log(`Default: ${option.default}`);
|
|
33
|
+
}
|
|
34
|
+
if (option.help) {
|
|
35
|
+
console.log(`\n${option.help}`);
|
|
36
|
+
}
|
|
37
|
+
else if (option.description) {
|
|
38
|
+
console.log(`\n${option.description}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.log(`Unknown option: ${arg}`);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
if (rawArgs.length - nonHelpArgs.length > 1) {
|
|
46
|
+
console.log('Would you like some help with your help?');
|
|
47
|
+
}
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
// start commander program
|
|
51
|
+
commander_1.default
|
|
52
|
+
.description('[filter] is a list or regex of package names to check (all others will be ignored).')
|
|
53
|
+
.usage('[options] [filter]');
|
|
54
|
+
// add cli options
|
|
55
|
+
cli_options_1.default.forEach(({ long, short, arg, description, default: defaultValue, parse }) =>
|
|
56
|
+
// handle 3rd/4th argument polymorphism
|
|
57
|
+
commander_1.default.option(`${short ? `-${short}, ` : ''}--${long}${arg ? ` <${arg}>` : ''}`, description, parse || defaultValue, parse ? defaultValue : undefined));
|
|
58
|
+
// set version option at the end
|
|
59
|
+
commander_1.default.version(package_json_1.default.version);
|
|
60
|
+
commander_1.default.parse(process.argv);
|
|
61
|
+
const { configFileName, configFilePath, packageFile, mergeConfig } = commander_1.default;
|
|
62
|
+
// load .ncurc
|
|
63
|
+
// Do not load when global option is set
|
|
64
|
+
// Do not load when tests are running (an be overridden if configFilePath is set explicitly, or --mergeConfig option specified)
|
|
65
|
+
const rcResult = !commander_1.default.global && (!process.env.NCU_TESTS || configFilePath || mergeConfig)
|
|
66
|
+
? (0, getNcuRc_1.default)({ configFileName, configFilePath, packageFile })
|
|
67
|
+
: null;
|
|
68
|
+
// combine command line arguments with config file arguments
|
|
69
|
+
const combinedArguments = rcResult
|
|
70
|
+
? [
|
|
71
|
+
...process.argv.slice(0, 2),
|
|
72
|
+
...rcResult.args,
|
|
73
|
+
...process.argv.slice(2),
|
|
74
|
+
]
|
|
75
|
+
: process.argv;
|
|
76
|
+
commander_1.default.parse(combinedArguments);
|
|
77
|
+
// filter out undefined program options and combine cli options with config file options
|
|
78
|
+
const options = {
|
|
79
|
+
...rcResult && Object.keys(rcResult.config).length > 0
|
|
80
|
+
? { rcConfigPath: rcResult.filePath }
|
|
81
|
+
: null,
|
|
82
|
+
...lodash_1.default.pickBy(commander_1.default.opts(), value => value !== undefined),
|
|
83
|
+
args: commander_1.default.args,
|
|
84
|
+
...commander_1.default.filter ? { filter: commander_1.default.filter } : null,
|
|
85
|
+
cli: true,
|
|
86
|
+
};
|
|
87
|
+
// NOTE: Options handling and defaults go in initOptions in index.js
|
|
88
|
+
(0, index_1.default)(options);
|
|
89
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CLIOption<T = any> {
|
|
2
|
+
arg?: string;
|
|
3
|
+
default?: T;
|
|
4
|
+
deprecated?: boolean;
|
|
5
|
+
description: string;
|
|
6
|
+
help?: string;
|
|
7
|
+
parse?: (s: string) => T;
|
|
8
|
+
long: string;
|
|
9
|
+
short?: string;
|
|
10
|
+
type?: string;
|
|
11
|
+
}
|
|
12
|
+
declare const cliOptionsSorted: CLIOption<any>[];
|
|
13
|
+
export default cliOptionsSorted;
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
7
|
+
const cli_table_1 = __importDefault(require("cli-table"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
/**
|
|
11
|
+
* "newest" means most recently released in terms of release date, even if there are other version numbers that are higher. It includes prereleases.
|
|
12
|
+
* "greatest" means highest version number, regardless of release date. It includes prereleases.
|
|
13
|
+
* "latest" is whatever the project's "latest" git tag points to. It's usually the non-prerelease version with the highest version number, but is ultimately decided by each project's maintainers.
|
|
14
|
+
* "minor" means highest minor version without incrementing the current major.
|
|
15
|
+
* "patch" means highest patch version without incrementing the current major or minor.
|
|
16
|
+
**/
|
|
17
|
+
const getHelpTargetTable = () => {
|
|
18
|
+
/* eslint-disable fp/no-mutating-methods */
|
|
19
|
+
const table = new cli_table_1.default({
|
|
20
|
+
colAligns: ['right', 'left'],
|
|
21
|
+
});
|
|
22
|
+
table.push(['greatest', `Upgrade to the highest version number, regardless of release date or tag.
|
|
23
|
+
Includes prereleases.`]);
|
|
24
|
+
table.push(['latest', `Upgrade to whatever the package's "latest" git tag points to. It's usually the
|
|
25
|
+
non-prerelease version with the highest version number, but is ultimately decided
|
|
26
|
+
by each project's maintainers. Default.`]);
|
|
27
|
+
table.push(['minor', 'Upgrade to the highest minor version without bumping the major version.']);
|
|
28
|
+
table.push(['newest', `Upgrade to the version with the most recent publish date, even if there are
|
|
29
|
+
other version numbers that are higher. Includes prereleases.`]);
|
|
30
|
+
table.push(['patch', `Upgrade to the highest patch version without bumping the minor or major versions.`]);
|
|
31
|
+
return `Set the target version that is upgraded to (default: "latest").\n\n${table.toString()}`;
|
|
32
|
+
};
|
|
33
|
+
// store CLI options separately from bin file so that they can be used to build type definitions
|
|
34
|
+
const cliOptions = [
|
|
35
|
+
{
|
|
36
|
+
long: 'peer',
|
|
37
|
+
description: 'Check peer dependencies of installed packages and filter updates to compatible versions. Run "ncu --help --peer" for details.',
|
|
38
|
+
type: 'boolean',
|
|
39
|
+
help: `Check peer dependencies of installed packages and filter updates to compatible versions.
|
|
40
|
+
|
|
41
|
+
${chalk_1.default.bold('Example')}
|
|
42
|
+
|
|
43
|
+
The following example demonstrates how --peer works, and how it uses peer dependencies from upgraded modules.
|
|
44
|
+
|
|
45
|
+
The package ${chalk_1.default.bold('ncu-test-peer-update')} has two versions published:
|
|
46
|
+
|
|
47
|
+
- 1.0.0 has peer dependency "ncu-test-return-version": "1.0.x"
|
|
48
|
+
- 1.1.0 has peer dependency "ncu-test-return-version": "1.1.x"
|
|
49
|
+
|
|
50
|
+
Our test app has the following dependencies:
|
|
51
|
+
|
|
52
|
+
"ncu-test-peer-update": "1.0.0",
|
|
53
|
+
"ncu-test-return-version": "1.0.0"
|
|
54
|
+
|
|
55
|
+
The latest versions of these packages are:
|
|
56
|
+
|
|
57
|
+
"ncu-test-peer-update": "1.1.0",
|
|
58
|
+
"ncu-test-return-version": "2.0.0"
|
|
59
|
+
|
|
60
|
+
${chalk_1.default.bold('With --peer')}
|
|
61
|
+
|
|
62
|
+
ncu upgrades packages to the highest version that still adheres to the peer dependency constraints:
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
ncu-test-peer-update 1.0.0 → 1.${chalk_1.default.cyan('1.0')}
|
|
66
|
+
ncu-test-return-version 1.0.0 → 1.${chalk_1.default.cyan('1.0')}
|
|
67
|
+
|
|
68
|
+
${chalk_1.default.bold('Without --peer')}
|
|
69
|
+
|
|
70
|
+
As a comparison: without using the --peer option, ncu will suggest the latest versions, ignoring peer dependencies:
|
|
71
|
+
|
|
72
|
+
ncu-test-peer-update 1.0.0 → 1.${chalk_1.default.cyan('1.0')}
|
|
73
|
+
ncu-test-return-version 1.0.0 → ${chalk_1.default.red('2.0.0')}
|
|
74
|
+
`
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
long: 'color',
|
|
78
|
+
description: 'Force color in terminal',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
long: 'concurrency',
|
|
82
|
+
arg: 'n',
|
|
83
|
+
description: 'Max number of concurrent HTTP requests to registry.',
|
|
84
|
+
parse: s => parseInt(s, 10),
|
|
85
|
+
default: 8,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
long: 'configFileName',
|
|
89
|
+
arg: 'filename',
|
|
90
|
+
description: 'Config file name (default: .ncurc.{json,yml,js})',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
long: 'configFilePath',
|
|
94
|
+
arg: 'path',
|
|
95
|
+
description: 'Directory of .ncurc config file (default: directory of `packageFile`).',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
long: 'cwd',
|
|
99
|
+
arg: 'path',
|
|
100
|
+
description: 'Working directory in which npm will be executed.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
long: 'deep',
|
|
104
|
+
description: `Run recursively in current working directory. Alias of (--packageFile '${constants_1.deepPatternPrefix}package.json').`,
|
|
105
|
+
type: 'boolean',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
long: 'mergeConfig',
|
|
109
|
+
description: `Merges nested configs with the root config file for --deep or --packageFile options (default: false)').`,
|
|
110
|
+
type: 'boolean'
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
long: 'dep',
|
|
114
|
+
arg: 'value',
|
|
115
|
+
description: 'Check one or more sections of dependencies only: dev, optional, peer, prod, bundle (comma-delimited).',
|
|
116
|
+
default: 'prod,dev,bundle,optional'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
long: 'deprecated',
|
|
120
|
+
description: 'Include deprecated packages.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
long: 'doctor',
|
|
124
|
+
description: 'Iteratively installs upgrades and runs tests to identify breaking upgrades. Run "ncu --doctor" for detailed help. Add "-u" to execute.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
long: 'enginesNode',
|
|
128
|
+
description: 'Include only packages that satisfy engines.node as specified in the package file.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
long: 'errorLevel',
|
|
132
|
+
short: 'e',
|
|
133
|
+
arg: 'n',
|
|
134
|
+
description: 'Set the error level. 1: exits with error code 0 if no errors occur. 2: exits with error code 0 if no packages need updating (useful for continuous integration).',
|
|
135
|
+
parse: s => parseInt(s, 10),
|
|
136
|
+
default: 1,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
long: 'filter',
|
|
140
|
+
short: 'f',
|
|
141
|
+
arg: 'matches',
|
|
142
|
+
description: 'Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, or /regex/.',
|
|
143
|
+
type: 'string | string[] | RegExp',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
long: 'filterVersion',
|
|
147
|
+
arg: 'matches',
|
|
148
|
+
description: 'Filter on package version using comma-or-space-delimited list, or /regex/.',
|
|
149
|
+
type: 'string | string[] | RegExp',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
long: 'format',
|
|
153
|
+
arg: 'value',
|
|
154
|
+
description: 'Enable additional output data, string or comma-delimited list: ownerChanged, repo. ownerChanged: shows if the package owner changed between versions. repo: infers and displays links to source code repository.',
|
|
155
|
+
parse: value => typeof value === 'string' ? value.split(',') : value,
|
|
156
|
+
default: [],
|
|
157
|
+
type: 'string[]',
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
long: 'global',
|
|
161
|
+
short: 'g',
|
|
162
|
+
description: 'Check global packages instead of in the current project.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
long: 'greatest',
|
|
166
|
+
description: 'DEPRECATED. Renamed to "--target greatest".',
|
|
167
|
+
deprecated: true,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
long: 'interactive',
|
|
171
|
+
short: 'i',
|
|
172
|
+
description: 'Enable interactive prompts for each dependency; implies -u unless one of the json options are set.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
// program.json is set to true in programInit if any options that begin with 'json' are true
|
|
176
|
+
long: 'jsonAll',
|
|
177
|
+
short: 'j',
|
|
178
|
+
description: 'Output new package file instead of human-readable message.',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
long: 'jsonDeps',
|
|
182
|
+
description: 'Like `jsonAll` but only lists `dependencies`, `devDependencies`, `optionalDependencies`, etc of the new package data.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
long: 'jsonUpgraded',
|
|
186
|
+
description: 'Output upgraded dependencies in json.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
long: 'loglevel',
|
|
190
|
+
short: 'l',
|
|
191
|
+
arg: 'n',
|
|
192
|
+
description: 'Amount to log: silent, error, minimal, warn, info, verbose, silly.',
|
|
193
|
+
default: 'warn',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
short: 'm',
|
|
197
|
+
long: 'minimal',
|
|
198
|
+
description: 'Do not upgrade newer versions that are already satisfied by the version range according to semver.',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
short: 'n',
|
|
202
|
+
long: 'newest',
|
|
203
|
+
description: 'DEPRECATED. Renamed to "--target newest".',
|
|
204
|
+
deprecated: true,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
long: 'ownerChanged',
|
|
208
|
+
short: 'o',
|
|
209
|
+
description: 'DEPRECATED. Renamed to "--format ownerChanged".',
|
|
210
|
+
deprecated: true,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
long: 'packageData',
|
|
214
|
+
arg: 'value',
|
|
215
|
+
description: 'Package file data (you can also use stdin).',
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
long: 'packageFile',
|
|
219
|
+
arg: 'path|glob',
|
|
220
|
+
description: 'Package file(s) location (default: ./package.json).',
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
long: 'packageManager',
|
|
224
|
+
short: 'p',
|
|
225
|
+
arg: 'name',
|
|
226
|
+
// manual default to allow overriding auto yarn detection
|
|
227
|
+
description: 'npm, yarn (default: "npm")',
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
long: 'pre',
|
|
231
|
+
arg: 'n',
|
|
232
|
+
description: 'Include -alpha, -beta, -rc. (default: 0; default with --newest and --greatest: 1).',
|
|
233
|
+
type: 'boolean',
|
|
234
|
+
parse: s => !!parseInt(s, 10),
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
long: 'prefix',
|
|
238
|
+
arg: 'path',
|
|
239
|
+
description: 'Current working directory of npm.',
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
long: 'registry',
|
|
243
|
+
short: 'r',
|
|
244
|
+
arg: 'url',
|
|
245
|
+
description: 'Third-party npm registry.',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
long: 'reject',
|
|
249
|
+
short: 'x',
|
|
250
|
+
arg: 'matches',
|
|
251
|
+
description: 'Exclude packages matching the given string, wildcard, glob, comma-or-space-delimited list, or /regex/.',
|
|
252
|
+
type: 'string | string[] | RegExp | RegExp[]',
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
long: 'rejectVersion',
|
|
256
|
+
arg: 'matches',
|
|
257
|
+
description: 'Exclude package.json versions using comma-or-space-delimited list, or /regex/.',
|
|
258
|
+
type: 'string | string[] | RegExp | RegExp[]',
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
long: 'removeRange',
|
|
262
|
+
description: 'Remove version ranges from the final package version.'
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
long: 'semverLevel',
|
|
266
|
+
arg: 'value',
|
|
267
|
+
description: 'DEPRECATED. Renamed to --target.',
|
|
268
|
+
deprecated: true,
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
long: 'silent',
|
|
272
|
+
short: 's',
|
|
273
|
+
description: 'Don\'t output anything (--loglevel silent).',
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
long: 'target',
|
|
277
|
+
short: 't',
|
|
278
|
+
arg: 'value',
|
|
279
|
+
description: 'Target version to upgrade to: latest, newest, greatest, minor, patch. Run "ncu --help --target" for details.` (default: "latest")',
|
|
280
|
+
help: getHelpTargetTable(),
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
long: 'timeout',
|
|
284
|
+
arg: 'ms',
|
|
285
|
+
description: 'Global timeout in milliseconds. (default: no global timeout and 30 seconds per npm-registry-fetch).',
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
long: 'upgrade',
|
|
289
|
+
short: 'u',
|
|
290
|
+
description: 'Overwrite package file with upgraded versions instead of just outputting to console.',
|
|
291
|
+
},
|
|
292
|
+
];
|
|
293
|
+
const cliOptionsSorted = lodash_1.default.sortBy(cliOptions, 'long');
|
|
294
|
+
exports.default = cliOptionsSorted;
|
|
295
|
+
//# sourceMappingURL=cli-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../../src/cli-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const supportedVersionTargets: string[];
|
|
2
|
+
export declare const doctorHelpText = "Usage: ncu --doctor [-u] [options]\n\nIteratively installs upgrades and runs tests to identify breaking upgrades. Add \"-u\" to execute (modifies your package file, lock file, and node_modules).\n\nTo be more precise:\n1. Runs \"npm install\" and \"npm test\" to ensure tests are currently passing.\n2. Runs \"ncu -u\" to optimistically upgrade all dependencies.\n3. If tests pass, hurray!\n4. If tests fail, restores package file and lock file.\n5. For each dependency, install upgrade and run tests.\n6. Prints broken upgrades with test error.\n7. Saves working upgrades to package.json.\n\nExample:\n\n$ ncu --doctor -u\nRunning tests before upgrading\nnpm install\nnpm run test\nUpgrading all dependencies and re-running tests\nncu -u\nnpm install\nnpm run test\nTests failed\nIdentifying broken dependencies\nnpm install\nnpm install --no-save react@16.0.0\nnpm run test\n \u2713 react 15.0.0 \u2192 16.0.0\nnpm install --no-save react-redux@7.0.0\nnpm run test\n \u2717 react-redux 6.0.0 \u2192 7.0.0\n\n/projects/myproject/test.js:13\n throw new Error('Test failed!')\n ^\n\nnpm install --no-save react-dnd@11.1.3\nnpm run test\n \u2713 react-dnd 10.0.0 \u2192 11.1.3\nSaving partially upgraded package.json\n";
|
|
3
|
+
export declare const deepPatternPrefix = "**/";
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deepPatternPrefix = exports.doctorHelpText = exports.supportedVersionTargets = void 0;
|
|
4
|
+
exports.supportedVersionTargets = ['latest', 'newest', 'greatest', 'minor', 'patch'];
|
|
5
|
+
exports.doctorHelpText = `Usage: ncu --doctor [-u] [options]
|
|
4
6
|
|
|
5
7
|
Iteratively installs upgrades and runs tests to identify breaking upgrades. Add "-u" to execute (modifies your package file, lock file, and node_modules).
|
|
6
8
|
|
|
@@ -41,8 +43,6 @@ npm install --no-save react-dnd@11.1.3
|
|
|
41
43
|
npm run test
|
|
42
44
|
✓ react-dnd 10.0.0 → 11.1.3
|
|
43
45
|
Saving partially upgraded package.json
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
module.exports = { deepPatternPrefix, doctorHelpText, supportedVersionTargets }
|
|
46
|
+
`;
|
|
47
|
+
exports.deepPatternPrefix = '**/';
|
|
48
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE5E,QAAA,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC7B,CAAA;AAEY,QAAA,iBAAiB,GAAG,KAAK,CAAA"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
let chalk = require('chalk');
|
|
4
|
+
const rimraf = require('rimraf');
|
|
5
|
+
const upgradePackageData = require('./lib/upgradePackageData').default;
|
|
6
|
+
const { printUpgrades } = require('./logging');
|
|
7
|
+
const spawnYarn = require('./package-managers/yarn').default;
|
|
8
|
+
const spawnNpm = require('./package-managers/npm').default;
|
|
9
|
+
/** Run the npm CLI in CI mode. */
|
|
10
|
+
const npm = (args, options, print) => {
|
|
11
|
+
if (options.color) {
|
|
12
|
+
chalk = new chalk.Instance({ level: 1 });
|
|
13
|
+
}
|
|
14
|
+
if (print) {
|
|
15
|
+
console.log(chalk.blue([options.packageManager, ...args].join(' ')));
|
|
16
|
+
}
|
|
17
|
+
const spawnOptions = {
|
|
18
|
+
cwd: options.cwd || process.cwd(),
|
|
19
|
+
env: { ...process.env, CI: '1' },
|
|
20
|
+
...options
|
|
21
|
+
};
|
|
22
|
+
return (options.packageManager === 'yarn' ? spawnYarn : spawnNpm)(args, options, spawnOptions);
|
|
23
|
+
};
|
|
24
|
+
/** Load and validate package file and tests. */
|
|
25
|
+
const loadPackageFile = async (options) => {
|
|
26
|
+
let pkg, pkgFile;
|
|
27
|
+
// assert no --packageData or --packageFile
|
|
28
|
+
if (options.packageData || options.packageFile) {
|
|
29
|
+
throw new Error('--packageData and --packageFile are not allowed with --doctor. You must execute "ncu --doctor" in a directory with a package file so it can install dependencies and test them.');
|
|
30
|
+
}
|
|
31
|
+
// assert package.json
|
|
32
|
+
try {
|
|
33
|
+
pkgFile = fs.readFileSync('package.json', 'utf-8');
|
|
34
|
+
pkg = JSON.parse(pkgFile);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
throw new Error('Missing or invalid package.json');
|
|
38
|
+
}
|
|
39
|
+
// assert npm script "test"
|
|
40
|
+
if (!pkg.scripts || !pkg.scripts.test) {
|
|
41
|
+
throw new Error('No npm "test" script defined. You must define a "test" script in the "scripts" section of your package.json to use --doctor.');
|
|
42
|
+
}
|
|
43
|
+
return { pkg, pkgFile };
|
|
44
|
+
};
|
|
45
|
+
/** Iteratively installs upgrades and runs tests to identify breaking upgrades. */
|
|
46
|
+
// we have to pass run directly since it would be a circular require if doctor included this file
|
|
47
|
+
const doctor = async (run, options) => {
|
|
48
|
+
const lockFileName = options.packageManager === 'yarn' ? 'yarn.lock' : 'package-lock.json';
|
|
49
|
+
const { pkg, pkgFile } = await loadPackageFile(options);
|
|
50
|
+
const allDependencies = {
|
|
51
|
+
...pkg.dependencies,
|
|
52
|
+
...pkg.devDependencies,
|
|
53
|
+
...pkg.optionalDependencies,
|
|
54
|
+
...pkg.bundleDependencies,
|
|
55
|
+
};
|
|
56
|
+
console.log(`Running tests before upgrading`);
|
|
57
|
+
// install and load lock file
|
|
58
|
+
await npm(['install'], { packageManager: options.packageManager }, true);
|
|
59
|
+
let lockFile;
|
|
60
|
+
try {
|
|
61
|
+
lockFile = fs.readFileSync(lockFileName, 'utf-8');
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
}
|
|
65
|
+
// make sure current tests pass before we begin
|
|
66
|
+
try {
|
|
67
|
+
await npm(['run', 'test'], {
|
|
68
|
+
packageManager: options.packageManager,
|
|
69
|
+
stderr: data => console.error(chalk.red(data.toString()))
|
|
70
|
+
}, true);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
throw new Error('Tests failed before we even got started!');
|
|
74
|
+
}
|
|
75
|
+
console.log(`Upgrading all dependencies and re-running tests`);
|
|
76
|
+
// upgrade all dependencies
|
|
77
|
+
// save upgrades for later in case we need to iterate
|
|
78
|
+
console.log(chalk.blue('ncu ' + process.argv.slice(2).filter(arg => arg !== '--doctor').join(' ')));
|
|
79
|
+
const upgrades = await run({
|
|
80
|
+
...options,
|
|
81
|
+
silent: true,
|
|
82
|
+
doctor: false, // --doctor triggers the initial call to doctor, but the internal call executes npm-check-updates normally in order to upgrade the dependencies
|
|
83
|
+
});
|
|
84
|
+
if (Object.keys(upgrades).length === 0) {
|
|
85
|
+
console.log('All dependencies are up-to-date ' + chalk.green.bold(':)'));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// npm install
|
|
89
|
+
await npm(['install'], { packageManager: options.packageManager }, true);
|
|
90
|
+
// run tests on all upgrades
|
|
91
|
+
try {
|
|
92
|
+
await npm(['run', 'test'], {
|
|
93
|
+
packageManager: options.packageManager
|
|
94
|
+
}, true);
|
|
95
|
+
console.log(`${chalk.green('✓')} Tests pass`);
|
|
96
|
+
const numUpgraded = Object.keys(upgrades).length;
|
|
97
|
+
printUpgrades(options, {
|
|
98
|
+
current: allDependencies,
|
|
99
|
+
upgraded: upgrades,
|
|
100
|
+
numUpgraded,
|
|
101
|
+
total: numUpgraded
|
|
102
|
+
});
|
|
103
|
+
console.log('\nAll dependencies upgraded and installed ' + chalk.green(':)'));
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
console.error(chalk.red('Tests failed'));
|
|
107
|
+
console.log(`Identifying broken dependencies`);
|
|
108
|
+
// restore package file, lockFile and re-install
|
|
109
|
+
fs.writeFileSync('package.json', pkgFile);
|
|
110
|
+
if (lockFile) {
|
|
111
|
+
fs.writeFileSync(lockFileName, lockFile);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
rimraf.sync(lockFileName);
|
|
115
|
+
}
|
|
116
|
+
// save the last package file with passing tests
|
|
117
|
+
let lastPkgFile = pkgFile;
|
|
118
|
+
await npm(['install'], { packageManager: options.packageManager }, true);
|
|
119
|
+
// iterate upgrades
|
|
120
|
+
for (const [name, version] of Object.entries(upgrades)) { // eslint-disable-line fp/no-loops
|
|
121
|
+
// install single dependency
|
|
122
|
+
await npm([...options.packageManager === 'yarn' ? ['add'] : ['install', '--no-save'], `${name}@${version}`], { packageManager: options.packageManager }, true);
|
|
123
|
+
try {
|
|
124
|
+
await npm(['run', 'test'], { packageManager: options.packageManager }, true);
|
|
125
|
+
console.log(` ${chalk.green('✓')} ${name} ${allDependencies[name]} → ${version}`);
|
|
126
|
+
// save upgraded package data so that passing versions can still be saved even when there is a failure
|
|
127
|
+
lastPkgFile = (await upgradePackageData(lastPkgFile, { [name]: allDependencies[name] }, { [name]: version })).newPkgData;
|
|
128
|
+
// save working lock file
|
|
129
|
+
lockFile = fs.readFileSync(lockFileName, 'utf-8');
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
// print failing package
|
|
133
|
+
console.error(` ${chalk.red('✗')} ${name} ${allDependencies[name]} → ${version}\n`);
|
|
134
|
+
console.error(chalk.red(e));
|
|
135
|
+
// restore last good lock file
|
|
136
|
+
fs.writeFileSync(lockFileName, lockFile);
|
|
137
|
+
// restore package.json since yarn doesn't have --no-save option
|
|
138
|
+
if (options.packageManager === 'yarn') {
|
|
139
|
+
fs.writeFileSync('package.json', lastPkgFile);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// silently restore last passing package file and lock file
|
|
144
|
+
// only print message if package file is updated
|
|
145
|
+
if (lastPkgFile !== pkgFile) {
|
|
146
|
+
console.log('Saving partially upgraded package.json');
|
|
147
|
+
fs.writeFileSync('package.json', lastPkgFile);
|
|
148
|
+
}
|
|
149
|
+
// re-install from restored package.json and lockfile
|
|
150
|
+
await npm(['install'], { packageManager: options.packageManager }, true);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
module.exports = doctor;
|
|
154
|
+
//# sourceMappingURL=doctor.js.map
|