syncpack 10.2.0 → 10.6.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/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 -50
- 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 -72
- 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 -82
- package/dist/bin-prompt/effects.d.ts +2 -0
- package/dist/bin-prompt/effects.js +110 -0
- package/dist/bin-prompt/index.d.ts +2 -0
- package/dist/bin-prompt/index.js +80 -0
- 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.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-az.js +1 -0
- 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 +15 -7
- 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 +42 -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 +43 -0
- package/dist/create-program/versions.d.ts +7 -0
- package/dist/create-program/versions.js +48 -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 +93 -44
- 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 +132 -50
- package/dist/get-version-groups/index.js +130 -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 +17 -0
- package/dist/get-version-groups/same-range.js +70 -0
- 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.js +5 -5
- package/dist/lib/split-name-and-version.d.ts +5 -0
- package/dist/lib/split-name-and-version.js +12 -0
- 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 +5 -5
- package/dist/strategy/unnamed-version-string.js +4 -4
- package/dist/strategy/versions-by-name.js +3 -3
- package/package.json +28 -17
- 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-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 -14
- package/dist/lib/disk.js +0 -68
- 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,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;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import { VersionGroupReport } from '.';
|
|
4
|
+
import type { VersionGroupConfig } from '../config/types';
|
|
5
|
+
import type { Instance } from '../get-package-json-files/instance';
|
|
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<{
|
|
10
|
+
config: VersionGroupConfig.SameRange;
|
|
11
|
+
instances: Instance[];
|
|
12
|
+
}> {
|
|
13
|
+
constructor(config: VersionGroupConfig.SameRange);
|
|
14
|
+
canAdd(_: Instance): boolean;
|
|
15
|
+
inspect(): Effect.Effect<never, VersionGroupReport.SameRangeMismatch, VersionGroupReport.Valid>[];
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.SameRangeVersionGroup = void 0;
|
|
30
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
31
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
32
|
+
const intersects_1 = __importDefault(require("semver/ranges/intersects"));
|
|
33
|
+
const _1 = require(".");
|
|
34
|
+
const group_by_1 = require("./lib/group-by");
|
|
35
|
+
class SameRangeVersionGroup extends Data.TaggedClass('SameRange') {
|
|
36
|
+
constructor(config) {
|
|
37
|
+
super({
|
|
38
|
+
config,
|
|
39
|
+
instances: [],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
canAdd(_) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
inspect() {
|
|
46
|
+
const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
|
|
47
|
+
return Object.entries(instancesByName).map(([name, instances]) => {
|
|
48
|
+
if (hasMismatch(instances)) {
|
|
49
|
+
return Effect.fail(new _1.VersionGroupReport.SameRangeMismatch({
|
|
50
|
+
name,
|
|
51
|
+
instances,
|
|
52
|
+
isValid: false,
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return Effect.succeed(new _1.VersionGroupReport.Valid({
|
|
57
|
+
name,
|
|
58
|
+
instances,
|
|
59
|
+
isValid: true,
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.SameRangeVersionGroup = SameRangeVersionGroup;
|
|
66
|
+
/** Every range must fall within every other range */
|
|
67
|
+
function hasMismatch(instances) {
|
|
68
|
+
const loose = true;
|
|
69
|
+
return instances.some((a) => instances.some((b) => !(0, intersects_1.default)(a.version, b.version, loose)));
|
|
70
|
+
}
|
|
@@ -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) {
|
|
@@ -1,11 +1,18 @@
|
|
|
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 StandardVersionGroup_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: "Standard";
|
|
8
|
+
}>;
|
|
9
|
+
export declare class StandardVersionGroup extends StandardVersionGroup_base<{
|
|
6
10
|
config: VersionGroupConfig.Standard;
|
|
7
11
|
instances: Instance[];
|
|
8
|
-
|
|
12
|
+
isCatchAll: boolean;
|
|
13
|
+
}> {
|
|
14
|
+
constructor(isCatchAll: boolean, config: VersionGroupConfig.Standard);
|
|
9
15
|
canAdd(_: Instance): boolean;
|
|
10
|
-
inspect(): VersionGroupReport[];
|
|
16
|
+
inspect(): Effect.Effect<never, VersionGroupReport.WorkspaceMismatch | VersionGroupReport.UnsupportedMismatch | VersionGroupReport.HighestSemverMismatch | VersionGroupReport.LowestSemverMismatch, VersionGroupReport.Valid>[];
|
|
11
17
|
}
|
|
18
|
+
export {};
|
|
@@ -1,32 +1,58 @@
|
|
|
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.StandardVersionGroup = void 0;
|
|
27
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
28
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
4
29
|
const unwrap_1 = require("tightrope/result/unwrap");
|
|
5
|
-
const
|
|
30
|
+
const _1 = require(".");
|
|
31
|
+
const is_supported_1 = require("../guards/is-supported");
|
|
6
32
|
const get_highest_version_1 = require("./lib/get-highest-version");
|
|
7
33
|
const get_lowest_version_1 = require("./lib/get-lowest-version");
|
|
8
34
|
const get_unique_versions_1 = require("./lib/get-unique-versions");
|
|
9
35
|
const group_by_1 = require("./lib/group-by");
|
|
10
|
-
class StandardVersionGroup {
|
|
11
|
-
constructor(config) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
36
|
+
class StandardVersionGroup extends Data.TaggedClass('Standard') {
|
|
37
|
+
constructor(isCatchAll, config) {
|
|
38
|
+
super({
|
|
39
|
+
config,
|
|
40
|
+
instances: [],
|
|
41
|
+
isCatchAll,
|
|
42
|
+
});
|
|
15
43
|
}
|
|
16
44
|
canAdd(_) {
|
|
17
45
|
return true;
|
|
18
46
|
}
|
|
19
47
|
inspect() {
|
|
20
|
-
const report = [];
|
|
21
48
|
const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
|
|
22
|
-
Object.entries(instancesByName).
|
|
49
|
+
return Object.entries(instancesByName).map(([name, instances]) => {
|
|
23
50
|
if (!hasMismatch(instances)) {
|
|
24
|
-
return
|
|
25
|
-
|
|
51
|
+
return Effect.succeed(new _1.VersionGroupReport.Valid({
|
|
52
|
+
name,
|
|
26
53
|
instances,
|
|
27
54
|
isValid: true,
|
|
28
|
-
|
|
29
|
-
});
|
|
55
|
+
}));
|
|
30
56
|
}
|
|
31
57
|
const wsInstance = getWorkspaceInstance(instances);
|
|
32
58
|
const wsFile = wsInstance?.packageJsonFile;
|
|
@@ -35,57 +61,55 @@ class StandardVersionGroup {
|
|
|
35
61
|
if (isWorkspacePackage) {
|
|
36
62
|
const nonWsInstances = getNonWorkspaceInstances(instances);
|
|
37
63
|
if (!hasMismatch(nonWsInstances)) {
|
|
38
|
-
return
|
|
39
|
-
|
|
64
|
+
return Effect.succeed(new _1.VersionGroupReport.Valid({
|
|
65
|
+
name,
|
|
40
66
|
instances,
|
|
41
67
|
isValid: true,
|
|
42
|
-
|
|
43
|
-
});
|
|
68
|
+
}));
|
|
44
69
|
}
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
expectedVersion: wsVersion,
|
|
70
|
+
return Effect.fail(new _1.VersionGroupReport.WorkspaceMismatch({
|
|
71
|
+
name,
|
|
48
72
|
instances,
|
|
49
73
|
isValid: false,
|
|
50
|
-
|
|
74
|
+
expectedVersion: wsVersion,
|
|
51
75
|
workspaceInstance: wsInstance,
|
|
52
|
-
});
|
|
76
|
+
}));
|
|
53
77
|
}
|
|
54
78
|
if (hasUnsupported(instances)) {
|
|
55
|
-
return
|
|
56
|
-
|
|
79
|
+
return Effect.fail(new _1.VersionGroupReport.UnsupportedMismatch({
|
|
80
|
+
name,
|
|
57
81
|
instances,
|
|
58
82
|
isValid: false,
|
|
59
|
-
|
|
60
|
-
});
|
|
83
|
+
}));
|
|
61
84
|
}
|
|
62
85
|
const preferVersion = this.config.preferVersion;
|
|
63
86
|
const expectedVersion = getExpectedVersion(preferVersion, instances);
|
|
64
|
-
return
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
87
|
+
return Effect.fail(preferVersion === 'highestSemver'
|
|
88
|
+
? new _1.VersionGroupReport.HighestSemverMismatch({
|
|
89
|
+
name,
|
|
90
|
+
instances,
|
|
91
|
+
isValid: false,
|
|
92
|
+
expectedVersion,
|
|
93
|
+
})
|
|
94
|
+
: new _1.VersionGroupReport.LowestSemverMismatch({
|
|
95
|
+
name,
|
|
96
|
+
instances,
|
|
97
|
+
isValid: false,
|
|
98
|
+
expectedVersion,
|
|
99
|
+
}));
|
|
73
100
|
});
|
|
74
|
-
return report;
|
|
75
101
|
}
|
|
76
102
|
}
|
|
77
103
|
exports.StandardVersionGroup = StandardVersionGroup;
|
|
78
104
|
function getExpectedVersion(preferVersion, instances) {
|
|
79
105
|
const versions = (0, get_unique_versions_1.getUniqueVersions)(instances);
|
|
80
|
-
return (0, unwrap_1.unwrap)(preferVersion === 'highestSemver'
|
|
81
|
-
? (0, get_highest_version_1.getHighestVersion)(versions)
|
|
82
|
-
: (0, get_lowest_version_1.getLowestVersion)(versions));
|
|
106
|
+
return (0, unwrap_1.unwrap)(preferVersion === 'highestSemver' ? (0, get_highest_version_1.getHighestVersion)(versions) : (0, get_lowest_version_1.getLowestVersion)(versions));
|
|
83
107
|
}
|
|
84
108
|
function hasMismatch(instances) {
|
|
85
109
|
return (0, get_unique_versions_1.getUniqueVersions)(instances).length > 1;
|
|
86
110
|
}
|
|
87
111
|
function hasUnsupported(instances) {
|
|
88
|
-
return instances.some((instance) => !(0,
|
|
112
|
+
return instances.some((instance) => !(0, is_supported_1.isSupported)(instance.version));
|
|
89
113
|
}
|
|
90
114
|
function getWorkspaceInstance(instances) {
|
|
91
115
|
return instances.find((instance) => instance.strategy.name === 'workspace');
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Instance } from '../get-package-json-files/instance';
|
|
2
|
+
import type { AnySemverGroup } from '../get-semver-groups';
|
|
3
|
+
import type { AnyVersionGroup } from '../get-version-groups';
|
|
4
|
+
export declare function canAddToGroup(group: AnySemverGroup | AnyVersionGroup, instance: Instance): boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canAddToGroup = void 0;
|
|
4
|
+
const minimatch_1 = require("minimatch");
|
|
5
|
+
const is_non_empty_array_1 = require("tightrope/guard/is-non-empty-array");
|
|
6
|
+
function canAddToGroup(group, instance) {
|
|
7
|
+
const { dependencies, dependencyTypes, packages } = group.config;
|
|
8
|
+
return (group.canAdd(instance) &&
|
|
9
|
+
(!(0, is_non_empty_array_1.isNonEmptyArray)(dependencyTypes) || dependencyTypes.includes(instance.strategy.name)) &&
|
|
10
|
+
(!(0, is_non_empty_array_1.isNonEmptyArray)(packages) ||
|
|
11
|
+
packages.some((pattern) => (0, minimatch_1.minimatch)(instance.pkgName, pattern))) &&
|
|
12
|
+
(!(0, is_non_empty_array_1.isNonEmptyArray)(dependencies) ||
|
|
13
|
+
dependencies.some((pattern) => (0, minimatch_1.minimatch)(instance.name, pattern))));
|
|
14
|
+
}
|
|
15
|
+
exports.canAddToGroup = canAddToGroup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isLooseSemver(version: unknown): boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLooseSemver = void 0;
|
|
4
|
+
const is_string_1 = require("tightrope/guard/is-string");
|
|
5
|
+
const is_semver_1 = require("./is-semver");
|
|
6
|
+
function isLooseSemver(version) {
|
|
7
|
+
return (0, is_string_1.isString)(version) && (0, is_semver_1.isSemver)(version) && version.search(/\.x(\.|$)/) !== -1;
|
|
8
|
+
}
|
|
9
|
+
exports.isLooseSemver = isLooseSemver;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isSemver(version: unknown): boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSemver = void 0;
|
|
4
|
+
const is_string_1 = require("tightrope/guard/is-string");
|
|
5
|
+
function isSemver(version) {
|
|
6
|
+
const range = '(~|\\^|>=|>|<=|<)?';
|
|
7
|
+
const ints = '[0-9]+';
|
|
8
|
+
const intsOrX = '([0-9]+|x)';
|
|
9
|
+
const dot = '\\.';
|
|
10
|
+
const major = new RegExp(`^${range}${ints}$`);
|
|
11
|
+
const minor = new RegExp(`^${range}${ints}${dot}${intsOrX}$`);
|
|
12
|
+
const patch = new RegExp(`^${range}${ints}${dot}${intsOrX}${dot}${intsOrX}$`);
|
|
13
|
+
return ((0, is_string_1.isString)(version) &&
|
|
14
|
+
(version.search(major) !== -1 || version.search(minor) !== -1 || version.search(patch) !== -1));
|
|
15
|
+
}
|
|
16
|
+
exports.isSemver = isSemver;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isSupported(version: unknown): version is string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSupported = void 0;
|
|
4
|
+
const is_string_1 = require("tightrope/guard/is-string");
|
|
5
|
+
const is_semver_1 = require("./is-semver");
|
|
6
|
+
function isSupported(version) {
|
|
7
|
+
return version === '*' || (0, is_semver_1.isSemver)(version) || isWorkspaceProtocol(version);
|
|
8
|
+
}
|
|
9
|
+
exports.isSupported = isSupported;
|
|
10
|
+
function isWorkspaceProtocol(version) {
|
|
11
|
+
if (!(0, is_string_1.isString)(version))
|
|
12
|
+
return false;
|
|
13
|
+
if (!version.startsWith('workspace:'))
|
|
14
|
+
return false;
|
|
15
|
+
const value = version.replace(/^workspace:/, '');
|
|
16
|
+
return value === '*' || (0, is_semver_1.isSemver)(value);
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidSemverRange = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
function isValidSemverRange(value) {
|
|
6
|
+
return (value === constants_1.RANGE.ANY ||
|
|
7
|
+
value === constants_1.RANGE.EXACT ||
|
|
8
|
+
value === constants_1.RANGE.GT ||
|
|
9
|
+
value === constants_1.RANGE.GTE ||
|
|
10
|
+
value === constants_1.RANGE.LOOSE ||
|
|
11
|
+
value === constants_1.RANGE.LT ||
|
|
12
|
+
value === constants_1.RANGE.LTE ||
|
|
13
|
+
value === constants_1.RANGE.MINOR ||
|
|
14
|
+
value === constants_1.RANGE.PATCH ||
|
|
15
|
+
value === constants_1.RANGE.WORKSPACE);
|
|
16
|
+
}
|
|
17
|
+
exports.isValidSemverRange = isValidSemverRange;
|
package/dist/lib/$R.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.$R = void 0;
|
|
|
4
4
|
const result_1 = require("tightrope/result");
|
|
5
5
|
const is_err_1 = require("tightrope/result/is-err");
|
|
6
6
|
const unwrap_1 = require("tightrope/result/unwrap");
|
|
7
|
-
const
|
|
7
|
+
const log_verbose_1 = require("./log-verbose");
|
|
8
8
|
exports.$R = {
|
|
9
9
|
/**
|
|
10
10
|
* Return a single `Ok<output[]>` containing an array of the output of every
|
|
@@ -28,7 +28,7 @@ exports.$R = {
|
|
|
28
28
|
/** Log verbose only when Result is an Err */
|
|
29
29
|
tapErrVerbose(result) {
|
|
30
30
|
if ((0, is_err_1.isErr)(result))
|
|
31
|
-
(0,
|
|
31
|
+
(0, log_verbose_1.logVerbose)(result.value);
|
|
32
32
|
return result;
|
|
33
33
|
},
|
|
34
34
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AnySemverGroup } from '../get-semver-groups';
|
|
2
|
+
import type { AnyVersionGroup } from '../get-version-groups';
|
|
3
|
+
export declare const logGroupHeader: {
|
|
4
|
+
semverGroup(group: AnySemverGroup, i: number): void;
|
|
5
|
+
versionGroup(group: AnyVersionGroup, i: number): void;
|
|
6
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logGroupHeader = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
exports.logGroupHeader = {
|
|
9
|
+
semverGroup(group, i) {
|
|
10
|
+
log(group, 'Semver', i);
|
|
11
|
+
},
|
|
12
|
+
versionGroup(group, i) {
|
|
13
|
+
log(group, 'Version', i);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
function log(group, type, i) {
|
|
17
|
+
const customLabel = group.config.label;
|
|
18
|
+
const labelWhenDefault = group.isCatchAll === true ? `Default ${type} Group` : '';
|
|
19
|
+
const anonymousLabel = `${type} Group ${i + 1}`;
|
|
20
|
+
const label = (customLabel || labelWhenDefault || anonymousLabel).trim();
|
|
21
|
+
const hasNewLines = label.search(/[\r\n]/) !== -1;
|
|
22
|
+
const header = hasNewLines ? formatMultiLine(label) : formatSingleLine(label);
|
|
23
|
+
console.log(chalk_1.default.blue(header));
|
|
24
|
+
}
|
|
25
|
+
function formatSingleLine(label) {
|
|
26
|
+
const leftSide = `= ${label} `;
|
|
27
|
+
const dividerWidth = 80 - leftSide.length;
|
|
28
|
+
const rightSide = dividerWidth > 0 ? '='.repeat(dividerWidth) : '';
|
|
29
|
+
return `${leftSide}${rightSide}`;
|
|
30
|
+
}
|
|
31
|
+
function formatMultiLine(label) {
|
|
32
|
+
const reindented = label.replace(/^\s+/gm, ' ');
|
|
33
|
+
return `= ${reindented}`;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function logVerbose(...values: unknown[]): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logVerbose = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const is_string_1 = require("tightrope/guard/is-string");
|
|
9
|
+
const util_1 = require("util");
|
|
10
|
+
const constants_1 = require("../constants");
|
|
11
|
+
function logVerbose(...values) {
|
|
12
|
+
/* istanbul ignore if */
|
|
13
|
+
if (process.env.SYNCPACK_VERBOSE) {
|
|
14
|
+
console.info(chalk_1.default.yellow(constants_1.ICON.debug), ...values.map((value) => (0, is_string_1.isString)(value)
|
|
15
|
+
? chalk_1.default.yellow(value)
|
|
16
|
+
: (0, util_1.inspect)(value, {
|
|
17
|
+
colors: true,
|
|
18
|
+
compact: true,
|
|
19
|
+
depth: 20,
|
|
20
|
+
showHidden: false,
|
|
21
|
+
})));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.logVerbose = logVerbose;
|