syncpack 12.4.0 → 14.0.0-alpha.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 (232) hide show
  1. package/index.js +48 -0
  2. package/package.json +17 -76
  3. package/schema.json +917 -0
  4. package/syncpack.d.ts +122 -0
  5. package/LICENSE +0 -20
  6. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +0 -16
  7. package/dist/bin-fix-mismatches/fix-mismatches.js +0 -110
  8. package/dist/bin-fix-mismatches/index.d.ts +0 -2
  9. package/dist/bin-fix-mismatches/index.js +0 -64
  10. package/dist/bin-format/format.d.ts +0 -13
  11. package/dist/bin-format/format.js +0 -90
  12. package/dist/bin-format/index.d.ts +0 -2
  13. package/dist/bin-format/index.js +0 -53
  14. package/dist/bin-lint/index.d.ts +0 -2
  15. package/dist/bin-lint/index.js +0 -38
  16. package/dist/bin-lint/lint.d.ts +0 -11
  17. package/dist/bin-lint/lint.js +0 -52
  18. package/dist/bin-lint-semver-ranges/index.d.ts +0 -2
  19. package/dist/bin-lint-semver-ranges/index.js +0 -65
  20. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +0 -16
  21. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +0 -91
  22. package/dist/bin-list/index.d.ts +0 -2
  23. package/dist/bin-list/index.js +0 -57
  24. package/dist/bin-list/list.d.ts +0 -14
  25. package/dist/bin-list/list.js +0 -147
  26. package/dist/bin-list-mismatches/index.d.ts +0 -2
  27. package/dist/bin-list-mismatches/index.js +0 -59
  28. package/dist/bin-list-mismatches/list-mismatches.d.ts +0 -18
  29. package/dist/bin-list-mismatches/list-mismatches.js +0 -218
  30. package/dist/bin-prompt/index.d.ts +0 -2
  31. package/dist/bin-prompt/index.js +0 -61
  32. package/dist/bin-prompt/prompt.d.ts +0 -11
  33. package/dist/bin-prompt/prompt.js +0 -93
  34. package/dist/bin-set-semver-ranges/index.d.ts +0 -2
  35. package/dist/bin-set-semver-ranges/index.js +0 -69
  36. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +0 -11
  37. package/dist/bin-set-semver-ranges/set-semver-ranges.js +0 -58
  38. package/dist/bin-update/effects.d.ts +0 -52
  39. package/dist/bin-update/effects.js +0 -267
  40. package/dist/bin-update/index.d.ts +0 -2
  41. package/dist/bin-update/index.js +0 -54
  42. package/dist/bin-update/update.d.ts +0 -6
  43. package/dist/bin-update/update.js +0 -59
  44. package/dist/bin.d.ts +0 -2
  45. package/dist/bin.js +0 -37
  46. package/dist/config/get-custom-types.d.ts +0 -19
  47. package/dist/config/get-custom-types.js +0 -50
  48. package/dist/config/get-enabled-types.d.ts +0 -17
  49. package/dist/config/get-enabled-types.js +0 -94
  50. package/dist/config/get-filter.d.ts +0 -2
  51. package/dist/config/get-filter.js +0 -10
  52. package/dist/config/get-indent.d.ts +0 -2
  53. package/dist/config/get-indent.js +0 -9
  54. package/dist/config/get-sort-az.d.ts +0 -2
  55. package/dist/config/get-sort-az.js +0 -8
  56. package/dist/config/get-sort-exports.d.ts +0 -2
  57. package/dist/config/get-sort-exports.js +0 -8
  58. package/dist/config/get-sort-first.d.ts +0 -2
  59. package/dist/config/get-sort-first.js +0 -8
  60. package/dist/config/get-source.d.ts +0 -2
  61. package/dist/config/get-source.js +0 -8
  62. package/dist/config/tag.d.ts +0 -3
  63. package/dist/config/tag.js +0 -2
  64. package/dist/config/types.d.ts +0 -132
  65. package/dist/config/types.js +0 -1
  66. package/dist/constants.d.ts +0 -106
  67. package/dist/constants.js +0 -103
  68. package/dist/error-handlers/default-error-handlers.d.ts +0 -25
  69. package/dist/error-handlers/default-error-handlers.js +0 -80
  70. package/dist/get-context/index.d.ts +0 -23
  71. package/dist/get-context/index.js +0 -18
  72. package/dist/get-context/lib/key-by.d.ts +0 -6
  73. package/dist/get-context/lib/key-by.js +0 -12
  74. package/dist/get-instances/index.d.ts +0 -14
  75. package/dist/get-instances/index.js +0 -42
  76. package/dist/get-instances/instance.d.ts +0 -26
  77. package/dist/get-instances/instance.js +0 -31
  78. package/dist/get-package-json-files/get-file-paths.d.ts +0 -21
  79. package/dist/get-package-json-files/get-file-paths.js +0 -22
  80. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +0 -3
  81. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +0 -10
  82. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +0 -3
  83. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +0 -14
  84. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +0 -3
  85. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +0 -16
  86. package/dist/get-package-json-files/get-patterns/index.d.ts +0 -8
  87. package/dist/get-package-json-files/get-patterns/index.js +0 -23
  88. package/dist/get-package-json-files/index.d.ts +0 -10
  89. package/dist/get-package-json-files/index.js +0 -8
  90. package/dist/get-package-json-files/package-json-file.d.ts +0 -47
  91. package/dist/get-package-json-files/package-json-file.js +0 -29
  92. package/dist/guards/can-add-to-group.d.ts +0 -5
  93. package/dist/guards/can-add-to-group.js +0 -52
  94. package/dist/guards/is-semver.d.ts +0 -2
  95. package/dist/guards/is-semver.js +0 -13
  96. package/dist/guards/is-valid-semver-range.d.ts +0 -3
  97. package/dist/guards/is-valid-semver-range.js +0 -14
  98. package/dist/index.d.ts +0 -2
  99. package/dist/index.js +0 -1
  100. package/dist/io/ask-for-choice.d.ts +0 -14
  101. package/dist/io/ask-for-choice.js +0 -17
  102. package/dist/io/ask-for-input.d.ts +0 -13
  103. package/dist/io/ask-for-input.js +0 -14
  104. package/dist/io/exit-if-invalid.d.ts +0 -4
  105. package/dist/io/exit-if-invalid.js +0 -9
  106. package/dist/io/glob-sync.d.ts +0 -11
  107. package/dist/io/glob-sync.js +0 -14
  108. package/dist/io/index.d.ts +0 -27
  109. package/dist/io/index.js +0 -26
  110. package/dist/io/read-config-file.d.ts +0 -7
  111. package/dist/io/read-config-file.js +0 -22
  112. package/dist/io/read-file-sync.d.ts +0 -12
  113. package/dist/io/read-file-sync.js +0 -9
  114. package/dist/io/read-json-file-sync.d.ts +0 -30
  115. package/dist/io/read-json-file-sync.js +0 -19
  116. package/dist/io/read-yaml-file-sync.d.ts +0 -12
  117. package/dist/io/read-yaml-file-sync.js +0 -9
  118. package/dist/io/to-json.d.ts +0 -9
  119. package/dist/io/to-json.js +0 -29
  120. package/dist/io/write-file-sync.d.ts +0 -12
  121. package/dist/io/write-file-sync.js +0 -10
  122. package/dist/io/write-if-changed.d.ts +0 -5
  123. package/dist/io/write-if-changed.js +0 -10
  124. package/dist/lib/format-repository-url.d.ts +0 -1
  125. package/dist/lib/format-repository-url.js +0 -37
  126. package/dist/lib/get-group-header.d.ts +0 -10
  127. package/dist/lib/get-group-header.js +0 -23
  128. package/dist/lib/get.d.ts +0 -11
  129. package/dist/lib/get.js +0 -36
  130. package/dist/lib/pad-start.d.ts +0 -1
  131. package/dist/lib/pad-start.js +0 -3
  132. package/dist/lib/ring-buffer.d.ts +0 -10
  133. package/dist/lib/ring-buffer.js +0 -20
  134. package/dist/lib/set-semver-range.d.ts +0 -3
  135. package/dist/lib/set-semver-range.js +0 -20
  136. package/dist/lib/show-help-on-error.d.ts +0 -2
  137. package/dist/lib/show-help-on-error.js +0 -32
  138. package/dist/lib/sort-by-name.d.ts +0 -5
  139. package/dist/lib/sort-by-name.js +0 -9
  140. package/dist/lib/with-logger.d.ts +0 -2
  141. package/dist/lib/with-logger.js +0 -29
  142. package/dist/option.d.ts +0 -10
  143. package/dist/option.js +0 -27
  144. package/dist/report.d.ts +0 -131
  145. package/dist/report.js +0 -129
  146. package/dist/schema.json +0 -544
  147. package/dist/semver-group/create-semver-groups.d.ts +0 -4
  148. package/dist/semver-group/create-semver-groups.js +0 -79
  149. package/dist/semver-group/disabled.d.ts +0 -26
  150. package/dist/semver-group/disabled.js +0 -28
  151. package/dist/semver-group/filtered-out.d.ts +0 -27
  152. package/dist/semver-group/filtered-out.js +0 -34
  153. package/dist/semver-group/ignored.d.ts +0 -22
  154. package/dist/semver-group/ignored.js +0 -24
  155. package/dist/semver-group/index.d.ts +0 -20
  156. package/dist/semver-group/index.js +0 -7
  157. package/dist/semver-group/with-range.d.ts +0 -22
  158. package/dist/semver-group/with-range.js +0 -45
  159. package/dist/specifier/alias.d.ts +0 -17
  160. package/dist/specifier/alias.js +0 -20
  161. package/dist/specifier/base.d.ts +0 -41
  162. package/dist/specifier/base.js +0 -54
  163. package/dist/specifier/delete.d.ts +0 -17
  164. package/dist/specifier/delete.js +0 -16
  165. package/dist/specifier/exact.d.ts +0 -20
  166. package/dist/specifier/exact.js +0 -21
  167. package/dist/specifier/file.d.ts +0 -8
  168. package/dist/specifier/file.js +0 -7
  169. package/dist/specifier/hosted-git.d.ts +0 -15
  170. package/dist/specifier/hosted-git.js +0 -22
  171. package/dist/specifier/index.d.ts +0 -28
  172. package/dist/specifier/index.js +0 -63
  173. package/dist/specifier/latest.d.ts +0 -19
  174. package/dist/specifier/latest.js +0 -20
  175. package/dist/specifier/lib/non-semver-error.d.ts +0 -11
  176. package/dist/specifier/lib/non-semver-error.js +0 -6
  177. package/dist/specifier/lib/parse-specifier.d.ts +0 -14
  178. package/dist/specifier/lib/parse-specifier.js +0 -16
  179. package/dist/specifier/lib/specific-registry-result.d.ts +0 -9
  180. package/dist/specifier/lib/specific-registry-result.js +0 -1
  181. package/dist/specifier/range.d.ts +0 -19
  182. package/dist/specifier/range.js +0 -20
  183. package/dist/specifier/tag.d.ts +0 -11
  184. package/dist/specifier/tag.js +0 -10
  185. package/dist/specifier/unsupported.d.ts +0 -7
  186. package/dist/specifier/unsupported.js +0 -7
  187. package/dist/specifier/url.d.ts +0 -8
  188. package/dist/specifier/url.js +0 -7
  189. package/dist/specifier/workspace-protocol.d.ts +0 -19
  190. package/dist/specifier/workspace-protocol.js +0 -34
  191. package/dist/strategy/lib/get-non-empty-string-prop.d.ts +0 -3
  192. package/dist/strategy/lib/get-non-empty-string-prop.js +0 -7
  193. package/dist/strategy/name-and-version-props.d.ts +0 -12
  194. package/dist/strategy/name-and-version-props.js +0 -60
  195. package/dist/strategy/named-version-string.d.ts +0 -11
  196. package/dist/strategy/named-version-string.js +0 -49
  197. package/dist/strategy/unnamed-version-string.d.ts +0 -11
  198. package/dist/strategy/unnamed-version-string.js +0 -45
  199. package/dist/strategy/versions-by-name.d.ts +0 -11
  200. package/dist/strategy/versions-by-name.js +0 -25
  201. package/dist/version-group/banned.d.ts +0 -17
  202. package/dist/version-group/banned.js +0 -26
  203. package/dist/version-group/create-version-groups.d.ts +0 -4
  204. package/dist/version-group/create-version-groups.js +0 -114
  205. package/dist/version-group/filtered-out.d.ts +0 -19
  206. package/dist/version-group/filtered-out.js +0 -30
  207. package/dist/version-group/ignored.d.ts +0 -17
  208. package/dist/version-group/ignored.js +0 -23
  209. package/dist/version-group/index.d.ts +0 -26
  210. package/dist/version-group/index.js +0 -7
  211. package/dist/version-group/lib/clean.d.ts +0 -2
  212. package/dist/version-group/lib/clean.js +0 -6
  213. package/dist/version-group/lib/delete.d.ts +0 -2
  214. package/dist/version-group/lib/delete.js +0 -1
  215. package/dist/version-group/lib/get-highest-version.d.ts +0 -6
  216. package/dist/version-group/lib/get-highest-version.js +0 -8
  217. package/dist/version-group/lib/get-lowest-version.d.ts +0 -6
  218. package/dist/version-group/lib/get-lowest-version.js +0 -8
  219. package/dist/version-group/lib/get-preferred-version.d.ts +0 -5
  220. package/dist/version-group/lib/get-preferred-version.js +0 -44
  221. package/dist/version-group/lib/get-range-score.d.ts +0 -2
  222. package/dist/version-group/lib/get-range-score.js +0 -18
  223. package/dist/version-group/lib/group-by.d.ts +0 -5
  224. package/dist/version-group/lib/group-by.js +0 -11
  225. package/dist/version-group/pinned.d.ts +0 -17
  226. package/dist/version-group/pinned.js +0 -26
  227. package/dist/version-group/same-range.d.ts +0 -19
  228. package/dist/version-group/same-range.js +0 -96
  229. package/dist/version-group/snapped-to.d.ts +0 -17
  230. package/dist/version-group/snapped-to.js +0 -69
  231. package/dist/version-group/standard.d.ts +0 -18
  232. package/dist/version-group/standard.js +0 -116
@@ -1,18 +0,0 @@
1
- import { Effect } from 'effect';
2
- import type { VersionGroupConfig } from '../config/types.js';
3
- import type { Instance } from '../get-instances/instance.js';
4
- import { Report } from '../report.js';
5
- declare const StandardVersionGroup_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
6
- readonly _tag: "Standard";
7
- };
8
- export declare class StandardVersionGroup extends StandardVersionGroup_base<{
9
- config: VersionGroupConfig.Standard;
10
- instances: Instance[];
11
- isCatchAll: boolean;
12
- }> {
13
- groupType: string;
14
- constructor(isCatchAll: boolean, config: VersionGroupConfig.Standard);
15
- canAdd(_: Instance): boolean;
16
- inspectAll(): Effect.Effect<Report.Version.Group[]>;
17
- }
18
- export {};
@@ -1,116 +0,0 @@
1
- import { Data, Effect, pipe } from 'effect';
2
- import { uniq } from 'tightrope/array/uniq.js';
3
- import { Report } from '../report.js';
4
- import { Specifier } from '../specifier/index.js';
5
- import { getPreferredVersion } from './lib/get-preferred-version.js';
6
- import { groupBy } from './lib/group-by.js';
7
- export class StandardVersionGroup extends Data.TaggedClass('Standard') {
8
- groupType = 'versionGroup';
9
- constructor(isCatchAll, config) {
10
- super({
11
- config,
12
- instances: [],
13
- isCatchAll,
14
- });
15
- }
16
- canAdd(_) {
17
- return true;
18
- }
19
- inspectAll() {
20
- return Effect.all(Object.entries(groupBy('name', this.instances)).flatMap(([name, instances]) => {
21
- const localInstance = getLocalInstance(instances);
22
- if (localInstance) {
23
- const localVersion = localInstance?.rawSpecifier.raw;
24
- return pipe(Effect.succeed(Specifier.create(localInstance, localVersion)), Effect.flatMap((local) => Effect.all(local._tag !== 'Exact' && instances.length > 1
25
- ? instances.map((instance) =>
26
- // ! dependency is a package developed in this repo
27
- // ✘ local package has an invalid .version property
28
- // ✘ is a mismatch we can't auto-fix
29
- Effect.succeed(new Report.MissingLocalVersion(instance, localInstance)))
30
- : instances.flatMap((instance) =>
31
- // instances.flatMap((instance) =>
32
- pipe(Effect.succeed(Specifier.create(instance, instance.rawSpecifier.raw)), Effect.flatMap((specifier) => specifier.instance === localInstance
33
- ? // ✓ this is the local package which the others should match
34
- // ! its version must always remain as exact semver
35
- // ! other instances need to be adjusted for their semver groups
36
- Effect.succeed(new Report.Valid(specifier))
37
- : pipe(specifier.replaceWith(local), specifier.instance.semverGroup.getFixed, Effect.match({
38
- onFailure: /* istanbul ignore next */ () =>
39
- // ! is not the local package instance
40
- // ✘ local version is not fixable by this semver group
41
- // ✘ is a mismatch we can't auto-fix
42
- // ✘ this should be impossible - we already proved the local version is exact semver
43
- new Report.UnsupportedMismatch(specifier.instance),
44
- onSuccess: (valid) => specifier.instance.rawSpecifier.raw === valid.raw
45
- ? // ! is not the local package instance
46
- // ✓ local version matches this semver group
47
- // ✓ current version matches local
48
- new Report.Valid(specifier)
49
- : localVersion === 'PACKAGE_JSON_HAS_NO_VERSION'
50
- ? // ! is not the local package instance
51
- // ✘ local package has a version defined
52
- // ✓ local version matches this semver group
53
- // ✘ current version mismatches local
54
- new Report.MissingLocalVersion(specifier.instance, localInstance)
55
- : // ! is not the local package instance
56
- // ✓ local package has a version defined
57
- // ✓ local version matches this semver group
58
- // ✘ current version mismatches local
59
- new Report.LocalPackageMismatch(valid, localInstance),
60
- }))))))), Effect.map((reports) => ({ name, reports })));
61
- }
62
- const PreferredMismatch = this.config.preferVersion === 'lowestSemver'
63
- ? Report.LowestSemverMismatch
64
- : Report.HighestSemverMismatch;
65
- return pipe(Effect.succeed(instances.map((instance) => Specifier.create(instance, instance.rawSpecifier.raw))), Effect.flatMap((specifiers) => pipe(getPreferredVersion(this.config.preferVersion, specifiers), Effect.matchEffect({
66
- onFailure: () => Effect.succeed(uniq(specifiers.map((specifier) => specifier.instance.rawSpecifier.raw))
67
- .length === 1
68
- ? specifiers.map((specifier) =>
69
- // ✘ not every version is semver
70
- // ✓ every version is identical
71
- // ✓ is a match
72
- new Report.Valid(specifier))
73
- : instances.map((instance) =>
74
- // ✘ not every version is semver
75
- // ✘ some versions are not identical
76
- // ✘ is a mismatch we can't auto-fix
77
- new Report.UnsupportedMismatch(instance))),
78
- onSuccess: (expectedVersion) => pipe(specifiers, Effect.forEach((current) => pipe(current.replaceWith(expectedVersion), current.instance.semverGroup.getFixed, Effect.match({
79
- onFailure: /* istanbul ignore next */ () =>
80
- // ✓ every version is semver
81
- // ✘ expected version is not fixable by its semver group
82
- // ✘ is a mismatch we can't auto-fix
83
- // ✘ this should be impossible - any valid semver is fixable by a semver group
84
- new Report.UnsupportedMismatch(current.instance),
85
- onSuccess: (expectedRange) => current.instance.rawSpecifier.raw === expectedRange.raw
86
- ? // ✓ every version is semver
87
- // ✓ current version matches expected semver
88
- // ✓ current version matches expected version
89
- new Report.Valid(current)
90
- : current.instance.rawSpecifier.raw === expectedVersion.raw
91
- ? // ✓ every version is semver
92
- // ✓ current version matches expected version
93
- // ✘ current version does not match expected semver
94
- // ✓ is a mismatch we can auto-fix
95
- new Report.SemverRangeMismatch(expectedRange)
96
- : // ✓ every version is semver
97
- // ✘ current version does not match expected version
98
- // ✘ expected version does not match expected semver
99
- // ✓ is a mismatch we can auto-fix
100
- new PreferredMismatch(expectedRange),
101
- })))),
102
- }))), Effect.map((reports) => ({ name, reports })));
103
- }));
104
- }
105
- }
106
- /**
107
- * If this dependency is developed in this monorepo, get the instance which
108
- * represents the canonical .version property of its package.json file.
109
- */
110
- function getLocalInstance(instances) {
111
- return instances.find(isLocalInstance);
112
- }
113
- /** Is this dependency developed in this monorepo */
114
- function isLocalInstance(instance) {
115
- return instance.strategy.name === 'local';
116
- }