syncpack 10.7.3 → 11.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/bin-fix-mismatches/effects.js +9 -9
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +2 -2
  3. package/dist/bin-format/format-cli.js +2 -2
  4. package/dist/bin-format/format.js +4 -3
  5. package/dist/bin-lint/lint.js +2 -2
  6. package/dist/bin-lint-semver-ranges/effects.js +10 -10
  7. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +2 -2
  8. package/dist/bin-list/effects.js +16 -14
  9. package/dist/bin-list/list.js +2 -2
  10. package/dist/bin-list-mismatches/effects.js +22 -22
  11. package/dist/bin-list-mismatches/list-mismatches.js +2 -2
  12. package/dist/bin-prompt/effects.js +15 -15
  13. package/dist/bin-prompt/prompt.js +2 -2
  14. package/dist/bin-set-semver-ranges/effects.js +10 -10
  15. package/dist/bin-set-semver-ranges/set-semver-ranges.js +2 -2
  16. package/dist/bin-update/effects.js +36 -30
  17. package/dist/bin-update/update.js +2 -2
  18. package/dist/config/get-enabled-types.d.ts +6 -1
  19. package/dist/config/get-enabled-types.js +62 -34
  20. package/dist/config/tag.d.ts +3 -0
  21. package/dist/config/tag.js +28 -0
  22. package/dist/config/types.d.ts +0 -2
  23. package/dist/config/types.js +0 -26
  24. package/dist/constants.d.ts +3 -4
  25. package/dist/constants.js +12 -13
  26. package/dist/create-program/effects.d.ts +4 -4
  27. package/dist/create-program/semver-ranges.d.ts +2 -2
  28. package/dist/create-program/semver-ranges.js +6 -6
  29. package/dist/create-program/versions.d.ts +2 -2
  30. package/dist/create-program/versions.js +6 -6
  31. package/dist/env/create-env.js +28 -7
  32. package/dist/env/default-env.js +14 -9
  33. package/dist/env/exit-if-invalid.js +1 -1
  34. package/dist/env/write-if-changed.js +1 -1
  35. package/dist/error-handlers/create-error-handlers.d.ts +2 -1
  36. package/dist/error-handlers/create-error-handlers.js +3 -0
  37. package/dist/error-handlers/default-error-handlers.js +5 -0
  38. package/dist/get-context/index.js +2 -2
  39. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +1 -1
  40. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +1 -1
  41. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +9 -6
  42. package/dist/get-package-json-files/get-patterns/index.js +1 -1
  43. package/dist/get-package-json-files/get-patterns/read-json-safe.js +5 -2
  44. package/dist/get-package-json-files/package-json-file.d.ts +4 -2
  45. package/dist/get-package-json-files/package-json-file.js +5 -4
  46. package/dist/get-semver-groups/filtered-out.d.ts +3 -3
  47. package/dist/get-semver-groups/filtered-out.js +1 -1
  48. package/dist/get-semver-groups/ignored.d.ts +3 -3
  49. package/dist/get-semver-groups/index.d.ts +18 -18
  50. package/dist/get-semver-groups/index.js +5 -5
  51. package/dist/get-semver-groups/with-range.d.ts +4 -4
  52. package/dist/get-semver-groups/with-range.js +9 -9
  53. package/dist/get-version-groups/banned.d.ts +3 -3
  54. package/dist/get-version-groups/filtered-out.d.ts +3 -3
  55. package/dist/get-version-groups/filtered-out.js +1 -1
  56. package/dist/get-version-groups/ignored.d.ts +3 -3
  57. package/dist/get-version-groups/index.d.ts +72 -24
  58. package/dist/get-version-groups/index.js +54 -6
  59. package/dist/get-version-groups/lib/{sort.js → compare-semver.js} +0 -5
  60. package/dist/get-version-groups/lib/get-highest-version.js +2 -2
  61. package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
  62. package/dist/get-version-groups/lib/get-unique-specifiers.d.ts +2 -0
  63. package/dist/get-version-groups/lib/get-unique-specifiers.js +11 -0
  64. package/dist/get-version-groups/pinned.d.ts +3 -3
  65. package/dist/get-version-groups/pinned.js +1 -1
  66. package/dist/get-version-groups/same-range.d.ts +3 -3
  67. package/dist/get-version-groups/same-range.js +1 -1
  68. package/dist/get-version-groups/snapped-to.d.ts +3 -3
  69. package/dist/get-version-groups/snapped-to.js +4 -3
  70. package/dist/get-version-groups/standard.d.ts +4 -4
  71. package/dist/get-version-groups/standard.js +19 -18
  72. package/dist/guards/can-add-to-group.d.ts +2 -2
  73. package/dist/guards/can-add-to-group.js +35 -5
  74. package/dist/guards/is-loose-semver.d.ts +1 -0
  75. package/dist/guards/is-loose-semver.js +1 -0
  76. package/dist/guards/is-semver.d.ts +1 -0
  77. package/dist/guards/is-semver.js +1 -0
  78. package/dist/guards/is-valid-semver-range.d.ts +1 -0
  79. package/dist/guards/is-valid-semver-range.js +1 -0
  80. package/dist/instance/create.d.ts +4 -0
  81. package/dist/instance/create.js +142 -0
  82. package/dist/instance/index.d.ts +122 -0
  83. package/dist/instance/index.js +154 -0
  84. package/dist/schema.json +361 -0
  85. package/package.json +24 -20
  86. package/dist/get-package-json-files/instance.d.ts +0 -21
  87. package/dist/get-package-json-files/instance.js +0 -23
  88. package/dist/get-version-groups/lib/get-unique-versions.d.ts +0 -2
  89. package/dist/get-version-groups/lib/get-unique-versions.js +0 -8
  90. package/dist/guards/is-supported.d.ts +0 -1
  91. package/dist/guards/is-supported.js +0 -17
  92. /package/dist/get-version-groups/lib/{sort.d.ts → compare-semver.d.ts} +0 -0
@@ -0,0 +1,361 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "additionalProperties": false,
4
+ "definitions": {
5
+ "Record<string,CustomTypeConfig.Any>": {
6
+ "additionalProperties": false,
7
+ "type": "object"
8
+ },
9
+ "SemverGroupConfig.Any": {
10
+ "anyOf": [
11
+ {
12
+ "$ref": "#/definitions/{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];range?:never;}"
13
+ },
14
+ {
15
+ "$ref": "#/definitions/{range:SemverRange;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;}"
16
+ }
17
+ ]
18
+ },
19
+ "SemverRange": {
20
+ "default": "",
21
+ "description": "Aliases for semver range formats supported by syncpack\n\nDefaults to `\"\"` to ensure that exact dependency versions are used\ninstead of loose ranges, but this can be overridden in your config file\nor via the `--semver-range` command line option.\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| `\"*\"` | `*` |",
22
+ "enum": [
23
+ "",
24
+ "*",
25
+ ".x",
26
+ "<",
27
+ "<=",
28
+ ">",
29
+ ">=",
30
+ "^",
31
+ "~"
32
+ ],
33
+ "type": "string"
34
+ },
35
+ "VersionGroupConfig.Any": {
36
+ "anyOf": [
37
+ {
38
+ "$ref": "#/definitions/{isBanned:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
39
+ },
40
+ {
41
+ "$ref": "#/definitions/{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
42
+ },
43
+ {
44
+ "$ref": "#/definitions/{pinVersion:string;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
45
+ },
46
+ {
47
+ "$ref": "#/definitions/{snapTo:string[];dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}"
48
+ },
49
+ {
50
+ "$ref": "#/definitions/{policy:\"sameRange\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}"
51
+ },
52
+ {
53
+ "$ref": "#/definitions/{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}"
54
+ }
55
+ ]
56
+ },
57
+ "{isBanned:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
58
+ "additionalProperties": false,
59
+ "properties": {
60
+ "dependencies": {
61
+ "items": {
62
+ "type": "string"
63
+ },
64
+ "type": "array"
65
+ },
66
+ "dependencyTypes": {
67
+ "items": {
68
+ "type": "string"
69
+ },
70
+ "type": "array"
71
+ },
72
+ "isBanned": {
73
+ "const": true,
74
+ "type": "boolean"
75
+ },
76
+ "label": {
77
+ "type": "string"
78
+ },
79
+ "packages": {
80
+ "items": {
81
+ "type": "string"
82
+ },
83
+ "type": "array"
84
+ }
85
+ },
86
+ "type": "object"
87
+ },
88
+ "{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
89
+ "additionalProperties": false,
90
+ "properties": {
91
+ "dependencies": {
92
+ "items": {
93
+ "type": "string"
94
+ },
95
+ "type": "array"
96
+ },
97
+ "dependencyTypes": {
98
+ "items": {
99
+ "type": "string"
100
+ },
101
+ "type": "array"
102
+ },
103
+ "isIgnored": {
104
+ "const": true,
105
+ "type": "boolean"
106
+ },
107
+ "label": {
108
+ "type": "string"
109
+ },
110
+ "packages": {
111
+ "items": {
112
+ "type": "string"
113
+ },
114
+ "type": "array"
115
+ }
116
+ },
117
+ "type": "object"
118
+ },
119
+ "{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];range?:never;}": {
120
+ "additionalProperties": false,
121
+ "properties": {
122
+ "dependencies": {
123
+ "items": {
124
+ "type": "string"
125
+ },
126
+ "type": "array"
127
+ },
128
+ "dependencyTypes": {
129
+ "items": {
130
+ "type": "string"
131
+ },
132
+ "type": "array"
133
+ },
134
+ "isIgnored": {
135
+ "const": true,
136
+ "type": "boolean"
137
+ },
138
+ "label": {
139
+ "type": "string"
140
+ },
141
+ "packages": {
142
+ "items": {
143
+ "type": "string"
144
+ },
145
+ "type": "array"
146
+ }
147
+ },
148
+ "type": "object"
149
+ },
150
+ "{pinVersion:string;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
151
+ "additionalProperties": false,
152
+ "properties": {
153
+ "dependencies": {
154
+ "items": {
155
+ "type": "string"
156
+ },
157
+ "type": "array"
158
+ },
159
+ "dependencyTypes": {
160
+ "items": {
161
+ "type": "string"
162
+ },
163
+ "type": "array"
164
+ },
165
+ "label": {
166
+ "type": "string"
167
+ },
168
+ "packages": {
169
+ "items": {
170
+ "type": "string"
171
+ },
172
+ "type": "array"
173
+ },
174
+ "pinVersion": {
175
+ "type": "string"
176
+ }
177
+ },
178
+ "type": "object"
179
+ },
180
+ "{policy:\"sameRange\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}": {
181
+ "additionalProperties": false,
182
+ "properties": {
183
+ "dependencies": {
184
+ "items": {
185
+ "type": "string"
186
+ },
187
+ "type": "array"
188
+ },
189
+ "dependencyTypes": {
190
+ "items": {
191
+ "type": "string"
192
+ },
193
+ "type": "array"
194
+ },
195
+ "label": {
196
+ "type": "string"
197
+ },
198
+ "packages": {
199
+ "items": {
200
+ "type": "string"
201
+ },
202
+ "type": "array"
203
+ },
204
+ "policy": {
205
+ "const": "sameRange",
206
+ "type": "string"
207
+ }
208
+ },
209
+ "type": "object"
210
+ },
211
+ "{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}": {
212
+ "additionalProperties": false,
213
+ "properties": {
214
+ "dependencies": {
215
+ "items": {
216
+ "type": "string"
217
+ },
218
+ "type": "array"
219
+ },
220
+ "dependencyTypes": {
221
+ "items": {
222
+ "type": "string"
223
+ },
224
+ "type": "array"
225
+ },
226
+ "label": {
227
+ "type": "string"
228
+ },
229
+ "packages": {
230
+ "items": {
231
+ "type": "string"
232
+ },
233
+ "type": "array"
234
+ },
235
+ "preferVersion": {
236
+ "enum": [
237
+ "highestSemver",
238
+ "lowestSemver"
239
+ ],
240
+ "type": "string"
241
+ }
242
+ },
243
+ "type": "object"
244
+ },
245
+ "{range:SemverRange;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;}": {
246
+ "additionalProperties": false,
247
+ "properties": {
248
+ "dependencies": {
249
+ "items": {
250
+ "type": "string"
251
+ },
252
+ "type": "array"
253
+ },
254
+ "dependencyTypes": {
255
+ "items": {
256
+ "type": "string"
257
+ },
258
+ "type": "array"
259
+ },
260
+ "label": {
261
+ "type": "string"
262
+ },
263
+ "packages": {
264
+ "items": {
265
+ "type": "string"
266
+ },
267
+ "type": "array"
268
+ },
269
+ "range": {
270
+ "$ref": "#/definitions/SemverRange"
271
+ }
272
+ },
273
+ "type": "object"
274
+ },
275
+ "{snapTo:string[];dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}": {
276
+ "additionalProperties": false,
277
+ "properties": {
278
+ "dependencies": {
279
+ "items": {
280
+ "type": "string"
281
+ },
282
+ "type": "array"
283
+ },
284
+ "dependencyTypes": {
285
+ "items": {
286
+ "type": "string"
287
+ },
288
+ "type": "array"
289
+ },
290
+ "label": {
291
+ "type": "string"
292
+ },
293
+ "packages": {
294
+ "items": {
295
+ "type": "string"
296
+ },
297
+ "type": "array"
298
+ },
299
+ "snapTo": {
300
+ "items": {
301
+ "type": "string"
302
+ },
303
+ "type": "array"
304
+ }
305
+ },
306
+ "type": "object"
307
+ }
308
+ },
309
+ "properties": {
310
+ "customTypes": {
311
+ "$ref": "#/definitions/Record<string,CustomTypeConfig.Any>"
312
+ },
313
+ "dependencyTypes": {
314
+ "items": {
315
+ "type": "string"
316
+ },
317
+ "type": "array"
318
+ },
319
+ "filter": {
320
+ "type": "string"
321
+ },
322
+ "indent": {
323
+ "type": "string"
324
+ },
325
+ "semverGroups": {
326
+ "items": {
327
+ "$ref": "#/definitions/SemverGroupConfig.Any"
328
+ },
329
+ "type": "array"
330
+ },
331
+ "semverRange": {
332
+ "$ref": "#/definitions/SemverRange"
333
+ },
334
+ "sortAz": {
335
+ "items": {
336
+ "type": "string"
337
+ },
338
+ "type": "array"
339
+ },
340
+ "sortFirst": {
341
+ "items": {
342
+ "type": "string"
343
+ },
344
+ "type": "array"
345
+ },
346
+ "source": {
347
+ "items": {
348
+ "type": "string"
349
+ },
350
+ "type": "array"
351
+ },
352
+ "versionGroups": {
353
+ "items": {
354
+ "$ref": "#/definitions/VersionGroupConfig.Any"
355
+ },
356
+ "type": "array"
357
+ }
358
+ },
359
+ "type": "object"
360
+ }
361
+
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "syncpack",
3
3
  "description": "Consistent dependency versions in large JavaScript Monorepos",
4
- "version": "10.7.3",
4
+ "version": "11.2.1",
5
5
  "author": "Jamie Mason <jamie@foldleft.io> (https://github.com/JamieMason)",
6
6
  "bin": {
7
7
  "syncpack": "dist/bin.js",
@@ -31,46 +31,47 @@
31
31
  "Tom Fletcher (https://github.com/tom-fletcher)"
32
32
  ],
33
33
  "dependencies": {
34
- "@effect/data": "0.12.9",
35
- "@effect/io": "0.27.0",
36
- "@effect/match": "0.24.5",
37
- "@effect/schema": "0.21.0",
34
+ "@effect/data": "0.17.1",
35
+ "@effect/io": "0.38.0",
36
+ "@effect/match": "0.32.0",
37
+ "@effect/schema": "0.33.1",
38
38
  "chalk": "4.1.2",
39
39
  "commander": "11.0.0",
40
40
  "cosmiconfig": "8.2.0",
41
- "enquirer": "2.3.6",
42
- "fs-extra": "11.1.1",
41
+ "enquirer": "2.4.1",
43
42
  "globby": "11.1.0",
44
- "minimatch": "9.0.2",
43
+ "minimatch": "9.0.3",
44
+ "npm-package-arg": "10.1.0",
45
45
  "ora": "5.4.1",
46
46
  "prompts": "2.4.2",
47
47
  "read-yaml-file": "2.1.0",
48
- "semver": "7.5.3",
48
+ "semver": "7.5.4",
49
49
  "tightrope": "0.1.0",
50
50
  "ts-toolbelt": "9.6.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@tsconfig/node18": "18.2.0",
54
- "@types/fs-extra": "11.0.1",
55
- "@types/jest": "29.5.2",
54
+ "@types/jest": "29.5.3",
56
55
  "@types/node": "14.18.36",
56
+ "@types/npm-package-arg": "6.1.1",
57
57
  "@types/prompts": "2.4.4",
58
58
  "@types/semver": "7.5.0",
59
- "@typescript-eslint/eslint-plugin": "5.60.1",
60
- "@typescript-eslint/parser": "5.60.1",
61
- "eslint": "8.44.0",
62
- "eslint-plugin-import": "2.27.5",
63
- "eslint-plugin-jest": "27.2.2",
59
+ "@typescript-eslint/eslint-plugin": "6.3.0",
60
+ "@typescript-eslint/parser": "6.3.0",
61
+ "eslint": "8.47.0",
62
+ "eslint-plugin-import": "2.28.0",
63
+ "eslint-plugin-jest": "27.2.3",
64
64
  "expect-more-jest": "5.5.0",
65
- "jest": "29.5.0",
65
+ "jest": "29.6.2",
66
66
  "prettier": "2.8.8",
67
67
  "rimraf": "5.0.1",
68
68
  "ts-jest": "29.1.1",
69
69
  "ts-node": "10.9.1",
70
- "typescript": "5.1.6"
70
+ "typescript": "5.1.6",
71
+ "typescript-json-schema": "0.59.0"
71
72
  },
72
73
  "engines": {
73
- "node": ">=18"
74
+ "node": ">=16"
74
75
  },
75
76
  "files": [
76
77
  "dist"
@@ -107,7 +108,10 @@
107
108
  "wrap-ansi": "<8.0.0"
108
109
  },
109
110
  "scripts": {
110
- "build": "rm -rf ./dist && tsc --project tsconfig.build.json",
111
+ "build": "yarn clean && yarn build:source && yarn build:json-schema",
112
+ "build:json-schema": "typescript-json-schema --noExtraProps src/index.ts RcFile --out dist/schema.json",
113
+ "build:source": "tsc --project tsconfig.build.json",
114
+ "clean": "rm -rf ./dist",
111
115
  "format": "yarn format:lint && yarn format:source",
112
116
  "format:lint": "yarn lint --fix",
113
117
  "format:source": "prettier --write .",
@@ -1,21 +0,0 @@
1
- import type { Strategy } from '../config/get-custom-types';
2
- import type { Delete } from '../get-version-groups/lib/delete';
3
- import type { PackageJsonFile } from './package-json-file';
4
- export declare class Instance {
5
- /** the name of this dependency */
6
- name: string;
7
- /** The package this dependency is installed in this specific time */
8
- packageJsonFile: PackageJsonFile;
9
- /** locates where in the file this dependency is installed */
10
- strategy: Strategy.Any;
11
- /** The .name property of the package.json file of this instance */
12
- pkgName: string;
13
- /** the version of this dependency */
14
- version: string;
15
- constructor(strategy: Strategy.Any, name: string, packageJsonFile: PackageJsonFile, version: string);
16
- /**
17
- * In the case of banned dependencies, their version is set to `undefined`,
18
- * which causes them to be removed by `JSON.stringify`.
19
- */
20
- setVersion(version: string | Delete): void;
21
- }
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Instance = void 0;
4
- const Function_1 = require("@effect/data/Function");
5
- const _R_1 = require("../lib/$R");
6
- class Instance {
7
- constructor(strategy, name, packageJsonFile, version) {
8
- this.strategy = strategy;
9
- this.name = name;
10
- this.packageJsonFile = packageJsonFile;
11
- this.pkgName = packageJsonFile.contents.name || 'PACKAGE_JSON_HAS_NO_NAME';
12
- this.version = version;
13
- }
14
- /**
15
- * In the case of banned dependencies, their version is set to `undefined`,
16
- * which causes them to be removed by `JSON.stringify`.
17
- */
18
- setVersion(version) {
19
- const file = this.packageJsonFile;
20
- (0, Function_1.pipe)(this.strategy.write(file, [this.name, version]), _R_1.$R.tapErrVerbose);
21
- }
22
- }
23
- exports.Instance = Instance;
@@ -1,2 +0,0 @@
1
- import type { Instance } from '../../get-package-json-files/instance';
2
- export declare function getUniqueVersions(instances: Instance[]): string[];
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUniqueVersions = void 0;
4
- const uniq_1 = require("tightrope/array/uniq");
5
- function getUniqueVersions(instances) {
6
- return (0, uniq_1.uniq)(instances.map((i) => i.version));
7
- }
8
- exports.getUniqueVersions = getUniqueVersions;
@@ -1 +0,0 @@
1
- export declare function isSupported(version: unknown): version is string;
@@ -1,17 +0,0 @@
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
- }