syncpack 10.5.1 → 10.7.2
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 +8 -5
- package/dist/bin-fix-mismatches/effects.d.ts +2 -0
- package/dist/bin-fix-mismatches/effects.js +112 -0
- package/dist/bin-fix-mismatches/fix-mismatches.d.ts +4 -2
- package/dist/bin-fix-mismatches/fix-mismatches.js +38 -49
- package/dist/bin-fix-mismatches/index.js +28 -4
- package/dist/bin-format/format-cli.d.ts +4 -3
- package/dist/bin-format/format-cli.js +35 -4
- package/dist/bin-format/format.d.ts +3 -2
- package/dist/bin-format/format.js +25 -1
- package/dist/bin-format/index.js +27 -3
- package/dist/bin-lint/index.js +28 -4
- package/dist/bin-lint/lint.d.ts +4 -0
- package/dist/bin-lint/lint.js +44 -0
- package/dist/bin-lint-semver-ranges/effects.d.ts +2 -0
- package/dist/bin-lint-semver-ranges/effects.js +70 -0
- package/dist/bin-lint-semver-ranges/index.js +28 -4
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +4 -2
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +14 -39
- package/dist/bin-list/effects.d.ts +2 -0
- package/dist/bin-list/effects.js +112 -0
- package/dist/bin-list/index.js +28 -4
- package/dist/bin-list/list.d.ts +4 -2
- package/dist/bin-list/list.js +14 -75
- package/dist/bin-list-mismatches/effects.d.ts +2 -0
- package/dist/bin-list-mismatches/effects.js +136 -0
- package/dist/bin-list-mismatches/index.js +28 -4
- package/dist/bin-list-mismatches/list-mismatches.d.ts +4 -2
- package/dist/bin-list-mismatches/list-mismatches.js +14 -87
- package/dist/bin-prompt/effects.d.ts +2 -0
- package/dist/bin-prompt/effects.js +110 -0
- package/dist/bin-prompt/index.js +28 -4
- package/dist/bin-prompt/prompt.d.ts +4 -0
- package/dist/bin-prompt/prompt.js +42 -0
- package/dist/bin-set-semver-ranges/effects.d.ts +2 -0
- package/dist/bin-set-semver-ranges/effects.js +61 -0
- package/dist/bin-set-semver-ranges/index.js +28 -4
- package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +4 -2
- package/dist/bin-set-semver-ranges/set-semver-ranges.js +39 -22
- package/dist/bin-update/effects.d.ts +11 -0
- package/dist/bin-update/effects.js +187 -0
- package/dist/bin-update/index.d.ts +2 -0
- package/dist/bin-update/index.js +80 -0
- package/dist/bin-update/update.d.ts +4 -0
- package/dist/bin-update/update.js +47 -0
- package/dist/bin.js +3 -0
- package/dist/config/get-custom-types.d.ts +2 -2
- package/dist/config/get-enabled-types.d.ts +12 -2
- package/dist/config/get-enabled-types.js +38 -4
- package/dist/config/get-filter.d.ts +2 -2
- package/dist/config/get-indent.d.ts +2 -2
- package/dist/config/get-semver-range.d.ts +2 -2
- package/dist/config/get-semver-range.js +4 -4
- package/dist/config/get-sort-az.d.ts +2 -2
- package/dist/config/get-sort-first.d.ts +2 -2
- package/dist/config/get-source.d.ts +2 -2
- package/dist/config/get-source.js +1 -2
- package/dist/config/types.d.ts +8 -6
- package/dist/config/types.js +26 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/create-program/effects.d.ts +40 -0
- package/dist/create-program/effects.js +2 -0
- package/dist/create-program/semver-ranges.d.ts +7 -0
- package/dist/create-program/semver-ranges.js +55 -0
- package/dist/create-program/versions.d.ts +7 -0
- package/dist/create-program/versions.js +70 -0
- package/dist/env/create-env.d.ts +21 -0
- package/dist/env/create-env.js +60 -0
- package/dist/env/default-env.d.ts +18 -0
- package/dist/env/default-env.js +95 -0
- package/dist/env/exit-if-invalid.d.ts +4 -0
- package/dist/env/exit-if-invalid.js +34 -0
- package/dist/env/tags.d.ts +58 -0
- package/dist/env/tags.js +50 -0
- package/dist/env/write-if-changed.d.ts +11 -0
- package/dist/env/write-if-changed.js +73 -0
- package/dist/error-handlers/create-error-handlers.d.ts +19 -0
- package/dist/error-handlers/create-error-handlers.js +57 -0
- package/dist/error-handlers/default-error-handlers.d.ts +2 -0
- package/dist/error-handlers/default-error-handlers.js +57 -0
- package/dist/get-context/index.d.ts +11 -8
- package/dist/get-context/index.js +31 -9
- package/dist/get-package-json-files/get-file-paths.d.ts +17 -8
- package/dist/get-package-json-files/get-file-paths.js +40 -20
- package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +4 -3
- package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +31 -8
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +4 -3
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +36 -14
- package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +4 -3
- package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +37 -9
- package/dist/get-package-json-files/get-patterns/index.d.ts +4 -4
- package/dist/get-package-json-files/get-patterns/index.js +37 -18
- package/dist/get-package-json-files/get-patterns/read-json-safe.d.ts +15 -3
- package/dist/get-package-json-files/get-patterns/read-json-safe.js +36 -10
- package/dist/get-package-json-files/index.d.ts +7 -4
- package/dist/get-package-json-files/index.js +27 -9
- package/dist/get-package-json-files/instance.js +2 -2
- package/dist/get-package-json-files/package-json-file.d.ts +6 -10
- package/dist/get-package-json-files/package-json-file.js +5 -21
- package/dist/get-semver-groups/filtered-out.d.ts +12 -6
- package/dist/get-semver-groups/filtered-out.js +40 -14
- package/dist/get-semver-groups/ignored.d.ts +10 -4
- package/dist/get-semver-groups/ignored.js +34 -8
- package/dist/get-semver-groups/index.d.ts +80 -28
- package/dist/get-semver-groups/index.js +94 -42
- package/dist/get-semver-groups/with-range.d.ts +12 -5
- package/dist/get-semver-groups/with-range.js +49 -25
- package/dist/get-version-groups/banned.d.ts +10 -4
- package/dist/get-version-groups/banned.js +34 -8
- package/dist/get-version-groups/filtered-out.d.ts +12 -6
- package/dist/get-version-groups/filtered-out.js +40 -14
- package/dist/get-version-groups/ignored.d.ts +10 -4
- package/dist/get-version-groups/ignored.js +34 -8
- package/dist/get-version-groups/index.d.ts +131 -47
- package/dist/get-version-groups/index.js +123 -51
- package/dist/get-version-groups/lib/get-highest-version.js +2 -2
- package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
- package/dist/get-version-groups/lib/get-range-score.js +1 -3
- package/dist/get-version-groups/lib/sort.js +3 -3
- package/dist/get-version-groups/pinned.d.ts +10 -4
- package/dist/get-version-groups/pinned.js +39 -16
- package/dist/get-version-groups/same-range.d.ts +10 -4
- package/dist/get-version-groups/same-range.js +38 -15
- package/dist/get-version-groups/snapped-to.d.ts +10 -4
- package/dist/get-version-groups/snapped-to.js +41 -16
- package/dist/get-version-groups/standard.d.ts +12 -5
- package/dist/get-version-groups/standard.js +63 -39
- package/dist/guards/can-add-to-group.d.ts +4 -0
- package/dist/guards/can-add-to-group.js +15 -0
- package/dist/guards/is-loose-semver.d.ts +1 -0
- package/dist/guards/is-loose-semver.js +9 -0
- package/dist/guards/is-semver.d.ts +1 -0
- package/dist/guards/is-semver.js +16 -0
- package/dist/guards/is-supported.d.ts +1 -0
- package/dist/guards/is-supported.js +17 -0
- package/dist/guards/is-valid-semver-range.d.ts +2 -0
- package/dist/guards/is-valid-semver-range.js +17 -0
- package/dist/lib/$R.js +2 -2
- package/dist/lib/log-group-header.d.ts +6 -0
- package/dist/lib/log-group-header.js +34 -0
- package/dist/lib/log-verbose.d.ts +1 -0
- package/dist/lib/log-verbose.js +24 -0
- package/dist/lib/set-semver-range.d.ts +1 -0
- package/dist/lib/set-semver-range.js +14 -6
- package/dist/option.js +1 -4
- package/dist/strategy/lib/get-non-empty-string-prop.js +2 -2
- package/dist/strategy/name-and-version-props.js +5 -5
- package/dist/strategy/named-version-string.js +4 -4
- package/dist/strategy/unnamed-version-string.js +4 -4
- package/dist/strategy/versions-by-name.js +3 -3
- package/package.json +28 -18
- package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +0 -3
- package/dist/bin-fix-mismatches/fix-mismatches-cli.js +0 -12
- package/dist/bin-lint/lint-cli.d.ts +0 -3
- package/dist/bin-lint/lint-cli.js +0 -12
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +0 -3
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +0 -11
- package/dist/bin-list/list-cli.d.ts +0 -3
- package/dist/bin-list/list-cli.js +0 -11
- package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +0 -3
- package/dist/bin-list-mismatches/list-mismatches-cli.js +0 -11
- package/dist/bin-prompt/prompt-cli.d.ts +0 -3
- package/dist/bin-prompt/prompt-cli.js +0 -50
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +0 -3
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +0 -11
- package/dist/get-package-json-files/get-patterns/read-yaml-safe.d.ts +0 -3
- package/dist/get-package-json-files/get-patterns/read-yaml-safe.js +0 -12
- package/dist/get-semver-groups/catch-all.d.ts +0 -4
- package/dist/get-semver-groups/catch-all.js +0 -11
- package/dist/get-version-groups/catch-all.d.ts +0 -4
- package/dist/get-version-groups/catch-all.js +0 -11
- package/dist/lib/disk.d.ts +0 -21
- package/dist/lib/disk.js +0 -79
- package/dist/lib/exit-if-invalid.d.ts +0 -2
- package/dist/lib/exit-if-invalid.js +0 -10
- package/dist/lib/is-semver.d.ts +0 -6
- package/dist/lib/is-semver.js +0 -49
- package/dist/lib/log.d.ts +0 -5
- package/dist/lib/log.js +0 -51
- package/dist/lib/newlines.d.ts +0 -6
- package/dist/lib/newlines.js +0 -24
- package/dist/lib/print-strings.d.ts +0 -1
- package/dist/lib/print-strings.js +0 -7
- package/dist/lib/write-if-changed.d.ts +0 -2
- package/dist/lib/write-if-changed.js +0 -21
|
@@ -1,126 +1,198 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getVersionGroups = void 0;
|
|
4
|
-
const
|
|
26
|
+
exports.getVersionGroups = exports.VersionGroupConfigError = exports.VersionGroupReport = void 0;
|
|
27
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
28
|
+
const Function_1 = require("@effect/data/Function");
|
|
29
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
5
30
|
const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
|
|
6
31
|
const is_non_empty_array_1 = require("tightrope/guard/is-non-empty-array");
|
|
7
32
|
const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
|
|
8
33
|
const is_object_1 = require("tightrope/guard/is-object");
|
|
9
34
|
const get_enabled_types_1 = require("../config/get-enabled-types");
|
|
35
|
+
const can_add_to_group_1 = require("../guards/can-add-to-group");
|
|
36
|
+
const sort_by_name_1 = require("../lib/sort-by-name");
|
|
10
37
|
const banned_1 = require("./banned");
|
|
11
|
-
const catch_all_1 = require("./catch-all");
|
|
12
38
|
const filtered_out_1 = require("./filtered-out");
|
|
13
39
|
const ignored_1 = require("./ignored");
|
|
14
40
|
const pinned_1 = require("./pinned");
|
|
15
41
|
const same_range_1 = require("./same-range");
|
|
16
42
|
const snapped_to_1 = require("./snapped-to");
|
|
17
43
|
const standard_1 = require("./standard");
|
|
44
|
+
var VersionGroupReport;
|
|
45
|
+
(function (VersionGroupReport) {
|
|
46
|
+
class Banned extends Data.TaggedClass('Banned') {
|
|
47
|
+
}
|
|
48
|
+
VersionGroupReport.Banned = Banned;
|
|
49
|
+
class FilteredOut extends Data.TaggedClass('FilteredOut') {
|
|
50
|
+
}
|
|
51
|
+
VersionGroupReport.FilteredOut = FilteredOut;
|
|
52
|
+
class HighestSemverMismatch extends Data.TaggedClass('HighestSemverMismatch') {
|
|
53
|
+
}
|
|
54
|
+
VersionGroupReport.HighestSemverMismatch = HighestSemverMismatch;
|
|
55
|
+
class Ignored extends Data.TaggedClass('Ignored') {
|
|
56
|
+
}
|
|
57
|
+
VersionGroupReport.Ignored = Ignored;
|
|
58
|
+
class LowestSemverMismatch extends Data.TaggedClass('LowestSemverMismatch') {
|
|
59
|
+
}
|
|
60
|
+
VersionGroupReport.LowestSemverMismatch = LowestSemverMismatch;
|
|
61
|
+
class PinnedMismatch extends Data.TaggedClass('PinnedMismatch') {
|
|
62
|
+
}
|
|
63
|
+
VersionGroupReport.PinnedMismatch = PinnedMismatch;
|
|
64
|
+
class SameRangeMismatch extends Data.TaggedClass('SameRangeMismatch') {
|
|
65
|
+
}
|
|
66
|
+
VersionGroupReport.SameRangeMismatch = SameRangeMismatch;
|
|
67
|
+
class SnappedToMismatch extends Data.TaggedClass('SnappedToMismatch') {
|
|
68
|
+
}
|
|
69
|
+
VersionGroupReport.SnappedToMismatch = SnappedToMismatch;
|
|
70
|
+
class UnsupportedMismatch extends Data.TaggedClass('UnsupportedMismatch') {
|
|
71
|
+
}
|
|
72
|
+
VersionGroupReport.UnsupportedMismatch = UnsupportedMismatch;
|
|
73
|
+
class Valid extends Data.TaggedClass('Valid') {
|
|
74
|
+
}
|
|
75
|
+
VersionGroupReport.Valid = Valid;
|
|
76
|
+
class WorkspaceMismatch extends Data.TaggedClass('WorkspaceMismatch') {
|
|
77
|
+
}
|
|
78
|
+
VersionGroupReport.WorkspaceMismatch = WorkspaceMismatch;
|
|
79
|
+
})(VersionGroupReport || (exports.VersionGroupReport = VersionGroupReport = {}));
|
|
80
|
+
class VersionGroupConfigError extends Data.TaggedClass('VersionGroupConfigError') {
|
|
81
|
+
}
|
|
82
|
+
exports.VersionGroupConfigError = VersionGroupConfigError;
|
|
18
83
|
function getVersionGroups(ctx) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
(!(0, is_non_empty_array_1.isNonEmptyArray)(dependencyTypes) ||
|
|
28
|
-
dependencyTypes.includes(instance.strategy.name)) &&
|
|
29
|
-
(!(0, is_non_empty_array_1.isNonEmptyArray)(packages) ||
|
|
30
|
-
packages.some((pattern) => (0, minimatch_1.minimatch)(instance.pkgName, pattern))) &&
|
|
31
|
-
(!(0, is_non_empty_array_1.isNonEmptyArray)(dependencies) ||
|
|
32
|
-
dependencies.some((pattern) => (0, minimatch_1.minimatch)(instance.name, pattern)))) {
|
|
33
|
-
group.instances.push(instance);
|
|
34
|
-
return;
|
|
84
|
+
return (0, Function_1.pipe)(Effect.Do(), Effect.bind('enabledTypes', () => (0, get_enabled_types_1.getEnabledTypes)(ctx.config)), Effect.bind('versionGroups', () => createVersionGroups(ctx)), Effect.flatMap(({ enabledTypes, versionGroups }) => {
|
|
85
|
+
for (const file of ctx.packageJsonFiles) {
|
|
86
|
+
instances: for (const instance of file.getInstances(enabledTypes)) {
|
|
87
|
+
for (const group of versionGroups) {
|
|
88
|
+
if ((0, can_add_to_group_1.canAddToGroup)(group, instance)) {
|
|
89
|
+
group.instances.push(instance);
|
|
90
|
+
continue instances;
|
|
91
|
+
}
|
|
35
92
|
}
|
|
36
93
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
return versionGroups.filter((group) => (0, is_non_empty_array_1.isNonEmptyArray)(group.instances));
|
|
94
|
+
}
|
|
95
|
+
return Effect.succeed(versionGroups.filter((group) => (0, is_non_empty_array_1.isNonEmptyArray)(group.instances.sort(sort_by_name_1.sortByName))));
|
|
96
|
+
}));
|
|
41
97
|
}
|
|
42
98
|
exports.getVersionGroups = getVersionGroups;
|
|
43
99
|
function createVersionGroups(ctx) {
|
|
44
100
|
const { rcFile } = ctx.config;
|
|
45
|
-
const versionGroups = [
|
|
101
|
+
const versionGroups = [
|
|
102
|
+
Effect.succeed(new filtered_out_1.FilteredOutVersionGroup(ctx)),
|
|
103
|
+
];
|
|
46
104
|
if ((0, is_non_empty_array_1.isNonEmptyArray)(rcFile.versionGroups)) {
|
|
47
|
-
const ERR_OBJ = new Error('Invalid versionGroup');
|
|
48
|
-
const ERR_DEPS = new Error('Invalid versionGroup dependencies');
|
|
49
|
-
const ERR_PKGS = new Error('Invalid versionGroup packages');
|
|
50
105
|
rcFile.versionGroups.forEach((config) => {
|
|
51
|
-
if (!(0, is_object_1.isObject)(config))
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
106
|
+
if (!(0, is_object_1.isObject)(config)) {
|
|
107
|
+
return versionGroups.push(Effect.fail(new VersionGroupConfigError({
|
|
108
|
+
config,
|
|
109
|
+
error: 'config is not an object',
|
|
110
|
+
})));
|
|
111
|
+
}
|
|
112
|
+
if (!(0, is_array_of_strings_1.isArrayOfStrings)(config.dependencies)) {
|
|
113
|
+
return versionGroups.push(Effect.fail(new VersionGroupConfigError({
|
|
114
|
+
config,
|
|
115
|
+
error: 'config.dependencies is not an array of strings',
|
|
116
|
+
})));
|
|
117
|
+
}
|
|
118
|
+
if (!(0, is_array_of_strings_1.isArrayOfStrings)(config.packages)) {
|
|
119
|
+
return versionGroups.push(Effect.fail(new VersionGroupConfigError({
|
|
120
|
+
config,
|
|
121
|
+
error: 'config.packages is not an array of strings',
|
|
122
|
+
})));
|
|
123
|
+
}
|
|
124
|
+
const mutuallyExclusiveProps = ['isBanned', 'isIgnored', 'pinVersion', 'snapTo', 'policy'].filter((prop) => Boolean(config[prop]));
|
|
125
|
+
if (mutuallyExclusiveProps.length > 1) {
|
|
126
|
+
return versionGroups.push(Effect.fail(new VersionGroupConfigError({
|
|
127
|
+
config,
|
|
128
|
+
error: `it's unclear what kind of version group you want, as it contains both ${mutuallyExclusiveProps.join(' and ')}`,
|
|
129
|
+
})));
|
|
130
|
+
}
|
|
57
131
|
const { dependencies, packages } = config;
|
|
58
132
|
const label = (0, is_non_empty_string_1.isNonEmptyString)(config.label) ? config.label : '';
|
|
59
133
|
const dependencyTypes = (0, is_array_of_strings_1.isArrayOfStrings)(config.dependencyTypes)
|
|
60
134
|
? config.dependencyTypes
|
|
61
135
|
: [];
|
|
62
136
|
if (config.isBanned === true) {
|
|
63
|
-
versionGroups.push(new banned_1.BannedVersionGroup({
|
|
137
|
+
versionGroups.push(Effect.succeed(new banned_1.BannedVersionGroup({
|
|
64
138
|
dependencies,
|
|
65
139
|
dependencyTypes,
|
|
66
140
|
isBanned: true,
|
|
67
141
|
label,
|
|
68
142
|
packages,
|
|
69
|
-
}));
|
|
143
|
+
})));
|
|
70
144
|
}
|
|
71
145
|
else if (config.isIgnored === true) {
|
|
72
|
-
versionGroups.push(new ignored_1.IgnoredVersionGroup({
|
|
146
|
+
versionGroups.push(Effect.succeed(new ignored_1.IgnoredVersionGroup({
|
|
73
147
|
dependencies,
|
|
74
148
|
dependencyTypes,
|
|
75
149
|
isIgnored: true,
|
|
76
150
|
label,
|
|
77
151
|
packages,
|
|
78
|
-
}));
|
|
152
|
+
})));
|
|
79
153
|
}
|
|
80
154
|
else if ((0, is_non_empty_string_1.isNonEmptyString)(config.pinVersion)) {
|
|
81
|
-
versionGroups.push(new pinned_1.PinnedVersionGroup({
|
|
155
|
+
versionGroups.push(Effect.succeed(new pinned_1.PinnedVersionGroup({
|
|
82
156
|
dependencies,
|
|
83
157
|
dependencyTypes,
|
|
84
158
|
label,
|
|
85
159
|
packages,
|
|
86
160
|
pinVersion: config.pinVersion,
|
|
87
|
-
}));
|
|
161
|
+
})));
|
|
88
162
|
}
|
|
89
163
|
else if ((0, is_array_of_strings_1.isArrayOfStrings)(config.snapTo)) {
|
|
90
|
-
versionGroups.push(new snapped_to_1.SnappedToVersionGroup({
|
|
164
|
+
versionGroups.push(Effect.succeed(new snapped_to_1.SnappedToVersionGroup({
|
|
91
165
|
dependencies,
|
|
92
166
|
dependencyTypes,
|
|
93
167
|
label,
|
|
94
168
|
packages,
|
|
95
169
|
snapTo: config.snapTo,
|
|
96
|
-
}));
|
|
170
|
+
})));
|
|
97
171
|
}
|
|
98
172
|
else if (config.policy === 'sameRange') {
|
|
99
|
-
versionGroups.push(new same_range_1.SameRangeVersionGroup({
|
|
173
|
+
versionGroups.push(Effect.succeed(new same_range_1.SameRangeVersionGroup({
|
|
100
174
|
dependencies,
|
|
101
175
|
dependencyTypes,
|
|
102
176
|
label,
|
|
103
177
|
packages,
|
|
104
178
|
policy: config.policy,
|
|
105
|
-
}));
|
|
179
|
+
})));
|
|
106
180
|
}
|
|
107
181
|
else {
|
|
108
|
-
versionGroups.push(new standard_1.StandardVersionGroup({
|
|
182
|
+
versionGroups.push(Effect.succeed(new standard_1.StandardVersionGroup(false, {
|
|
109
183
|
dependencies,
|
|
110
184
|
dependencyTypes,
|
|
111
185
|
label,
|
|
112
186
|
packages,
|
|
113
|
-
preferVersion: config.preferVersion === 'lowestSemver'
|
|
114
|
-
|
|
115
|
-
: 'highestSemver',
|
|
116
|
-
}));
|
|
187
|
+
preferVersion: config.preferVersion === 'lowestSemver' ? 'lowestSemver' : 'highestSemver',
|
|
188
|
+
})));
|
|
117
189
|
}
|
|
118
190
|
});
|
|
119
191
|
}
|
|
120
|
-
versionGroups.push(new
|
|
192
|
+
versionGroups.push(Effect.succeed(new standard_1.StandardVersionGroup(true, {
|
|
121
193
|
dependencies: ['**'],
|
|
122
194
|
packages: ['**'],
|
|
123
195
|
preferVersion: 'highestSemver',
|
|
124
|
-
}));
|
|
125
|
-
return versionGroups;
|
|
196
|
+
})));
|
|
197
|
+
return Effect.all(versionGroups);
|
|
126
198
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getHighestVersion = void 0;
|
|
4
|
-
const
|
|
4
|
+
const Function_1 = require("@effect/data/Function");
|
|
5
5
|
const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
|
|
6
6
|
const filter_1 = require("tightrope/result/filter");
|
|
7
7
|
const from_try_1 = require("tightrope/result/from-try");
|
|
8
8
|
const map_1 = require("tightrope/result/map");
|
|
9
9
|
const sort_1 = require("./sort");
|
|
10
10
|
function getHighestVersion(versions) {
|
|
11
|
-
return (0,
|
|
11
|
+
return (0, Function_1.pipe)((0, from_try_1.fromTry)(() => [...versions].sort(sort_1.compareSemver)), (0, map_1.map)((sorted) => sorted[sorted.length - 1]), (0, filter_1.filter)(is_non_empty_string_1.isNonEmptyString, 'getHighestVersion(): did not return a version'));
|
|
12
12
|
}
|
|
13
13
|
exports.getHighestVersion = getHighestVersion;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getLowestVersion = void 0;
|
|
4
|
-
const
|
|
4
|
+
const Function_1 = require("@effect/data/Function");
|
|
5
5
|
const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
|
|
6
6
|
const filter_1 = require("tightrope/result/filter");
|
|
7
7
|
const from_try_1 = require("tightrope/result/from-try");
|
|
8
8
|
const map_1 = require("tightrope/result/map");
|
|
9
9
|
const sort_1 = require("./sort");
|
|
10
10
|
function getLowestVersion(versions) {
|
|
11
|
-
return (0,
|
|
11
|
+
return (0, Function_1.pipe)((0, from_try_1.fromTry)(() => [...versions].sort(sort_1.compareSemver)), (0, map_1.map)(([lowest]) => lowest), (0, filter_1.filter)(is_non_empty_string_1.isNonEmptyString, 'getLowestVersion(): did not return a version'));
|
|
12
12
|
}
|
|
13
13
|
exports.getLowestVersion = getLowestVersion;
|
|
@@ -16,9 +16,7 @@ const scoresByRange = {
|
|
|
16
16
|
};
|
|
17
17
|
/** Rank a Semver Range according to its greediness */
|
|
18
18
|
function getRangeScore(version) {
|
|
19
|
-
const range = version.indexOf('.x') !== -1
|
|
20
|
-
? constants_1.RANGE.LOOSE
|
|
21
|
-
: version.slice(0, version.search(/[0-9]/));
|
|
19
|
+
const range = version.indexOf('.x') !== -1 ? constants_1.RANGE.LOOSE : version.slice(0, version.search(/[0-9]/));
|
|
22
20
|
return scoresByRange[range] || 0;
|
|
23
21
|
}
|
|
24
22
|
exports.getRangeScore = getRangeScore;
|
|
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.compareSemver = void 0;
|
|
7
7
|
const gt_1 = __importDefault(require("semver/functions/gt"));
|
|
8
8
|
const lt_1 = __importDefault(require("semver/functions/lt"));
|
|
9
|
-
const
|
|
9
|
+
const is_supported_1 = require("../../guards/is-supported");
|
|
10
10
|
const clean_1 = require("./clean");
|
|
11
11
|
const get_range_score_1 = require("./get-range-score");
|
|
12
12
|
const EQ = 0;
|
|
13
13
|
const LT = -1;
|
|
14
14
|
const GT = 1;
|
|
15
15
|
function compareSemver(a, b) {
|
|
16
|
-
if (!(0,
|
|
16
|
+
if (!(0, is_supported_1.isSupported)(a))
|
|
17
17
|
throw new Error(`"${a}" is not supported`);
|
|
18
|
-
if (!(0,
|
|
18
|
+
if (!(0, is_supported_1.isSupported)(b))
|
|
19
19
|
throw new Error(`"${b}" is not supported`);
|
|
20
20
|
if (a.startsWith('workspace:'))
|
|
21
21
|
return LT;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import { VersionGroupReport } from '.';
|
|
2
4
|
import type { VersionGroupConfig } from '../config/types';
|
|
3
5
|
import type { Instance } from '../get-package-json-files/instance';
|
|
4
|
-
|
|
5
|
-
_tag:
|
|
6
|
+
declare const PinnedVersionGroup_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
7
|
+
_tag: "Pinned";
|
|
8
|
+
}>;
|
|
9
|
+
export declare class PinnedVersionGroup extends PinnedVersionGroup_base<{
|
|
6
10
|
config: VersionGroupConfig.Pinned;
|
|
7
11
|
instances: Instance[];
|
|
12
|
+
}> {
|
|
8
13
|
constructor(config: VersionGroupConfig.Pinned);
|
|
9
14
|
canAdd(_: Instance): boolean;
|
|
10
|
-
inspect(): VersionGroupReport[];
|
|
15
|
+
inspect(): Effect.Effect<never, VersionGroupReport.PinnedMismatch, VersionGroupReport.Valid>[];
|
|
11
16
|
}
|
|
17
|
+
export {};
|
|
@@ -1,40 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.PinnedVersionGroup = void 0;
|
|
27
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
28
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
29
|
+
const _1 = require(".");
|
|
4
30
|
const group_by_1 = require("./lib/group-by");
|
|
5
|
-
class PinnedVersionGroup {
|
|
31
|
+
class PinnedVersionGroup extends Data.TaggedClass('Pinned') {
|
|
6
32
|
constructor(config) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
33
|
+
super({
|
|
34
|
+
config,
|
|
35
|
+
instances: [],
|
|
36
|
+
});
|
|
10
37
|
}
|
|
11
38
|
canAdd(_) {
|
|
12
39
|
return true;
|
|
13
40
|
}
|
|
14
41
|
inspect() {
|
|
15
|
-
const report = [];
|
|
16
42
|
const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
|
|
17
43
|
const expectedVersion = this.config.pinVersion;
|
|
18
|
-
Object.entries(instancesByName).
|
|
44
|
+
return Object.entries(instancesByName).map(([name, instances]) => {
|
|
19
45
|
if (hasMismatch(expectedVersion, instances)) {
|
|
20
|
-
|
|
21
|
-
|
|
46
|
+
return Effect.fail(new _1.VersionGroupReport.PinnedMismatch({
|
|
47
|
+
name,
|
|
22
48
|
instances,
|
|
23
49
|
isValid: false,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
});
|
|
50
|
+
expectedVersion,
|
|
51
|
+
}));
|
|
27
52
|
}
|
|
28
53
|
else {
|
|
29
|
-
|
|
54
|
+
return Effect.succeed(new _1.VersionGroupReport.Valid({
|
|
55
|
+
name,
|
|
30
56
|
instances,
|
|
31
57
|
isValid: true,
|
|
32
|
-
|
|
33
|
-
status: 'VALID',
|
|
34
|
-
});
|
|
58
|
+
}));
|
|
35
59
|
}
|
|
36
60
|
});
|
|
37
|
-
return report;
|
|
38
61
|
}
|
|
39
62
|
}
|
|
40
63
|
exports.PinnedVersionGroup = PinnedVersionGroup;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import { VersionGroupReport } from '.';
|
|
2
4
|
import type { VersionGroupConfig } from '../config/types';
|
|
3
5
|
import type { Instance } from '../get-package-json-files/instance';
|
|
4
|
-
|
|
5
|
-
_tag:
|
|
6
|
+
declare const SameRangeVersionGroup_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
7
|
+
_tag: "SameRange";
|
|
8
|
+
}>;
|
|
9
|
+
export declare class SameRangeVersionGroup extends SameRangeVersionGroup_base<{
|
|
6
10
|
config: VersionGroupConfig.SameRange;
|
|
7
11
|
instances: Instance[];
|
|
12
|
+
}> {
|
|
8
13
|
constructor(config: VersionGroupConfig.SameRange);
|
|
9
14
|
canAdd(_: Instance): boolean;
|
|
10
|
-
inspect(): VersionGroupReport[];
|
|
15
|
+
inspect(): Effect.Effect<never, VersionGroupReport.SameRangeMismatch, VersionGroupReport.Valid>[];
|
|
11
16
|
}
|
|
17
|
+
export {};
|
|
@@ -1,42 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.SameRangeVersionGroup = void 0;
|
|
30
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
31
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
7
32
|
const intersects_1 = __importDefault(require("semver/ranges/intersects"));
|
|
33
|
+
const _1 = require(".");
|
|
8
34
|
const group_by_1 = require("./lib/group-by");
|
|
9
|
-
class SameRangeVersionGroup {
|
|
35
|
+
class SameRangeVersionGroup extends Data.TaggedClass('SameRange') {
|
|
10
36
|
constructor(config) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
37
|
+
super({
|
|
38
|
+
config,
|
|
39
|
+
instances: [],
|
|
40
|
+
});
|
|
14
41
|
}
|
|
15
42
|
canAdd(_) {
|
|
16
43
|
return true;
|
|
17
44
|
}
|
|
18
45
|
inspect() {
|
|
19
|
-
const report = [];
|
|
20
46
|
const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
|
|
21
|
-
Object.entries(instancesByName).
|
|
47
|
+
return Object.entries(instancesByName).map(([name, instances]) => {
|
|
22
48
|
if (hasMismatch(instances)) {
|
|
23
|
-
|
|
49
|
+
return Effect.fail(new _1.VersionGroupReport.SameRangeMismatch({
|
|
50
|
+
name,
|
|
24
51
|
instances,
|
|
25
52
|
isValid: false,
|
|
26
|
-
|
|
27
|
-
status: 'SAME_RANGE_MISMATCH',
|
|
28
|
-
});
|
|
53
|
+
}));
|
|
29
54
|
}
|
|
30
55
|
else {
|
|
31
|
-
|
|
56
|
+
return Effect.succeed(new _1.VersionGroupReport.Valid({
|
|
57
|
+
name,
|
|
32
58
|
instances,
|
|
33
59
|
isValid: true,
|
|
34
|
-
|
|
35
|
-
status: 'VALID',
|
|
36
|
-
});
|
|
60
|
+
}));
|
|
37
61
|
}
|
|
38
62
|
});
|
|
39
|
-
return report;
|
|
40
63
|
}
|
|
41
64
|
}
|
|
42
65
|
exports.SameRangeVersionGroup = SameRangeVersionGroup;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import { VersionGroupReport } from '.';
|
|
2
4
|
import type { VersionGroupConfig } from '../config/types';
|
|
3
5
|
import type { Instance } from '../get-package-json-files/instance';
|
|
4
|
-
|
|
5
|
-
_tag:
|
|
6
|
+
declare const SnappedToVersionGroup_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
7
|
+
_tag: "SnappedTo";
|
|
8
|
+
}>;
|
|
9
|
+
export declare class SnappedToVersionGroup extends SnappedToVersionGroup_base<{
|
|
6
10
|
config: VersionGroupConfig.SnappedTo;
|
|
7
11
|
instances: Instance[];
|
|
12
|
+
}> {
|
|
8
13
|
constructor(config: VersionGroupConfig.SnappedTo);
|
|
9
14
|
canAdd(_: Instance): boolean;
|
|
10
|
-
inspect(): VersionGroupReport[];
|
|
15
|
+
inspect(): Effect.Effect<never, VersionGroupReport.SnappedToMismatch, VersionGroupReport.Valid>[];
|
|
11
16
|
}
|
|
17
|
+
export {};
|
|
@@ -1,41 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.SnappedToVersionGroup = void 0;
|
|
27
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
28
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
29
|
+
const _1 = require(".");
|
|
4
30
|
const group_by_1 = require("./lib/group-by");
|
|
5
|
-
class SnappedToVersionGroup {
|
|
31
|
+
class SnappedToVersionGroup extends Data.TaggedClass('SnappedTo') {
|
|
6
32
|
constructor(config) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
33
|
+
super({
|
|
34
|
+
config,
|
|
35
|
+
instances: [],
|
|
36
|
+
});
|
|
10
37
|
}
|
|
11
38
|
canAdd(_) {
|
|
12
39
|
return true;
|
|
13
40
|
}
|
|
14
41
|
inspect() {
|
|
15
|
-
const report = [];
|
|
16
42
|
const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
|
|
17
|
-
Object.entries(instancesByName).
|
|
43
|
+
return Object.entries(instancesByName).map(([name, instances]) => {
|
|
18
44
|
const snapTo = this.config.snapTo;
|
|
19
45
|
const expectedVersion = getExpectedVersion(snapTo, instances);
|
|
20
46
|
if (hasMismatch(expectedVersion, instances)) {
|
|
21
|
-
|
|
22
|
-
|
|
47
|
+
return Effect.fail(new _1.VersionGroupReport.SnappedToMismatch({
|
|
48
|
+
name,
|
|
23
49
|
instances,
|
|
24
50
|
isValid: false,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
51
|
+
expectedVersion,
|
|
52
|
+
snapTo,
|
|
53
|
+
}));
|
|
28
54
|
}
|
|
29
55
|
else {
|
|
30
|
-
|
|
56
|
+
return Effect.succeed(new _1.VersionGroupReport.Valid({
|
|
57
|
+
name,
|
|
31
58
|
instances,
|
|
32
59
|
isValid: true,
|
|
33
|
-
|
|
34
|
-
status: 'VALID',
|
|
35
|
-
});
|
|
60
|
+
}));
|
|
36
61
|
}
|
|
37
62
|
});
|
|
38
|
-
return report;
|
|
39
63
|
}
|
|
40
64
|
}
|
|
41
65
|
exports.SnappedToVersionGroup = SnappedToVersionGroup;
|
|
@@ -45,6 +69,7 @@ function getExpectedVersion(snapTo, instances) {
|
|
|
45
69
|
.find((i) => i.version)?.version;
|
|
46
70
|
if (expectedVersion)
|
|
47
71
|
return expectedVersion;
|
|
72
|
+
// @FIXME: create tagged error for this
|
|
48
73
|
throw new Error('versionGroup.snapTo does not match any package versions');
|
|
49
74
|
}
|
|
50
75
|
function hasMismatch(expectedVersion, instances) {
|