syncpack 9.0.2 → 9.3.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.
Files changed (37) hide show
  1. package/README.md +24 -764
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +17 -40
  3. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +6 -9
  4. package/dist/bin-list/list.js +41 -21
  5. package/dist/bin-list-mismatches/list-mismatches.js +63 -34
  6. package/dist/bin-set-semver-ranges/set-semver-ranges.js +2 -2
  7. package/dist/get-context/get-config/schema/base-group.d.ts +1 -0
  8. package/dist/get-context/get-config/schema/base-group.js +1 -0
  9. package/dist/get-context/get-config/schema/index.d.ts +214 -78
  10. package/dist/get-context/get-config/schema/semver-group.d.ts +30 -12
  11. package/dist/get-context/get-config/schema/version-group.d.ts +34 -4
  12. package/dist/get-context/get-groups/base-group.d.ts +19 -0
  13. package/dist/get-context/get-groups/base-group.js +40 -0
  14. package/dist/get-context/get-groups/index.d.ts +8 -0
  15. package/dist/get-context/get-groups/index.js +47 -0
  16. package/dist/get-context/get-groups/semver-group.d.ts +16 -0
  17. package/dist/get-context/get-groups/semver-group.js +89 -0
  18. package/dist/get-context/get-groups/version-group/index.d.ts +9 -26
  19. package/dist/get-context/get-groups/version-group/index.js +67 -15
  20. package/dist/get-context/get-groups/version-group/instance-group/index.d.ts +10 -20
  21. package/dist/get-context/get-groups/version-group/instance-group/index.js +49 -53
  22. package/dist/get-context/get-package-json-files/get-file-paths.js +2 -1
  23. package/dist/get-context/get-package-json-files/package-json-file/index.js +3 -2
  24. package/dist/get-context/get-package-json-files/package-json-file/instance.d.ts +2 -5
  25. package/dist/get-context/get-package-json-files/package-json-file/instance.js +3 -22
  26. package/dist/get-context/index.js +3 -8
  27. package/dist/lib/log.d.ts +4 -2
  28. package/dist/lib/log.js +23 -14
  29. package/dist/lib/print-strings.d.ts +1 -0
  30. package/dist/lib/print-strings.js +7 -0
  31. package/package.json +2 -1
  32. package/dist/get-context/get-groups/get-semver-groups.d.ts +0 -4
  33. package/dist/get-context/get-groups/get-semver-groups.js +0 -46
  34. package/dist/get-context/get-groups/get-version-groups.d.ts +0 -4
  35. package/dist/get-context/get-groups/get-version-groups.js +0 -72
  36. package/dist/get-context/get-groups/semver-group/index.d.ts +0 -29
  37. package/dist/get-context/get-groups/semver-group/index.js +0 -56
@@ -3,99 +3,117 @@ export declare const ignored: z.ZodObject<{
3
3
  isIgnored: z.ZodLiteral<true>;
4
4
  dependencies: z.ZodArray<z.ZodString, "many">;
5
5
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
6
+ label: z.ZodDefault<z.ZodString>;
6
7
  packages: z.ZodArray<z.ZodString, "many">;
7
8
  }, "strict", z.ZodTypeAny, {
8
9
  dependencies: string[];
9
- isIgnored: true;
10
10
  dependencyTypes: string[];
11
+ label: string;
11
12
  packages: string[];
13
+ isIgnored: true;
12
14
  }, {
13
15
  dependencyTypes?: string[] | undefined;
16
+ label?: string | undefined;
14
17
  dependencies: string[];
15
- isIgnored: true;
16
18
  packages: string[];
19
+ isIgnored: true;
17
20
  }>;
18
21
  export declare const withRange: z.ZodObject<{
19
22
  range: z.ZodEnum<["*", "", ">", ">=", ".x", "<", "<=", "^", "~"]>;
20
23
  dependencies: z.ZodArray<z.ZodString, "many">;
21
24
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
25
+ label: z.ZodDefault<z.ZodString>;
22
26
  packages: z.ZodArray<z.ZodString, "many">;
23
27
  }, "strict", z.ZodTypeAny, {
24
28
  dependencies: string[];
29
+ range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
25
30
  dependencyTypes: string[];
31
+ label: string;
26
32
  packages: string[];
27
- range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
28
33
  }, {
29
34
  dependencyTypes?: string[] | undefined;
35
+ label?: string | undefined;
30
36
  dependencies: string[];
31
- packages: string[];
32
37
  range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
38
+ packages: string[];
33
39
  }>;
34
40
  export declare const base: z.ZodObject<{
35
41
  range: z.ZodEnum<["*", "", ">", ">=", ".x", "<", "<=", "^", "~"]>;
36
42
  isDefault: z.ZodLiteral<true>;
37
43
  dependencies: z.ZodArray<z.ZodString, "many">;
38
44
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
45
+ label: z.ZodDefault<z.ZodString>;
39
46
  packages: z.ZodArray<z.ZodString, "many">;
40
47
  }, "strict", z.ZodTypeAny, {
41
48
  isDefault: true;
42
49
  dependencies: string[];
50
+ range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
43
51
  dependencyTypes: string[];
52
+ label: string;
44
53
  packages: string[];
45
- range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
46
54
  }, {
47
55
  dependencyTypes?: string[] | undefined;
56
+ label?: string | undefined;
48
57
  isDefault: true;
49
58
  dependencies: string[];
50
- packages: string[];
51
59
  range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
60
+ packages: string[];
52
61
  }>;
53
62
  export declare const any: z.ZodUnion<[z.ZodObject<{
54
63
  isIgnored: z.ZodLiteral<true>;
55
64
  dependencies: z.ZodArray<z.ZodString, "many">;
56
65
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
66
+ label: z.ZodDefault<z.ZodString>;
57
67
  packages: z.ZodArray<z.ZodString, "many">;
58
68
  }, "strict", z.ZodTypeAny, {
59
69
  dependencies: string[];
60
- isIgnored: true;
61
70
  dependencyTypes: string[];
71
+ label: string;
62
72
  packages: string[];
73
+ isIgnored: true;
63
74
  }, {
64
75
  dependencyTypes?: string[] | undefined;
76
+ label?: string | undefined;
65
77
  dependencies: string[];
66
- isIgnored: true;
67
78
  packages: string[];
79
+ isIgnored: true;
68
80
  }>, z.ZodObject<{
69
81
  range: z.ZodEnum<["*", "", ">", ">=", ".x", "<", "<=", "^", "~"]>;
70
82
  dependencies: z.ZodArray<z.ZodString, "many">;
71
83
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
84
+ label: z.ZodDefault<z.ZodString>;
72
85
  packages: z.ZodArray<z.ZodString, "many">;
73
86
  }, "strict", z.ZodTypeAny, {
74
87
  dependencies: string[];
88
+ range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
75
89
  dependencyTypes: string[];
90
+ label: string;
76
91
  packages: string[];
77
- range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
78
92
  }, {
79
93
  dependencyTypes?: string[] | undefined;
94
+ label?: string | undefined;
80
95
  dependencies: string[];
81
- packages: string[];
82
96
  range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
97
+ packages: string[];
83
98
  }>, z.ZodObject<{
84
99
  range: z.ZodEnum<["*", "", ">", ">=", ".x", "<", "<=", "^", "~"]>;
85
100
  isDefault: z.ZodLiteral<true>;
86
101
  dependencies: z.ZodArray<z.ZodString, "many">;
87
102
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
103
+ label: z.ZodDefault<z.ZodString>;
88
104
  packages: z.ZodArray<z.ZodString, "many">;
89
105
  }, "strict", z.ZodTypeAny, {
90
106
  isDefault: true;
91
107
  dependencies: string[];
108
+ range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
92
109
  dependencyTypes: string[];
110
+ label: string;
93
111
  packages: string[];
94
- range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
95
112
  }, {
96
113
  dependencyTypes?: string[] | undefined;
114
+ label?: string | undefined;
97
115
  isDefault: true;
98
116
  dependencies: string[];
99
- packages: string[];
100
117
  range: "" | "*" | ">" | ">=" | ".x" | "<" | "<=" | "^" | "~";
118
+ packages: string[];
101
119
  }>]>;
@@ -2,13 +2,16 @@ import { z } from 'zod';
2
2
  export declare const standard: z.ZodObject<{
3
3
  dependencies: z.ZodArray<z.ZodString, "many">;
4
4
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
5
+ label: z.ZodDefault<z.ZodString>;
5
6
  packages: z.ZodArray<z.ZodString, "many">;
6
7
  }, "strict", z.ZodTypeAny, {
7
8
  dependencies: string[];
8
9
  dependencyTypes: string[];
10
+ label: string;
9
11
  packages: string[];
10
12
  }, {
11
13
  dependencyTypes?: string[] | undefined;
14
+ label?: string | undefined;
12
15
  dependencies: string[];
13
16
  packages: string[];
14
17
  }>;
@@ -16,14 +19,17 @@ export declare const banned: z.ZodObject<{
16
19
  isBanned: z.ZodLiteral<true>;
17
20
  dependencies: z.ZodArray<z.ZodString, "many">;
18
21
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
22
+ label: z.ZodDefault<z.ZodString>;
19
23
  packages: z.ZodArray<z.ZodString, "many">;
20
24
  }, "strict", z.ZodTypeAny, {
21
25
  dependencies: string[];
22
26
  dependencyTypes: string[];
27
+ label: string;
23
28
  packages: string[];
24
29
  isBanned: true;
25
30
  }, {
26
31
  dependencyTypes?: string[] | undefined;
32
+ label?: string | undefined;
27
33
  dependencies: string[];
28
34
  packages: string[];
29
35
  isBanned: true;
@@ -32,30 +38,36 @@ export declare const ignored: z.ZodObject<{
32
38
  isIgnored: z.ZodLiteral<true>;
33
39
  dependencies: z.ZodArray<z.ZodString, "many">;
34
40
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
41
+ label: z.ZodDefault<z.ZodString>;
35
42
  packages: z.ZodArray<z.ZodString, "many">;
36
43
  }, "strict", z.ZodTypeAny, {
37
44
  dependencies: string[];
38
- isIgnored: true;
39
45
  dependencyTypes: string[];
46
+ label: string;
40
47
  packages: string[];
48
+ isIgnored: true;
41
49
  }, {
42
50
  dependencyTypes?: string[] | undefined;
51
+ label?: string | undefined;
43
52
  dependencies: string[];
44
- isIgnored: true;
45
53
  packages: string[];
54
+ isIgnored: true;
46
55
  }>;
47
56
  export declare const pinned: z.ZodObject<{
48
57
  pinVersion: z.ZodString;
49
58
  dependencies: z.ZodArray<z.ZodString, "many">;
50
59
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
60
+ label: z.ZodDefault<z.ZodString>;
51
61
  packages: z.ZodArray<z.ZodString, "many">;
52
62
  }, "strict", z.ZodTypeAny, {
53
63
  dependencies: string[];
54
64
  dependencyTypes: string[];
65
+ label: string;
55
66
  packages: string[];
56
67
  pinVersion: string;
57
68
  }, {
58
69
  dependencyTypes?: string[] | undefined;
70
+ label?: string | undefined;
59
71
  dependencies: string[];
60
72
  packages: string[];
61
73
  pinVersion: string;
@@ -64,14 +76,17 @@ export declare const base: z.ZodObject<{
64
76
  isDefault: z.ZodLiteral<true>;
65
77
  dependencies: z.ZodArray<z.ZodString, "many">;
66
78
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
79
+ label: z.ZodDefault<z.ZodString>;
67
80
  packages: z.ZodArray<z.ZodString, "many">;
68
81
  }, "strict", z.ZodTypeAny, {
69
82
  isDefault: true;
70
83
  dependencies: string[];
71
84
  dependencyTypes: string[];
85
+ label: string;
72
86
  packages: string[];
73
87
  }, {
74
88
  dependencyTypes?: string[] | undefined;
89
+ label?: string | undefined;
75
90
  isDefault: true;
76
91
  dependencies: string[];
77
92
  packages: string[];
@@ -79,27 +94,33 @@ export declare const base: z.ZodObject<{
79
94
  export declare const any: z.ZodUnion<[z.ZodObject<{
80
95
  dependencies: z.ZodArray<z.ZodString, "many">;
81
96
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
97
+ label: z.ZodDefault<z.ZodString>;
82
98
  packages: z.ZodArray<z.ZodString, "many">;
83
99
  }, "strict", z.ZodTypeAny, {
84
100
  dependencies: string[];
85
101
  dependencyTypes: string[];
102
+ label: string;
86
103
  packages: string[];
87
104
  }, {
88
105
  dependencyTypes?: string[] | undefined;
106
+ label?: string | undefined;
89
107
  dependencies: string[];
90
108
  packages: string[];
91
109
  }>, z.ZodObject<{
92
110
  isBanned: z.ZodLiteral<true>;
93
111
  dependencies: z.ZodArray<z.ZodString, "many">;
94
112
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
113
+ label: z.ZodDefault<z.ZodString>;
95
114
  packages: z.ZodArray<z.ZodString, "many">;
96
115
  }, "strict", z.ZodTypeAny, {
97
116
  dependencies: string[];
98
117
  dependencyTypes: string[];
118
+ label: string;
99
119
  packages: string[];
100
120
  isBanned: true;
101
121
  }, {
102
122
  dependencyTypes?: string[] | undefined;
123
+ label?: string | undefined;
103
124
  dependencies: string[];
104
125
  packages: string[];
105
126
  isBanned: true;
@@ -107,29 +128,35 @@ export declare const any: z.ZodUnion<[z.ZodObject<{
107
128
  isIgnored: z.ZodLiteral<true>;
108
129
  dependencies: z.ZodArray<z.ZodString, "many">;
109
130
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
131
+ label: z.ZodDefault<z.ZodString>;
110
132
  packages: z.ZodArray<z.ZodString, "many">;
111
133
  }, "strict", z.ZodTypeAny, {
112
134
  dependencies: string[];
113
- isIgnored: true;
114
135
  dependencyTypes: string[];
136
+ label: string;
115
137
  packages: string[];
138
+ isIgnored: true;
116
139
  }, {
117
140
  dependencyTypes?: string[] | undefined;
141
+ label?: string | undefined;
118
142
  dependencies: string[];
119
- isIgnored: true;
120
143
  packages: string[];
144
+ isIgnored: true;
121
145
  }>, z.ZodObject<{
122
146
  pinVersion: z.ZodString;
123
147
  dependencies: z.ZodArray<z.ZodString, "many">;
124
148
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
149
+ label: z.ZodDefault<z.ZodString>;
125
150
  packages: z.ZodArray<z.ZodString, "many">;
126
151
  }, "strict", z.ZodTypeAny, {
127
152
  dependencies: string[];
128
153
  dependencyTypes: string[];
154
+ label: string;
129
155
  packages: string[];
130
156
  pinVersion: string;
131
157
  }, {
132
158
  dependencyTypes?: string[] | undefined;
159
+ label?: string | undefined;
133
160
  dependencies: string[];
134
161
  packages: string[];
135
162
  pinVersion: string;
@@ -137,14 +164,17 @@ export declare const any: z.ZodUnion<[z.ZodObject<{
137
164
  isDefault: z.ZodLiteral<true>;
138
165
  dependencies: z.ZodArray<z.ZodString, "many">;
139
166
  dependencyTypes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
167
+ label: z.ZodDefault<z.ZodString>;
140
168
  packages: z.ZodArray<z.ZodString, "many">;
141
169
  }, "strict", z.ZodTypeAny, {
142
170
  isDefault: true;
143
171
  dependencies: string[];
144
172
  dependencyTypes: string[];
173
+ label: string;
145
174
  packages: string[];
146
175
  }, {
147
176
  dependencyTypes?: string[] | undefined;
177
+ label?: string | undefined;
148
178
  isDefault: true;
149
179
  dependencies: string[];
150
180
  packages: string[];
@@ -0,0 +1,19 @@
1
+ import type { Syncpack } from '../../types';
2
+ import type { Instance } from '../get-package-json-files/package-json-file/instance';
3
+ export declare class BaseGroup<T extends Syncpack.Config.SemverGroup.Any | Syncpack.Config.VersionGroup.Any> {
4
+ /** Full config for this run of syncpack */
5
+ syncpackConfig: Syncpack.Config.Private;
6
+ /** The original config which created this `SemverGroup` */
7
+ groupConfig: T;
8
+ /** Instances which belong to this group */
9
+ instances: Instance[];
10
+ /** Instances which belong to this group, keyed by their .name property */
11
+ instancesByName: Record<string, Instance[]>;
12
+ /** Is this the catch-all group, not defined by the user? */
13
+ isDefault: boolean;
14
+ constructor(config: Syncpack.Config.Private, group: T);
15
+ /** Can this instance be added to this group? */
16
+ canAdd(instance: Instance): boolean;
17
+ /** Add this instance to this group */
18
+ add(instance: Instance): void;
19
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ exports.BaseGroup = void 0;
7
+ var expect_more_1 = require("expect-more");
8
+ var minimatch_1 = __importDefault(require("minimatch"));
9
+ var BaseGroup = /** @class */ (function () {
10
+ function BaseGroup(config, group) {
11
+ this.groupConfig = group;
12
+ this.instances = [];
13
+ this.instancesByName = {};
14
+ this.isDefault =
15
+ group === config.defaultSemverGroup ||
16
+ group === config.defaultVersionGroup;
17
+ this.syncpackConfig = config;
18
+ }
19
+ /** Can this instance be added to this group? */
20
+ BaseGroup.prototype.canAdd = function (instance) {
21
+ var _a = this.groupConfig, dependencies = _a.dependencies, dependencyTypes = _a.dependencyTypes, packages = _a.packages;
22
+ return ((!(0, expect_more_1.isNonEmptyArray)(dependencyTypes) ||
23
+ dependencyTypes.includes(instance.pathDef.name)) &&
24
+ (!(0, expect_more_1.isNonEmptyArray)(packages) ||
25
+ packages.some(function (pattern) { return (0, minimatch_1["default"])(instance.pkgName, pattern); })) &&
26
+ (!(0, expect_more_1.isNonEmptyArray)(dependencies) ||
27
+ dependencies.some(function (pattern) { return (0, minimatch_1["default"])(instance.name, pattern); })));
28
+ };
29
+ /** Add this instance to this group */
30
+ BaseGroup.prototype.add = function (instance) {
31
+ var _a;
32
+ if (!this.instancesByName[instance.name]) {
33
+ this.instancesByName[instance.name] = [];
34
+ }
35
+ (_a = this.instancesByName[instance.name]) === null || _a === void 0 ? void 0 : _a.push(instance);
36
+ this.instances.push(instance);
37
+ };
38
+ return BaseGroup;
39
+ }());
40
+ exports.BaseGroup = BaseGroup;
@@ -0,0 +1,8 @@
1
+ import type { Syncpack } from '../../types';
2
+ import type { Instance } from '../get-package-json-files/package-json-file/instance';
3
+ import { SemverGroup } from './semver-group';
4
+ import { VersionGroup } from './version-group';
5
+ export declare function getGroups(config: Syncpack.Config.Private, instances: Instance[]): {
6
+ semverGroups: SemverGroup[];
7
+ versionGroups: VersionGroup[];
8
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ exports.__esModule = true;
14
+ exports.getGroups = void 0;
15
+ var semver_group_1 = require("./semver-group");
16
+ var version_group_1 = require("./version-group");
17
+ function getGroups(config, instances) {
18
+ var groupsByName = {
19
+ semverGroups: config.semverGroups.map(function (group) { return new semver_group_1.SemverGroup(config, group); }),
20
+ versionGroups: config.versionGroups.map(function (group) { return new version_group_1.VersionGroup(config, group); })
21
+ };
22
+ instances.forEach(function (instance) {
23
+ var name = instance.name, pkgName = instance.pkgName;
24
+ Object.keys(groupsByName).forEach(function (key) {
25
+ var e_1, _a;
26
+ try {
27
+ for (var _b = __values(groupsByName[key]), _c = _b.next(); !_c.done; _c = _b.next()) {
28
+ var group = _c.value;
29
+ if (group.canAdd(instance)) {
30
+ group.add(instance);
31
+ return;
32
+ }
33
+ }
34
+ }
35
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
36
+ finally {
37
+ try {
38
+ if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
39
+ }
40
+ finally { if (e_1) throw e_1.error; }
41
+ }
42
+ throw new Error("".concat(name, " in ").concat(pkgName, " did not match any ").concat(key));
43
+ });
44
+ });
45
+ return groupsByName;
46
+ }
47
+ exports.getGroups = getGroups;
@@ -0,0 +1,16 @@
1
+ import type { Syncpack } from '../../types';
2
+ import type { Instance } from '../get-package-json-files/package-json-file/instance';
3
+ import { BaseGroup } from './base-group';
4
+ type MismatchesByName = [string, Instance[]];
5
+ export declare class SemverGroup extends BaseGroup<Syncpack.Config.SemverGroup.Any> {
6
+ constructor(config: Syncpack.Config.Private, semverGroup: Syncpack.Config.SemverGroup.Any);
7
+ getExpectedVersion(instance: Instance): string;
8
+ /** Does this `Instance` have a version which does not follow the rules? */
9
+ isMismatch(instance: Instance): boolean;
10
+ /** 1+ `Instance` has a version which does not follow the rules */
11
+ hasMismatches(): boolean;
12
+ isIgnored(): boolean;
13
+ /** Get every `Instance` with a version which does not follow the rules */
14
+ getMismatches(): MismatchesByName[];
15
+ }
16
+ export {};
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
33
+ exports.__esModule = true;
34
+ exports.SemverGroup = void 0;
35
+ var is_semver_1 = require("../../lib/is-semver");
36
+ var set_semver_range_1 = require("../../lib/set-semver-range");
37
+ var base_group_1 = require("./base-group");
38
+ var SemverGroup = /** @class */ (function (_super) {
39
+ __extends(SemverGroup, _super);
40
+ function SemverGroup(config, semverGroup) {
41
+ return _super.call(this, config, semverGroup) || this;
42
+ }
43
+ SemverGroup.prototype.getExpectedVersion = function (instance) {
44
+ var version = instance.version;
45
+ // leave ignored versions alone
46
+ if (this.isIgnored())
47
+ return version;
48
+ // leave unsupported versions alone
49
+ if (!(0, is_semver_1.isSemver)(version))
50
+ return version;
51
+ // version property of package.json must always be exact
52
+ if (instance.isWorkspace())
53
+ return (0, set_semver_range_1.setSemverRange)('', version);
54
+ // otherwise we can change it
55
+ var range = this.groupConfig.range;
56
+ return (0, set_semver_range_1.setSemverRange)(range, version);
57
+ };
58
+ /** Does this `Instance` have a version which does not follow the rules? */
59
+ SemverGroup.prototype.isMismatch = function (instance) {
60
+ return instance.version !== this.getExpectedVersion(instance);
61
+ };
62
+ /** 1+ `Instance` has a version which does not follow the rules */
63
+ SemverGroup.prototype.hasMismatches = function () {
64
+ return this.getMismatches().length > 0;
65
+ };
66
+ SemverGroup.prototype.isIgnored = function () {
67
+ return this.groupConfig.isIgnored === true;
68
+ };
69
+ /** Get every `Instance` with a version which does not follow the rules */
70
+ SemverGroup.prototype.getMismatches = function () {
71
+ var _this = this;
72
+ return this.isIgnored()
73
+ ? []
74
+ : Object.entries(this.instancesByName)
75
+ .map(function (_a) {
76
+ var _b = __read(_a, 2), name = _b[0], instances = _b[1];
77
+ return [
78
+ name,
79
+ instances.filter(function (instance) { return _this.isMismatch(instance); }),
80
+ ];
81
+ })
82
+ .filter(function (_a) {
83
+ var _b = __read(_a, 2), arr = _b[1];
84
+ return arr.length > 0;
85
+ });
86
+ };
87
+ return SemverGroup;
88
+ }(base_group_1.BaseGroup));
89
+ exports.SemverGroup = SemverGroup;
@@ -1,29 +1,12 @@
1
1
  import type { Syncpack } from '../../../types';
2
- import type { Instance } from '../../get-package-json-files/package-json-file/instance';
3
- import type { InstanceGroup } from './instance-group';
4
- export declare class VersionGroup {
5
- /** */
6
- dependencies: string[];
7
- /** Optionally limit this group to dependencies at these named paths */
8
- dependencyTypes: Syncpack.TypeName[];
9
- /** */
10
- input: Syncpack.Config.Private;
11
- /** */
12
- instanceGroups: InstanceGroup[];
13
- /** */
14
- instances: Instance[];
15
- /** */
16
- instancesByName: Record<string, Instance[]>;
17
- /** */
18
- isBanned: boolean;
19
- /** */
20
- isDefault: boolean;
21
- /** */
22
- isIgnored: boolean;
23
- /** */
24
- packages: string[];
25
- /** Optionally force all dependencies in this group to have this version */
26
- pinVersion?: string;
27
- constructor(input: Syncpack.Config.Private, versionGroup: Syncpack.Config.VersionGroup.Any);
2
+ import { BaseGroup } from '../base-group';
3
+ import { InstanceGroup } from './instance-group';
4
+ export declare class VersionGroup extends BaseGroup<Syncpack.Config.VersionGroup.Any> {
5
+ getAllInstanceGroups(): InstanceGroup[];
28
6
  getInvalidInstanceGroups(): InstanceGroup[];
7
+ isBanned(): boolean;
8
+ isIgnored(): boolean;
9
+ hasPinnedVersion(): boolean;
10
+ getPinnedVersion(): string;
11
+ isUnpinned(): boolean;
29
12
  }
@@ -1,23 +1,75 @@
1
1
  "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
2
33
  exports.__esModule = true;
3
34
  exports.VersionGroup = void 0;
4
- var VersionGroup = /** @class */ (function () {
5
- function VersionGroup(input, versionGroup) {
6
- this.dependencies = versionGroup.dependencies;
7
- this.dependencyTypes = versionGroup.dependencyTypes;
8
- this.input = input;
9
- this.instanceGroups = [];
10
- this.instances = [];
11
- this.instancesByName = {};
12
- this.isBanned = versionGroup.isBanned === true;
13
- this.isDefault = versionGroup === input.defaultVersionGroup;
14
- this.isIgnored = versionGroup.isIgnored === true;
15
- this.packages = versionGroup.packages;
16
- this.pinVersion = versionGroup.pinVersion;
35
+ var expect_more_1 = require("expect-more");
36
+ var base_group_1 = require("../base-group");
37
+ var instance_group_1 = require("./instance-group");
38
+ var VersionGroup = /** @class */ (function (_super) {
39
+ __extends(VersionGroup, _super);
40
+ function VersionGroup() {
41
+ return _super !== null && _super.apply(this, arguments) || this;
17
42
  }
43
+ VersionGroup.prototype.getAllInstanceGroups = function () {
44
+ var _this = this;
45
+ return Object.entries(this.instancesByName).map(function (_a) {
46
+ var _b = __read(_a, 2), name = _b[0], instances = _b[1];
47
+ return new instance_group_1.InstanceGroup(_this, name, instances);
48
+ });
49
+ };
18
50
  VersionGroup.prototype.getInvalidInstanceGroups = function () {
19
- return this.instanceGroups.filter(function (group) { return group.isInvalid; });
51
+ return this.getAllInstanceGroups().filter(function (group) { return group.isInvalid(); });
52
+ };
53
+ VersionGroup.prototype.isBanned = function () {
54
+ return this.groupConfig.isBanned === true;
55
+ };
56
+ VersionGroup.prototype.isIgnored = function () {
57
+ return this.groupConfig.isIgnored === true;
58
+ };
59
+ VersionGroup.prototype.hasPinnedVersion = function () {
60
+ return (0, expect_more_1.isNonEmptyString)(this.getPinnedVersion());
61
+ };
62
+ VersionGroup.prototype.getPinnedVersion = function () {
63
+ return this.groupConfig.pinVersion;
64
+ };
65
+ VersionGroup.prototype.isUnpinned = function () {
66
+ var pinVersion = this.groupConfig.pinVersion;
67
+ return ((0, expect_more_1.isNonEmptyString)(pinVersion) &&
68
+ this.instances.some(function (_a) {
69
+ var version = _a.version;
70
+ return version !== pinVersion;
71
+ }));
20
72
  };
21
73
  return VersionGroup;
22
- }());
74
+ }(base_group_1.BaseGroup));
23
75
  exports.VersionGroup = VersionGroup;