syncpack 11.2.1 → 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 (273) hide show
  1. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +15 -3
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +119 -35
  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 +11 -35
  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 +93 -34
  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 +120 -34
  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 +253 -34
  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 +82 -33
  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 +49 -35
  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 +51 -37
  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 +7 -8
  34. package/dist/config/get-enabled-types.js +63 -73
  35. package/dist/config/get-indent.js +1 -1
  36. package/dist/config/tag.d.ts +1 -1
  37. package/dist/config/tag.js +2 -25
  38. package/dist/config/types.d.ts +8 -9
  39. package/dist/constants.d.ts +4 -1
  40. package/dist/constants.js +4 -2
  41. package/dist/create-program/effects.d.ts +51 -29
  42. package/dist/error-handlers/default-error-handlers.d.ts +38 -2
  43. package/dist/error-handlers/default-error-handlers.js +80 -37
  44. package/dist/get-context/index.d.ts +12 -6
  45. package/dist/get-context/index.js +13 -30
  46. package/dist/get-context/lib/key-by.d.ts +6 -0
  47. package/dist/get-context/lib/key-by.js +16 -0
  48. package/dist/get-instances/index.d.ts +14 -0
  49. package/dist/get-instances/index.js +46 -0
  50. package/dist/get-instances/instance.d.ts +25 -0
  51. package/dist/get-instances/instance.js +20 -0
  52. package/dist/get-package-json-files/get-file-paths.d.ts +6 -7
  53. package/dist/get-package-json-files/get-file-paths.js +10 -33
  54. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +3 -4
  55. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +6 -32
  56. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +3 -4
  57. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +6 -32
  58. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +3 -4
  59. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +11 -40
  60. package/dist/get-package-json-files/get-patterns/index.d.ts +3 -5
  61. package/dist/get-package-json-files/get-patterns/index.js +6 -33
  62. package/dist/get-package-json-files/index.d.ts +6 -5
  63. package/dist/get-package-json-files/index.js +4 -28
  64. package/dist/get-package-json-files/package-json-file.d.ts +16 -16
  65. package/dist/get-package-json-files/package-json-file.js +13 -18
  66. package/dist/guards/can-add-to-group.d.ts +5 -4
  67. package/dist/guards/can-add-to-group.js +8 -4
  68. package/dist/guards/is-semver.d.ts +1 -1
  69. package/dist/guards/is-semver.js +1 -1
  70. package/dist/guards/is-valid-semver-range.d.ts +1 -1
  71. package/dist/guards/is-valid-semver-range.js +1 -1
  72. package/dist/io/ask-for-choice.d.ts +14 -0
  73. package/dist/io/ask-for-choice.js +22 -0
  74. package/dist/io/ask-for-input.d.ts +13 -0
  75. package/dist/io/ask-for-input.js +19 -0
  76. package/dist/io/exit-if-invalid.d.ts +4 -0
  77. package/dist/io/exit-if-invalid.js +13 -0
  78. package/dist/io/glob-sync.d.ts +11 -0
  79. package/dist/io/glob-sync.js +19 -0
  80. package/dist/io/index.d.ts +28 -0
  81. package/dist/{env/exit-if-invalid.js → io/index.js} +27 -9
  82. package/dist/io/read-config-file-sync.d.ts +7 -0
  83. package/dist/io/read-config-file-sync.js +26 -0
  84. package/dist/io/read-file-sync.d.ts +12 -0
  85. package/dist/io/read-file-sync.js +14 -0
  86. package/dist/io/read-json-file-sync.d.ts +30 -0
  87. package/dist/io/read-json-file-sync.js +25 -0
  88. package/dist/io/read-yaml-file-sync.d.ts +12 -0
  89. package/dist/io/read-yaml-file-sync.js +14 -0
  90. package/dist/io/write-file-sync.d.ts +12 -0
  91. package/dist/io/write-file-sync.js +15 -0
  92. package/dist/{env → io}/write-if-changed.d.ts +4 -4
  93. package/dist/io/write-if-changed.js +45 -0
  94. package/dist/lib/get-group-header.d.ts +10 -0
  95. package/dist/lib/get-group-header.js +31 -0
  96. package/dist/lib/get.d.ts +11 -0
  97. package/dist/lib/get.js +40 -0
  98. package/dist/lib/pad-start.d.ts +1 -0
  99. package/dist/lib/pad-start.js +7 -0
  100. package/dist/lib/ring-buffer.d.ts +10 -0
  101. package/dist/lib/ring-buffer.js +22 -0
  102. package/dist/lib/set-semver-range.d.ts +1 -1
  103. package/dist/lib/set-semver-range.js +7 -11
  104. package/dist/lib/with-logger.d.ts +2 -0
  105. package/dist/lib/with-logger.js +35 -0
  106. package/dist/option.d.ts +0 -1
  107. package/dist/option.js +0 -4
  108. package/dist/report.d.ts +166 -0
  109. package/dist/report.js +67 -0
  110. package/dist/schema.json +51 -20
  111. package/dist/semver-group/create-semver-groups.d.ts +4 -0
  112. package/dist/semver-group/create-semver-groups.js +77 -0
  113. package/dist/semver-group/disabled.d.ts +26 -0
  114. package/dist/semver-group/disabled.js +34 -0
  115. package/dist/semver-group/filtered-out.d.ts +27 -0
  116. package/dist/semver-group/filtered-out.js +40 -0
  117. package/dist/semver-group/ignored.d.ts +22 -0
  118. package/dist/semver-group/ignored.js +30 -0
  119. package/dist/semver-group/index.d.ts +22 -0
  120. package/dist/semver-group/index.js +10 -0
  121. package/dist/semver-group/with-range.d.ts +22 -0
  122. package/dist/semver-group/with-range.js +57 -0
  123. package/dist/specifier/alias.d.ts +15 -0
  124. package/dist/specifier/alias.js +25 -0
  125. package/dist/specifier/base.d.ts +39 -0
  126. package/dist/specifier/base.js +38 -0
  127. package/dist/specifier/delete.d.ts +15 -0
  128. package/dist/specifier/delete.js +16 -0
  129. package/dist/specifier/file.d.ts +6 -0
  130. package/dist/specifier/file.js +12 -0
  131. package/dist/specifier/hosted-git.d.ts +13 -0
  132. package/dist/specifier/hosted-git.js +27 -0
  133. package/dist/specifier/index.d.ts +27 -0
  134. package/dist/specifier/index.js +62 -0
  135. package/dist/specifier/lib/non-semver-error.d.ts +11 -0
  136. package/dist/specifier/lib/non-semver-error.js +10 -0
  137. package/dist/specifier/lib/parse-specifier.d.ts +14 -0
  138. package/dist/specifier/lib/parse-specifier.js +23 -0
  139. package/dist/specifier/lib/specific-registry-result.d.ts +9 -0
  140. package/dist/specifier/lib/specific-registry-result.js +2 -0
  141. package/dist/specifier/range.d.ts +18 -0
  142. package/dist/specifier/range.js +26 -0
  143. package/dist/specifier/tag.d.ts +9 -0
  144. package/dist/specifier/tag.js +15 -0
  145. package/dist/specifier/unsupported.d.ts +5 -0
  146. package/dist/specifier/unsupported.js +12 -0
  147. package/dist/specifier/url.d.ts +6 -0
  148. package/dist/specifier/url.js +13 -0
  149. package/dist/specifier/version.d.ts +18 -0
  150. package/dist/specifier/version.js +26 -0
  151. package/dist/specifier/workspace-protocol.d.ts +17 -0
  152. package/dist/specifier/workspace-protocol.js +38 -0
  153. package/dist/strategy/lib/get-non-empty-string-prop.d.ts +2 -2
  154. package/dist/strategy/lib/get-non-empty-string-prop.js +4 -5
  155. package/dist/strategy/name-and-version-props.d.ts +4 -4
  156. package/dist/strategy/name-and-version-props.js +32 -21
  157. package/dist/strategy/named-version-string.d.ts +4 -4
  158. package/dist/strategy/named-version-string.js +22 -24
  159. package/dist/strategy/unnamed-version-string.d.ts +4 -4
  160. package/dist/strategy/unnamed-version-string.js +20 -21
  161. package/dist/strategy/versions-by-name.d.ts +4 -4
  162. package/dist/strategy/versions-by-name.js +9 -11
  163. package/dist/version-group/banned.d.ts +17 -0
  164. package/dist/version-group/banned.js +32 -0
  165. package/dist/version-group/create-version-groups.d.ts +4 -0
  166. package/dist/version-group/create-version-groups.js +107 -0
  167. package/dist/version-group/filtered-out.d.ts +19 -0
  168. package/dist/version-group/filtered-out.js +34 -0
  169. package/dist/version-group/ignored.d.ts +17 -0
  170. package/dist/version-group/ignored.js +27 -0
  171. package/dist/version-group/index.d.ts +28 -0
  172. package/dist/version-group/index.js +10 -0
  173. package/dist/version-group/lib/get-highest-version.d.ts +6 -0
  174. package/dist/version-group/lib/get-highest-version.js +12 -0
  175. package/dist/version-group/lib/get-lowest-version.d.ts +6 -0
  176. package/dist/version-group/lib/get-lowest-version.js +12 -0
  177. package/dist/version-group/lib/get-preferred-version.d.ts +5 -0
  178. package/dist/{get-version-groups/lib/compare-semver.js → version-group/lib/get-preferred-version.js} +14 -2
  179. package/dist/version-group/lib/group-by.d.ts +5 -0
  180. package/dist/{get-version-groups → version-group}/lib/group-by.js +4 -0
  181. package/dist/version-group/pinned.d.ts +17 -0
  182. package/dist/version-group/pinned.js +30 -0
  183. package/dist/version-group/same-range.d.ts +19 -0
  184. package/dist/version-group/same-range.js +108 -0
  185. package/dist/version-group/snapped-to.d.ts +17 -0
  186. package/dist/version-group/snapped-to.js +83 -0
  187. package/dist/version-group/standard.d.ts +18 -0
  188. package/dist/version-group/standard.js +131 -0
  189. package/package.json +24 -23
  190. package/dist/bin-fix-mismatches/effects.d.ts +0 -2
  191. package/dist/bin-fix-mismatches/effects.js +0 -112
  192. package/dist/bin-format/format-cli.d.ts +0 -4
  193. package/dist/bin-format/format-cli.js +0 -42
  194. package/dist/bin-lint-semver-ranges/effects.d.ts +0 -2
  195. package/dist/bin-lint-semver-ranges/effects.js +0 -70
  196. package/dist/bin-list/effects.d.ts +0 -2
  197. package/dist/bin-list/effects.js +0 -114
  198. package/dist/bin-list-mismatches/effects.d.ts +0 -2
  199. package/dist/bin-list-mismatches/effects.js +0 -136
  200. package/dist/bin-prompt/effects.d.ts +0 -2
  201. package/dist/bin-prompt/effects.js +0 -110
  202. package/dist/bin-set-semver-ranges/effects.d.ts +0 -2
  203. package/dist/bin-set-semver-ranges/effects.js +0 -61
  204. package/dist/config/get-semver-range.d.ts +0 -3
  205. package/dist/config/get-semver-range.js +0 -12
  206. package/dist/create-program/semver-ranges.d.ts +0 -7
  207. package/dist/create-program/semver-ranges.js +0 -55
  208. package/dist/create-program/versions.d.ts +0 -7
  209. package/dist/create-program/versions.js +0 -70
  210. package/dist/env/create-env.d.ts +0 -21
  211. package/dist/env/create-env.js +0 -81
  212. package/dist/env/default-env.d.ts +0 -18
  213. package/dist/env/default-env.js +0 -100
  214. package/dist/env/exit-if-invalid.d.ts +0 -4
  215. package/dist/env/tags.d.ts +0 -58
  216. package/dist/env/tags.js +0 -50
  217. package/dist/env/write-if-changed.js +0 -73
  218. package/dist/error-handlers/create-error-handlers.d.ts +0 -20
  219. package/dist/error-handlers/create-error-handlers.js +0 -60
  220. package/dist/get-package-json-files/get-patterns/read-json-safe.d.ts +0 -23
  221. package/dist/get-package-json-files/get-patterns/read-json-safe.js +0 -43
  222. package/dist/get-semver-groups/filtered-out.d.ts +0 -19
  223. package/dist/get-semver-groups/filtered-out.js +0 -55
  224. package/dist/get-semver-groups/ignored.d.ts +0 -17
  225. package/dist/get-semver-groups/ignored.js +0 -48
  226. package/dist/get-semver-groups/index.d.ts +0 -84
  227. package/dist/get-semver-groups/index.js +0 -139
  228. package/dist/get-semver-groups/with-range.d.ts +0 -18
  229. package/dist/get-semver-groups/with-range.js +0 -79
  230. package/dist/get-version-groups/banned.d.ts +0 -17
  231. package/dist/get-version-groups/banned.js +0 -50
  232. package/dist/get-version-groups/filtered-out.d.ts +0 -19
  233. package/dist/get-version-groups/filtered-out.js +0 -57
  234. package/dist/get-version-groups/ignored.d.ts +0 -17
  235. package/dist/get-version-groups/ignored.js +0 -50
  236. package/dist/get-version-groups/index.d.ts +0 -187
  237. package/dist/get-version-groups/index.js +0 -246
  238. package/dist/get-version-groups/lib/compare-semver.d.ts +0 -1
  239. package/dist/get-version-groups/lib/get-highest-version.d.ts +0 -2
  240. package/dist/get-version-groups/lib/get-highest-version.js +0 -13
  241. package/dist/get-version-groups/lib/get-lowest-version.d.ts +0 -2
  242. package/dist/get-version-groups/lib/get-lowest-version.js +0 -13
  243. package/dist/get-version-groups/lib/get-unique-specifiers.d.ts +0 -2
  244. package/dist/get-version-groups/lib/get-unique-specifiers.js +0 -11
  245. package/dist/get-version-groups/lib/group-by.d.ts +0 -1
  246. package/dist/get-version-groups/pinned.d.ts +0 -17
  247. package/dist/get-version-groups/pinned.js +0 -66
  248. package/dist/get-version-groups/same-range.d.ts +0 -17
  249. package/dist/get-version-groups/same-range.js +0 -73
  250. package/dist/get-version-groups/snapped-to.d.ts +0 -17
  251. package/dist/get-version-groups/snapped-to.js +0 -78
  252. package/dist/get-version-groups/standard.d.ts +0 -18
  253. package/dist/get-version-groups/standard.js +0 -109
  254. package/dist/guards/is-loose-semver.d.ts +0 -2
  255. package/dist/guards/is-loose-semver.js +0 -10
  256. package/dist/instance/create.d.ts +0 -4
  257. package/dist/instance/create.js +0 -142
  258. package/dist/instance/index.d.ts +0 -122
  259. package/dist/instance/index.js +0 -154
  260. package/dist/lib/$R.d.ts +0 -12
  261. package/dist/lib/$R.js +0 -34
  262. package/dist/lib/log-group-header.d.ts +0 -6
  263. package/dist/lib/log-group-header.js +0 -34
  264. package/dist/lib/log-verbose.d.ts +0 -1
  265. package/dist/lib/log-verbose.js +0 -24
  266. package/dist/lib/split-name-and-version.d.ts +0 -5
  267. package/dist/lib/split-name-and-version.js +0 -12
  268. /package/dist/{get-version-groups → version-group}/lib/clean.d.ts +0 -0
  269. /package/dist/{get-version-groups → version-group}/lib/clean.js +0 -0
  270. /package/dist/{get-version-groups → version-group}/lib/delete.d.ts +0 -0
  271. /package/dist/{get-version-groups → version-group}/lib/delete.js +0 -0
  272. /package/dist/{get-version-groups → version-group}/lib/get-range-score.d.ts +0 -0
  273. /package/dist/{get-version-groups → version-group}/lib/get-range-score.js +0 -0
@@ -1,187 +0,0 @@
1
- import * as Data from '@effect/data/Data';
2
- import * as Effect from '@effect/io/Effect';
3
- import type { Union } from 'ts-toolbelt';
4
- import type { DeprecatedTypesError, RenamedWorkspaceTypeError } from '../config/get-enabled-types';
5
- import type { Ctx } from '../get-context';
6
- import type { Instance } from '../instance';
7
- import { BannedVersionGroup } from './banned';
8
- import { FilteredOutVersionGroup } from './filtered-out';
9
- import { IgnoredVersionGroup } from './ignored';
10
- import { PinnedVersionGroup } from './pinned';
11
- import { SameRangeVersionGroup } from './same-range';
12
- import { SnappedToVersionGroup } from './snapped-to';
13
- import { StandardVersionGroup } from './standard';
14
- export type AnyVersionGroup = Union.Strict<BannedVersionGroup | FilteredOutVersionGroup | IgnoredVersionGroup | PinnedVersionGroup | SameRangeVersionGroup | SnappedToVersionGroup | StandardVersionGroup>;
15
- export declare namespace VersionGroupReport {
16
- const Banned_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 & {
17
- _tag: "Banned";
18
- }>;
19
- /**
20
- * Every instance in this `BannedVersionGroup` matched its configuration and
21
- * will be removed if fixed
22
- */
23
- export class Banned extends Banned_base<{
24
- name: string;
25
- instances: Instance.Any[];
26
- readonly isValid: false;
27
- }> {
28
- }
29
- const FilteredOut_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 & {
30
- _tag: "FilteredOut";
31
- }>;
32
- /**
33
- * Every instance in this `FilteredOutVersionGroup` has name which does not
34
- * match the RegExp produced by the `--filter` option.
35
- */
36
- export class FilteredOut extends FilteredOut_base<{
37
- name: string;
38
- instances: Instance.Any[];
39
- readonly isValid: true;
40
- }> {
41
- }
42
- const HighestSemverMismatch_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: "HighestSemverMismatch";
44
- }>;
45
- /**
46
- * One or more instances has a version which is not identical to the others,
47
- * to resolve this issue the highest semver version present should be used
48
- */
49
- export class HighestSemverMismatch extends HighestSemverMismatch_base<{
50
- name: string;
51
- instances: Instance.Any[];
52
- readonly isValid: false;
53
- readonly expectedVersion: string;
54
- }> {
55
- }
56
- const Ignored_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 & {
57
- _tag: "Ignored";
58
- }>;
59
- /**
60
- * Every instance in this `IgnoredVersionGroup` matched its configuration
61
- */
62
- export class Ignored extends Ignored_base<{
63
- name: string;
64
- instances: Instance.Any[];
65
- readonly isValid: true;
66
- }> {
67
- }
68
- const LowestSemverMismatch_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 & {
69
- _tag: "LowestSemverMismatch";
70
- }>;
71
- /**
72
- * One or more instances has a version which is not identical to the others,
73
- * to resolve this issue the lowest semver version present should be used
74
- */
75
- export class LowestSemverMismatch extends LowestSemverMismatch_base<{
76
- name: string;
77
- instances: Instance.Any[];
78
- readonly isValid: false;
79
- readonly expectedVersion: string;
80
- }> {
81
- }
82
- const PinnedMismatch_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: "PinnedMismatch";
84
- }>;
85
- /**
86
- * One or more instances has a version which is not identical to the
87
- * `pinVersion` value set in this `PinnedVersionGroup`
88
- */
89
- export class PinnedMismatch extends PinnedMismatch_base<{
90
- name: string;
91
- instances: Instance.Any[];
92
- readonly isValid: false;
93
- readonly expectedVersion: string;
94
- }> {
95
- }
96
- const SameRangeMismatch_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 & {
97
- _tag: "SameRangeMismatch";
98
- }>;
99
- /**
100
- * One or more instances has a version which is not satisfied by the semver
101
- * version ranges defined by every other instance of this same dependency. In
102
- * a `SameRangeVersionGroup`, each version does not have to be indentical, but
103
- * they do have to all satisfy the ranges set by the others.
104
- */
105
- export class SameRangeMismatch extends SameRangeMismatch_base<{
106
- name: string;
107
- instances: Instance.Any[];
108
- readonly isValid: false;
109
- }> {
110
- }
111
- const SnappedToMismatch_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 & {
112
- _tag: "SnappedToMismatch";
113
- }>;
114
- /**
115
- * One or more instances has a version which does not match the version used
116
- * in any of the locally developed packages whose names are set in the
117
- * `snapTo` array of this `SnappedToVersionGroup`
118
- */
119
- export class SnappedToMismatch extends SnappedToMismatch_base<{
120
- name: string;
121
- instances: Instance.Any[];
122
- readonly isValid: false;
123
- readonly expectedVersion: string;
124
- readonly snapTo: string[];
125
- }> {
126
- }
127
- const NonSemverMismatch_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 & {
128
- _tag: "NonSemverMismatch";
129
- }>;
130
- /**
131
- * One or more instances has a version which does not match the others and
132
- * also, at least one of the instances has a version which is not semver.
133
- * Syncpack cannot guess what any given Developer will want to do in this
134
- * situation
135
- */
136
- export class NonSemverMismatch extends NonSemverMismatch_base<{
137
- name: string;
138
- instances: Instance.Any[];
139
- readonly isValid: false;
140
- }> {
141
- }
142
- const Valid_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 & {
143
- _tag: "Valid";
144
- }>;
145
- /**
146
- * Every instance satisfies the rules of the Version Group they belong to
147
- */
148
- export class Valid extends Valid_base<{
149
- name: string;
150
- instances: Instance.Any[];
151
- readonly isValid: true;
152
- }> {
153
- }
154
- const LocalPackageMismatch_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 & {
155
- _tag: "LocalPackageMismatch";
156
- }>;
157
- /**
158
- * This dependency is one of the packages developed in this monorepo and one
159
- * or more of the packages in this monorepo depend on it with a version which
160
- * is not identical to the `.version` property of its package.json file
161
- */
162
- export class LocalPackageMismatch extends LocalPackageMismatch_base<{
163
- name: string;
164
- instances: Instance.Any[];
165
- readonly isValid: false;
166
- readonly expectedVersion: string;
167
- readonly localPackageInstance: Instance.Any;
168
- }> {
169
- }
170
- export type ValidCases = Union.Strict<FilteredOut | Ignored | Valid>;
171
- export type InvalidCases = Union.Strict<Banned | HighestSemverMismatch | LowestSemverMismatch | PinnedMismatch | SameRangeMismatch | SnappedToMismatch | NonSemverMismatch | LocalPackageMismatch>;
172
- export type FixableCases = Union.Strict<HighestSemverMismatch | LowestSemverMismatch | PinnedMismatch | SnappedToMismatch | LocalPackageMismatch>;
173
- export type UnfixableCases = Union.Strict<SameRangeMismatch | NonSemverMismatch | LocalPackageMismatch>;
174
- export type HighLowSemverMismatch = VersionGroupReport.HighestSemverMismatch | VersionGroupReport.LowestSemverMismatch;
175
- export type Any = Union.Strict<ValidCases | InvalidCases>;
176
- export {};
177
- }
178
- declare const VersionGroupConfigError_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 & {
179
- _tag: "VersionGroupConfigError";
180
- }>;
181
- export declare class VersionGroupConfigError extends VersionGroupConfigError_base<{
182
- readonly config: unknown;
183
- readonly error: string;
184
- }> {
185
- }
186
- export declare function getVersionGroups(ctx: Ctx): Effect.Effect<never, VersionGroupConfigError | DeprecatedTypesError | RenamedWorkspaceTypeError, AnyVersionGroup[]>;
187
- export {};
@@ -1,246 +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.getVersionGroups = exports.VersionGroupConfigError = exports.VersionGroupReport = void 0;
27
- const Data = __importStar(require("@effect/data/Data"));
28
- const Function_1 = require("@effect/data/Function");
29
- const Effect = __importStar(require("@effect/io/Effect"));
30
- const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
31
- const is_non_empty_array_1 = require("tightrope/guard/is-non-empty-array");
32
- const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
33
- const is_object_1 = require("tightrope/guard/is-object");
34
- const get_enabled_types_1 = require("../config/get-enabled-types");
35
- const can_add_to_group_1 = require("../guards/can-add-to-group");
36
- const sort_by_name_1 = require("../lib/sort-by-name");
37
- const banned_1 = require("./banned");
38
- const filtered_out_1 = require("./filtered-out");
39
- const ignored_1 = require("./ignored");
40
- const pinned_1 = require("./pinned");
41
- const same_range_1 = require("./same-range");
42
- const snapped_to_1 = require("./snapped-to");
43
- const standard_1 = require("./standard");
44
- var VersionGroupReport;
45
- (function (VersionGroupReport) {
46
- /**
47
- * Every instance in this `BannedVersionGroup` matched its configuration and
48
- * will be removed if fixed
49
- */
50
- class Banned extends Data.TaggedClass('Banned') {
51
- }
52
- VersionGroupReport.Banned = Banned;
53
- /**
54
- * Every instance in this `FilteredOutVersionGroup` has name which does not
55
- * match the RegExp produced by the `--filter` option.
56
- */
57
- class FilteredOut extends Data.TaggedClass('FilteredOut') {
58
- }
59
- VersionGroupReport.FilteredOut = FilteredOut;
60
- /**
61
- * One or more instances has a version which is not identical to the others,
62
- * to resolve this issue the highest semver version present should be used
63
- */
64
- class HighestSemverMismatch extends Data.TaggedClass('HighestSemverMismatch') {
65
- }
66
- VersionGroupReport.HighestSemverMismatch = HighestSemverMismatch;
67
- /**
68
- * Every instance in this `IgnoredVersionGroup` matched its configuration
69
- */
70
- class Ignored extends Data.TaggedClass('Ignored') {
71
- }
72
- VersionGroupReport.Ignored = Ignored;
73
- /**
74
- * One or more instances has a version which is not identical to the others,
75
- * to resolve this issue the lowest semver version present should be used
76
- */
77
- class LowestSemverMismatch extends Data.TaggedClass('LowestSemverMismatch') {
78
- }
79
- VersionGroupReport.LowestSemverMismatch = LowestSemverMismatch;
80
- /**
81
- * One or more instances has a version which is not identical to the
82
- * `pinVersion` value set in this `PinnedVersionGroup`
83
- */
84
- class PinnedMismatch extends Data.TaggedClass('PinnedMismatch') {
85
- }
86
- VersionGroupReport.PinnedMismatch = PinnedMismatch;
87
- /**
88
- * One or more instances has a version which is not satisfied by the semver
89
- * version ranges defined by every other instance of this same dependency. In
90
- * a `SameRangeVersionGroup`, each version does not have to be indentical, but
91
- * they do have to all satisfy the ranges set by the others.
92
- */
93
- class SameRangeMismatch extends Data.TaggedClass('SameRangeMismatch') {
94
- }
95
- VersionGroupReport.SameRangeMismatch = SameRangeMismatch;
96
- /**
97
- * One or more instances has a version which does not match the version used
98
- * in any of the locally developed packages whose names are set in the
99
- * `snapTo` array of this `SnappedToVersionGroup`
100
- */
101
- class SnappedToMismatch extends Data.TaggedClass('SnappedToMismatch') {
102
- }
103
- VersionGroupReport.SnappedToMismatch = SnappedToMismatch;
104
- /**
105
- * One or more instances has a version which does not match the others and
106
- * also, at least one of the instances has a version which is not semver.
107
- * Syncpack cannot guess what any given Developer will want to do in this
108
- * situation
109
- */
110
- class NonSemverMismatch extends Data.TaggedClass('NonSemverMismatch') {
111
- }
112
- VersionGroupReport.NonSemverMismatch = NonSemverMismatch;
113
- /**
114
- * Every instance satisfies the rules of the Version Group they belong to
115
- */
116
- class Valid extends Data.TaggedClass('Valid') {
117
- }
118
- VersionGroupReport.Valid = Valid;
119
- /**
120
- * This dependency is one of the packages developed in this monorepo and one
121
- * or more of the packages in this monorepo depend on it with a version which
122
- * is not identical to the `.version` property of its package.json file
123
- */
124
- class LocalPackageMismatch extends Data.TaggedClass('LocalPackageMismatch') {
125
- }
126
- VersionGroupReport.LocalPackageMismatch = LocalPackageMismatch;
127
- })(VersionGroupReport || (exports.VersionGroupReport = VersionGroupReport = {}));
128
- class VersionGroupConfigError extends Data.TaggedClass('VersionGroupConfigError') {
129
- }
130
- exports.VersionGroupConfigError = VersionGroupConfigError;
131
- function getVersionGroups(ctx) {
132
- return (0, Function_1.pipe)(Effect.Do, Effect.bind('enabledTypes', () => (0, get_enabled_types_1.getEnabledTypes)(ctx.config)), Effect.bind('versionGroups', () => createVersionGroups(ctx)), Effect.flatMap(({ enabledTypes, versionGroups }) => {
133
- for (const file of ctx.packageJsonFiles) {
134
- instances: for (const instance of file.getInstances(enabledTypes)) {
135
- for (const group of versionGroups) {
136
- if ((0, can_add_to_group_1.canAddToGroup)(group, instance)) {
137
- group.instances.push(instance);
138
- continue instances;
139
- }
140
- }
141
- }
142
- }
143
- return Effect.succeed(versionGroups.filter((group) => (0, is_non_empty_array_1.isNonEmptyArray)(group.instances.sort(sort_by_name_1.sortByName))));
144
- }));
145
- }
146
- exports.getVersionGroups = getVersionGroups;
147
- function createVersionGroups(ctx) {
148
- const { rcFile } = ctx.config;
149
- const versionGroups = [
150
- Effect.succeed(new filtered_out_1.FilteredOutVersionGroup(ctx)),
151
- ];
152
- if ((0, is_non_empty_array_1.isNonEmptyArray)(rcFile.versionGroups)) {
153
- rcFile.versionGroups.forEach((config) => {
154
- if (!(0, is_object_1.isObject)(config)) {
155
- return versionGroups.push(Effect.fail(new VersionGroupConfigError({
156
- config,
157
- error: 'config is not an object',
158
- })));
159
- }
160
- if (!(0, is_array_of_strings_1.isArrayOfStrings)(config.dependencies)) {
161
- return versionGroups.push(Effect.fail(new VersionGroupConfigError({
162
- config,
163
- error: 'config.dependencies is not an array of strings',
164
- })));
165
- }
166
- if (!(0, is_array_of_strings_1.isArrayOfStrings)(config.packages)) {
167
- return versionGroups.push(Effect.fail(new VersionGroupConfigError({
168
- config,
169
- error: 'config.packages is not an array of strings',
170
- })));
171
- }
172
- const mutuallyExclusiveProps = ['isBanned', 'isIgnored', 'pinVersion', 'snapTo', 'policy'].filter((prop) => Boolean(config[prop]));
173
- if (mutuallyExclusiveProps.length > 1) {
174
- return versionGroups.push(Effect.fail(new VersionGroupConfigError({
175
- config,
176
- error: `it's unclear what kind of version group you want, as it contains both ${mutuallyExclusiveProps.join(' and ')}`,
177
- })));
178
- }
179
- const { dependencies, packages } = config;
180
- const label = (0, is_non_empty_string_1.isNonEmptyString)(config.label) ? config.label : '';
181
- const dependencyTypes = (0, is_array_of_strings_1.isArrayOfStrings)(config.dependencyTypes)
182
- ? config.dependencyTypes
183
- : ['**'];
184
- if (config.isBanned === true) {
185
- versionGroups.push(Effect.succeed(new banned_1.BannedVersionGroup({
186
- dependencies,
187
- dependencyTypes,
188
- isBanned: true,
189
- label,
190
- packages,
191
- })));
192
- }
193
- else if (config.isIgnored === true) {
194
- versionGroups.push(Effect.succeed(new ignored_1.IgnoredVersionGroup({
195
- dependencies,
196
- dependencyTypes,
197
- isIgnored: true,
198
- label,
199
- packages,
200
- })));
201
- }
202
- else if ((0, is_non_empty_string_1.isNonEmptyString)(config.pinVersion)) {
203
- versionGroups.push(Effect.succeed(new pinned_1.PinnedVersionGroup({
204
- dependencies,
205
- dependencyTypes,
206
- label,
207
- packages,
208
- pinVersion: config.pinVersion,
209
- })));
210
- }
211
- else if ((0, is_array_of_strings_1.isArrayOfStrings)(config.snapTo)) {
212
- versionGroups.push(Effect.succeed(new snapped_to_1.SnappedToVersionGroup({
213
- dependencies,
214
- dependencyTypes,
215
- label,
216
- packages,
217
- snapTo: config.snapTo,
218
- })));
219
- }
220
- else if (config.policy === 'sameRange') {
221
- versionGroups.push(Effect.succeed(new same_range_1.SameRangeVersionGroup({
222
- dependencies,
223
- dependencyTypes,
224
- label,
225
- packages,
226
- policy: config.policy,
227
- })));
228
- }
229
- else {
230
- versionGroups.push(Effect.succeed(new standard_1.StandardVersionGroup(false, {
231
- dependencies,
232
- dependencyTypes,
233
- label,
234
- packages,
235
- preferVersion: config.preferVersion === 'lowestSemver' ? 'lowestSemver' : 'highestSemver',
236
- })));
237
- }
238
- });
239
- }
240
- versionGroups.push(Effect.succeed(new standard_1.StandardVersionGroup(true, {
241
- dependencies: ['**'],
242
- packages: ['**'],
243
- preferVersion: 'highestSemver',
244
- })));
245
- return Effect.all(versionGroups);
246
- }
@@ -1 +0,0 @@
1
- export declare function compareSemver(a: string, b: string): -1 | 0 | 1;
@@ -1,2 +0,0 @@
1
- import type { Result } from 'tightrope/result';
2
- export declare function getHighestVersion(versions: string[]): Result<string>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getHighestVersion = void 0;
4
- const Function_1 = require("@effect/data/Function");
5
- const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
6
- const filter_1 = require("tightrope/result/filter");
7
- const from_try_1 = require("tightrope/result/from-try");
8
- const map_1 = require("tightrope/result/map");
9
- const compare_semver_1 = require("./compare-semver");
10
- function getHighestVersion(versions) {
11
- return (0, Function_1.pipe)((0, from_try_1.fromTry)(() => [...versions].sort(compare_semver_1.compareSemver)), (0, map_1.map)((sorted) => sorted[sorted.length - 1]), (0, filter_1.filter)(is_non_empty_string_1.isNonEmptyString, 'getHighestVersion(): did not return a version'));
12
- }
13
- exports.getHighestVersion = getHighestVersion;
@@ -1,2 +0,0 @@
1
- import type { Result } from 'tightrope/result';
2
- export declare function getLowestVersion(versions: string[]): Result<string>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLowestVersion = void 0;
4
- const Function_1 = require("@effect/data/Function");
5
- const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
6
- const filter_1 = require("tightrope/result/filter");
7
- const from_try_1 = require("tightrope/result/from-try");
8
- const map_1 = require("tightrope/result/map");
9
- const compare_semver_1 = require("./compare-semver");
10
- function getLowestVersion(versions) {
11
- return (0, Function_1.pipe)((0, from_try_1.fromTry)(() => [...versions].sort(compare_semver_1.compareSemver)), (0, map_1.map)(([lowest]) => lowest), (0, filter_1.filter)(is_non_empty_string_1.isNonEmptyString, 'getLowestVersion(): did not return a version'));
12
- }
13
- exports.getLowestVersion = getLowestVersion;
@@ -1,2 +0,0 @@
1
- import type { Instance } from '../../instance';
2
- export declare function getUniqueSpecifiers(instances: Instance.Any[]): Instance.Any[];
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUniqueSpecifiers = void 0;
4
- function getUniqueSpecifiers(instances) {
5
- const instancesBySpecifier = {};
6
- instances.forEach((instance) => {
7
- instancesBySpecifier[instance.specifier] = instance;
8
- });
9
- return Object.values(instancesBySpecifier);
10
- }
11
- exports.getUniqueSpecifiers = getUniqueSpecifiers;
@@ -1 +0,0 @@
1
- export declare function groupBy<A extends any[]>(key: string, array: A): Record<string, A>;
@@ -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 PinnedVersionGroup_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: "Pinned";
8
- }>;
9
- export declare class PinnedVersionGroup extends PinnedVersionGroup_base<{
10
- config: VersionGroupConfig.Pinned;
11
- instances: Instance.Any[];
12
- }> {
13
- constructor(config: VersionGroupConfig.Pinned);
14
- canAdd(_: Instance.Any): boolean;
15
- inspect(): Effect.Effect<never, VersionGroupReport.PinnedMismatch, VersionGroupReport.Valid>[];
16
- }
17
- export {};
@@ -1,66 +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.PinnedVersionGroup = 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 PinnedVersionGroup extends Data.TaggedClass('Pinned') {
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
- const expectedVersion = this.config.pinVersion;
44
- return Object.entries(instancesByName).map(([name, instances]) => {
45
- if (hasMismatch(expectedVersion, instances)) {
46
- return Effect.fail(new _1.VersionGroupReport.PinnedMismatch({
47
- name,
48
- instances,
49
- isValid: false,
50
- expectedVersion,
51
- }));
52
- }
53
- else {
54
- return Effect.succeed(new _1.VersionGroupReport.Valid({
55
- name,
56
- instances,
57
- isValid: true,
58
- }));
59
- }
60
- });
61
- }
62
- }
63
- exports.PinnedVersionGroup = PinnedVersionGroup;
64
- function hasMismatch(pinVersion, instances) {
65
- return instances.some((instance) => instance.specifier !== pinVersion);
66
- }
@@ -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 SameRangeVersionGroup_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
7
- _tag: "SameRange";
8
- }>;
9
- export declare class SameRangeVersionGroup extends SameRangeVersionGroup_base<{
10
- config: VersionGroupConfig.SameRange;
11
- instances: Instance.Any[];
12
- }> {
13
- constructor(config: VersionGroupConfig.SameRange);
14
- canAdd(_: Instance.Any): boolean;
15
- inspect(): Effect.Effect<never, VersionGroupReport.SameRangeMismatch, VersionGroupReport.Valid>[];
16
- }
17
- export {};