syncpack 6.2.1 → 7.2.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 +122 -58
- package/dist/bin-fix-mismatches/fix-mismatches.js +13 -0
- package/dist/bin-fix-mismatches/get-expected-version/index.d.ts +1 -1
- package/dist/bin-fix-mismatches/get-expected-version/index.js +12 -8
- package/dist/bin-fix-mismatches/index.js +9 -5
- package/dist/bin-format/index.js +5 -5
- package/dist/bin-lint-semver-ranges/index.js +16 -12
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -1
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +2 -2
- package/dist/bin-list/index.js +10 -6
- package/dist/bin-list/list-version-groups.d.ts +2 -2
- package/dist/bin-list/list-version-groups.js +9 -5
- package/dist/bin-list/list.d.ts +2 -1
- package/dist/bin-list/list.js +7 -6
- package/dist/bin-list-mismatches/index.js +10 -6
- package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -1
- package/dist/bin-list-mismatches/list-mismatches.js +15 -6
- package/dist/bin-set-semver-ranges/index.js +16 -12
- package/dist/constants.d.ts +11 -2
- package/dist/constants.js +2 -0
- package/dist/lib/disk.d.ts +4 -1
- package/dist/lib/disk.js +25 -6
- package/dist/lib/get-input/get-config.d.ts +4 -1
- package/dist/lib/get-input/get-config.js +8 -2
- package/dist/lib/get-input/get-instances.js +42 -26
- package/dist/lib/get-input/get-wrappers/get-file-paths.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/get-lerna-patterns.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/get-pnpm-patterns.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/get-yarn-patterns.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/index.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/props.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.js +5 -1
- package/dist/lib/get-input/get-wrappers/get-patterns/read-yaml-safe.js +5 -1
- package/dist/lib/get-input/get-wrappers/index.js +6 -2
- package/dist/lib/get-input/get-wrappers/tap.js +7 -8
- package/dist/lib/get-input/index.d.ts +4 -2
- package/dist/lib/get-input/index.js +2 -3
- package/dist/lib/log.d.ts +1 -0
- package/dist/lib/log.js +13 -0
- package/dist/option.d.ts +2 -0
- package/dist/option.js +4 -2
- package/package.json +17 -17
package/dist/bin-list/list.d.ts
CHANGED
package/dist/bin-list/list.js
CHANGED
|
@@ -10,7 +10,7 @@ exports.__esModule = true;
|
|
|
10
10
|
exports.list = void 0;
|
|
11
11
|
var chalk_1 = __importDefault(require("chalk"));
|
|
12
12
|
var list_version_groups_1 = require("./list-version-groups");
|
|
13
|
-
function list(input) {
|
|
13
|
+
function list(input, disk) {
|
|
14
14
|
var isInvalid = false;
|
|
15
15
|
/**
|
|
16
16
|
* Reverse the list so the default/ungrouped version group is rendered first
|
|
@@ -24,10 +24,11 @@ function list(input) {
|
|
|
24
24
|
console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Version Group ", " ", "}"], ["{dim = Version Group ", " ", "}"])), i, '='.repeat(63)));
|
|
25
25
|
}
|
|
26
26
|
groups.forEach(function (_a) {
|
|
27
|
-
var hasMismatches = _a.hasMismatches, name = _a.name, uniques = _a.uniques;
|
|
27
|
+
var hasMismatches = _a.hasMismatches, isBanned = _a.isBanned, name = _a.name, uniques = _a.uniques;
|
|
28
28
|
var versionList = uniques.sort().join(', ');
|
|
29
|
-
console.log(
|
|
30
|
-
? (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red \u2715 ", "} {dim.red
|
|
29
|
+
console.log(isBanned
|
|
30
|
+
? (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red \u2715 ", "} {dim.red remove this dependency}"], ["{red \u2715 ", "} {dim.red remove this dependency}"])), name) : hasMismatches
|
|
31
|
+
? (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{red \u2715 ", "} {dim.red ", "}"], ["{red \u2715 ", "} {dim.red ", "}"])), name, versionList) : (0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{dim -} {white ", "} {dim ", "}"], ["{dim -} {white ", "} {dim ", "}"])), name, versionList));
|
|
31
32
|
});
|
|
32
33
|
if (groups.some(function (_a) {
|
|
33
34
|
var hasMismatches = _a.hasMismatches;
|
|
@@ -37,8 +38,8 @@ function list(input) {
|
|
|
37
38
|
}
|
|
38
39
|
});
|
|
39
40
|
if (isInvalid) {
|
|
40
|
-
process.exit(1);
|
|
41
|
+
disk.process.exit(1);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
exports.list = list;
|
|
44
|
-
var templateObject_1, templateObject_2, templateObject_3;
|
|
45
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -32,33 +32,37 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
32
32
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
33
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
34
|
};
|
|
35
|
-
var _a, _b, _c, _d, _e, _f;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
36
36
|
exports.__esModule = true;
|
|
37
37
|
var chalk_1 = __importDefault(require("chalk"));
|
|
38
38
|
var commander_1 = require("commander");
|
|
39
|
-
var option_1 = require("../option");
|
|
40
39
|
var disk_1 = require("../lib/disk");
|
|
41
40
|
var get_input_1 = require("../lib/get-input");
|
|
41
|
+
var option_1 = require("../option");
|
|
42
42
|
var list_mismatches_1 = require("./list-mismatches");
|
|
43
43
|
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
44
|
commander_1.program.on('--help', function () {
|
|
45
45
|
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"]))));
|
|
46
46
|
});
|
|
47
|
-
(_a = (_b = (_c = (_d = (_e = (_f = commander_1.program
|
|
47
|
+
(_a = (_b = (_c = (_d = (_e = (_f = (_g = (_h = commander_1.program
|
|
48
48
|
.option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
|
|
49
|
+
.option.apply(_h, __spreadArray([], __read(option_1.option.filter), false)))
|
|
50
|
+
.option.apply(_g, __spreadArray([], __read(option_1.option.config), false)))
|
|
49
51
|
.option.apply(_f, __spreadArray([], __read(option_1.option.prod), false)))
|
|
50
52
|
.option.apply(_e, __spreadArray([], __read(option_1.option.dev), false)))
|
|
51
53
|
.option.apply(_d, __spreadArray([], __read(option_1.option.peer), false)))
|
|
52
54
|
.option.apply(_c, __spreadArray([], __read(option_1.option.resolutions), false)))
|
|
53
55
|
.option.apply(_b, __spreadArray([], __read(option_1.option.overrides), false)))
|
|
54
|
-
.option.apply(_a, __spreadArray([], __read(option_1.option.
|
|
56
|
+
.option.apply(_a, __spreadArray([], __read(option_1.option.workspace), false)).parse(process.argv);
|
|
55
57
|
(0, list_mismatches_1.listMismatches)((0, get_input_1.getInput)(disk_1.disk, {
|
|
58
|
+
configPath: commander_1.program.opts().config,
|
|
56
59
|
dev: commander_1.program.opts().dev,
|
|
57
60
|
filter: commander_1.program.opts().filter,
|
|
58
61
|
overrides: commander_1.program.opts().overrides,
|
|
59
62
|
peer: commander_1.program.opts().peer,
|
|
60
63
|
prod: commander_1.program.opts().prod,
|
|
61
64
|
resolutions: commander_1.program.opts().resolutions,
|
|
62
|
-
source: commander_1.program.opts().source
|
|
63
|
-
|
|
65
|
+
source: commander_1.program.opts().source,
|
|
66
|
+
workspace: commander_1.program.opts().workspace
|
|
67
|
+
}), disk_1.disk);
|
|
64
68
|
var templateObject_1;
|
|
@@ -9,9 +9,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
exports.__esModule = true;
|
|
10
10
|
exports.listMismatches = void 0;
|
|
11
11
|
var chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
var path_1 = require("path");
|
|
12
13
|
var get_expected_version_1 = require("../bin-fix-mismatches/get-expected-version");
|
|
13
14
|
var list_version_groups_1 = require("../bin-list/list-version-groups");
|
|
14
|
-
|
|
15
|
+
var constants_1 = require("../constants");
|
|
16
|
+
function listMismatches(input, disk) {
|
|
15
17
|
var isInvalid = false;
|
|
16
18
|
/**
|
|
17
19
|
* Reverse the list so the default/ungrouped version group is rendered first
|
|
@@ -31,18 +33,25 @@ function listMismatches(input) {
|
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
groups.forEach(function (_a) {
|
|
34
|
-
var instances = _a.instances, name = _a.name;
|
|
36
|
+
var instances = _a.instances, isBanned = _a.isBanned, name = _a.name;
|
|
35
37
|
var expectedVersion = (0, get_expected_version_1.getExpectedVersion)(name, versionGroup, input);
|
|
36
|
-
console.log(
|
|
38
|
+
console.log(isBanned
|
|
39
|
+
? (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red \u2715 ", "} {dim.red remove this dependency}"], ["{red \u2715 ", "} {dim.red remove this dependency}"])), name) : (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{dim -} ", " {green.dim ", "}"], ["{dim -} ", " {green.dim ", "}"])), name, expectedVersion));
|
|
37
40
|
instances.forEach(function (_a) {
|
|
38
41
|
var dependencyType = _a.dependencyType, version = _a.version, wrapper = _a.wrapper;
|
|
39
|
-
|
|
42
|
+
if (dependencyType === 'workspace') {
|
|
43
|
+
var shortPath = (0, path_1.relative)(constants_1.CWD, wrapper.filePath);
|
|
44
|
+
console.log((0, chalk_1["default"])(templateObject_4 || (templateObject_4 = __makeTemplateObject(["{red ", " {dim at ", "}}"], ["{red ", " {dim at ", "}}"])), version, shortPath));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log((0, chalk_1["default"])(templateObject_5 || (templateObject_5 = __makeTemplateObject(["{red ", " {dim in ", " of ", "}}"], ["{red ", " {dim in ", " of ", "}}"])), version, dependencyType, wrapper.contents.name));
|
|
48
|
+
}
|
|
40
49
|
});
|
|
41
50
|
});
|
|
42
51
|
});
|
|
43
52
|
if (isInvalid) {
|
|
44
|
-
process.exit(1);
|
|
53
|
+
disk.process.exit(1);
|
|
45
54
|
}
|
|
46
55
|
}
|
|
47
56
|
exports.listMismatches = listMismatches;
|
|
48
|
-
var templateObject_1, templateObject_2, templateObject_3;
|
|
57
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -32,29 +32,32 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
32
32
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
33
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
34
|
};
|
|
35
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
36
36
|
exports.__esModule = true;
|
|
37
37
|
var chalk_1 = __importDefault(require("chalk"));
|
|
38
38
|
var commander_1 = require("commander");
|
|
39
|
-
var option_1 = require("../option");
|
|
40
39
|
var disk_1 = require("../lib/disk");
|
|
41
40
|
var get_input_1 = require("../lib/get-input");
|
|
41
|
+
var option_1 = require("../option");
|
|
42
42
|
var set_semver_ranges_1 = require("./set-semver-ranges");
|
|
43
43
|
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
44
|
commander_1.program.on('--help', function () {
|
|
45
45
|
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"]))));
|
|
46
46
|
});
|
|
47
|
-
(_a = (_b = (_c = (_d = (_e = (_f = (_g = (_h = commander_1.program
|
|
47
|
+
(_a = (_b = (_c = (_d = (_e = (_f = (_g = (_h = (_j = (_k = commander_1.program
|
|
48
48
|
.option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
|
|
49
|
-
.option.apply(
|
|
50
|
-
.option.apply(
|
|
51
|
-
.option.apply(
|
|
52
|
-
.option.apply(
|
|
53
|
-
.option.apply(
|
|
54
|
-
.option.apply(
|
|
55
|
-
.option.apply(
|
|
56
|
-
.option.apply(
|
|
49
|
+
.option.apply(_k, __spreadArray([], __read(option_1.option.filter), false)))
|
|
50
|
+
.option.apply(_j, __spreadArray([], __read(option_1.option.config), false)))
|
|
51
|
+
.option.apply(_h, __spreadArray([], __read(option_1.option.semverRange), false)))
|
|
52
|
+
.option.apply(_g, __spreadArray([], __read(option_1.option.prod), false)))
|
|
53
|
+
.option.apply(_f, __spreadArray([], __read(option_1.option.dev), false)))
|
|
54
|
+
.option.apply(_e, __spreadArray([], __read(option_1.option.peer), false)))
|
|
55
|
+
.option.apply(_d, __spreadArray([], __read(option_1.option.resolutions), false)))
|
|
56
|
+
.option.apply(_c, __spreadArray([], __read(option_1.option.overrides), false)))
|
|
57
|
+
.option.apply(_b, __spreadArray([], __read(option_1.option.workspace), false)))
|
|
58
|
+
.option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
|
|
57
59
|
(0, set_semver_ranges_1.setSemverRanges)((0, get_input_1.getInput)(disk_1.disk, {
|
|
60
|
+
configPath: commander_1.program.opts().config,
|
|
58
61
|
dev: commander_1.program.opts().dev,
|
|
59
62
|
filter: commander_1.program.opts().filter,
|
|
60
63
|
indent: commander_1.program.opts().indent,
|
|
@@ -63,6 +66,7 @@ commander_1.program.on('--help', function () {
|
|
|
63
66
|
prod: commander_1.program.opts().prod,
|
|
64
67
|
resolutions: commander_1.program.opts().resolutions,
|
|
65
68
|
semverRange: commander_1.program.opts().semverRange,
|
|
66
|
-
source: commander_1.program.opts().source
|
|
69
|
+
source: commander_1.program.opts().source,
|
|
70
|
+
workspace: commander_1.program.opts().workspace
|
|
67
71
|
}), disk_1.disk);
|
|
68
72
|
var templateObject_1, templateObject_2;
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare type DependencyType = 'dependencies' | 'devDependencies' | 'overrides' | 'peerDependencies' | 'resolutions';
|
|
2
|
-
export declare type DependencyOption = Pick<SyncpackConfig, 'dev' | 'overrides' | 'peer' | 'prod' | 'resolutions'>;
|
|
1
|
+
export declare type DependencyType = 'dependencies' | 'devDependencies' | 'overrides' | 'peerDependencies' | 'resolutions' | 'workspace';
|
|
2
|
+
export declare type DependencyOption = Pick<SyncpackConfig, 'dev' | 'workspace' | 'overrides' | 'peer' | 'prod' | 'resolutions'>;
|
|
3
3
|
export declare type ValidRange = typeof RANGE_ANY | typeof RANGE_EXACT | typeof RANGE_GT | typeof RANGE_GTE | typeof RANGE_LOOSE | typeof RANGE_LT | typeof RANGE_LTE | typeof RANGE_MINOR | typeof RANGE_PATCH;
|
|
4
4
|
export interface SemverGroup {
|
|
5
5
|
/**
|
|
@@ -30,6 +30,10 @@ export interface VersionGroup {
|
|
|
30
30
|
* the names of the dependencies (eg. "lodash") which belong to this group
|
|
31
31
|
*/
|
|
32
32
|
dependencies: string[];
|
|
33
|
+
/**
|
|
34
|
+
* optionally force all dependencies in this group to be removed
|
|
35
|
+
*/
|
|
36
|
+
isBanned?: true;
|
|
33
37
|
/**
|
|
34
38
|
* optionally force all dependencies in this group to have this version
|
|
35
39
|
*/
|
|
@@ -100,6 +104,11 @@ export declare type SyncpackConfig = Readonly<{
|
|
|
100
104
|
*
|
|
101
105
|
*/
|
|
102
106
|
versionGroups: VersionGroup[];
|
|
107
|
+
/**
|
|
108
|
+
* whether to include the versions of the `--source` packages developed in
|
|
109
|
+
* your workspace/monorepo as part of the search for versions to sync
|
|
110
|
+
*/
|
|
111
|
+
workspace: boolean;
|
|
103
112
|
}>;
|
|
104
113
|
export declare const ALL_PATTERNS: string[];
|
|
105
114
|
export declare const DEPENDENCY_TYPES: DependencyType[];
|
package/dist/constants.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.DEPENDENCY_TYPES = [
|
|
|
8
8
|
'overrides',
|
|
9
9
|
'peerDependencies',
|
|
10
10
|
'resolutions',
|
|
11
|
+
'workspace',
|
|
11
12
|
];
|
|
12
13
|
exports.CWD = process.cwd();
|
|
13
14
|
exports.GREATER = 1;
|
|
@@ -41,6 +42,7 @@ exports.DEFAULT_CONFIG = {
|
|
|
41
42
|
peer: true,
|
|
42
43
|
prod: true,
|
|
43
44
|
resolutions: true,
|
|
45
|
+
workspace: true,
|
|
44
46
|
semverGroups: [],
|
|
45
47
|
semverRange: '',
|
|
46
48
|
sortAz: [
|
package/dist/lib/disk.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { SyncpackConfig } from '../constants';
|
|
2
2
|
export declare type Disk = typeof disk;
|
|
3
3
|
export declare const disk: {
|
|
4
|
+
readonly process: {
|
|
5
|
+
readonly exit: (code: number) => void;
|
|
6
|
+
};
|
|
4
7
|
readonly globSync: (pattern: string) => string[];
|
|
5
|
-
readonly readConfigFileSync: () => Partial<SyncpackConfig>;
|
|
8
|
+
readonly readConfigFileSync: (configPath?: string | undefined) => Partial<SyncpackConfig>;
|
|
6
9
|
readonly readFileSync: (filePath: string) => string;
|
|
7
10
|
readonly readYamlFileSync: <T = unknown>(filePath: string) => T;
|
|
8
11
|
readonly removeSync: (filePath: string) => void;
|
package/dist/lib/disk.js
CHANGED
|
@@ -7,15 +7,34 @@ var fs_extra_1 = require("fs-extra");
|
|
|
7
7
|
var glob_1 = require("glob");
|
|
8
8
|
var read_yaml_file_1 = require("read-yaml-file");
|
|
9
9
|
var constants_1 = require("../constants");
|
|
10
|
+
var log_1 = require("./log");
|
|
11
|
+
var client = (0, cosmiconfig_1.cosmiconfigSync)('syncpack');
|
|
10
12
|
exports.disk = {
|
|
13
|
+
process: {
|
|
14
|
+
exit: function (code) {
|
|
15
|
+
process.exit(code);
|
|
16
|
+
}
|
|
17
|
+
},
|
|
11
18
|
globSync: function (pattern) {
|
|
12
|
-
return (0, glob_1.sync)(pattern, {
|
|
19
|
+
return (0, glob_1.sync)(pattern, {
|
|
20
|
+
ignore: '**/node_modules/**',
|
|
21
|
+
absolute: true,
|
|
22
|
+
cwd: constants_1.CWD
|
|
23
|
+
});
|
|
13
24
|
},
|
|
14
|
-
readConfigFileSync: function () {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
readConfigFileSync: function (configPath) {
|
|
26
|
+
try {
|
|
27
|
+
var result = configPath ? client.load(configPath) : client.search();
|
|
28
|
+
var rcConfig = result !== null ? result.config : {};
|
|
29
|
+
var rcFile = (0, expect_more_1.isObject)(rcConfig)
|
|
30
|
+
? rcConfig
|
|
31
|
+
: {};
|
|
32
|
+
return rcFile;
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
(0, log_1.verbose)("no config file found at ".concat(configPath));
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
19
38
|
},
|
|
20
39
|
readFileSync: function (filePath) {
|
|
21
40
|
return (0, fs_extra_1.readFileSync)(filePath, { encoding: 'utf8' });
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SyncpackConfig } from '../../constants';
|
|
2
|
+
import type { Disk } from '../disk';
|
|
2
3
|
/**
|
|
3
4
|
* Take all configuration from the command line and config file, combine it, and
|
|
4
5
|
* set defaults for anything which hasn't been defined.
|
|
@@ -6,4 +7,6 @@ import type { SyncpackConfig } from '../../constants';
|
|
|
6
7
|
* @param rcFile Optional configuration file contents
|
|
7
8
|
* @param program Optional command line options
|
|
8
9
|
*/
|
|
9
|
-
export declare const getConfig: (
|
|
10
|
+
export declare const getConfig: (disk: Disk, program: Partial<SyncpackConfig & {
|
|
11
|
+
configPath: string | undefined;
|
|
12
|
+
}>) => SyncpackConfig;
|
|
@@ -11,8 +11,10 @@ var is_semver_1 = require("../../lib/is-semver");
|
|
|
11
11
|
* @param rcFile Optional configuration file contents
|
|
12
12
|
* @param program Optional command line options
|
|
13
13
|
*/
|
|
14
|
-
var getConfig = function (
|
|
14
|
+
var getConfig = function (disk, program) {
|
|
15
|
+
var rcFile = disk.readConfigFileSync(program.configPath);
|
|
15
16
|
var hasTypeOverride = (0, expect_more_1.isBoolean)(program.dev) ||
|
|
17
|
+
(0, expect_more_1.isBoolean)(program.workspace) ||
|
|
16
18
|
(0, expect_more_1.isBoolean)(program.overrides) ||
|
|
17
19
|
(0, expect_more_1.isBoolean)(program.peer) ||
|
|
18
20
|
(0, expect_more_1.isBoolean)(program.prod) ||
|
|
@@ -20,6 +22,9 @@ var getConfig = function (rcFile, program) {
|
|
|
20
22
|
var dev = hasTypeOverride
|
|
21
23
|
? Boolean(program.dev)
|
|
22
24
|
: getOption('dev', expect_more_1.isBoolean);
|
|
25
|
+
var workspace = hasTypeOverride
|
|
26
|
+
? Boolean(program.workspace)
|
|
27
|
+
: getOption('workspace', expect_more_1.isBoolean);
|
|
23
28
|
var overrides = hasTypeOverride
|
|
24
29
|
? Boolean(program.overrides)
|
|
25
30
|
: getOption('overrides', expect_more_1.isBoolean);
|
|
@@ -32,7 +37,7 @@ var getConfig = function (rcFile, program) {
|
|
|
32
37
|
var resolutions = hasTypeOverride
|
|
33
38
|
? Boolean(program.resolutions)
|
|
34
39
|
: getOption('resolutions', expect_more_1.isBoolean);
|
|
35
|
-
var dependencyTypes = dev || overrides || peer || prod || resolutions
|
|
40
|
+
var dependencyTypes = dev || workspace || overrides || peer || prod || resolutions
|
|
36
41
|
? constants_1.DEPENDENCY_TYPES.filter(function (type) {
|
|
37
42
|
return (type === 'devDependencies' && dev) ||
|
|
38
43
|
(type === 'overrides' && overrides) ||
|
|
@@ -71,6 +76,7 @@ var getConfig = function (rcFile, program) {
|
|
|
71
76
|
dev: dev,
|
|
72
77
|
filter: filter,
|
|
73
78
|
indent: indent,
|
|
79
|
+
workspace: workspace,
|
|
74
80
|
overrides: overrides,
|
|
75
81
|
peer: peer,
|
|
76
82
|
prod: prod,
|
|
@@ -46,7 +46,7 @@ var expect_more_1 = require("expect-more");
|
|
|
46
46
|
var minimatch_1 = __importDefault(require("minimatch"));
|
|
47
47
|
function getInstances(options, wrappers) {
|
|
48
48
|
var e_1, _a, e_2, _b, e_3, _c;
|
|
49
|
-
var _d;
|
|
49
|
+
var _d, _e, _f;
|
|
50
50
|
var allInstances = {
|
|
51
51
|
all: [],
|
|
52
52
|
semverGroups: options.semverGroups.map(withInstances),
|
|
@@ -57,40 +57,56 @@ function getInstances(options, wrappers) {
|
|
|
57
57
|
var wrapper = wrappers_1_1.value;
|
|
58
58
|
var pkgName = wrapper.contents.name || 'packagewithoutaname';
|
|
59
59
|
try {
|
|
60
|
-
for (var
|
|
61
|
-
var dependencyType =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
var instance = { dependencyType: dependencyType, name: name, version: version, wrapper: wrapper };
|
|
76
|
-
allInstances.all.push(instance);
|
|
77
|
-
groupInstancesBy('semverGroups', dependencyType, pkgName, instance);
|
|
78
|
-
groupInstancesBy('versionGroups', dependencyType, pkgName, instance);
|
|
79
|
-
}
|
|
60
|
+
for (var _g = (e_2 = void 0, __values(options.dependencyTypes)), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
61
|
+
var dependencyType = _h.value;
|
|
62
|
+
if (dependencyType === 'workspace') {
|
|
63
|
+
var name = (_d = wrapper.contents) === null || _d === void 0 ? void 0 : _d.name;
|
|
64
|
+
var version = (_e = wrapper.contents) === null || _e === void 0 ? void 0 : _e.version;
|
|
65
|
+
if (!(0, expect_more_1.isNonEmptyString)(name))
|
|
66
|
+
continue;
|
|
67
|
+
if (name.search(new RegExp(options.filter)) === -1)
|
|
68
|
+
continue;
|
|
69
|
+
if (!(0, expect_more_1.isNonEmptyString)(version))
|
|
70
|
+
continue;
|
|
71
|
+
var instance = { dependencyType: dependencyType, name: name, version: version, wrapper: wrapper };
|
|
72
|
+
allInstances.all.push(instance);
|
|
73
|
+
groupInstancesBy('semverGroups', dependencyType, pkgName, instance);
|
|
74
|
+
groupInstancesBy('versionGroups', dependencyType, pkgName, instance);
|
|
80
75
|
}
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
else {
|
|
77
|
+
var versionsByName = (_f = wrapper.contents) === null || _f === void 0 ? void 0 : _f[dependencyType];
|
|
78
|
+
if (!(0, expect_more_1.isObject)(versionsByName))
|
|
79
|
+
continue;
|
|
80
|
+
var pkgs = Object.entries(versionsByName);
|
|
83
81
|
try {
|
|
84
|
-
|
|
82
|
+
for (var pkgs_1 = (e_3 = void 0, __values(pkgs)), pkgs_1_1 = pkgs_1.next(); !pkgs_1_1.done; pkgs_1_1 = pkgs_1.next()) {
|
|
83
|
+
var _j = __read(pkgs_1_1.value, 2), name = _j[0], version = _j[1];
|
|
84
|
+
if (!(0, expect_more_1.isNonEmptyString)(name))
|
|
85
|
+
continue;
|
|
86
|
+
if (name.search(new RegExp(options.filter)) === -1)
|
|
87
|
+
continue;
|
|
88
|
+
if (!(0, expect_more_1.isNonEmptyString)(version))
|
|
89
|
+
continue;
|
|
90
|
+
var instance = { dependencyType: dependencyType, name: name, version: version, wrapper: wrapper };
|
|
91
|
+
allInstances.all.push(instance);
|
|
92
|
+
groupInstancesBy('semverGroups', dependencyType, pkgName, instance);
|
|
93
|
+
groupInstancesBy('versionGroups', dependencyType, pkgName, instance);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
97
|
+
finally {
|
|
98
|
+
try {
|
|
99
|
+
if (pkgs_1_1 && !pkgs_1_1.done && (_c = pkgs_1["return"])) _c.call(pkgs_1);
|
|
100
|
+
}
|
|
101
|
+
finally { if (e_3) throw e_3.error; }
|
|
85
102
|
}
|
|
86
|
-
finally { if (e_3) throw e_3.error; }
|
|
87
103
|
}
|
|
88
104
|
}
|
|
89
105
|
}
|
|
90
106
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
91
107
|
finally {
|
|
92
108
|
try {
|
|
93
|
-
if (
|
|
109
|
+
if (_h && !_h.done && (_b = _g["return"])) _b.call(_g);
|
|
94
110
|
}
|
|
95
111
|
finally { if (e_2) throw e_2.error; }
|
|
96
112
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -21,8 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
21
25
|
exports.__esModule = true;
|
|
22
26
|
exports.getWrappers = void 0;
|
|
23
27
|
var E = __importStar(require("fp-ts/lib/Either"));
|
|
24
|
-
var O = __importStar(require("fp-ts/lib/Option"));
|
|
25
28
|
var function_1 = require("fp-ts/lib/function");
|
|
29
|
+
var O = __importStar(require("fp-ts/lib/Option"));
|
|
26
30
|
var get_file_paths_1 = require("./get-file-paths");
|
|
27
31
|
var read_json_safe_1 = require("./get-patterns/read-json-safe");
|
|
28
32
|
var readonly_1 = require("./readonly");
|