syncpack 8.4.11 → 8.5.14
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 +1 -1
- package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +3 -0
- package/dist/bin-fix-mismatches/fix-mismatches-cli.js +10 -0
- package/dist/bin-fix-mismatches/fix-mismatches.d.ts +2 -3
- package/dist/bin-fix-mismatches/fix-mismatches.js +19 -58
- package/dist/bin-fix-mismatches/index.js +3 -4
- package/dist/bin-format/format-cli.d.ts +3 -0
- package/dist/bin-format/format-cli.js +10 -0
- package/dist/bin-format/format.d.ts +2 -3
- package/dist/bin-format/format.js +10 -11
- package/dist/bin-format/index.js +3 -4
- package/dist/bin-lint-semver-ranges/index.js +3 -4
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +3 -0
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +10 -0
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -3
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +73 -27
- package/dist/bin-list/index.js +3 -4
- package/dist/bin-list/list-cli.d.ts +3 -0
- package/dist/bin-list/list-cli.js +10 -0
- package/dist/bin-list/list.d.ts +2 -3
- package/dist/bin-list/list.js +60 -35
- package/dist/bin-list-mismatches/index.js +3 -4
- package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +3 -0
- package/dist/bin-list-mismatches/list-mismatches-cli.js +10 -0
- package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -3
- package/dist/bin-list-mismatches/list-mismatches.js +75 -73
- package/dist/bin-set-semver-ranges/index.js +3 -4
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +3 -0
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +10 -0
- package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +2 -3
- package/dist/bin-set-semver-ranges/set-semver-ranges.js +5 -29
- package/dist/constants.d.ts +27 -21
- package/dist/constants.js +28 -32
- package/dist/lib/disk.d.ts +3 -3
- package/dist/lib/disk.js +0 -1
- package/dist/lib/exit-if-invalid.d.ts +2 -0
- package/dist/lib/exit-if-invalid.js +10 -0
- package/dist/lib/get-context/get-all-instances.d.ts +3 -0
- package/dist/lib/get-context/get-all-instances.js +8 -0
- package/dist/lib/get-context/get-config/config.d.ts +151 -0
- package/dist/{types/index.js → lib/get-context/get-config/config.js} +0 -0
- package/dist/lib/get-context/get-config/index.d.ts +8 -0
- package/dist/lib/{get-input/get-config.js → get-context/get-config/index.js} +35 -10
- package/dist/lib/get-context/get-config/internal-config.d.ts +24 -0
- package/dist/{types/semver-group.js → lib/get-context/get-config/internal-config.js} +0 -0
- package/dist/lib/get-context/get-groups/get-semver-groups.d.ts +4 -0
- package/dist/lib/get-context/get-groups/get-semver-groups.js +45 -0
- package/dist/lib/get-context/get-groups/get-version-groups.d.ts +4 -0
- package/dist/lib/get-context/get-groups/get-version-groups.js +71 -0
- package/dist/lib/get-context/get-groups/semver-group/index.d.ts +30 -0
- package/dist/lib/get-context/get-groups/semver-group/index.js +33 -0
- package/dist/lib/get-context/get-groups/version-group/index.d.ts +30 -0
- package/dist/lib/get-context/get-groups/version-group/index.js +23 -0
- package/dist/{bin-fix-mismatches/get-expected-version → lib/get-context/get-groups/version-group/instance-group}/get-highest-version.d.ts +0 -0
- package/dist/{bin-fix-mismatches/get-expected-version → lib/get-context/get-groups/version-group/instance-group}/get-highest-version.js +10 -10
- package/dist/lib/get-context/get-groups/version-group/instance-group/index.d.ts +32 -0
- package/dist/lib/get-context/get-groups/version-group/instance-group/index.js +79 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-file-paths.d.ts +3 -3
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-file-paths.js +7 -2
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-lerna-patterns.d.ts +1 -1
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-lerna-patterns.js +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-pnpm-patterns.d.ts +1 -1
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-pnpm-patterns.js +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-yarn-patterns.d.ts +1 -1
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-yarn-patterns.js +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/index.d.ts +3 -3
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/index.js +1 -1
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/props.d.ts +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/props.js +0 -0
- package/dist/lib/get-context/get-package-json-files/get-patterns/read-json-safe.d.ts +11 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/read-json-safe.js +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/read-yaml-safe.d.ts +1 -1
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/read-yaml-safe.js +0 -0
- package/dist/lib/get-context/get-package-json-files/index.d.ts +5 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/index.js +8 -8
- package/dist/lib/get-context/get-package-json-files/package-json-file/index.d.ts +50 -0
- package/dist/lib/get-context/get-package-json-files/package-json-file/index.js +95 -0
- package/dist/lib/get-context/get-package-json-files/package-json-file/instance.d.ts +25 -0
- package/dist/lib/get-context/get-package-json-files/package-json-file/instance.js +46 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/tap.d.ts +1 -1
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/tap.js +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/try-catch.d.ts +0 -0
- package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/try-catch.js +0 -0
- package/dist/lib/get-context/index.d.ts +22 -0
- package/dist/lib/get-context/index.js +38 -0
- package/dist/lib/is-semver.d.ts +1 -1
- package/dist/lib/is-semver.js +9 -9
- package/dist/lib/log.d.ts +6 -0
- package/dist/lib/log.js +40 -1
- package/dist/lib/newlines.d.ts +6 -0
- package/dist/lib/newlines.js +24 -0
- package/dist/lib/set-semver-range.d.ts +1 -1
- package/dist/lib/set-semver-range.js +1 -1
- package/dist/lib/write-if-changed.d.ts +2 -0
- package/dist/lib/write-if-changed.js +40 -0
- package/dist/option.d.ts +2 -1
- package/dist/option.js +4 -2
- package/package.json +21 -21
- package/dist/bin-fix-mismatches/get-expected-version/get-pinned-version.d.ts +0 -2
- package/dist/bin-fix-mismatches/get-expected-version/get-pinned-version.js +0 -7
- package/dist/bin-fix-mismatches/get-expected-version/get-workspace-version.d.ts +0 -6
- package/dist/bin-fix-mismatches/get-expected-version/get-workspace-version.js +0 -17
- package/dist/bin-fix-mismatches/get-expected-version/index.d.ts +0 -3
- package/dist/bin-fix-mismatches/get-expected-version/index.js +0 -27
- package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.d.ts +0 -2
- package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.js +0 -12
- package/dist/bin-list/list-version-groups.d.ts +0 -10
- package/dist/bin-list/list-version-groups.js +0 -52
- package/dist/lib/collect.d.ts +0 -1
- package/dist/lib/collect.js +0 -7
- package/dist/lib/get-input/get-config.d.ts +0 -12
- package/dist/lib/get-input/get-instances.d.ts +0 -29
- package/dist/lib/get-input/get-instances.js +0 -172
- package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.d.ts +0 -4
- package/dist/lib/get-input/get-wrappers/index.d.ts +0 -38
- package/dist/lib/get-input/get-wrappers/readonly.d.ts +0 -4
- package/dist/lib/get-input/get-wrappers/readonly.js +0 -10
- package/dist/lib/get-input/index.d.ts +0 -20
- package/dist/lib/get-input/index.js +0 -32
- package/dist/lib/group-by.d.ts +0 -1
- package/dist/lib/group-by.js +0 -11
- package/dist/lib/write-if-changed/index.d.ts +0 -10
- package/dist/lib/write-if-changed/index.js +0 -25
- package/dist/lib/write-if-changed/set-newlines.d.ts +0 -4
- package/dist/lib/write-if-changed/set-newlines.js +0 -24
- package/dist/types/index.d.ts +0 -77
- package/dist/types/semver-group.d.ts +0 -30
- package/dist/types/version-group.d.ts +0 -35
- package/dist/types/version-group.js +0 -2
|
@@ -37,9 +37,8 @@ exports.__esModule = true;
|
|
|
37
37
|
var chalk_1 = __importDefault(require("chalk"));
|
|
38
38
|
var commander_1 = require("commander");
|
|
39
39
|
var disk_1 = require("../lib/disk");
|
|
40
|
-
var get_input_1 = require("../lib/get-input");
|
|
41
40
|
var option_1 = require("../option");
|
|
42
|
-
var
|
|
41
|
+
var list_mismatches_cli_1 = require("./list-mismatches-cli");
|
|
43
42
|
commander_1.program.description("\n List dependencies which are required by multiple packages, where the version\n is not the same across every package.".replace(/^\n/, ''));
|
|
44
43
|
commander_1.program.on('--help', function () {
|
|
45
44
|
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack list-mismatches\n {dim # uses packages defined by --source when provided}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack list-mismatches --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack list-mismatches --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack list-mismatches --dev --peer\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack list-mismatches\n {dim # uses packages defined by --source when provided}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack list-mismatches --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack list-mismatches --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack list-mismatches --dev --peer\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
|
|
@@ -54,7 +53,7 @@ commander_1.program.on('--help', function () {
|
|
|
54
53
|
.option.apply(_c, __spreadArray([], __read(option_1.option.resolutions), false)))
|
|
55
54
|
.option.apply(_b, __spreadArray([], __read(option_1.option.overrides), false)))
|
|
56
55
|
.option.apply(_a, __spreadArray([], __read(option_1.option.workspace), false)).parse(process.argv);
|
|
57
|
-
(0,
|
|
56
|
+
(0, list_mismatches_cli_1.listMismatchesCli)({
|
|
58
57
|
configPath: commander_1.program.opts().config,
|
|
59
58
|
dev: commander_1.program.opts().dev,
|
|
60
59
|
filter: commander_1.program.opts().filter,
|
|
@@ -65,5 +64,5 @@ commander_1.program.on('--help', function () {
|
|
|
65
64
|
resolutions: commander_1.program.opts().resolutions,
|
|
66
65
|
source: commander_1.program.opts().source,
|
|
67
66
|
workspace: commander_1.program.opts().workspace
|
|
68
|
-
}
|
|
67
|
+
}, disk_1.disk);
|
|
69
68
|
var templateObject_1;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.listMismatchesCli = void 0;
|
|
4
|
+
var exit_if_invalid_1 = require("../lib/exit-if-invalid");
|
|
5
|
+
var get_context_1 = require("../lib/get-context");
|
|
6
|
+
var list_mismatches_1 = require("./list-mismatches");
|
|
7
|
+
function listMismatchesCli(input, disk) {
|
|
8
|
+
(0, exit_if_invalid_1.exitIfInvalid)((0, list_mismatches_1.listMismatches)((0, get_context_1.getContext)(input, disk)));
|
|
9
|
+
}
|
|
10
|
+
exports.listMismatchesCli = listMismatchesCli;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare function listMismatches(input: ProgramInput, disk: Disk): void;
|
|
1
|
+
import type { Context } from '../lib/get-context';
|
|
2
|
+
export declare function listMismatches(ctx: Context): Context;
|
|
@@ -3,16 +3,28 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
|
|
|
3
3
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
4
|
return cooked;
|
|
5
5
|
};
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
16
28
|
};
|
|
17
29
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
30
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -20,78 +32,68 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
20
32
|
exports.__esModule = true;
|
|
21
33
|
exports.listMismatches = void 0;
|
|
22
34
|
var chalk_1 = __importDefault(require("chalk"));
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var e_1, _b;
|
|
45
|
-
var instances = _a.instances, isBanned = _a.isBanned, name = _a.name;
|
|
46
|
-
var workspaceMatch = null;
|
|
47
|
-
var expected = (0, get_expected_version_1.getExpectedVersion)(name, versionGroup, input);
|
|
48
|
-
try {
|
|
49
|
-
for (var instances_1 = __values(instances), instances_1_1 = instances_1.next(); !instances_1_1.done; instances_1_1 = instances_1.next()) {
|
|
50
|
-
var instance = instances_1_1.value;
|
|
51
|
-
var isMatch = instance.version === expected;
|
|
52
|
-
var isWorkspace = instance.dependencyType === 'workspace';
|
|
53
|
-
if (isMatch && isWorkspace) {
|
|
54
|
-
workspaceMatch = instance;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
59
|
-
finally {
|
|
60
|
-
try {
|
|
61
|
-
if (instances_1_1 && !instances_1_1.done && (_b = instances_1["return"])) _b.call(instances_1);
|
|
62
|
-
}
|
|
63
|
-
finally { if (e_1) throw e_1.error; }
|
|
64
|
-
}
|
|
35
|
+
var log = __importStar(require("../lib/log"));
|
|
36
|
+
function listMismatches(ctx) {
|
|
37
|
+
ctx.versionGroups.reverse().forEach(function (versionGroup, i) {
|
|
38
|
+
var invalidGroups = versionGroup.getInvalidInstanceGroups();
|
|
39
|
+
// Nothing to do if there are no mismatches
|
|
40
|
+
if (invalidGroups.length === 0)
|
|
41
|
+
return;
|
|
42
|
+
// Record that this project has mismatches, so that eg. the CLI can exit
|
|
43
|
+
// with the correct status code.
|
|
44
|
+
ctx.isInvalid = true;
|
|
45
|
+
// Annotate user-defined version groups
|
|
46
|
+
if (!versionGroup.isDefault)
|
|
47
|
+
log.versionGroupHeader(i);
|
|
48
|
+
// Log the mismatches
|
|
49
|
+
invalidGroups.forEach(function (instanceGroup) {
|
|
50
|
+
var name = instanceGroup.name;
|
|
51
|
+
var workspaceInstance = instanceGroup.getWorkspaceInstance();
|
|
52
|
+
var expected = instanceGroup.getExpectedVersion() || 'nice b';
|
|
53
|
+
var isBanned = instanceGroup.versionGroup.isBanned;
|
|
54
|
+
var isUnpinned = instanceGroup.isUnpinned;
|
|
55
|
+
// Log the dependency name
|
|
65
56
|
if (isBanned) {
|
|
66
|
-
|
|
57
|
+
logBanned(name);
|
|
67
58
|
}
|
|
68
|
-
else if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
59
|
+
else if (isUnpinned) {
|
|
60
|
+
logPinVersionMismatch(name, instanceGroup);
|
|
61
|
+
}
|
|
62
|
+
else if (workspaceInstance) {
|
|
63
|
+
logWorkspaceMismatch(workspaceInstance, expected, name);
|
|
72
64
|
}
|
|
73
65
|
else {
|
|
74
|
-
|
|
75
|
-
console.log((0, chalk_1["default"])(templateObject_6 || (templateObject_6 = __makeTemplateObject(["{dim -} ", "", ""], ["{dim -} ", "", ""])), name, reason));
|
|
66
|
+
logHighestVersionMismatch(expected, name);
|
|
76
67
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var shortPath = (0, path_1.relative)(constants_1.CWD, wrapper.filePath);
|
|
82
|
-
var loc = isLocal ? 'version' : dependencyType;
|
|
83
|
-
if (isMatch) {
|
|
84
|
-
console.log((0, chalk_1["default"])(templateObject_7 || (templateObject_7 = __makeTemplateObject(["{green ", " in ", " of ", "}"], ["{green ", " in ", " of ", "}"])), version, loc, shortPath));
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
console.log((0, chalk_1["default"])(templateObject_8 || (templateObject_8 = __makeTemplateObject(["{red ", " in ", " of ", "}"], ["{red ", " in ", " of ", "}"])), version, loc, shortPath));
|
|
68
|
+
// Log each of the dependencies mismatches
|
|
69
|
+
instanceGroup.instances.forEach(function (instance) {
|
|
70
|
+
if (instance.version !== expected) {
|
|
71
|
+
logVersionMismatch(instance);
|
|
88
72
|
}
|
|
89
73
|
});
|
|
90
74
|
});
|
|
91
75
|
});
|
|
92
|
-
|
|
93
|
-
|
|
76
|
+
return ctx;
|
|
77
|
+
function logBanned(name) {
|
|
78
|
+
log.invalid(name, 'is banned in this version group');
|
|
79
|
+
}
|
|
80
|
+
function logPinVersionMismatch(name, instanceGroup) {
|
|
81
|
+
var pinVersion = instanceGroup.versionGroup.pinVersion;
|
|
82
|
+
log.invalid(name, (0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["is pinned in this version group at {reset.green ", "}"], ["is pinned in this version group at {reset.green ", "}"])), pinVersion));
|
|
83
|
+
}
|
|
84
|
+
function logWorkspaceMismatch(workspaceInstance, expected, name) {
|
|
85
|
+
var shortPath = workspaceInstance.packageJsonFile.shortPath;
|
|
86
|
+
log.invalid(name, (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{reset.green ", "} {dim is developed in this repo at ", "}"], ["{reset.green ", "} {dim is developed in this repo at ", "}"])), expected, shortPath));
|
|
87
|
+
}
|
|
88
|
+
function logHighestVersionMismatch(expected, name) {
|
|
89
|
+
log.invalid(name, (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{reset.green ", "} {dim is the highest valid semver version in use}"], ["{reset.green ", "} {dim is the highest valid semver version in use}"])), expected));
|
|
90
|
+
}
|
|
91
|
+
function logVersionMismatch(instance) {
|
|
92
|
+
var type = instance.dependencyType;
|
|
93
|
+
var shortPath = instance.packageJsonFile.shortPath;
|
|
94
|
+
var actual = instance.version;
|
|
95
|
+
console.log((0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject([" {red ", "} {dim in ", " of ", "}"], [" {red ", "} {dim in ", " of ", "}"])), actual, type, shortPath));
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
exports.listMismatches = listMismatches;
|
|
97
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4
|
|
99
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -37,9 +37,8 @@ exports.__esModule = true;
|
|
|
37
37
|
var chalk_1 = __importDefault(require("chalk"));
|
|
38
38
|
var commander_1 = require("commander");
|
|
39
39
|
var disk_1 = require("../lib/disk");
|
|
40
|
-
var get_input_1 = require("../lib/get-input");
|
|
41
40
|
var option_1 = require("../option");
|
|
42
|
-
var
|
|
41
|
+
var set_semver_ranges_cli_1 = require("./set-semver-ranges-cli");
|
|
43
42
|
commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Ensure dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."], ["\n Ensure dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."]))).replace(/^\n/, ''));
|
|
44
43
|
commander_1.program.on('--help', function () {
|
|
45
44
|
console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack set-semver-ranges\n {dim # uses packages defined by --source when provided}\n syncpack set-semver-ranges --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack set-semver-ranges --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack set-semver-ranges --filter {yellow \"typescript|tslint\"}\n {dim # use ~ range instead of default \"\"}\n syncpack set-semver-ranges --semver-range ~\n {dim # set ~ range in \"devDependencies\"}\n syncpack set-semver-ranges --dev --semver-range ~\n {dim # set ~ range in \"devDependencies\" and \"peerDependencies\"}\n syncpack set-semver-ranges --dev --peer --semver-range ~\n {dim # indent package.json with 4 spaces instead of 2}\n syncpack set-semver-ranges --indent {yellow \" \"}\n\nSupported Ranges:\n < {dim <1.4.2}\n <= {dim <=1.4.2}\n \"\" {dim 1.4.2}\n ~ {dim ~1.4.2}\n ^ {dim ^1.4.2}\n >= {dim >=1.4.2}\n > {dim >1.4.2}\n * {dim *}\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack set-semver-ranges\n {dim # uses packages defined by --source when provided}\n syncpack set-semver-ranges --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack set-semver-ranges --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack set-semver-ranges --filter {yellow \"typescript|tslint\"}\n {dim # use ~ range instead of default \"\"}\n syncpack set-semver-ranges --semver-range ~\n {dim # set ~ range in \"devDependencies\"}\n syncpack set-semver-ranges --dev --semver-range ~\n {dim # set ~ range in \"devDependencies\" and \"peerDependencies\"}\n syncpack set-semver-ranges --dev --peer --semver-range ~\n {dim # indent package.json with 4 spaces instead of 2}\n syncpack set-semver-ranges --indent {yellow \" \"}\n\nSupported Ranges:\n < {dim <1.4.2}\n <= {dim <=1.4.2}\n \"\" {dim 1.4.2}\n ~ {dim ~1.4.2}\n ^ {dim ^1.4.2}\n >= {dim >=1.4.2}\n > {dim >1.4.2}\n * {dim *}\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
|
|
@@ -56,7 +55,7 @@ commander_1.program.on('--help', function () {
|
|
|
56
55
|
.option.apply(_c, __spreadArray([], __read(option_1.option.overrides), false)))
|
|
57
56
|
.option.apply(_b, __spreadArray([], __read(option_1.option.workspace), false)))
|
|
58
57
|
.option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
|
|
59
|
-
(0,
|
|
58
|
+
(0, set_semver_ranges_cli_1.setSemverRangesCli)({
|
|
60
59
|
configPath: commander_1.program.opts().config,
|
|
61
60
|
dev: commander_1.program.opts().dev,
|
|
62
61
|
filter: commander_1.program.opts().filter,
|
|
@@ -69,5 +68,5 @@ commander_1.program.on('--help', function () {
|
|
|
69
68
|
semverRange: commander_1.program.opts().semverRange,
|
|
70
69
|
source: commander_1.program.opts().source,
|
|
71
70
|
workspace: commander_1.program.opts().workspace
|
|
72
|
-
}
|
|
71
|
+
}, disk_1.disk);
|
|
73
72
|
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.setSemverRangesCli = void 0;
|
|
4
|
+
var get_context_1 = require("../lib/get-context");
|
|
5
|
+
var write_if_changed_1 = require("../lib/write-if-changed");
|
|
6
|
+
var set_semver_ranges_1 = require("./set-semver-ranges");
|
|
7
|
+
function setSemverRangesCli(input, disk) {
|
|
8
|
+
(0, write_if_changed_1.writeIfChanged)((0, set_semver_ranges_1.setSemverRanges)((0, get_context_1.getContext)(input, disk)));
|
|
9
|
+
}
|
|
10
|
+
exports.setSemverRangesCli = setSemverRangesCli;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare const setSemverRanges: (input: ProgramInput, disk: Disk) => void;
|
|
1
|
+
import type { Context } from '../lib/get-context';
|
|
2
|
+
export declare const setSemverRanges: (ctx: Context) => Context;
|
|
@@ -1,36 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
exports.__esModule = true;
|
|
3
3
|
exports.setSemverRanges = void 0;
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var setSemverRanges = function (input, disk) {
|
|
9
|
-
input.instances.semverGroups.reverse().forEach(function (semverGroup) {
|
|
10
|
-
if ('range' in semverGroup && (0, is_semver_1.isValidSemverRange)(semverGroup.range)) {
|
|
11
|
-
var mismatches = (0, list_semver_group_mismatches_1.listSemverGroupMismatches)(semverGroup);
|
|
12
|
-
mismatches.forEach(function (_a) {
|
|
13
|
-
var dependencyType = _a.dependencyType, name = _a.name, version = _a.version, wrapper = _a.wrapper;
|
|
14
|
-
if (dependencyType === 'workspace')
|
|
15
|
-
return;
|
|
16
|
-
var root = wrapper.contents;
|
|
17
|
-
var nextVersion = (0, set_semver_range_1.setSemverRange)(semverGroup.range, version);
|
|
18
|
-
if (dependencyType === 'pnpmOverrides') {
|
|
19
|
-
root.pnpm.overrides[name] = nextVersion;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
root[dependencyType][name] = nextVersion;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
input.wrappers.forEach(function (wrapper) {
|
|
28
|
-
(0, write_if_changed_1.writeIfChanged)(disk, {
|
|
29
|
-
contents: wrapper.contents,
|
|
30
|
-
filePath: wrapper.filePath,
|
|
31
|
-
indent: input.indent,
|
|
32
|
-
json: wrapper.json
|
|
4
|
+
var setSemverRanges = function (ctx) {
|
|
5
|
+
ctx.semverGroups.reverse().forEach(function (semverGroup) {
|
|
6
|
+
semverGroup.instances.forEach(function (instance) {
|
|
7
|
+
instance.setRange(semverGroup.range);
|
|
33
8
|
});
|
|
34
9
|
});
|
|
10
|
+
return ctx;
|
|
35
11
|
};
|
|
36
12
|
exports.setSemverRanges = setSemverRanges;
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare const DEPENDENCY_TYPES: DependencyType[];
|
|
1
|
+
import type { Config } from './lib/get-context/get-config/config';
|
|
2
|
+
/** Single source of truth, intended to aid testing or to override */
|
|
4
3
|
export declare const CWD: string;
|
|
5
|
-
|
|
6
|
-
export declare const
|
|
7
|
-
|
|
8
|
-
export declare const RANGE_ANY = "*";
|
|
9
|
-
export declare const RANGE_EXACT = "";
|
|
10
|
-
export declare const RANGE_GT = ">";
|
|
11
|
-
export declare const RANGE_GTE = ">=";
|
|
12
|
-
export declare const RANGE_LOOSE = ".x";
|
|
13
|
-
export declare const RANGE_LT = "<";
|
|
14
|
-
export declare const RANGE_LTE = "<=";
|
|
15
|
-
export declare const RANGE_MINOR = "^";
|
|
16
|
-
export declare const RANGE_PATCH = "~";
|
|
17
|
-
export declare const SEMVER_ORDER: ValidRange[];
|
|
4
|
+
/** Where to search for packages if none are provided by the user */
|
|
5
|
+
export declare const DEFAULT_SOURCES: string[];
|
|
6
|
+
/** Single source of truth for icons used in output */
|
|
18
7
|
export declare const ICON: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
readonly rightArrow: "→";
|
|
9
|
+
readonly cross: "✘";
|
|
10
|
+
readonly debug: "?";
|
|
11
|
+
readonly skip: "-";
|
|
12
|
+
readonly tick: "✓";
|
|
23
13
|
};
|
|
24
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Aliases for locations of versions within package.json files, it is looped
|
|
16
|
+
* over by each command to operate on each are as defined by the user.
|
|
17
|
+
*/
|
|
18
|
+
export declare const ALL_DEPENDENCY_TYPES: readonly ["dependencies", "devDependencies", "overrides", "peerDependencies", "pnpmOverrides", "resolutions", "workspace"];
|
|
19
|
+
export declare const RANGE: {
|
|
20
|
+
readonly ANY: "*";
|
|
21
|
+
readonly EXACT: "";
|
|
22
|
+
readonly GT: ">";
|
|
23
|
+
readonly GTE: ">=";
|
|
24
|
+
readonly LOOSE: ".x";
|
|
25
|
+
readonly LT: "<";
|
|
26
|
+
readonly LTE: "<=";
|
|
27
|
+
readonly MINOR: "^";
|
|
28
|
+
readonly PATCH: "~";
|
|
29
|
+
};
|
|
30
|
+
export declare const DEFAULT_CONFIG: Config.RcFile;
|
package/dist/constants.js
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
exports.__esModule = true;
|
|
3
|
-
exports.DEFAULT_CONFIG = exports.
|
|
4
|
-
|
|
5
|
-
exports.
|
|
3
|
+
exports.DEFAULT_CONFIG = exports.RANGE = exports.ALL_DEPENDENCY_TYPES = exports.ICON = exports.DEFAULT_SOURCES = exports.CWD = void 0;
|
|
4
|
+
/** Single source of truth, intended to aid testing or to override */
|
|
5
|
+
exports.CWD = process.cwd();
|
|
6
|
+
/** Where to search for packages if none are provided by the user */
|
|
7
|
+
exports.DEFAULT_SOURCES = ['package.json', 'packages/*/package.json'];
|
|
8
|
+
/** Single source of truth for icons used in output */
|
|
9
|
+
exports.ICON = {
|
|
10
|
+
rightArrow: '→',
|
|
11
|
+
cross: '✘',
|
|
12
|
+
debug: '?',
|
|
13
|
+
skip: '-',
|
|
14
|
+
tick: '✓'
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Aliases for locations of versions within package.json files, it is looped
|
|
18
|
+
* over by each command to operate on each are as defined by the user.
|
|
19
|
+
*/
|
|
20
|
+
exports.ALL_DEPENDENCY_TYPES = [
|
|
6
21
|
'dependencies',
|
|
7
22
|
'devDependencies',
|
|
8
23
|
'overrides',
|
|
@@ -11,37 +26,18 @@ exports.DEPENDENCY_TYPES = [
|
|
|
11
26
|
'resolutions',
|
|
12
27
|
'workspace',
|
|
13
28
|
];
|
|
14
|
-
exports.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
exports.RANGE_LTE = '<=';
|
|
25
|
-
exports.RANGE_MINOR = '^';
|
|
26
|
-
exports.RANGE_PATCH = '~';
|
|
27
|
-
exports.SEMVER_ORDER = [
|
|
28
|
-
exports.RANGE_LT,
|
|
29
|
-
exports.RANGE_LTE,
|
|
30
|
-
exports.RANGE_EXACT,
|
|
31
|
-
exports.RANGE_PATCH,
|
|
32
|
-
exports.RANGE_MINOR,
|
|
33
|
-
exports.RANGE_GTE,
|
|
34
|
-
exports.RANGE_GT,
|
|
35
|
-
exports.RANGE_ANY,
|
|
36
|
-
];
|
|
37
|
-
exports.ICON = {
|
|
38
|
-
cross: '✘',
|
|
39
|
-
debug: '?',
|
|
40
|
-
skip: '-',
|
|
41
|
-
tick: '✓'
|
|
29
|
+
exports.RANGE = {
|
|
30
|
+
ANY: '*',
|
|
31
|
+
EXACT: '',
|
|
32
|
+
GT: '>',
|
|
33
|
+
GTE: '>=',
|
|
34
|
+
LOOSE: '.x',
|
|
35
|
+
LT: '<',
|
|
36
|
+
LTE: '<=',
|
|
37
|
+
MINOR: '^',
|
|
38
|
+
PATCH: '~'
|
|
42
39
|
};
|
|
43
40
|
exports.DEFAULT_CONFIG = {
|
|
44
|
-
dependencyTypes: [],
|
|
45
41
|
dev: true,
|
|
46
42
|
filter: '.',
|
|
47
43
|
indent: ' ',
|
package/dist/lib/disk.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export
|
|
1
|
+
import type { Config } from './get-context/get-config/config';
|
|
2
|
+
export type Disk = typeof disk;
|
|
3
3
|
export declare const disk: {
|
|
4
4
|
readonly process: {
|
|
5
5
|
readonly exit: (code: number) => void;
|
|
6
6
|
};
|
|
7
7
|
readonly globSync: (pattern: string) => string[];
|
|
8
|
-
readonly readConfigFileSync: (configPath?: string) => Partial<
|
|
8
|
+
readonly readConfigFileSync: (configPath?: string) => Partial<Config.RcFile>;
|
|
9
9
|
readonly readFileSync: (filePath: string) => string;
|
|
10
10
|
readonly readYamlFileSync: <T = unknown>(filePath: string) => T;
|
|
11
11
|
readonly removeSync: (filePath: string) => void;
|
package/dist/lib/disk.js
CHANGED
|
@@ -34,7 +34,6 @@ exports.disk = {
|
|
|
34
34
|
var rcPath_1 = (0, path_1.join)(constants_1.CWD, 'package.json');
|
|
35
35
|
var pjson = (0, fs_extra_1.readJsonSync)(rcPath_1, { throws: false });
|
|
36
36
|
var rcConfig_1 = (_a = pjson === null || pjson === void 0 ? void 0 : pjson.config) === null || _a === void 0 ? void 0 : _a.syncpack;
|
|
37
|
-
console.log(rcConfig_1);
|
|
38
37
|
if ((0, expect_more_1.isNonEmptyObject)(rcConfig_1))
|
|
39
38
|
return rcConfig_1;
|
|
40
39
|
(0, log_1.verbose)('no config file found');
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getAllInstances = void 0;
|
|
4
|
+
var sort_by_name_1 = require("../sort-by-name");
|
|
5
|
+
function getAllInstances(packageJsonFiles) {
|
|
6
|
+
return packageJsonFiles.flatMap(function (pkg) { return pkg.getInstances(); }).sort(sort_by_name_1.sortByName);
|
|
7
|
+
}
|
|
8
|
+
exports.getAllInstances = getAllInstances;
|