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
@@ -0,0 +1,166 @@
1
+ import { Data } from 'effect';
2
+ import type { Union } from 'ts-toolbelt';
3
+ import type { Instance } from './get-instances/instance';
4
+ import type { Specifier } from './specifier';
5
+ export declare namespace Report {
6
+ export namespace Semver {
7
+ type Any = Union.Strict<Report.Semver.Invalid.Any | Report.Semver.Valid.Any>;
8
+ namespace Valid {
9
+ type Any = Union.Strict<Report.Disabled | Report.FilteredOut | Report.Ignored | Report.Valid>;
10
+ }
11
+ namespace Invalid {
12
+ type Any = Union.Strict<Report.Semver.Fixable.Any | Report.Semver.Unfixable.Any>;
13
+ }
14
+ namespace Fixable {
15
+ type Any = Report.SemverRangeMismatch;
16
+ }
17
+ namespace Unfixable {
18
+ type Any = Report.UnsupportedMismatch;
19
+ }
20
+ }
21
+ export namespace Version {
22
+ interface Group {
23
+ name: string;
24
+ reports: Report.Version.Any[];
25
+ }
26
+ type Any = Union.Strict<Report.Version.Invalid.Any | Report.Version.Valid.Any>;
27
+ namespace Valid {
28
+ type Any = Union.Strict<Report.Disabled | Report.FilteredOut | Report.Ignored | Report.Valid>;
29
+ }
30
+ namespace Invalid {
31
+ type Any = Union.Strict<Report.Version.Fixable.Any | Report.Version.Unfixable.Any>;
32
+ }
33
+ namespace Fixable {
34
+ type Any = Union.Strict<Report.Banned | Report.HighestSemverMismatch | Report.LocalPackageMismatch | Report.LowestSemverMismatch | Report.PinnedMismatch | Report.SemverRangeMismatch | Report.SnappedToMismatch>;
35
+ }
36
+ namespace Unfixable {
37
+ type Any = Union.Strict<Report.MissingLocalVersion | Report.MissingSnappedToMismatch | Report.UnsupportedMismatch | Report.SameRangeMismatch>;
38
+ }
39
+ }
40
+ const Disabled_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
41
+ readonly _tag: "Disabled";
42
+ }>;
43
+ /** Semver Groups are disabled by default */
44
+ export class Disabled extends Disabled_base<{
45
+ readonly instance: Instance;
46
+ }> {
47
+ }
48
+ const FilteredOut_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
49
+ readonly _tag: "FilteredOut";
50
+ }>;
51
+ /** Has a name which does not match the `--filter` RegExp */
52
+ export class FilteredOut extends FilteredOut_base<{
53
+ readonly instance: Instance;
54
+ }> {
55
+ }
56
+ const Ignored_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
57
+ readonly _tag: "Ignored";
58
+ }>;
59
+ /** Is in an ignored version group */
60
+ export class Ignored extends Ignored_base<{
61
+ readonly instance: Instance;
62
+ }> {
63
+ }
64
+ const Valid_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
65
+ readonly _tag: "Valid";
66
+ }>;
67
+ /** Version satisfies the rules of its version group */
68
+ export class Valid extends Valid_base<{
69
+ readonly specifier: Specifier.Any;
70
+ }> {
71
+ }
72
+ const Banned_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
73
+ readonly _tag: "Banned";
74
+ }>;
75
+ /** Must be removed */
76
+ export class Banned extends Banned_base<{
77
+ readonly fixable: Specifier.Any;
78
+ }> {
79
+ }
80
+ const HighestSemverMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
81
+ readonly _tag: "HighestSemverMismatch";
82
+ }>;
83
+ /** Version mismatches and should use a higher version found on another */
84
+ export class HighestSemverMismatch extends HighestSemverMismatch_base<{
85
+ readonly fixable: Specifier.Any;
86
+ }> {
87
+ }
88
+ const LocalPackageMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
89
+ readonly _tag: "LocalPackageMismatch";
90
+ }>;
91
+ /** Version mismatches the `.version` of the package developed in this repo */
92
+ export class LocalPackageMismatch extends LocalPackageMismatch_base<{
93
+ readonly fixable: Specifier.Any;
94
+ readonly localInstance: Instance;
95
+ }> {
96
+ }
97
+ const LowestSemverMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
98
+ readonly _tag: "LowestSemverMismatch";
99
+ }>;
100
+ /** Version mismatches and should use a lower version found on another */
101
+ export class LowestSemverMismatch extends LowestSemverMismatch_base<{
102
+ readonly fixable: Specifier.Any;
103
+ }> {
104
+ }
105
+ const PinnedMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
106
+ readonly _tag: "PinnedMismatch";
107
+ }>;
108
+ /** Version is not identical to the `pinVersion` of its Pinned version group */
109
+ export class PinnedMismatch extends PinnedMismatch_base<{
110
+ readonly fixable: Specifier.Any;
111
+ }> {
112
+ }
113
+ const SemverRangeMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
114
+ readonly _tag: "SemverRangeMismatch";
115
+ }>;
116
+ /** Version is identical but the semver range does not match its semver group */
117
+ export class SemverRangeMismatch extends SemverRangeMismatch_base<{
118
+ readonly fixable: Specifier.Any;
119
+ }> {
120
+ }
121
+ const SnappedToMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
122
+ readonly _tag: "SnappedToMismatch";
123
+ }>;
124
+ /** Version mismatches the version used by the packages in the `snapTo` array */
125
+ export class SnappedToMismatch extends SnappedToMismatch_base<{
126
+ readonly fixable: Specifier.Any;
127
+ readonly localInstance: Instance;
128
+ }> {
129
+ }
130
+ const MissingLocalVersion_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
131
+ readonly _tag: "MissingLocalVersion";
132
+ }>;
133
+ /** Dependency should match a local package.json which is missing a .version */
134
+ export class MissingLocalVersion extends MissingLocalVersion_base<{
135
+ readonly localInstance: Instance;
136
+ readonly unfixable: Instance;
137
+ }> {
138
+ }
139
+ const MissingSnappedToMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
140
+ readonly _tag: "MissingSnappedToMismatch";
141
+ }>;
142
+ /** Dependency is not present in any of the packages in the `snapTo` array */
143
+ export class MissingSnappedToMismatch extends MissingSnappedToMismatch_base<{
144
+ readonly unfixable: Instance;
145
+ }> {
146
+ }
147
+ const SameRangeMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
148
+ readonly _tag: "SameRangeMismatch";
149
+ }>;
150
+ /** Specifier does not cover the specifiers of every other instance in this group */
151
+ export class SameRangeMismatch extends SameRangeMismatch_base<{
152
+ readonly unfixable: Instance;
153
+ /** the raw specifiers which this instance's specifier did not cover */
154
+ readonly mismatches: string[];
155
+ }> {
156
+ }
157
+ const UnsupportedMismatch_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
158
+ readonly _tag: "UnsupportedMismatch";
159
+ }>;
160
+ /** Version mismatches and is not semver, syncpack cannot guess what to do */
161
+ export class UnsupportedMismatch extends UnsupportedMismatch_base<{
162
+ readonly unfixable: Instance;
163
+ }> {
164
+ }
165
+ export {};
166
+ }
package/dist/report.js ADDED
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Report = void 0;
4
+ const effect_1 = require("effect");
5
+ var Report;
6
+ (function (Report) {
7
+ /** Semver Groups are disabled by default */
8
+ class Disabled extends effect_1.Data.TaggedClass('Disabled') {
9
+ }
10
+ Report.Disabled = Disabled;
11
+ /** Has a name which does not match the `--filter` RegExp */
12
+ class FilteredOut extends effect_1.Data.TaggedClass('FilteredOut') {
13
+ }
14
+ Report.FilteredOut = FilteredOut;
15
+ /** Is in an ignored version group */
16
+ class Ignored extends effect_1.Data.TaggedClass('Ignored') {
17
+ }
18
+ Report.Ignored = Ignored;
19
+ /** Version satisfies the rules of its version group */
20
+ class Valid extends effect_1.Data.TaggedClass('Valid') {
21
+ }
22
+ Report.Valid = Valid;
23
+ /** Must be removed */
24
+ class Banned extends effect_1.Data.TaggedClass('Banned') {
25
+ }
26
+ Report.Banned = Banned;
27
+ /** Version mismatches and should use a higher version found on another */
28
+ class HighestSemverMismatch extends effect_1.Data.TaggedClass('HighestSemverMismatch') {
29
+ }
30
+ Report.HighestSemverMismatch = HighestSemverMismatch;
31
+ /** Version mismatches the `.version` of the package developed in this repo */
32
+ class LocalPackageMismatch extends effect_1.Data.TaggedClass('LocalPackageMismatch') {
33
+ }
34
+ Report.LocalPackageMismatch = LocalPackageMismatch;
35
+ /** Version mismatches and should use a lower version found on another */
36
+ class LowestSemverMismatch extends effect_1.Data.TaggedClass('LowestSemverMismatch') {
37
+ }
38
+ Report.LowestSemverMismatch = LowestSemverMismatch;
39
+ /** Version is not identical to the `pinVersion` of its Pinned version group */
40
+ class PinnedMismatch extends effect_1.Data.TaggedClass('PinnedMismatch') {
41
+ }
42
+ Report.PinnedMismatch = PinnedMismatch;
43
+ /** Version is identical but the semver range does not match its semver group */
44
+ class SemverRangeMismatch extends effect_1.Data.TaggedClass('SemverRangeMismatch') {
45
+ }
46
+ Report.SemverRangeMismatch = SemverRangeMismatch;
47
+ /** Version mismatches the version used by the packages in the `snapTo` array */
48
+ class SnappedToMismatch extends effect_1.Data.TaggedClass('SnappedToMismatch') {
49
+ }
50
+ Report.SnappedToMismatch = SnappedToMismatch;
51
+ /** Dependency should match a local package.json which is missing a .version */
52
+ class MissingLocalVersion extends effect_1.Data.TaggedClass('MissingLocalVersion') {
53
+ }
54
+ Report.MissingLocalVersion = MissingLocalVersion;
55
+ /** Dependency is not present in any of the packages in the `snapTo` array */
56
+ class MissingSnappedToMismatch extends effect_1.Data.TaggedClass('MissingSnappedToMismatch') {
57
+ }
58
+ Report.MissingSnappedToMismatch = MissingSnappedToMismatch;
59
+ /** Specifier does not cover the specifiers of every other instance in this group */
60
+ class SameRangeMismatch extends effect_1.Data.TaggedClass('SameRangeMismatch') {
61
+ }
62
+ Report.SameRangeMismatch = SameRangeMismatch;
63
+ /** Version mismatches and is not semver, syncpack cannot guess what to do */
64
+ class UnsupportedMismatch extends effect_1.Data.TaggedClass('UnsupportedMismatch') {
65
+ }
66
+ Report.UnsupportedMismatch = UnsupportedMismatch;
67
+ })(Report || (exports.Report = Report = {}));
package/dist/schema.json CHANGED
@@ -9,16 +9,19 @@
9
9
  "SemverGroupConfig.Any": {
10
10
  "anyOf": [
11
11
  {
12
- "$ref": "#/definitions/{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];range?:never;}"
12
+ "$ref": "#/definitions/{isDisabled:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;range?:never;}"
13
13
  },
14
14
  {
15
- "$ref": "#/definitions/{range:SemverRange;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;}"
15
+ "$ref": "#/definitions/{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;range?:never;}"
16
+ },
17
+ {
18
+ "$ref": "#/definitions/{range:SemverRange;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;isIgnored?:never;}"
16
19
  }
17
20
  ]
18
21
  },
19
22
  "SemverRange": {
20
23
  "default": "",
21
- "description": "Aliases for semver range formats supported by syncpack\n\nDefaults to `\"\"` to ensure that exact dependency versions are used\ninstead of loose ranges, but this can be overridden in your config file\nor via the `--semver-range` command line option.\n\n| Supported Range | Example |\n| --------------- | --------: |\n| `\"<\"` | `<1.4.2` |\n| `\"<=\"` | `<=1.4.2` |\n| `\"\"` | `1.4.2` |\n| `\"~\"` | `~1.4.2` |\n| `\"^\"` | `^1.4.2` |\n| `\">=\"` | `>=1.4.2` |\n| `\">\"` | `>1.4.2` |\n| `\"*\"` | `*` |",
24
+ "description": "Aliases for semver range formats supported by syncpack\n\nDefaults to `\"\"` to ensure that exact dependency versions are used instead of\nloose ranges, but this can be overridden in your config file.\n\n| Supported Range | Example |\n| --------------- | --------: |\n| `\"<\"` | `<1.4.2` |\n| `\"<=\"` | `<=1.4.2` |\n| `\"\"` | `1.4.2` |\n| `\"~\"` | `~1.4.2` |\n| `\"^\"` | `^1.4.2` |\n| `\">=\"` | `>=1.4.2` |\n| `\">\"` | `>1.4.2` |\n| `\"*\"` | `*` |",
22
25
  "enum": [
23
26
  "",
24
27
  "*",
@@ -35,26 +38,26 @@
35
38
  "VersionGroupConfig.Any": {
36
39
  "anyOf": [
37
40
  {
38
- "$ref": "#/definitions/{isBanned:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
41
+ "$ref": "#/definitions/{isBanned:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
39
42
  },
40
43
  {
41
- "$ref": "#/definitions/{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
44
+ "$ref": "#/definitions/{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
42
45
  },
43
46
  {
44
- "$ref": "#/definitions/{pinVersion:string;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
47
+ "$ref": "#/definitions/{pinVersion:string;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}"
45
48
  },
46
49
  {
47
- "$ref": "#/definitions/{snapTo:string[];dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}"
50
+ "$ref": "#/definitions/{snapTo:string[];dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}"
48
51
  },
49
52
  {
50
- "$ref": "#/definitions/{policy:\"sameRange\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}"
53
+ "$ref": "#/definitions/{policy:\"sameRange\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}"
51
54
  },
52
55
  {
53
- "$ref": "#/definitions/{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}"
56
+ "$ref": "#/definitions/{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}"
54
57
  }
55
58
  ]
56
59
  },
57
- "{isBanned:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
60
+ "{isBanned:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
58
61
  "additionalProperties": false,
59
62
  "properties": {
60
63
  "dependencies": {
@@ -85,7 +88,38 @@
85
88
  },
86
89
  "type": "object"
87
90
  },
88
- "{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
91
+ "{isDisabled:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;range?:never;}": {
92
+ "additionalProperties": false,
93
+ "properties": {
94
+ "dependencies": {
95
+ "items": {
96
+ "type": "string"
97
+ },
98
+ "type": "array"
99
+ },
100
+ "dependencyTypes": {
101
+ "items": {
102
+ "type": "string"
103
+ },
104
+ "type": "array"
105
+ },
106
+ "isDisabled": {
107
+ "const": true,
108
+ "type": "boolean"
109
+ },
110
+ "label": {
111
+ "type": "string"
112
+ },
113
+ "packages": {
114
+ "items": {
115
+ "type": "string"
116
+ },
117
+ "type": "array"
118
+ }
119
+ },
120
+ "type": "object"
121
+ },
122
+ "{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
89
123
  "additionalProperties": false,
90
124
  "properties": {
91
125
  "dependencies": {
@@ -116,7 +150,7 @@
116
150
  },
117
151
  "type": "object"
118
152
  },
119
- "{isIgnored:true;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];range?:never;}": {
153
+ "{isIgnored:true;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;range?:never;}": {
120
154
  "additionalProperties": false,
121
155
  "properties": {
122
156
  "dependencies": {
@@ -147,7 +181,7 @@
147
181
  },
148
182
  "type": "object"
149
183
  },
150
- "{pinVersion:string;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
184
+ "{pinVersion:string;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;snapTo?:never;policy?:never;preferVersion?:never;}": {
151
185
  "additionalProperties": false,
152
186
  "properties": {
153
187
  "dependencies": {
@@ -177,7 +211,7 @@
177
211
  },
178
212
  "type": "object"
179
213
  },
180
- "{policy:\"sameRange\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}": {
214
+ "{policy:\"sameRange\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;preferVersion?:never;}": {
181
215
  "additionalProperties": false,
182
216
  "properties": {
183
217
  "dependencies": {
@@ -208,7 +242,7 @@
208
242
  },
209
243
  "type": "object"
210
244
  },
211
- "{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}": {
245
+ "{preferVersion?:\"highestSemver\"|\"lowestSemver\";dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;snapTo?:never;policy?:never;}": {
212
246
  "additionalProperties": false,
213
247
  "properties": {
214
248
  "dependencies": {
@@ -242,7 +276,7 @@
242
276
  },
243
277
  "type": "object"
244
278
  },
245
- "{range:SemverRange;dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;}": {
279
+ "{range:SemverRange;dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isDisabled?:never;isIgnored?:never;}": {
246
280
  "additionalProperties": false,
247
281
  "properties": {
248
282
  "dependencies": {
@@ -272,7 +306,7 @@
272
306
  },
273
307
  "type": "object"
274
308
  },
275
- "{snapTo:string[];dependencies:string[];dependencyTypes?:string[];label?:string;packages:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}": {
309
+ "{snapTo:string[];dependencies?:string[];dependencyTypes?:string[];label?:string;packages?:string[];isIgnored?:never;isBanned?:never;pinVersion?:never;policy?:never;preferVersion?:never;}": {
276
310
  "additionalProperties": false,
277
311
  "properties": {
278
312
  "dependencies": {
@@ -328,9 +362,6 @@
328
362
  },
329
363
  "type": "array"
330
364
  },
331
- "semverRange": {
332
- "$ref": "#/definitions/SemverRange"
333
- },
334
365
  "sortAz": {
335
366
  "items": {
336
367
  "type": "string"
@@ -0,0 +1,4 @@
1
+ import { Effect } from 'effect';
2
+ import { SemverGroup } from '.';
3
+ import type { Ctx } from '../get-context';
4
+ export declare function createSemverGroups(ctx: Ctx): Effect.Effect<never, SemverGroup.ConfigError, SemverGroup.Any[]>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSemverGroups = void 0;
4
+ const effect_1 = require("effect");
5
+ const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
6
+ const is_non_empty_array_1 = require("tightrope/guard/is-non-empty-array");
7
+ const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
8
+ const is_object_1 = require("tightrope/guard/is-object");
9
+ const _1 = require(".");
10
+ const is_valid_semver_range_1 = require("../guards/is-valid-semver-range");
11
+ const disabled_1 = require("./disabled");
12
+ const filtered_out_1 = require("./filtered-out");
13
+ const ignored_1 = require("./ignored");
14
+ const with_range_1 = require("./with-range");
15
+ function createSemverGroups(ctx) {
16
+ const { rcFile } = ctx.config;
17
+ const semverGroups = [
18
+ effect_1.Effect.succeed(new filtered_out_1.FilteredOutSemverGroup(ctx)),
19
+ effect_1.Effect.succeed(new with_range_1.WithRangeSemverGroup(false, {
20
+ dependencies: ['**'],
21
+ dependencyTypes: ['local'],
22
+ label: 'the version property of package.json files must always be exact',
23
+ packages: ['**'],
24
+ range: '',
25
+ })),
26
+ ];
27
+ if ((0, is_non_empty_array_1.isNonEmptyArray)(rcFile.semverGroups)) {
28
+ rcFile.semverGroups.forEach((config) => {
29
+ if (!(0, is_object_1.isObject)(config)) {
30
+ return semverGroups.push(effect_1.Effect.fail(new _1.SemverGroup.ConfigError({
31
+ config,
32
+ error: 'config is not an object',
33
+ })));
34
+ }
35
+ const mutuallyExclusiveProps = ['isIgnored', 'range'].filter((prop) => Boolean(config[prop]));
36
+ if (mutuallyExclusiveProps.length > 1) {
37
+ return semverGroups.push(effect_1.Effect.fail(new _1.SemverGroup.ConfigError({
38
+ config,
39
+ error: `it's unclear what kind of semver group you want, as it contains both ${mutuallyExclusiveProps.join(' and ')}`,
40
+ })));
41
+ }
42
+ const label = (0, is_non_empty_string_1.isNonEmptyString)(config.label) ? config.label : '';
43
+ const dependencyTypes = (0, is_array_of_strings_1.isArrayOfStrings)(config.dependencyTypes)
44
+ ? config.dependencyTypes
45
+ : ['**'];
46
+ const dependencies = (0, is_array_of_strings_1.isArrayOfStrings)(config.dependencies) ? config.dependencies : ['**'];
47
+ const packages = (0, is_array_of_strings_1.isArrayOfStrings)(config.packages) ? config.packages : ['**'];
48
+ if (config.isIgnored === true) {
49
+ semverGroups.push(effect_1.Effect.succeed(new ignored_1.IgnoredSemverGroup({
50
+ dependencies,
51
+ dependencyTypes,
52
+ isIgnored: true,
53
+ label,
54
+ packages,
55
+ })));
56
+ }
57
+ else if ((0, is_valid_semver_range_1.isValidSemverRange)(config.range)) {
58
+ semverGroups.push(effect_1.Effect.succeed(new with_range_1.WithRangeSemverGroup(false, {
59
+ dependencies,
60
+ dependencyTypes,
61
+ label,
62
+ packages,
63
+ range: config.range,
64
+ })));
65
+ }
66
+ });
67
+ }
68
+ semverGroups.push(effect_1.Effect.succeed(new disabled_1.DisabledSemverGroup(true, {
69
+ dependencies: ['**'],
70
+ dependencyTypes: ['**'],
71
+ label: 'Default Semver Group',
72
+ packages: ['**'],
73
+ isDisabled: true,
74
+ })));
75
+ return effect_1.Effect.all(semverGroups);
76
+ }
77
+ exports.createSemverGroups = createSemverGroups;
@@ -0,0 +1,26 @@
1
+ import { Data, Effect } from 'effect';
2
+ import type { SemverGroupConfig } from '../config/types';
3
+ import type { Instance } from '../get-instances/instance';
4
+ import { Report } from '../report';
5
+ import type { Specifier } from '../specifier';
6
+ import type { NonSemverError } from '../specifier/lib/non-semver-error';
7
+ declare const DisabledSemverGroup_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
8
+ readonly _tag: "Disabled";
9
+ }>;
10
+ /**
11
+ * Semver groups are disabled by default and, when that's the case, every
12
+ * instance is assigned to this group. This group will allow anything.
13
+ */
14
+ export declare class DisabledSemverGroup extends DisabledSemverGroup_base<{
15
+ config: SemverGroupConfig.Disabled;
16
+ instances: Instance[];
17
+ isCatchAll: boolean;
18
+ }> {
19
+ groupType: string;
20
+ constructor(isCatchAll: boolean, config: SemverGroupConfig.Disabled);
21
+ canAdd(_: Instance): boolean;
22
+ getFixed(specifier: Specifier.Any): Effect.Effect<never, NonSemverError, Specifier.Any>;
23
+ inspectAll(): Effect.Effect<never, never, Report.Disabled[]>;
24
+ inspect(instance: Instance): Effect.Effect<never, never, Report.Disabled>;
25
+ }
26
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DisabledSemverGroup = void 0;
4
+ const effect_1 = require("effect");
5
+ const report_1 = require("../report");
6
+ /**
7
+ * Semver groups are disabled by default and, when that's the case, every
8
+ * instance is assigned to this group. This group will allow anything.
9
+ */
10
+ class DisabledSemverGroup extends effect_1.Data.TaggedClass('Disabled') {
11
+ constructor(isCatchAll, config) {
12
+ super({
13
+ config,
14
+ instances: [],
15
+ isCatchAll,
16
+ });
17
+ this.groupType = 'semverGroup';
18
+ }
19
+ canAdd(_) {
20
+ return true;
21
+ }
22
+ getFixed(specifier) {
23
+ return effect_1.Effect.succeed(specifier);
24
+ }
25
+ inspectAll() {
26
+ return effect_1.Effect.all(this.instances.map((instance) => this.inspect(instance)));
27
+ }
28
+ inspect(instance) {
29
+ return effect_1.Effect.succeed(new report_1.Report.Disabled({
30
+ instance,
31
+ }));
32
+ }
33
+ }
34
+ exports.DisabledSemverGroup = DisabledSemverGroup;
@@ -0,0 +1,27 @@
1
+ import { Data, Effect } from 'effect';
2
+ import type { GroupConfig } from '../config/types';
3
+ import type { Ctx } from '../get-context';
4
+ import type { Instance } from '../get-instances/instance';
5
+ import { Report } from '../report';
6
+ import type { Specifier } from '../specifier';
7
+ import type { NonSemverError } from '../specifier/lib/non-semver-error';
8
+ declare const FilteredOutSemverGroup_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
9
+ readonly _tag: "FilteredOut";
10
+ }>;
11
+ /**
12
+ * Instances which do not match a given `--filter` option are assigned to this
13
+ * group and nothing will be changed.
14
+ */
15
+ export declare class FilteredOutSemverGroup extends FilteredOutSemverGroup_base<{
16
+ config: GroupConfig;
17
+ filter: string;
18
+ instances: Instance[];
19
+ }> {
20
+ groupType: string;
21
+ constructor(ctx: Ctx);
22
+ canAdd(instance: Instance): boolean;
23
+ getFixed(specifier: Specifier.Any): Effect.Effect<never, NonSemverError, Specifier.Any>;
24
+ inspectAll(): Effect.Effect<never, never, Report.FilteredOut[]>;
25
+ inspect(instance: Instance): Effect.Effect<never, never, Report.FilteredOut>;
26
+ }
27
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilteredOutSemverGroup = void 0;
4
+ const effect_1 = require("effect");
5
+ const get_filter_1 = require("../config/get-filter");
6
+ const report_1 = require("../report");
7
+ /**
8
+ * Instances which do not match a given `--filter` option are assigned to this
9
+ * group and nothing will be changed.
10
+ */
11
+ class FilteredOutSemverGroup extends effect_1.Data.TaggedClass('FilteredOut') {
12
+ constructor(ctx) {
13
+ super({
14
+ config: {
15
+ dependencies: ['**'],
16
+ dependencyTypes: ['**'],
17
+ label: 'Filtered out',
18
+ packages: ['**'],
19
+ },
20
+ filter: (0, get_filter_1.getFilter)(ctx.config),
21
+ instances: [],
22
+ });
23
+ this.groupType = 'semverGroup';
24
+ }
25
+ canAdd(instance) {
26
+ return instance.name.search(new RegExp(this.filter)) === -1;
27
+ }
28
+ getFixed(specifier) {
29
+ return effect_1.Effect.succeed(specifier);
30
+ }
31
+ inspectAll() {
32
+ return effect_1.Effect.all(this.instances.map((instance) => this.inspect(instance)));
33
+ }
34
+ inspect(instance) {
35
+ return effect_1.Effect.succeed(new report_1.Report.FilteredOut({
36
+ instance,
37
+ }));
38
+ }
39
+ }
40
+ exports.FilteredOutSemverGroup = FilteredOutSemverGroup;
@@ -0,0 +1,22 @@
1
+ import { Data, Effect } from 'effect';
2
+ import type { SemverGroupConfig } from '../config/types';
3
+ import type { Instance } from '../get-instances/instance';
4
+ import { Report } from '../report';
5
+ import type { Specifier } from '../specifier';
6
+ import type { NonSemverError } from '../specifier/lib/non-semver-error';
7
+ declare const IgnoredSemverGroup_base: new <A extends Record<string, any>>(args: import("effect/Types").Equals<Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("effect/dist/declarations/src/Equal").Equal>) => Data.Data<A & {
8
+ readonly _tag: "Ignored";
9
+ }>;
10
+ /** Every instance in this group is ignored and nothing will be changed */
11
+ export declare class IgnoredSemverGroup extends IgnoredSemverGroup_base<{
12
+ config: SemverGroupConfig.Ignored;
13
+ instances: Instance[];
14
+ }> {
15
+ groupType: string;
16
+ constructor(config: SemverGroupConfig.Ignored);
17
+ canAdd(_: Instance): boolean;
18
+ getFixed(specifier: Specifier.Any): Effect.Effect<never, NonSemverError, Specifier.Any>;
19
+ inspectAll(): Effect.Effect<never, never, Report.Ignored[]>;
20
+ inspect(instance: Instance): Effect.Effect<never, never, Report.Ignored>;
21
+ }
22
+ export {};