syncpack 12.0.1 → 12.2.0

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 (79) hide show
  1. package/README.md +5 -5
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +8 -19
  3. package/dist/bin-fix-mismatches/index.js +3 -1
  4. package/dist/bin-format/index.js +1 -1
  5. package/dist/bin-lint/index.js +1 -1
  6. package/dist/bin-lint-semver-ranges/index.js +3 -1
  7. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +7 -7
  8. package/dist/bin-list/index.js +3 -1
  9. package/dist/bin-list/list.d.ts +2 -0
  10. package/dist/bin-list/list.js +78 -50
  11. package/dist/bin-list-mismatches/index.js +3 -1
  12. package/dist/bin-list-mismatches/list-mismatches.d.ts +4 -5
  13. package/dist/bin-list-mismatches/list-mismatches.js +185 -220
  14. package/dist/bin-prompt/index.js +2 -0
  15. package/dist/bin-prompt/prompt.js +7 -3
  16. package/dist/bin-set-semver-ranges/index.js +3 -1
  17. package/dist/bin-update/effects.js +6 -6
  18. package/dist/bin-update/index.js +2 -0
  19. package/dist/bin-update/update.js +3 -3
  20. package/dist/config/get-custom-types.js +2 -1
  21. package/dist/config/types.d.ts +15 -7
  22. package/dist/constants.d.ts +71 -8
  23. package/dist/constants.js +34 -1
  24. package/dist/get-instances/instance.d.ts +2 -1
  25. package/dist/get-instances/instance.js +4 -3
  26. package/dist/guards/can-add-to-group.js +14 -7
  27. package/dist/io/index.d.ts +2 -2
  28. package/dist/io/index.js +1 -1
  29. package/dist/io/read-config-file-sync.js +1 -1
  30. package/dist/option.d.ts +2 -1
  31. package/dist/option.js +4 -0
  32. package/dist/report.d.ts +64 -99
  33. package/dist/report.js +81 -16
  34. package/dist/schema.json +202 -77
  35. package/dist/semver-group/create-semver-groups.js +6 -0
  36. package/dist/semver-group/disabled.js +1 -3
  37. package/dist/semver-group/filtered-out.js +1 -3
  38. package/dist/semver-group/ignored.js +1 -3
  39. package/dist/semver-group/index.d.ts +1 -2
  40. package/dist/semver-group/with-range.d.ts +1 -1
  41. package/dist/semver-group/with-range.js +7 -15
  42. package/dist/specifier/alias.d.ts +2 -0
  43. package/dist/specifier/alias.js +3 -1
  44. package/dist/specifier/base.d.ts +4 -2
  45. package/dist/specifier/base.js +3 -1
  46. package/dist/specifier/delete.d.ts +4 -2
  47. package/dist/specifier/delete.js +3 -1
  48. package/dist/specifier/{version.d.ts → exact.d.ts} +3 -1
  49. package/dist/specifier/{version.js → exact.js} +6 -4
  50. package/dist/specifier/file.d.ts +2 -0
  51. package/dist/specifier/file.js +3 -1
  52. package/dist/specifier/hosted-git.d.ts +2 -0
  53. package/dist/specifier/hosted-git.js +3 -1
  54. package/dist/specifier/index.d.ts +5 -4
  55. package/dist/specifier/index.js +7 -3
  56. package/dist/specifier/latest.d.ts +19 -0
  57. package/dist/specifier/latest.js +24 -0
  58. package/dist/specifier/lib/parse-specifier.js +1 -1
  59. package/dist/specifier/range.d.ts +2 -1
  60. package/dist/specifier/range.js +3 -2
  61. package/dist/specifier/tag.d.ts +2 -0
  62. package/dist/specifier/tag.js +3 -1
  63. package/dist/specifier/unsupported.d.ts +2 -0
  64. package/dist/specifier/unsupported.js +3 -1
  65. package/dist/specifier/url.d.ts +2 -0
  66. package/dist/specifier/url.js +3 -1
  67. package/dist/specifier/workspace-protocol.d.ts +2 -0
  68. package/dist/specifier/workspace-protocol.js +6 -3
  69. package/dist/strategy/name-and-version-props.js +4 -4
  70. package/dist/version-group/banned.js +1 -3
  71. package/dist/version-group/create-version-groups.js +11 -0
  72. package/dist/version-group/filtered-out.js +1 -1
  73. package/dist/version-group/ignored.js +1 -1
  74. package/dist/version-group/index.d.ts +1 -2
  75. package/dist/version-group/pinned.js +3 -3
  76. package/dist/version-group/same-range.js +9 -14
  77. package/dist/version-group/snapped-to.js +12 -22
  78. package/dist/version-group/standard.js +44 -55
  79. package/package.json +7 -7
package/dist/report.js CHANGED
@@ -1,67 +1,132 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Report = void 0;
4
- const effect_1 = require("effect");
5
4
  var Report;
6
5
  (function (Report) {
6
+ class Excluded {
7
+ _tagGroup = 'Excluded';
8
+ isInvalid = false;
9
+ instance;
10
+ constructor(instance) {
11
+ this.instance = instance;
12
+ }
13
+ }
14
+ class Unfixable {
15
+ _tagGroup = 'Unfixable';
16
+ isInvalid = true;
17
+ unfixable;
18
+ constructor(unfixable) {
19
+ this.unfixable = unfixable;
20
+ }
21
+ }
22
+ class Fixable {
23
+ _tagGroup = 'Fixable';
24
+ isInvalid = true;
25
+ fixable;
26
+ constructor(fixable) {
27
+ this.fixable = fixable;
28
+ }
29
+ }
7
30
  /** Semver Groups are disabled by default */
8
- class Disabled extends effect_1.Data.TaggedClass('Disabled') {
31
+ class Disabled extends Excluded {
32
+ _tag = 'Disabled';
9
33
  }
10
34
  Report.Disabled = Disabled;
11
35
  /** Has a name which does not match the `--filter` RegExp */
12
- class FilteredOut extends effect_1.Data.TaggedClass('FilteredOut') {
36
+ class FilteredOut extends Excluded {
37
+ _tag = 'FilteredOut';
13
38
  }
14
39
  Report.FilteredOut = FilteredOut;
15
40
  /** Is in an ignored version group */
16
- class Ignored extends effect_1.Data.TaggedClass('Ignored') {
41
+ class Ignored extends Excluded {
42
+ _tag = 'Ignored';
17
43
  }
18
44
  Report.Ignored = Ignored;
19
45
  /** Version satisfies the rules of its version group */
20
- class Valid extends effect_1.Data.TaggedClass('Valid') {
46
+ class Valid {
47
+ _tag = 'Valid';
48
+ _tagGroup = 'Valid';
49
+ isInvalid = false;
50
+ specifier;
51
+ constructor(specifier) {
52
+ this.specifier = specifier;
53
+ }
21
54
  }
22
55
  Report.Valid = Valid;
23
56
  /** Must be removed */
24
- class Banned extends effect_1.Data.TaggedClass('Banned') {
57
+ class Banned extends Fixable {
58
+ _tag = 'Banned';
25
59
  }
26
60
  Report.Banned = Banned;
27
61
  /** Version mismatches and should use a higher version found on another */
28
- class HighestSemverMismatch extends effect_1.Data.TaggedClass('HighestSemverMismatch') {
62
+ class HighestSemverMismatch extends Fixable {
63
+ _tag = 'HighestSemverMismatch';
29
64
  }
30
65
  Report.HighestSemverMismatch = HighestSemverMismatch;
31
66
  /** Version mismatches the `.version` of the package developed in this repo */
32
- class LocalPackageMismatch extends effect_1.Data.TaggedClass('LocalPackageMismatch') {
67
+ class LocalPackageMismatch extends Fixable {
68
+ _tag = 'LocalPackageMismatch';
69
+ localInstance;
70
+ constructor(fixable, localInstance) {
71
+ super(fixable);
72
+ this.localInstance = localInstance;
73
+ }
33
74
  }
34
75
  Report.LocalPackageMismatch = LocalPackageMismatch;
35
76
  /** Version mismatches and should use a lower version found on another */
36
- class LowestSemverMismatch extends effect_1.Data.TaggedClass('LowestSemverMismatch') {
77
+ class LowestSemverMismatch extends Fixable {
78
+ _tag = 'LowestSemverMismatch';
37
79
  }
38
80
  Report.LowestSemverMismatch = LowestSemverMismatch;
39
81
  /** Version is not identical to the `pinVersion` of its Pinned version group */
40
- class PinnedMismatch extends effect_1.Data.TaggedClass('PinnedMismatch') {
82
+ class PinnedMismatch extends Fixable {
83
+ _tag = 'PinnedMismatch';
41
84
  }
42
85
  Report.PinnedMismatch = PinnedMismatch;
43
86
  /** Version is identical but the semver range does not match its semver group */
44
- class SemverRangeMismatch extends effect_1.Data.TaggedClass('SemverRangeMismatch') {
87
+ class SemverRangeMismatch extends Fixable {
88
+ _tag = 'SemverRangeMismatch';
45
89
  }
46
90
  Report.SemverRangeMismatch = SemverRangeMismatch;
47
91
  /** Version mismatches the version used by the packages in the `snapTo` array */
48
- class SnappedToMismatch extends effect_1.Data.TaggedClass('SnappedToMismatch') {
92
+ class SnappedToMismatch extends Fixable {
93
+ _tag = 'SnappedToMismatch';
94
+ localInstance;
95
+ constructor(fixable, localInstance) {
96
+ super(fixable);
97
+ this.localInstance = localInstance;
98
+ }
49
99
  }
50
100
  Report.SnappedToMismatch = SnappedToMismatch;
51
101
  /** Dependency should match a local package.json which is missing a .version */
52
- class MissingLocalVersion extends effect_1.Data.TaggedClass('MissingLocalVersion') {
102
+ class MissingLocalVersion extends Unfixable {
103
+ _tag = 'MissingLocalVersion';
104
+ localInstance;
105
+ constructor(unfixable, localInstance) {
106
+ super(unfixable);
107
+ this.localInstance = localInstance;
108
+ }
53
109
  }
54
110
  Report.MissingLocalVersion = MissingLocalVersion;
55
111
  /** Dependency is not present in any of the packages in the `snapTo` array */
56
- class MissingSnappedToMismatch extends effect_1.Data.TaggedClass('MissingSnappedToMismatch') {
112
+ class MissingSnappedToMismatch extends Unfixable {
113
+ _tag = 'MissingSnappedToMismatch';
57
114
  }
58
115
  Report.MissingSnappedToMismatch = MissingSnappedToMismatch;
59
116
  /** Specifier does not cover the specifiers of every other instance in this group */
60
- class SameRangeMismatch extends effect_1.Data.TaggedClass('SameRangeMismatch') {
117
+ class SameRangeMismatch extends Unfixable {
118
+ _tag = 'SameRangeMismatch';
119
+ /** the raw specifiers which this instance's specifier did not cover */
120
+ mismatches;
121
+ constructor(unfixable, mismatches) {
122
+ super(unfixable);
123
+ this.mismatches = mismatches;
124
+ }
61
125
  }
62
126
  Report.SameRangeMismatch = SameRangeMismatch;
63
127
  /** Version mismatches and is not semver, syncpack cannot guess what to do */
64
- class UnsupportedMismatch extends effect_1.Data.TaggedClass('UnsupportedMismatch') {
128
+ class UnsupportedMismatch extends Unfixable {
129
+ _tag = 'UnsupportedMismatch';
65
130
  }
66
131
  Report.UnsupportedMismatch = UnsupportedMismatch;
67
132
  })(Report || (exports.Report = Report = {}));
package/dist/schema.json CHANGED
@@ -2,62 +2,52 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "additionalProperties": false,
4
4
  "definitions": {
5
- "Record<string,CustomTypeConfig.Any>": {
6
- "additionalProperties": false,
7
- "type": "object"
8
- },
9
- "SemverGroupConfig.Any": {
5
+ "DependencyType": {
10
6
  "anyOf": [
11
7
  {
12
- "$ref": "#/definitions/{isDisabled:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;range?:never;}"
8
+ "additionalProperties": false,
9
+ "properties": {},
10
+ "type": "object"
13
11
  },
14
12
  {
15
- "$ref": "#/definitions/{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;range?:never;}"
16
- },
17
- {
18
- "$ref": "#/definitions/{range:SemverRange;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;isIgnored?:never;}"
13
+ "enum": [
14
+ "!dev",
15
+ "!local",
16
+ "!overrides",
17
+ "!peer",
18
+ "!pnpmOverrides",
19
+ "!prod",
20
+ "!resolutions",
21
+ "dev",
22
+ "local",
23
+ "overrides",
24
+ "peer",
25
+ "pnpmOverrides",
26
+ "prod",
27
+ "resolutions"
28
+ ],
29
+ "type": "string"
19
30
  }
20
31
  ]
21
32
  },
22
- "SemverRange": {
23
- "default": "",
24
- "description": "Aliases for semver range formats supported by syncpack\n\nDefaults to `\"\"` to ensure that exact dependency versions are used instead of\nloose ranges, but this can be overridden in your config file.\n\n| Supported Range | Example |\n| --------------- | --------: |\n| `\"<\"` | `<1.4.2` |\n| `\"<=\"` | `<=1.4.2` |\n| `\"\"` | `1.4.2` |\n| `\"~\"` | `~1.4.2` |\n| `\"^\"` | `^1.4.2` |\n| `\">=\"` | `>=1.4.2` |\n| `\">\"` | `>1.4.2` |\n| `\"*\"` | `*` |",
25
- "enum": [
26
- "",
27
- "*",
28
- ".x",
29
- "<",
30
- "<=",
31
- ">",
32
- ">=",
33
- "^",
34
- "~"
35
- ],
36
- "type": "string"
33
+ "Record<string,CustomTypeConfig.Any>": {
34
+ "additionalProperties": false,
35
+ "type": "object"
37
36
  },
38
- "VersionGroupConfig.Any": {
37
+ "SemverGroupConfig.Any": {
39
38
  "anyOf": [
40
39
  {
41
- "$ref": "#/definitions/{isBanned:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
42
- },
43
- {
44
- "$ref": "#/definitions/{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
40
+ "$ref": "#/definitions/SemverGroupConfig.Disabled"
45
41
  },
46
42
  {
47
- "$ref": "#/definitions/{pinVersion:string;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
43
+ "$ref": "#/definitions/SemverGroupConfig.Ignored"
48
44
  },
49
45
  {
50
- "$ref": "#/definitions/{snapTo:string[];dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}"
51
- },
52
- {
53
- "$ref": "#/definitions/{policy:\"sameRange\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}"
54
- },
55
- {
56
- "$ref": "#/definitions/{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}"
46
+ "$ref": "#/definitions/SemverGroupConfig.WithRange"
57
47
  }
58
48
  ]
59
49
  },
60
- "{isBanned:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
50
+ "SemverGroupConfig.Disabled": {
61
51
  "additionalProperties": false,
62
52
  "properties": {
63
53
  "dependencies": {
@@ -68,11 +58,11 @@
68
58
  },
69
59
  "dependencyTypes": {
70
60
  "items": {
71
- "type": "string"
61
+ "$ref": "#/definitions/DependencyType"
72
62
  },
73
63
  "type": "array"
74
64
  },
75
- "isBanned": {
65
+ "isDisabled": {
76
66
  "const": true,
77
67
  "type": "boolean"
78
68
  },
@@ -84,11 +74,17 @@
84
74
  "type": "string"
85
75
  },
86
76
  "type": "array"
77
+ },
78
+ "specifierTypes": {
79
+ "items": {
80
+ "$ref": "#/definitions/SpecifierType"
81
+ },
82
+ "type": "array"
87
83
  }
88
84
  },
89
85
  "type": "object"
90
86
  },
91
- "{isDisabled:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;range?:never;}": {
87
+ "SemverGroupConfig.Ignored": {
92
88
  "additionalProperties": false,
93
89
  "properties": {
94
90
  "dependencies": {
@@ -99,11 +95,11 @@
99
95
  },
100
96
  "dependencyTypes": {
101
97
  "items": {
102
- "type": "string"
98
+ "$ref": "#/definitions/DependencyType"
103
99
  },
104
100
  "type": "array"
105
101
  },
106
- "isDisabled": {
102
+ "isIgnored": {
107
103
  "const": true,
108
104
  "type": "boolean"
109
105
  },
@@ -115,11 +111,17 @@
115
111
  "type": "string"
116
112
  },
117
113
  "type": "array"
114
+ },
115
+ "specifierTypes": {
116
+ "items": {
117
+ "$ref": "#/definitions/SpecifierType"
118
+ },
119
+ "type": "array"
118
120
  }
119
121
  },
120
122
  "type": "object"
121
123
  },
122
- "{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
124
+ "SemverGroupConfig.WithRange": {
123
125
  "additionalProperties": false,
124
126
  "properties": {
125
127
  "dependencies": {
@@ -130,14 +132,10 @@
130
132
  },
131
133
  "dependencyTypes": {
132
134
  "items": {
133
- "type": "string"
135
+ "$ref": "#/definitions/DependencyType"
134
136
  },
135
137
  "type": "array"
136
138
  },
137
- "isIgnored": {
138
- "const": true,
139
- "type": "boolean"
140
- },
141
139
  "label": {
142
140
  "type": "string"
143
141
  },
@@ -146,11 +144,95 @@
146
144
  "type": "string"
147
145
  },
148
146
  "type": "array"
147
+ },
148
+ "range": {
149
+ "$ref": "#/definitions/SemverRange"
150
+ },
151
+ "specifierTypes": {
152
+ "items": {
153
+ "$ref": "#/definitions/SpecifierType"
154
+ },
155
+ "type": "array"
149
156
  }
150
157
  },
151
158
  "type": "object"
152
159
  },
153
- "{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;range?:never;}": {
160
+ "SemverRange": {
161
+ "default": "",
162
+ "description": "Aliases for semver range formats supported by syncpack\n\nDefaults to `\"\"` to ensure that exact dependency versions are used instead of\nloose ranges, but this can be overridden in your config file.\n\n| Supported Range | Example |\n| --------------- | --------: |\n| `\"<\"` | `<1.4.2` |\n| `\"<=\"` | `<=1.4.2` |\n| `\"\"` | `1.4.2` |\n| `\"~\"` | `~1.4.2` |\n| `\"^\"` | `^1.4.2` |\n| `\">=\"` | `>=1.4.2` |\n| `\">\"` | `>1.4.2` |\n| `\"*\"` | `*` |",
163
+ "enum": [
164
+ "",
165
+ "*",
166
+ ".x",
167
+ "<",
168
+ "<=",
169
+ ">",
170
+ ">=",
171
+ "^",
172
+ "workspace:",
173
+ "~"
174
+ ],
175
+ "type": "string"
176
+ },
177
+ "SpecifierType": {
178
+ "anyOf": [
179
+ {
180
+ "additionalProperties": false,
181
+ "properties": {},
182
+ "type": "object"
183
+ },
184
+ {
185
+ "enum": [
186
+ "!alias",
187
+ "!delete",
188
+ "!exact",
189
+ "!file",
190
+ "!hosted-git",
191
+ "!latest",
192
+ "!range",
193
+ "!tag",
194
+ "!unsupported",
195
+ "!url",
196
+ "!workspace-protocol",
197
+ "alias",
198
+ "delete",
199
+ "exact",
200
+ "file",
201
+ "hosted-git",
202
+ "latest",
203
+ "range",
204
+ "tag",
205
+ "unsupported",
206
+ "url",
207
+ "workspace-protocol"
208
+ ],
209
+ "type": "string"
210
+ }
211
+ ]
212
+ },
213
+ "VersionGroupConfig.Any": {
214
+ "anyOf": [
215
+ {
216
+ "$ref": "#/definitions/VersionGroupConfig.Banned"
217
+ },
218
+ {
219
+ "$ref": "#/definitions/VersionGroupConfig.Ignored"
220
+ },
221
+ {
222
+ "$ref": "#/definitions/VersionGroupConfig.Pinned"
223
+ },
224
+ {
225
+ "$ref": "#/definitions/VersionGroupConfig.SameRange"
226
+ },
227
+ {
228
+ "$ref": "#/definitions/VersionGroupConfig.SnappedTo"
229
+ },
230
+ {
231
+ "$ref": "#/definitions/VersionGroupConfig.Standard"
232
+ }
233
+ ]
234
+ },
235
+ "VersionGroupConfig.Banned": {
154
236
  "additionalProperties": false,
155
237
  "properties": {
156
238
  "dependencies": {
@@ -161,11 +243,11 @@
161
243
  },
162
244
  "dependencyTypes": {
163
245
  "items": {
164
- "type": "string"
246
+ "$ref": "#/definitions/DependencyType"
165
247
  },
166
248
  "type": "array"
167
249
  },
168
- "isIgnored": {
250
+ "isBanned": {
169
251
  "const": true,
170
252
  "type": "boolean"
171
253
  },
@@ -177,11 +259,17 @@
177
259
  "type": "string"
178
260
  },
179
261
  "type": "array"
262
+ },
263
+ "specifierTypes": {
264
+ "items": {
265
+ "$ref": "#/definitions/SpecifierType"
266
+ },
267
+ "type": "array"
180
268
  }
181
269
  },
182
270
  "type": "object"
183
271
  },
184
- "{pinVersion:string;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
272
+ "VersionGroupConfig.Ignored": {
185
273
  "additionalProperties": false,
186
274
  "properties": {
187
275
  "dependencies": {
@@ -192,10 +280,14 @@
192
280
  },
193
281
  "dependencyTypes": {
194
282
  "items": {
195
- "type": "string"
283
+ "$ref": "#/definitions/DependencyType"
196
284
  },
197
285
  "type": "array"
198
286
  },
287
+ "isIgnored": {
288
+ "const": true,
289
+ "type": "boolean"
290
+ },
199
291
  "label": {
200
292
  "type": "string"
201
293
  },
@@ -205,13 +297,16 @@
205
297
  },
206
298
  "type": "array"
207
299
  },
208
- "pinVersion": {
209
- "type": "string"
300
+ "specifierTypes": {
301
+ "items": {
302
+ "$ref": "#/definitions/SpecifierType"
303
+ },
304
+ "type": "array"
210
305
  }
211
306
  },
212
307
  "type": "object"
213
308
  },
214
- "{policy:\"sameRange\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}": {
309
+ "VersionGroupConfig.Pinned": {
215
310
  "additionalProperties": false,
216
311
  "properties": {
217
312
  "dependencies": {
@@ -222,7 +317,7 @@
222
317
  },
223
318
  "dependencyTypes": {
224
319
  "items": {
225
- "type": "string"
320
+ "$ref": "#/definitions/DependencyType"
226
321
  },
227
322
  "type": "array"
228
323
  },
@@ -235,14 +330,19 @@
235
330
  },
236
331
  "type": "array"
237
332
  },
238
- "policy": {
239
- "const": "sameRange",
333
+ "pinVersion": {
240
334
  "type": "string"
335
+ },
336
+ "specifierTypes": {
337
+ "items": {
338
+ "$ref": "#/definitions/SpecifierType"
339
+ },
340
+ "type": "array"
241
341
  }
242
342
  },
243
343
  "type": "object"
244
344
  },
245
- "{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}": {
345
+ "VersionGroupConfig.SameRange": {
246
346
  "additionalProperties": false,
247
347
  "properties": {
248
348
  "dependencies": {
@@ -253,7 +353,7 @@
253
353
  },
254
354
  "dependencyTypes": {
255
355
  "items": {
256
- "type": "string"
356
+ "$ref": "#/definitions/DependencyType"
257
357
  },
258
358
  "type": "array"
259
359
  },
@@ -266,17 +366,20 @@
266
366
  },
267
367
  "type": "array"
268
368
  },
269
- "preferVersion": {
270
- "enum": [
271
- "highestSemver",
272
- "lowestSemver"
273
- ],
369
+ "policy": {
370
+ "const": "sameRange",
274
371
  "type": "string"
372
+ },
373
+ "specifierTypes": {
374
+ "items": {
375
+ "$ref": "#/definitions/SpecifierType"
376
+ },
377
+ "type": "array"
275
378
  }
276
379
  },
277
380
  "type": "object"
278
381
  },
279
- "{range:SemverRange;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;isIgnored?:never;}": {
382
+ "VersionGroupConfig.SnappedTo": {
280
383
  "additionalProperties": false,
281
384
  "properties": {
282
385
  "dependencies": {
@@ -287,7 +390,7 @@
287
390
  },
288
391
  "dependencyTypes": {
289
392
  "items": {
290
- "type": "string"
393
+ "$ref": "#/definitions/DependencyType"
291
394
  },
292
395
  "type": "array"
293
396
  },
@@ -300,13 +403,22 @@
300
403
  },
301
404
  "type": "array"
302
405
  },
303
- "range": {
304
- "$ref": "#/definitions/SemverRange"
406
+ "snapTo": {
407
+ "items": {
408
+ "type": "string"
409
+ },
410
+ "type": "array"
411
+ },
412
+ "specifierTypes": {
413
+ "items": {
414
+ "$ref": "#/definitions/SpecifierType"
415
+ },
416
+ "type": "array"
305
417
  }
306
418
  },
307
419
  "type": "object"
308
420
  },
309
- "{snapTo:string[];dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}": {
421
+ "VersionGroupConfig.Standard": {
310
422
  "additionalProperties": false,
311
423
  "properties": {
312
424
  "dependencies": {
@@ -317,7 +429,7 @@
317
429
  },
318
430
  "dependencyTypes": {
319
431
  "items": {
320
- "type": "string"
432
+ "$ref": "#/definitions/DependencyType"
321
433
  },
322
434
  "type": "array"
323
435
  },
@@ -330,9 +442,16 @@
330
442
  },
331
443
  "type": "array"
332
444
  },
333
- "snapTo": {
445
+ "preferVersion": {
446
+ "enum": [
447
+ "highestSemver",
448
+ "lowestSemver"
449
+ ],
450
+ "type": "string"
451
+ },
452
+ "specifierTypes": {
334
453
  "items": {
335
- "type": "string"
454
+ "$ref": "#/definitions/SpecifierType"
336
455
  },
337
456
  "type": "array"
338
457
  }
@@ -346,7 +465,7 @@
346
465
  },
347
466
  "dependencyTypes": {
348
467
  "items": {
349
- "type": "string"
468
+ "$ref": "#/definitions/DependencyType"
350
469
  },
351
470
  "type": "array"
352
471
  },
@@ -380,6 +499,12 @@
380
499
  },
381
500
  "type": "array"
382
501
  },
502
+ "specifierTypes": {
503
+ "items": {
504
+ "$ref": "#/definitions/SpecifierType"
505
+ },
506
+ "type": "array"
507
+ },
383
508
  "versionGroups": {
384
509
  "items": {
385
510
  "$ref": "#/definitions/VersionGroupConfig.Any"
@@ -45,10 +45,14 @@ function createSemverGroups(ctx) {
45
45
  : ['**'];
46
46
  const dependencies = (0, is_array_of_strings_1.isArrayOfStrings)(config.dependencies) ? config.dependencies : ['**'];
47
47
  const packages = (0, is_array_of_strings_1.isArrayOfStrings)(config.packages) ? config.packages : ['**'];
48
+ const specifierTypes = (0, is_array_of_strings_1.isArrayOfStrings)(config.specifierTypes)
49
+ ? config.specifierTypes
50
+ : ['**'];
48
51
  if (config.isIgnored === true) {
49
52
  semverGroups.push(effect_1.Effect.succeed(new ignored_1.IgnoredSemverGroup({
50
53
  dependencies,
51
54
  dependencyTypes,
55
+ specifierTypes,
52
56
  isIgnored: true,
53
57
  label,
54
58
  packages,
@@ -58,6 +62,7 @@ function createSemverGroups(ctx) {
58
62
  semverGroups.push(effect_1.Effect.succeed(new with_range_1.WithRangeSemverGroup(false, {
59
63
  dependencies,
60
64
  dependencyTypes,
65
+ specifierTypes,
61
66
  label,
62
67
  packages,
63
68
  range: config.range,
@@ -68,6 +73,7 @@ function createSemverGroups(ctx) {
68
73
  semverGroups.push(effect_1.Effect.succeed(new disabled_1.DisabledSemverGroup(true, {
69
74
  dependencies: ['**'],
70
75
  dependencyTypes: ['**'],
76
+ specifierTypes: ['**'],
71
77
  label: 'Default Semver Group',
72
78
  packages: ['**'],
73
79
  isDisabled: true,