syncpack 10.9.3 → 12.0.0-alpha.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 (274) hide show
  1. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +15 -3
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +120 -36
  3. package/dist/bin-fix-mismatches/index.js +12 -32
  4. package/dist/bin-format/format.d.ts +11 -3
  5. package/dist/bin-format/format.js +46 -61
  6. package/dist/bin-format/index.js +11 -31
  7. package/dist/bin-lint/index.js +8 -28
  8. package/dist/bin-lint/lint.d.ts +10 -3
  9. package/dist/bin-lint/lint.js +12 -36
  10. package/dist/bin-lint-semver-ranges/index.js +11 -39
  11. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +15 -3
  12. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +94 -35
  13. package/dist/bin-list/index.js +11 -31
  14. package/dist/bin-list/list.d.ts +11 -3
  15. package/dist/bin-list/list.js +121 -35
  16. package/dist/bin-list-mismatches/index.js +11 -31
  17. package/dist/bin-list-mismatches/list-mismatches.d.ts +18 -3
  18. package/dist/bin-list-mismatches/list-mismatches.js +254 -35
  19. package/dist/bin-prompt/index.js +15 -31
  20. package/dist/bin-prompt/prompt.d.ts +10 -3
  21. package/dist/bin-prompt/prompt.js +83 -34
  22. package/dist/bin-set-semver-ranges/index.js +12 -40
  23. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +10 -3
  24. package/dist/bin-set-semver-ranges/set-semver-ranges.js +50 -36
  25. package/dist/bin-update/effects.d.ts +45 -5
  26. package/dist/bin-update/effects.js +214 -128
  27. package/dist/bin-update/index.js +4 -27
  28. package/dist/bin-update/update.d.ts +5 -3
  29. package/dist/bin-update/update.js +52 -38
  30. package/dist/bin.js +0 -1
  31. package/dist/config/get-custom-types.d.ts +11 -1
  32. package/dist/config/get-custom-types.js +26 -21
  33. package/dist/config/get-enabled-types.d.ts +10 -6
  34. package/dist/config/get-enabled-types.js +84 -66
  35. package/dist/config/get-indent.js +1 -1
  36. package/dist/config/tag.d.ts +3 -0
  37. package/dist/config/tag.js +5 -0
  38. package/dist/config/types.d.ts +8 -11
  39. package/dist/config/types.js +0 -26
  40. package/dist/constants.d.ts +7 -5
  41. package/dist/constants.js +15 -14
  42. package/dist/create-program/effects.d.ts +51 -29
  43. package/dist/error-handlers/default-error-handlers.d.ts +38 -2
  44. package/dist/error-handlers/default-error-handlers.js +83 -35
  45. package/dist/get-context/index.d.ts +12 -6
  46. package/dist/get-context/index.js +13 -30
  47. package/dist/get-context/lib/key-by.d.ts +6 -0
  48. package/dist/get-context/lib/key-by.js +16 -0
  49. package/dist/get-instances/index.d.ts +14 -0
  50. package/dist/get-instances/index.js +46 -0
  51. package/dist/get-instances/instance.d.ts +25 -0
  52. package/dist/get-instances/instance.js +20 -0
  53. package/dist/get-package-json-files/get-file-paths.d.ts +6 -7
  54. package/dist/get-package-json-files/get-file-paths.js +10 -33
  55. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +3 -4
  56. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +6 -32
  57. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +3 -4
  58. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +6 -32
  59. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +3 -4
  60. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +11 -40
  61. package/dist/get-package-json-files/get-patterns/index.d.ts +3 -5
  62. package/dist/get-package-json-files/get-patterns/index.js +6 -33
  63. package/dist/get-package-json-files/index.d.ts +6 -5
  64. package/dist/get-package-json-files/index.js +4 -28
  65. package/dist/get-package-json-files/package-json-file.d.ts +16 -16
  66. package/dist/get-package-json-files/package-json-file.js +13 -18
  67. package/dist/guards/can-add-to-group.d.ts +5 -4
  68. package/dist/guards/can-add-to-group.js +40 -6
  69. package/dist/guards/is-semver.d.ts +1 -1
  70. package/dist/guards/is-semver.js +1 -1
  71. package/dist/guards/is-valid-semver-range.d.ts +1 -1
  72. package/dist/guards/is-valid-semver-range.js +1 -1
  73. package/dist/io/ask-for-choice.d.ts +14 -0
  74. package/dist/io/ask-for-choice.js +22 -0
  75. package/dist/io/ask-for-input.d.ts +13 -0
  76. package/dist/io/ask-for-input.js +19 -0
  77. package/dist/io/exit-if-invalid.d.ts +4 -0
  78. package/dist/io/exit-if-invalid.js +13 -0
  79. package/dist/io/glob-sync.d.ts +11 -0
  80. package/dist/io/glob-sync.js +19 -0
  81. package/dist/io/index.d.ts +28 -0
  82. package/dist/{env/exit-if-invalid.js → io/index.js} +27 -9
  83. package/dist/io/read-config-file-sync.d.ts +7 -0
  84. package/dist/io/read-config-file-sync.js +26 -0
  85. package/dist/io/read-file-sync.d.ts +12 -0
  86. package/dist/io/read-file-sync.js +14 -0
  87. package/dist/io/read-json-file-sync.d.ts +30 -0
  88. package/dist/io/read-json-file-sync.js +25 -0
  89. package/dist/io/read-yaml-file-sync.d.ts +12 -0
  90. package/dist/io/read-yaml-file-sync.js +14 -0
  91. package/dist/io/write-file-sync.d.ts +12 -0
  92. package/dist/io/write-file-sync.js +15 -0
  93. package/dist/{env → io}/write-if-changed.d.ts +4 -4
  94. package/dist/io/write-if-changed.js +45 -0
  95. package/dist/lib/get-group-header.d.ts +10 -0
  96. package/dist/lib/get-group-header.js +31 -0
  97. package/dist/lib/get.d.ts +11 -0
  98. package/dist/lib/get.js +40 -0
  99. package/dist/lib/pad-start.d.ts +1 -0
  100. package/dist/lib/pad-start.js +7 -0
  101. package/dist/lib/ring-buffer.d.ts +10 -0
  102. package/dist/lib/ring-buffer.js +22 -0
  103. package/dist/lib/set-semver-range.d.ts +1 -1
  104. package/dist/lib/set-semver-range.js +7 -11
  105. package/dist/lib/with-logger.d.ts +2 -0
  106. package/dist/lib/with-logger.js +35 -0
  107. package/dist/option.d.ts +0 -1
  108. package/dist/option.js +0 -4
  109. package/dist/report.d.ts +166 -0
  110. package/dist/report.js +67 -0
  111. package/dist/schema.json +392 -0
  112. package/dist/semver-group/create-semver-groups.d.ts +4 -0
  113. package/dist/semver-group/create-semver-groups.js +77 -0
  114. package/dist/semver-group/disabled.d.ts +26 -0
  115. package/dist/semver-group/disabled.js +34 -0
  116. package/dist/semver-group/filtered-out.d.ts +27 -0
  117. package/dist/semver-group/filtered-out.js +40 -0
  118. package/dist/semver-group/ignored.d.ts +22 -0
  119. package/dist/semver-group/ignored.js +30 -0
  120. package/dist/semver-group/index.d.ts +22 -0
  121. package/dist/semver-group/index.js +10 -0
  122. package/dist/semver-group/with-range.d.ts +22 -0
  123. package/dist/semver-group/with-range.js +57 -0
  124. package/dist/specifier/alias.d.ts +15 -0
  125. package/dist/specifier/alias.js +25 -0
  126. package/dist/specifier/base.d.ts +39 -0
  127. package/dist/specifier/base.js +38 -0
  128. package/dist/specifier/delete.d.ts +15 -0
  129. package/dist/specifier/delete.js +16 -0
  130. package/dist/specifier/file.d.ts +6 -0
  131. package/dist/specifier/file.js +12 -0
  132. package/dist/specifier/hosted-git.d.ts +13 -0
  133. package/dist/specifier/hosted-git.js +27 -0
  134. package/dist/specifier/index.d.ts +27 -0
  135. package/dist/specifier/index.js +62 -0
  136. package/dist/specifier/lib/non-semver-error.d.ts +11 -0
  137. package/dist/specifier/lib/non-semver-error.js +10 -0
  138. package/dist/specifier/lib/parse-specifier.d.ts +14 -0
  139. package/dist/specifier/lib/parse-specifier.js +23 -0
  140. package/dist/specifier/lib/specific-registry-result.d.ts +9 -0
  141. package/dist/specifier/lib/specific-registry-result.js +2 -0
  142. package/dist/specifier/range.d.ts +18 -0
  143. package/dist/specifier/range.js +26 -0
  144. package/dist/specifier/tag.d.ts +9 -0
  145. package/dist/specifier/tag.js +15 -0
  146. package/dist/specifier/unsupported.d.ts +5 -0
  147. package/dist/specifier/unsupported.js +12 -0
  148. package/dist/specifier/url.d.ts +6 -0
  149. package/dist/specifier/url.js +13 -0
  150. package/dist/specifier/version.d.ts +18 -0
  151. package/dist/specifier/version.js +26 -0
  152. package/dist/specifier/workspace-protocol.d.ts +17 -0
  153. package/dist/specifier/workspace-protocol.js +38 -0
  154. package/dist/strategy/lib/get-non-empty-string-prop.d.ts +2 -2
  155. package/dist/strategy/lib/get-non-empty-string-prop.js +4 -5
  156. package/dist/strategy/name-and-version-props.d.ts +4 -4
  157. package/dist/strategy/name-and-version-props.js +32 -21
  158. package/dist/strategy/named-version-string.d.ts +4 -4
  159. package/dist/strategy/named-version-string.js +22 -24
  160. package/dist/strategy/unnamed-version-string.d.ts +4 -4
  161. package/dist/strategy/unnamed-version-string.js +20 -21
  162. package/dist/strategy/versions-by-name.d.ts +4 -4
  163. package/dist/strategy/versions-by-name.js +9 -11
  164. package/dist/version-group/banned.d.ts +17 -0
  165. package/dist/version-group/banned.js +32 -0
  166. package/dist/version-group/create-version-groups.d.ts +4 -0
  167. package/dist/version-group/create-version-groups.js +107 -0
  168. package/dist/version-group/filtered-out.d.ts +19 -0
  169. package/dist/version-group/filtered-out.js +34 -0
  170. package/dist/version-group/ignored.d.ts +17 -0
  171. package/dist/version-group/ignored.js +27 -0
  172. package/dist/version-group/index.d.ts +28 -0
  173. package/dist/version-group/index.js +10 -0
  174. package/dist/version-group/lib/get-highest-version.d.ts +6 -0
  175. package/dist/version-group/lib/get-highest-version.js +12 -0
  176. package/dist/version-group/lib/get-lowest-version.d.ts +6 -0
  177. package/dist/version-group/lib/get-lowest-version.js +12 -0
  178. package/dist/version-group/lib/get-preferred-version.d.ts +5 -0
  179. package/dist/{get-version-groups/lib/compare-semver.js → version-group/lib/get-preferred-version.js} +14 -2
  180. package/dist/version-group/lib/group-by.d.ts +5 -0
  181. package/dist/{get-version-groups → version-group}/lib/group-by.js +4 -0
  182. package/dist/version-group/pinned.d.ts +17 -0
  183. package/dist/version-group/pinned.js +30 -0
  184. package/dist/version-group/same-range.d.ts +19 -0
  185. package/dist/version-group/same-range.js +108 -0
  186. package/dist/version-group/snapped-to.d.ts +17 -0
  187. package/dist/version-group/snapped-to.js +83 -0
  188. package/dist/version-group/standard.d.ts +18 -0
  189. package/dist/version-group/standard.js +131 -0
  190. package/package.json +28 -25
  191. package/dist/bin-fix-mismatches/effects.d.ts +0 -2
  192. package/dist/bin-fix-mismatches/effects.js +0 -112
  193. package/dist/bin-format/format-cli.d.ts +0 -4
  194. package/dist/bin-format/format-cli.js +0 -42
  195. package/dist/bin-lint-semver-ranges/effects.d.ts +0 -2
  196. package/dist/bin-lint-semver-ranges/effects.js +0 -70
  197. package/dist/bin-list/effects.d.ts +0 -2
  198. package/dist/bin-list/effects.js +0 -114
  199. package/dist/bin-list-mismatches/effects.d.ts +0 -2
  200. package/dist/bin-list-mismatches/effects.js +0 -136
  201. package/dist/bin-prompt/effects.d.ts +0 -2
  202. package/dist/bin-prompt/effects.js +0 -110
  203. package/dist/bin-set-semver-ranges/effects.d.ts +0 -2
  204. package/dist/bin-set-semver-ranges/effects.js +0 -61
  205. package/dist/config/get-semver-range.d.ts +0 -3
  206. package/dist/config/get-semver-range.js +0 -12
  207. package/dist/create-program/semver-ranges.d.ts +0 -7
  208. package/dist/create-program/semver-ranges.js +0 -55
  209. package/dist/create-program/versions.d.ts +0 -7
  210. package/dist/create-program/versions.js +0 -70
  211. package/dist/env/create-env.d.ts +0 -21
  212. package/dist/env/create-env.js +0 -81
  213. package/dist/env/default-env.d.ts +0 -18
  214. package/dist/env/default-env.js +0 -96
  215. package/dist/env/exit-if-invalid.d.ts +0 -4
  216. package/dist/env/tags.d.ts +0 -58
  217. package/dist/env/tags.js +0 -50
  218. package/dist/env/write-if-changed.js +0 -73
  219. package/dist/error-handlers/create-error-handlers.d.ts +0 -19
  220. package/dist/error-handlers/create-error-handlers.js +0 -57
  221. package/dist/get-package-json-files/get-patterns/read-json-safe.d.ts +0 -23
  222. package/dist/get-package-json-files/get-patterns/read-json-safe.js +0 -43
  223. package/dist/get-semver-groups/filtered-out.d.ts +0 -19
  224. package/dist/get-semver-groups/filtered-out.js +0 -55
  225. package/dist/get-semver-groups/ignored.d.ts +0 -17
  226. package/dist/get-semver-groups/ignored.js +0 -48
  227. package/dist/get-semver-groups/index.d.ts +0 -84
  228. package/dist/get-semver-groups/index.js +0 -139
  229. package/dist/get-semver-groups/with-range.d.ts +0 -18
  230. package/dist/get-semver-groups/with-range.js +0 -79
  231. package/dist/get-version-groups/banned.d.ts +0 -17
  232. package/dist/get-version-groups/banned.js +0 -50
  233. package/dist/get-version-groups/filtered-out.d.ts +0 -19
  234. package/dist/get-version-groups/filtered-out.js +0 -57
  235. package/dist/get-version-groups/ignored.d.ts +0 -17
  236. package/dist/get-version-groups/ignored.js +0 -50
  237. package/dist/get-version-groups/index.d.ts +0 -187
  238. package/dist/get-version-groups/index.js +0 -246
  239. package/dist/get-version-groups/lib/compare-semver.d.ts +0 -1
  240. package/dist/get-version-groups/lib/get-highest-version.d.ts +0 -2
  241. package/dist/get-version-groups/lib/get-highest-version.js +0 -13
  242. package/dist/get-version-groups/lib/get-lowest-version.d.ts +0 -2
  243. package/dist/get-version-groups/lib/get-lowest-version.js +0 -13
  244. package/dist/get-version-groups/lib/get-unique-specifiers.d.ts +0 -2
  245. package/dist/get-version-groups/lib/get-unique-specifiers.js +0 -11
  246. package/dist/get-version-groups/lib/group-by.d.ts +0 -1
  247. package/dist/get-version-groups/pinned.d.ts +0 -17
  248. package/dist/get-version-groups/pinned.js +0 -66
  249. package/dist/get-version-groups/same-range.d.ts +0 -17
  250. package/dist/get-version-groups/same-range.js +0 -73
  251. package/dist/get-version-groups/snapped-to.d.ts +0 -17
  252. package/dist/get-version-groups/snapped-to.js +0 -78
  253. package/dist/get-version-groups/standard.d.ts +0 -18
  254. package/dist/get-version-groups/standard.js +0 -109
  255. package/dist/guards/is-loose-semver.d.ts +0 -2
  256. package/dist/guards/is-loose-semver.js +0 -10
  257. package/dist/instance/create.d.ts +0 -4
  258. package/dist/instance/create.js +0 -142
  259. package/dist/instance/index.d.ts +0 -122
  260. package/dist/instance/index.js +0 -154
  261. package/dist/lib/$R.d.ts +0 -12
  262. package/dist/lib/$R.js +0 -34
  263. package/dist/lib/log-group-header.d.ts +0 -6
  264. package/dist/lib/log-group-header.js +0 -34
  265. package/dist/lib/log-verbose.d.ts +0 -1
  266. package/dist/lib/log-verbose.js +0 -24
  267. package/dist/lib/split-name-and-version.d.ts +0 -5
  268. package/dist/lib/split-name-and-version.js +0 -12
  269. /package/dist/{get-version-groups → version-group}/lib/clean.d.ts +0 -0
  270. /package/dist/{get-version-groups → version-group}/lib/clean.js +0 -0
  271. /package/dist/{get-version-groups → version-group}/lib/delete.d.ts +0 -0
  272. /package/dist/{get-version-groups → version-group}/lib/delete.js +0 -0
  273. /package/dist/{get-version-groups → version-group}/lib/get-range-score.d.ts +0 -0
  274. /package/dist/{get-version-groups → version-group}/lib/get-range-score.js +0 -0
@@ -1,73 +0,0 @@
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)(aliasWorkspaceRange(a.specifier), aliasWorkspaceRange(b.specifier), loose)));
70
- }
71
- function aliasWorkspaceRange(version) {
72
- return version.startsWith('workspace:*') ? '*' : version;
73
- }
@@ -1,17 +0,0 @@
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 '../instance';
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<{
10
- config: VersionGroupConfig.SnappedTo;
11
- instances: Instance.Any[];
12
- }> {
13
- constructor(config: VersionGroupConfig.SnappedTo);
14
- canAdd(_: Instance.Any): boolean;
15
- inspect(): Effect.Effect<never, VersionGroupReport.SnappedToMismatch, VersionGroupReport.Valid>[];
16
- }
17
- export {};
@@ -1,78 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
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(".");
30
- const group_by_1 = require("./lib/group-by");
31
- class SnappedToVersionGroup extends Data.TaggedClass('SnappedTo') {
32
- constructor(config) {
33
- super({
34
- config,
35
- instances: [],
36
- });
37
- }
38
- canAdd(_) {
39
- return true;
40
- }
41
- inspect() {
42
- const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
43
- return Object.entries(instancesByName).map(([name, instances]) => {
44
- const snapTo = this.config.snapTo;
45
- const expectedVersion = getExpectedVersion(snapTo, instances);
46
- if (hasMismatch(expectedVersion, instances)) {
47
- return Effect.fail(new _1.VersionGroupReport.SnappedToMismatch({
48
- name,
49
- instances,
50
- isValid: false,
51
- expectedVersion,
52
- snapTo,
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.SnappedToVersionGroup = SnappedToVersionGroup;
66
- function getExpectedVersion(snapTo, instances) {
67
- var _a;
68
- const expectedVersion = (_a = instances
69
- .filter((i) => snapTo.includes(i.pkgName))
70
- .find((i) => i.specifier)) === null || _a === void 0 ? void 0 : _a.specifier;
71
- if (expectedVersion)
72
- return expectedVersion;
73
- // @FIXME: create tagged error for this
74
- throw new Error('versionGroup.snapTo does not match any package versions');
75
- }
76
- function hasMismatch(expectedVersion, instances) {
77
- return instances.some((instance) => instance.specifier !== expectedVersion);
78
- }
@@ -1,18 +0,0 @@
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 '../instance';
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<{
10
- config: VersionGroupConfig.Standard;
11
- instances: Instance.Any[];
12
- isCatchAll: boolean;
13
- }> {
14
- constructor(isCatchAll: boolean, config: VersionGroupConfig.Standard);
15
- canAdd(_: Instance.Any): boolean;
16
- inspect(): Effect.Effect<never, VersionGroupReport.LocalPackageMismatch | VersionGroupReport.NonSemverMismatch | VersionGroupReport.HighestSemverMismatch | VersionGroupReport.LowestSemverMismatch, VersionGroupReport.Valid>[];
17
- }
18
- export {};
@@ -1,109 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.StandardVersionGroup = void 0;
27
- const Data = __importStar(require("@effect/data/Data"));
28
- const Option = __importStar(require("@effect/data/Option"));
29
- const Effect = __importStar(require("@effect/io/Effect"));
30
- const unwrap_1 = require("tightrope/result/unwrap");
31
- const _1 = require(".");
32
- const get_highest_version_1 = require("./lib/get-highest-version");
33
- const get_lowest_version_1 = require("./lib/get-lowest-version");
34
- const get_unique_specifiers_1 = require("./lib/get-unique-specifiers");
35
- const group_by_1 = require("./lib/group-by");
36
- class StandardVersionGroup extends Data.TaggedClass('Standard') {
37
- constructor(isCatchAll, config) {
38
- super({
39
- config,
40
- instances: [],
41
- isCatchAll,
42
- });
43
- }
44
- canAdd(_) {
45
- return true;
46
- }
47
- inspect() {
48
- const instancesByName = (0, group_by_1.groupBy)('name', this.instances);
49
- return Object.entries(instancesByName).map(([name, instances]) => {
50
- var _a;
51
- if (!hasMismatch(instances)) {
52
- return Effect.succeed(new _1.VersionGroupReport.Valid({
53
- name,
54
- instances,
55
- isValid: true,
56
- }));
57
- }
58
- if (hasNonSemverSpecifiers(instances)) {
59
- return Effect.fail(new _1.VersionGroupReport.NonSemverMismatch({
60
- name,
61
- instances,
62
- isValid: false,
63
- }));
64
- }
65
- const localPackageInstance = getLocalPackageInstance(instances);
66
- const localPackageFile = localPackageInstance === null || localPackageInstance === void 0 ? void 0 : localPackageInstance.packageJsonFile;
67
- const localPackageVersion = (_a = localPackageFile === null || localPackageFile === void 0 ? void 0 : localPackageFile.contents) === null || _a === void 0 ? void 0 : _a.version;
68
- const isLocalPackage = localPackageInstance && localPackageVersion;
69
- if (isLocalPackage) {
70
- return Effect.fail(new _1.VersionGroupReport.LocalPackageMismatch({
71
- name,
72
- instances,
73
- isValid: false,
74
- expectedVersion: localPackageVersion,
75
- localPackageInstance,
76
- }));
77
- }
78
- const preferVersion = this.config.preferVersion;
79
- const expectedVersion = getExpectedVersion(preferVersion, instances);
80
- return Effect.fail(preferVersion === 'highestSemver'
81
- ? new _1.VersionGroupReport.HighestSemverMismatch({
82
- name,
83
- instances,
84
- isValid: false,
85
- expectedVersion,
86
- })
87
- : new _1.VersionGroupReport.LowestSemverMismatch({
88
- name,
89
- instances,
90
- isValid: false,
91
- expectedVersion,
92
- }));
93
- });
94
- }
95
- }
96
- exports.StandardVersionGroup = StandardVersionGroup;
97
- function getExpectedVersion(preferVersion, instances) {
98
- const versions = (0, get_unique_specifiers_1.getUniqueSpecifiers)(instances).map((i) => i.specifier);
99
- return (0, unwrap_1.unwrap)(preferVersion === 'highestSemver' ? (0, get_highest_version_1.getHighestVersion)(versions) : (0, get_lowest_version_1.getLowestVersion)(versions));
100
- }
101
- function hasMismatch(instances) {
102
- return (0, get_unique_specifiers_1.getUniqueSpecifiers)(instances).length > 1;
103
- }
104
- function hasNonSemverSpecifiers(instances) {
105
- return instances.some((instance) => Option.isNone(instance.getSemverSpecifier()));
106
- }
107
- function getLocalPackageInstance(instances) {
108
- return instances.find((instance) => instance.strategy.name === 'localPackage');
109
- }
@@ -1,2 +0,0 @@
1
- /** @deprecated */
2
- export declare function isLooseSemver(version: unknown): boolean;
@@ -1,10 +0,0 @@
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
- /** @deprecated */
7
- function isLooseSemver(version) {
8
- return (0, is_string_1.isString)(version) && (0, is_semver_1.isSemver)(version) && version.search(/\.x(\.|$)/) !== -1;
9
- }
10
- exports.isLooseSemver = isLooseSemver;
@@ -1,4 +0,0 @@
1
- import { Instance } from '.';
2
- import type { Strategy } from '../config/get-custom-types';
3
- import type { PackageJsonFile } from '../get-package-json-files/package-json-file';
4
- export declare function createInstance(strategy: Strategy.Any, name: string, packageJsonFile: PackageJsonFile, specifier: string): Instance.Any;
@@ -1,142 +0,0 @@
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.createInstance = void 0;
7
- const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
8
- const _1 = require(".");
9
- function createInstance(strategy, name, packageJsonFile, specifier) {
10
- const pkgName = packageJsonFile.contents.name || 'PACKAGE_JSON_HAS_NO_NAME';
11
- try {
12
- const parsedSpecifier = parseSpecifier(name, specifier, packageJsonFile);
13
- switch (parsedSpecifier.type) {
14
- case 'file':
15
- case 'directory': {
16
- return new _1.Instance.FileInstance({
17
- name,
18
- packageJsonFile,
19
- parsedSpecifier,
20
- pkgName,
21
- specifier,
22
- strategy,
23
- });
24
- }
25
- case 'remote': {
26
- return new _1.Instance.UrlInstance({
27
- name,
28
- packageJsonFile,
29
- parsedSpecifier,
30
- pkgName,
31
- specifier,
32
- strategy,
33
- });
34
- }
35
- case 'git': {
36
- return 'hosted' in parsedSpecifier
37
- ? new _1.Instance.HostedGitInstance({
38
- name,
39
- packageJsonFile,
40
- parsedSpecifier: parsedSpecifier,
41
- pkgName,
42
- specifier,
43
- strategy,
44
- })
45
- : new _1.Instance.UrlInstance({
46
- name,
47
- packageJsonFile,
48
- parsedSpecifier,
49
- pkgName,
50
- specifier,
51
- strategy,
52
- });
53
- }
54
- case 'alias': {
55
- return new _1.Instance.AliasInstance({
56
- name,
57
- packageJsonFile,
58
- parsedSpecifier,
59
- pkgName,
60
- specifier,
61
- strategy,
62
- });
63
- }
64
- case 'version': {
65
- return new _1.Instance.VersionInstance({
66
- name,
67
- packageJsonFile,
68
- parsedSpecifier: parsedSpecifier,
69
- pkgName,
70
- specifier,
71
- strategy,
72
- });
73
- }
74
- case 'range': {
75
- return new _1.Instance.RangeInstance({
76
- name,
77
- packageJsonFile,
78
- parsedSpecifier: parsedSpecifier,
79
- pkgName,
80
- specifier,
81
- strategy,
82
- });
83
- }
84
- case 'tag': {
85
- return new _1.Instance.TagInstance({
86
- name,
87
- packageJsonFile,
88
- parsedSpecifier: parsedSpecifier,
89
- pkgName,
90
- specifier,
91
- strategy,
92
- });
93
- }
94
- case 'workspaceProtocol': {
95
- return new _1.Instance.WorkspaceProtocolInstance({
96
- name,
97
- packageJsonFile,
98
- parsedSpecifier: parsedSpecifier,
99
- pkgName,
100
- specifier,
101
- strategy,
102
- });
103
- }
104
- default: {
105
- return new _1.Instance.UnsupportedInstance({
106
- name,
107
- packageJsonFile,
108
- parsedSpecifier,
109
- pkgName,
110
- specifier,
111
- strategy,
112
- });
113
- }
114
- }
115
- }
116
- catch (err) {
117
- return new _1.Instance.UnsupportedInstance({
118
- name,
119
- packageJsonFile,
120
- parsedSpecifier: err,
121
- pkgName,
122
- specifier,
123
- strategy,
124
- });
125
- }
126
- }
127
- exports.createInstance = createInstance;
128
- function parseSpecifier(name, specifier, packageJsonFile) {
129
- if (specifier.startsWith('workspace:')) {
130
- const parsed = npm_package_arg_1.default.resolve(name, specifier.replace('workspace:', 'file:'), packageJsonFile.dirPath);
131
- return {
132
- type: 'workspaceProtocol',
133
- raw: parsed.raw.replace('file:', 'workspace:'),
134
- name: parsed.name,
135
- escapedName: parsed.escapedName,
136
- scope: parsed.scope,
137
- rawSpec: parsed.rawSpec.replace('file:', 'workspace:'),
138
- saveSpec: parsed.saveSpec.replace('file:', 'workspace:'),
139
- };
140
- }
141
- return npm_package_arg_1.default.resolve(name, specifier, packageJsonFile.dirPath);
142
- }
@@ -1,122 +0,0 @@
1
- import * as Data from '@effect/data/Data';
2
- import * as Option from '@effect/data/Option';
3
- import type npa from 'npm-package-arg';
4
- import type { AliasResult, FileResult, HostedGitResult, RegistryResult, URLResult } from 'npm-package-arg';
5
- import type { Strategy } from '../config/get-custom-types';
6
- import type { PackageJsonFile } from '../get-package-json-files/package-json-file';
7
- import { type Delete } from '../get-version-groups/lib/delete';
8
- /** Extends npm/npm-package-arg to support "workspace:*" */
9
- export interface WorkspaceProtocolResult {
10
- type: 'workspaceProtocol';
11
- raw: string;
12
- name: string | null;
13
- escapedName: string | null;
14
- scope: string | null;
15
- rawSpec: string;
16
- saveSpec: string;
17
- }
18
- export type NpmPackageArgResult = ReturnType<typeof npa.resolve> | WorkspaceProtocolResult;
19
- interface BaseInstance<T extends NpmPackageArgResult | unknown> {
20
- /** the name of this dependency */
21
- name: string;
22
- /** The package this dependency is installed in this specific time */
23
- packageJsonFile: PackageJsonFile;
24
- /** @see https://github.com/npm/npm-package-arg */
25
- parsedSpecifier: T;
26
- /** The .name property of the package.json file of this instance */
27
- pkgName: string;
28
- /** The raw: semver, git, workspace: etc version value */
29
- specifier: string;
30
- /** locates where in the file this dependency is installed */
31
- strategy: Strategy.Any;
32
- }
33
- export declare namespace Instance {
34
- /**
35
- * A helper to create specific classes for each of the possible
36
- * `RegistryResult` types from npm/npm-package-arg. Instead of grouping them
37
- * together we are being more specific
38
- */
39
- type SpecificRegistryResult<T extends RegistryResult['type'] | 'localPackage'> = Omit<RegistryResult, 'type'> & {
40
- type: T;
41
- };
42
- const FileInstance_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 & {
43
- _tag: "FileInstance";
44
- }>;
45
- /** An `Instance` whose specifier is a path to a local file or directory */
46
- export class FileInstance extends FileInstance_base<BaseInstance<FileResult>> {
47
- setSpecifier: typeof setSpecifier;
48
- getSemverSpecifier(): Option.Option<string>;
49
- }
50
- const HostedGitInstance_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 & {
51
- _tag: "HostedGitInstance";
52
- }>;
53
- /** An `Instance` whose specifier is a Git URL */
54
- export class HostedGitInstance extends HostedGitInstance_base<BaseInstance<HostedGitResult>> {
55
- setSpecifier: typeof setSpecifier;
56
- getSemverSpecifier(): Option.Option<string>;
57
- }
58
- const UrlInstance_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 & {
59
- _tag: "URLInstance";
60
- }>;
61
- /** An `Instance` whose specifier is a URL to a tarball */
62
- export class UrlInstance extends UrlInstance_base<BaseInstance<URLResult>> {
63
- setSpecifier: typeof setSpecifier;
64
- getSemverSpecifier(): Option.Option<string>;
65
- }
66
- const AliasInstance_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 & {
67
- _tag: "AliasInstance";
68
- }>;
69
- /** An `Instance` whose specifier is eg "npm:imageoptim-cli@3.1.7" */
70
- export class AliasInstance extends AliasInstance_base<BaseInstance<AliasResult>> {
71
- setSpecifier(version: string | Delete): void;
72
- getSemverSpecifier(): Option.Option<string>;
73
- }
74
- const VersionInstance_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 & {
75
- _tag: "VersionInstance";
76
- }>;
77
- /** An `Instance` whose specifier is exact semver */
78
- export class VersionInstance extends VersionInstance_base<BaseInstance<SpecificRegistryResult<'version'>>> {
79
- setSpecifier: typeof setSpecifier;
80
- getSemverSpecifier(): Option.Option<string>;
81
- }
82
- const RangeInstance_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 & {
83
- _tag: "RangeInstance";
84
- }>;
85
- /** An `Instance` whose specifier is eg. "*" or "^1.2.3" */
86
- export class RangeInstance extends RangeInstance_base<BaseInstance<SpecificRegistryResult<'range'>>> {
87
- setSpecifier: typeof setSpecifier;
88
- getSemverSpecifier(): Option.Option<string>;
89
- }
90
- const TagInstance_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 & {
91
- _tag: "TagInstance";
92
- }>;
93
- /** An `Instance` whose specifier is eg. "latest" or "made-up-by-some-dev" */
94
- export class TagInstance extends TagInstance_base<BaseInstance<SpecificRegistryResult<'tag'>>> {
95
- setSpecifier: typeof setSpecifier;
96
- getSemverSpecifier(): Option.Option<string>;
97
- }
98
- const WorkspaceProtocolInstance_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 & {
99
- _tag: "WorkspaceProtocolInstance";
100
- }>;
101
- /** An `Instance` whose specifier is "workspace:*" */
102
- export class WorkspaceProtocolInstance extends WorkspaceProtocolInstance_base<BaseInstance<WorkspaceProtocolResult>> {
103
- setSpecifier: typeof setSpecifier;
104
- getSemverSpecifier(): Option.Option<string>;
105
- }
106
- const UnsupportedInstance_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 & {
107
- _tag: "UnsupportedInstance";
108
- }>;
109
- /** An `Instance` whose specifier is not supported by npm */
110
- export class UnsupportedInstance extends UnsupportedInstance_base<BaseInstance<unknown>> {
111
- setSpecifier: typeof setSpecifier;
112
- getSemverSpecifier(): Option.Option<string>;
113
- }
114
- export type Any = FileInstance | HostedGitInstance | UrlInstance | AliasInstance | VersionInstance | RangeInstance | TagInstance | WorkspaceProtocolInstance | UnsupportedInstance;
115
- export {};
116
- }
117
- /**
118
- * In the case of banned dependencies, their version is set to `undefined`,
119
- * which causes them to be removed by `JSON.stringify`.
120
- */
121
- declare function setSpecifier(this: Instance.Any, version: string | Delete): void;
122
- export {};