syncpack 10.5.1 → 10.7.2

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 (186) hide show
  1. package/README.md +8 -5
  2. package/dist/bin-fix-mismatches/effects.d.ts +2 -0
  3. package/dist/bin-fix-mismatches/effects.js +112 -0
  4. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +4 -2
  5. package/dist/bin-fix-mismatches/fix-mismatches.js +38 -49
  6. package/dist/bin-fix-mismatches/index.js +28 -4
  7. package/dist/bin-format/format-cli.d.ts +4 -3
  8. package/dist/bin-format/format-cli.js +35 -4
  9. package/dist/bin-format/format.d.ts +3 -2
  10. package/dist/bin-format/format.js +25 -1
  11. package/dist/bin-format/index.js +27 -3
  12. package/dist/bin-lint/index.js +28 -4
  13. package/dist/bin-lint/lint.d.ts +4 -0
  14. package/dist/bin-lint/lint.js +44 -0
  15. package/dist/bin-lint-semver-ranges/effects.d.ts +2 -0
  16. package/dist/bin-lint-semver-ranges/effects.js +70 -0
  17. package/dist/bin-lint-semver-ranges/index.js +28 -4
  18. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +4 -2
  19. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +14 -39
  20. package/dist/bin-list/effects.d.ts +2 -0
  21. package/dist/bin-list/effects.js +112 -0
  22. package/dist/bin-list/index.js +28 -4
  23. package/dist/bin-list/list.d.ts +4 -2
  24. package/dist/bin-list/list.js +14 -75
  25. package/dist/bin-list-mismatches/effects.d.ts +2 -0
  26. package/dist/bin-list-mismatches/effects.js +136 -0
  27. package/dist/bin-list-mismatches/index.js +28 -4
  28. package/dist/bin-list-mismatches/list-mismatches.d.ts +4 -2
  29. package/dist/bin-list-mismatches/list-mismatches.js +14 -87
  30. package/dist/bin-prompt/effects.d.ts +2 -0
  31. package/dist/bin-prompt/effects.js +110 -0
  32. package/dist/bin-prompt/index.js +28 -4
  33. package/dist/bin-prompt/prompt.d.ts +4 -0
  34. package/dist/bin-prompt/prompt.js +42 -0
  35. package/dist/bin-set-semver-ranges/effects.d.ts +2 -0
  36. package/dist/bin-set-semver-ranges/effects.js +61 -0
  37. package/dist/bin-set-semver-ranges/index.js +28 -4
  38. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +4 -2
  39. package/dist/bin-set-semver-ranges/set-semver-ranges.js +39 -22
  40. package/dist/bin-update/effects.d.ts +11 -0
  41. package/dist/bin-update/effects.js +187 -0
  42. package/dist/bin-update/index.d.ts +2 -0
  43. package/dist/bin-update/index.js +80 -0
  44. package/dist/bin-update/update.d.ts +4 -0
  45. package/dist/bin-update/update.js +47 -0
  46. package/dist/bin.js +3 -0
  47. package/dist/config/get-custom-types.d.ts +2 -2
  48. package/dist/config/get-enabled-types.d.ts +12 -2
  49. package/dist/config/get-enabled-types.js +38 -4
  50. package/dist/config/get-filter.d.ts +2 -2
  51. package/dist/config/get-indent.d.ts +2 -2
  52. package/dist/config/get-semver-range.d.ts +2 -2
  53. package/dist/config/get-semver-range.js +4 -4
  54. package/dist/config/get-sort-az.d.ts +2 -2
  55. package/dist/config/get-sort-first.d.ts +2 -2
  56. package/dist/config/get-source.d.ts +2 -2
  57. package/dist/config/get-source.js +1 -2
  58. package/dist/config/types.d.ts +8 -6
  59. package/dist/config/types.js +26 -0
  60. package/dist/constants.d.ts +1 -1
  61. package/dist/constants.js +1 -1
  62. package/dist/create-program/effects.d.ts +40 -0
  63. package/dist/create-program/effects.js +2 -0
  64. package/dist/create-program/semver-ranges.d.ts +7 -0
  65. package/dist/create-program/semver-ranges.js +55 -0
  66. package/dist/create-program/versions.d.ts +7 -0
  67. package/dist/create-program/versions.js +70 -0
  68. package/dist/env/create-env.d.ts +21 -0
  69. package/dist/env/create-env.js +60 -0
  70. package/dist/env/default-env.d.ts +18 -0
  71. package/dist/env/default-env.js +95 -0
  72. package/dist/env/exit-if-invalid.d.ts +4 -0
  73. package/dist/env/exit-if-invalid.js +34 -0
  74. package/dist/env/tags.d.ts +58 -0
  75. package/dist/env/tags.js +50 -0
  76. package/dist/env/write-if-changed.d.ts +11 -0
  77. package/dist/env/write-if-changed.js +73 -0
  78. package/dist/error-handlers/create-error-handlers.d.ts +19 -0
  79. package/dist/error-handlers/create-error-handlers.js +57 -0
  80. package/dist/error-handlers/default-error-handlers.d.ts +2 -0
  81. package/dist/error-handlers/default-error-handlers.js +57 -0
  82. package/dist/get-context/index.d.ts +11 -8
  83. package/dist/get-context/index.js +31 -9
  84. package/dist/get-package-json-files/get-file-paths.d.ts +17 -8
  85. package/dist/get-package-json-files/get-file-paths.js +40 -20
  86. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +4 -3
  87. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +31 -8
  88. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +4 -3
  89. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +36 -14
  90. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +4 -3
  91. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +37 -9
  92. package/dist/get-package-json-files/get-patterns/index.d.ts +4 -4
  93. package/dist/get-package-json-files/get-patterns/index.js +37 -18
  94. package/dist/get-package-json-files/get-patterns/read-json-safe.d.ts +15 -3
  95. package/dist/get-package-json-files/get-patterns/read-json-safe.js +36 -10
  96. package/dist/get-package-json-files/index.d.ts +7 -4
  97. package/dist/get-package-json-files/index.js +27 -9
  98. package/dist/get-package-json-files/instance.js +2 -2
  99. package/dist/get-package-json-files/package-json-file.d.ts +6 -10
  100. package/dist/get-package-json-files/package-json-file.js +5 -21
  101. package/dist/get-semver-groups/filtered-out.d.ts +12 -6
  102. package/dist/get-semver-groups/filtered-out.js +40 -14
  103. package/dist/get-semver-groups/ignored.d.ts +10 -4
  104. package/dist/get-semver-groups/ignored.js +34 -8
  105. package/dist/get-semver-groups/index.d.ts +80 -28
  106. package/dist/get-semver-groups/index.js +94 -42
  107. package/dist/get-semver-groups/with-range.d.ts +12 -5
  108. package/dist/get-semver-groups/with-range.js +49 -25
  109. package/dist/get-version-groups/banned.d.ts +10 -4
  110. package/dist/get-version-groups/banned.js +34 -8
  111. package/dist/get-version-groups/filtered-out.d.ts +12 -6
  112. package/dist/get-version-groups/filtered-out.js +40 -14
  113. package/dist/get-version-groups/ignored.d.ts +10 -4
  114. package/dist/get-version-groups/ignored.js +34 -8
  115. package/dist/get-version-groups/index.d.ts +131 -47
  116. package/dist/get-version-groups/index.js +123 -51
  117. package/dist/get-version-groups/lib/get-highest-version.js +2 -2
  118. package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
  119. package/dist/get-version-groups/lib/get-range-score.js +1 -3
  120. package/dist/get-version-groups/lib/sort.js +3 -3
  121. package/dist/get-version-groups/pinned.d.ts +10 -4
  122. package/dist/get-version-groups/pinned.js +39 -16
  123. package/dist/get-version-groups/same-range.d.ts +10 -4
  124. package/dist/get-version-groups/same-range.js +38 -15
  125. package/dist/get-version-groups/snapped-to.d.ts +10 -4
  126. package/dist/get-version-groups/snapped-to.js +41 -16
  127. package/dist/get-version-groups/standard.d.ts +12 -5
  128. package/dist/get-version-groups/standard.js +63 -39
  129. package/dist/guards/can-add-to-group.d.ts +4 -0
  130. package/dist/guards/can-add-to-group.js +15 -0
  131. package/dist/guards/is-loose-semver.d.ts +1 -0
  132. package/dist/guards/is-loose-semver.js +9 -0
  133. package/dist/guards/is-semver.d.ts +1 -0
  134. package/dist/guards/is-semver.js +16 -0
  135. package/dist/guards/is-supported.d.ts +1 -0
  136. package/dist/guards/is-supported.js +17 -0
  137. package/dist/guards/is-valid-semver-range.d.ts +2 -0
  138. package/dist/guards/is-valid-semver-range.js +17 -0
  139. package/dist/lib/$R.js +2 -2
  140. package/dist/lib/log-group-header.d.ts +6 -0
  141. package/dist/lib/log-group-header.js +34 -0
  142. package/dist/lib/log-verbose.d.ts +1 -0
  143. package/dist/lib/log-verbose.js +24 -0
  144. package/dist/lib/set-semver-range.d.ts +1 -0
  145. package/dist/lib/set-semver-range.js +14 -6
  146. package/dist/option.js +1 -4
  147. package/dist/strategy/lib/get-non-empty-string-prop.js +2 -2
  148. package/dist/strategy/name-and-version-props.js +5 -5
  149. package/dist/strategy/named-version-string.js +4 -4
  150. package/dist/strategy/unnamed-version-string.js +4 -4
  151. package/dist/strategy/versions-by-name.js +3 -3
  152. package/package.json +28 -18
  153. package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +0 -3
  154. package/dist/bin-fix-mismatches/fix-mismatches-cli.js +0 -12
  155. package/dist/bin-lint/lint-cli.d.ts +0 -3
  156. package/dist/bin-lint/lint-cli.js +0 -12
  157. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +0 -3
  158. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +0 -11
  159. package/dist/bin-list/list-cli.d.ts +0 -3
  160. package/dist/bin-list/list-cli.js +0 -11
  161. package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +0 -3
  162. package/dist/bin-list-mismatches/list-mismatches-cli.js +0 -11
  163. package/dist/bin-prompt/prompt-cli.d.ts +0 -3
  164. package/dist/bin-prompt/prompt-cli.js +0 -50
  165. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +0 -3
  166. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +0 -11
  167. package/dist/get-package-json-files/get-patterns/read-yaml-safe.d.ts +0 -3
  168. package/dist/get-package-json-files/get-patterns/read-yaml-safe.js +0 -12
  169. package/dist/get-semver-groups/catch-all.d.ts +0 -4
  170. package/dist/get-semver-groups/catch-all.js +0 -11
  171. package/dist/get-version-groups/catch-all.d.ts +0 -4
  172. package/dist/get-version-groups/catch-all.js +0 -11
  173. package/dist/lib/disk.d.ts +0 -21
  174. package/dist/lib/disk.js +0 -79
  175. package/dist/lib/exit-if-invalid.d.ts +0 -2
  176. package/dist/lib/exit-if-invalid.js +0 -10
  177. package/dist/lib/is-semver.d.ts +0 -6
  178. package/dist/lib/is-semver.js +0 -49
  179. package/dist/lib/log.d.ts +0 -5
  180. package/dist/lib/log.js +0 -51
  181. package/dist/lib/newlines.d.ts +0 -6
  182. package/dist/lib/newlines.js +0 -24
  183. package/dist/lib/print-strings.d.ts +0 -1
  184. package/dist/lib/print-strings.js +0 -7
  185. package/dist/lib/write-if-changed.d.ts +0 -2
  186. package/dist/lib/write-if-changed.js +0 -21
package/README.md CHANGED
@@ -45,17 +45,20 @@ List all dependencies required by your packages.
45
45
  List dependencies which are required by multiple packages, where the version is not the same across
46
46
  every package.
47
47
 
48
+ ### [prompt](https://jamiemason.github.io/syncpack/prompt)
49
+
50
+ Displays a series of prompts to fix mismatches which syncpack cannot fix automatically.
51
+
48
52
  ### [set-semver-ranges](https://jamiemason.github.io/syncpack/set-semver-ranges)
49
53
 
50
54
  Ensure dependency versions used within `"dependencies"`, `"devDependencies"` etc follow a consistent
51
55
  format.
52
56
 
53
- ## Breaking Changes
57
+ ### [update](https://jamiemason.github.io/syncpack/update)
54
58
 
55
- Version [9.0.0](https://github.com/JamieMason/syncpack/releases/tag/9.0.0) required some breaking
56
- API changes to add support for a new
57
- [`customTypes`](https://jamiemason.github.io/syncpack/config/custom-types) feature, but they are
58
- very simple to make.
59
+ Interactively update packages to the latest versions from the npm registry, wherever they are in
60
+ your monorepo. You can update every dependency, just dev/peer/prod dependencies, just packages which
61
+ match a name filter, and more.
59
62
 
60
63
  ## Badges
61
64
 
@@ -0,0 +1,2 @@
1
+ import type { VersionEffects } from '../create-program/effects';
2
+ export declare const fixMismatchesEffects: VersionEffects<void>;
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.fixMismatchesEffects = void 0;
30
+ const Function_1 = require("@effect/data/Function");
31
+ const Effect = __importStar(require("@effect/io/Effect"));
32
+ const chalk_1 = __importDefault(require("chalk"));
33
+ const os_1 = require("os");
34
+ const is_object_1 = require("tightrope/guard/is-object");
35
+ const is_undefined_1 = require("tightrope/guard/is-undefined");
36
+ const constants_1 = require("../constants");
37
+ const delete_1 = require("../get-version-groups/lib/delete");
38
+ const log_group_header_1 = require("../lib/log-group-header");
39
+ exports.fixMismatchesEffects = {
40
+ onFilteredOut() {
41
+ return Effect.unit();
42
+ },
43
+ onIgnored() {
44
+ return Effect.unit();
45
+ },
46
+ onValid() {
47
+ return Effect.unit();
48
+ },
49
+ onBanned(input) {
50
+ return Effect.sync(() => removeVersions(input));
51
+ },
52
+ onHighestSemverMismatch(input) {
53
+ return Effect.sync(() => setVersions(input));
54
+ },
55
+ onLowestSemverMismatch(input) {
56
+ return Effect.sync(() => setVersions(input));
57
+ },
58
+ onPinnedMismatch(input) {
59
+ return Effect.sync(() => setVersions(input));
60
+ },
61
+ onSameRangeMismatch(input) {
62
+ return Effect.sync(() => (0, Function_1.pipe)(input, logHeader, logSameRangeMismatch));
63
+ },
64
+ onSnappedToMismatch(input) {
65
+ return Effect.sync(() => setVersions(input));
66
+ },
67
+ onUnsupportedMismatch(input) {
68
+ return Effect.sync(() => (0, Function_1.pipe)(input, logHeader, logUnsupportedMismatch));
69
+ },
70
+ onWorkspaceMismatch(input) {
71
+ return Effect.sync(() => setVersions(input));
72
+ },
73
+ onComplete(ctx) {
74
+ return Effect.sync(() => deleteEmptyObjects(ctx));
75
+ },
76
+ };
77
+ function logHeader(input) {
78
+ if (input.index === 0) {
79
+ log_group_header_1.logGroupHeader.versionGroup(input.group, input.index);
80
+ }
81
+ return input;
82
+ }
83
+ function setVersions({ report }) {
84
+ report.instances.forEach((instance) => {
85
+ instance.setVersion(report.expectedVersion);
86
+ });
87
+ }
88
+ function removeVersions({ report }) {
89
+ report.instances.forEach((instance) => {
90
+ instance.setVersion(delete_1.DELETE);
91
+ });
92
+ }
93
+ function logSameRangeMismatch({ ctx, report }) {
94
+ ctx.isInvalid = true;
95
+ console.log((0, chalk_1.default) `{yellow %s %s} {dim has mismatched versions under the "sameRange" policy which syncpack cannot auto fix}%s`, constants_1.ICON.panic, report.name, (0, chalk_1.default) `${os_1.EOL} use {blue syncpack prompt} to fix manually`);
96
+ }
97
+ function logUnsupportedMismatch({ ctx, report }) {
98
+ ctx.isInvalid = true;
99
+ console.log((0, chalk_1.default) `{yellow %s %s} {dim has mismatched unsupported versions which syncpack cannot auto fix}%s`, constants_1.ICON.panic, report.name, (0, chalk_1.default) `${os_1.EOL} use {blue syncpack prompt} to fix manually`);
100
+ }
101
+ /** Remove empty objects such as `{"dependencies": {}}` left after deleting */
102
+ function deleteEmptyObjects(ctx) {
103
+ ctx.packageJsonFiles.forEach((packageJsonFile) => {
104
+ const contents = packageJsonFile.contents;
105
+ Object.keys(contents).forEach((key) => {
106
+ const value = contents[key];
107
+ if ((0, is_object_1.isObject)(value) && Object.values(value).every(is_undefined_1.isUndefined)) {
108
+ delete contents[key];
109
+ }
110
+ });
111
+ });
112
+ }
@@ -1,2 +1,4 @@
1
- import type { Context } from '../get-context';
2
- export declare function fixMismatches(ctx: Context): Context;
1
+ import * as Effect from '@effect/io/Effect';
2
+ import { type CliConfig } from '../config/types';
3
+ import type { DefaultEnv } from '../env/default-env';
4
+ export declare function fixMismatches(cli: Partial<CliConfig>, env: DefaultEnv): Effect.Effect<never, never, void | import("../get-context").Ctx>;
@@ -1,54 +1,43 @@
1
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
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.fixMismatches = void 0;
4
- const is_object_1 = require("tightrope/guard/is-object");
5
- const is_undefined_1 = require("tightrope/guard/is-undefined");
6
- const get_version_groups_1 = require("../get-version-groups");
7
- const delete_1 = require("../get-version-groups/lib/delete");
8
- function fixMismatches(ctx) {
9
- const versionGroups = (0, get_version_groups_1.getVersionGroups)(ctx);
10
- let shouldPruneEmpty = false;
11
- versionGroups.forEach((versionGroup) => {
12
- versionGroup.inspect().forEach((outcome) => {
13
- if (!outcome.isValid) {
14
- outcome.instances.forEach((instance) => {
15
- switch (outcome.status) {
16
- case 'HIGHEST_SEMVER_MISMATCH':
17
- case 'LOWEST_SEMVER_MISMATCH':
18
- case 'PINNED_MISMATCH':
19
- case 'SNAPPED_TO_MISMATCH':
20
- case 'WORKSPACE_MISMATCH': {
21
- instance.setVersion(outcome.expectedVersion);
22
- break;
23
- }
24
- case 'BANNED': {
25
- shouldPruneEmpty = true;
26
- instance.setVersion(delete_1.DELETE);
27
- break;
28
- }
29
- case 'SAME_RANGE_MISMATCH':
30
- case 'UNSUPPORTED_MISMATCH': {
31
- // @TODO Output something when fix-mismatches faces an unsupported mismatch
32
- ctx.isInvalid = true;
33
- break;
34
- }
35
- }
36
- });
37
- }
38
- });
39
- });
40
- /** Remove empty objects such as `{"dependencies": {}}` left after deleting */
41
- if (shouldPruneEmpty) {
42
- ctx.packageJsonFiles.forEach((packageJsonFile) => {
43
- const contents = packageJsonFile.contents;
44
- Object.keys(contents).forEach((key) => {
45
- const value = contents[key];
46
- if ((0, is_object_1.isObject)(value) && Object.values(value).every(is_undefined_1.isUndefined)) {
47
- delete contents[key];
48
- }
49
- });
50
- });
51
- }
52
- return ctx;
27
+ const Context = __importStar(require("@effect/data/Context"));
28
+ const Function_1 = require("@effect/data/Function");
29
+ const Effect = __importStar(require("@effect/io/Effect"));
30
+ const types_1 = require("../config/types");
31
+ const versions_1 = require("../create-program/versions");
32
+ const create_env_1 = require("../env/create-env");
33
+ const exit_if_invalid_1 = require("../env/exit-if-invalid");
34
+ const tags_1 = require("../env/tags");
35
+ const write_if_changed_1 = require("../env/write-if-changed");
36
+ const create_error_handlers_1 = require("../error-handlers/create-error-handlers");
37
+ const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
38
+ const get_context_1 = require("../get-context");
39
+ const effects_1 = require("./effects");
40
+ function fixMismatches(cli, env) {
41
+ return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, versions_1.createVersionsProgram)(ctx, effects_1.fixMismatchesEffects)), Effect.flatMap(write_if_changed_1.writeIfChanged), Effect.flatMap(exit_if_invalid_1.exitIfInvalid), Effect.catchTags((0, create_error_handlers_1.createErrorHandlers)(default_error_handlers_1.defaultErrorHandlers)), Effect.provideContext((0, Function_1.pipe)(Context.empty(), Context.add(types_1.CliConfigTag, cli), Context.add(tags_1.EnvTag, (0, create_env_1.createEnv)(env)))));
53
42
  }
54
43
  exports.fixMismatches = fixMismatches;
@@ -1,15 +1,39 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
3
26
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
28
  };
6
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
+ const Effect = __importStar(require("@effect/io/Effect"));
7
31
  const chalk_1 = __importDefault(require("chalk"));
8
32
  const commander_1 = require("commander");
9
- const disk_1 = require("../lib/disk");
33
+ const default_env_1 = require("../env/default-env");
10
34
  const show_help_on_error_1 = require("../lib/show-help-on-error");
11
35
  const option_1 = require("../option");
12
- const fix_mismatches_cli_1 = require("./fix-mismatches-cli");
36
+ const fix_mismatches_1 = require("./fix-mismatches");
13
37
  commander_1.program.description((0, chalk_1.default) `
14
38
  Ensure that multiple packages requiring the same dependency define the same
15
39
  version, so that every package requires eg. {yellow react@16.4.2}, instead of a
@@ -54,10 +78,10 @@ commander_1.program
54
78
  .option(...option_1.option.config)
55
79
  .option(...option_1.option.indent)
56
80
  .parse(process.argv);
57
- (0, fix_mismatches_cli_1.fixMismatchesCli)({
81
+ Effect.runSync((0, fix_mismatches_1.fixMismatches)({
58
82
  configPath: commander_1.program.opts().config,
59
83
  filter: commander_1.program.opts().filter,
60
84
  indent: commander_1.program.opts().indent,
61
85
  source: commander_1.program.opts().source,
62
86
  types: commander_1.program.opts().types,
63
- }, disk_1.disk);
87
+ }, default_env_1.defaultEnv));
@@ -1,3 +1,4 @@
1
- import type { CliConfig } from '../config/types';
2
- import type { Disk } from '../lib/disk';
3
- export declare function formatCli(input: Partial<CliConfig>, disk: Disk): void;
1
+ import * as Effect from '@effect/io/Effect';
2
+ import { type CliConfig } from '../config/types';
3
+ import type { DefaultEnv } from '../env/default-env';
4
+ export declare function formatCli(cli: Partial<CliConfig>, env: DefaultEnv): Effect.Effect<never, never, void | import("../get-context").Ctx>;
@@ -1,11 +1,42 @@
1
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
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.formatCli = void 0;
4
- const pipe_1 = require("tightrope/fn/pipe");
27
+ const Context = __importStar(require("@effect/data/Context"));
28
+ const Function_1 = require("@effect/data/Function");
29
+ const Effect = __importStar(require("@effect/io/Effect"));
30
+ const types_1 = require("../config/types");
31
+ const create_env_1 = require("../env/create-env");
32
+ const exit_if_invalid_1 = require("../env/exit-if-invalid");
33
+ const tags_1 = require("../env/tags");
34
+ const write_if_changed_1 = require("../env/write-if-changed");
35
+ const create_error_handlers_1 = require("../error-handlers/create-error-handlers");
36
+ const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
5
37
  const get_context_1 = require("../get-context");
6
- const write_if_changed_1 = require("../lib/write-if-changed");
7
38
  const format_1 = require("./format");
8
- function formatCli(input, disk) {
9
- (0, pipe_1.pipe)((0, get_context_1.getContext)(input, disk), format_1.format, write_if_changed_1.writeIfChanged);
39
+ function formatCli(cli, env) {
40
+ return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap(format_1.format), Effect.flatMap(write_if_changed_1.writeIfChanged), Effect.flatMap(exit_if_invalid_1.exitIfInvalid), Effect.catchTags((0, create_error_handlers_1.createErrorHandlers)(default_error_handlers_1.defaultErrorHandlers)), Effect.provideContext((0, Function_1.pipe)(Context.empty(), Context.add(types_1.CliConfigTag, cli), Context.add(tags_1.EnvTag, (0, create_env_1.createEnv)(env)))));
10
41
  }
11
42
  exports.formatCli = formatCli;
@@ -1,2 +1,3 @@
1
- import type { Context } from '../get-context';
2
- export declare function format(ctx: Context): Context;
1
+ import * as Effect from '@effect/io/Effect';
2
+ import type { Ctx } from '../get-context';
3
+ export declare function format(ctx: Ctx): Effect.Effect<never, never, Ctx>;
@@ -1,6 +1,30 @@
1
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
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.format = void 0;
27
+ const Effect = __importStar(require("@effect/io/Effect"));
4
28
  const is_array_1 = require("tightrope/guard/is-array");
5
29
  const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
6
30
  const is_object_1 = require("tightrope/guard/is-object");
@@ -29,7 +53,7 @@ function format(ctx) {
29
53
  sortAz.forEach((key) => sortAlphabetically(contents[key]));
30
54
  sortObject(keys, contents);
31
55
  });
32
- return ctx;
56
+ return Effect.succeed(ctx);
33
57
  function sortObject(sortedKeys, obj) {
34
58
  sortedKeys.forEach((key) => {
35
59
  const value = obj[key];
@@ -1,12 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
3
26
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
28
  };
6
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
+ const Effect = __importStar(require("@effect/io/Effect"));
7
31
  const chalk_1 = __importDefault(require("chalk"));
8
32
  const commander_1 = require("commander");
9
- const disk_1 = require("../lib/disk");
33
+ const default_env_1 = require("../env/default-env");
10
34
  const show_help_on_error_1 = require("../lib/show-help-on-error");
11
35
  const option_1 = require("../option");
12
36
  const format_cli_1 = require("./format-cli");
@@ -47,8 +71,8 @@ commander_1.program
47
71
  .option(...option_1.option.config)
48
72
  .option(...option_1.option.indent)
49
73
  .parse(process.argv);
50
- (0, format_cli_1.formatCli)({
74
+ Effect.runSync((0, format_cli_1.formatCli)({
51
75
  configPath: commander_1.program.opts().config,
52
76
  indent: commander_1.program.opts().indent,
53
77
  source: commander_1.program.opts().source,
54
- }, disk_1.disk);
78
+ }, default_env_1.defaultEnv));
@@ -1,15 +1,39 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
3
26
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
28
  };
6
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
+ const Effect = __importStar(require("@effect/io/Effect"));
7
31
  const chalk_1 = __importDefault(require("chalk"));
8
32
  const commander_1 = require("commander");
9
- const disk_1 = require("../lib/disk");
33
+ const default_env_1 = require("../env/default-env");
10
34
  const show_help_on_error_1 = require("../lib/show-help-on-error");
11
35
  const option_1 = require("../option");
12
- const lint_cli_1 = require("./lint-cli");
36
+ const lint_1 = require("./lint");
13
37
  commander_1.program.description(' lint all versions and ranges');
14
38
  commander_1.program.on('--help', () => {
15
39
  console.log((0, chalk_1.default) `
@@ -34,6 +58,6 @@ Reference:
34
58
  });
35
59
  (0, show_help_on_error_1.showHelpOnError)(commander_1.program);
36
60
  commander_1.program.option(...option_1.option.config).parse(process.argv);
37
- (0, lint_cli_1.lintCli)({
61
+ Effect.runSync((0, lint_1.lint)({
38
62
  configPath: commander_1.program.opts().config,
39
- }, disk_1.disk);
63
+ }, default_env_1.defaultEnv));
@@ -0,0 +1,4 @@
1
+ import * as Effect from '@effect/io/Effect';
2
+ import { type CliConfig } from '../config/types';
3
+ import type { DefaultEnv } from '../env/default-env';
4
+ export declare function lint(cli: Partial<CliConfig>, env: DefaultEnv): Effect.Effect<never, never, void | import("../get-context").Ctx>;
@@ -0,0 +1,44 @@
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.lint = void 0;
27
+ const Context = __importStar(require("@effect/data/Context"));
28
+ const Function_1 = require("@effect/data/Function");
29
+ const Effect = __importStar(require("@effect/io/Effect"));
30
+ const effects_1 = require("../bin-lint-semver-ranges/effects");
31
+ const effects_2 = require("../bin-list-mismatches/effects");
32
+ const types_1 = require("../config/types");
33
+ const semver_ranges_1 = require("../create-program/semver-ranges");
34
+ const versions_1 = require("../create-program/versions");
35
+ const create_env_1 = require("../env/create-env");
36
+ const exit_if_invalid_1 = require("../env/exit-if-invalid");
37
+ const tags_1 = require("../env/tags");
38
+ const create_error_handlers_1 = require("../error-handlers/create-error-handlers");
39
+ const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
40
+ const get_context_1 = require("../get-context");
41
+ function lint(cli, env) {
42
+ return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, versions_1.createVersionsProgram)(ctx, effects_2.listMismatchesEffects)), Effect.flatMap((ctx) => (0, semver_ranges_1.createSemverRangesProgram)(ctx, effects_1.lintSemverRangesEffects)), Effect.flatMap(exit_if_invalid_1.exitIfInvalid), Effect.catchTags((0, create_error_handlers_1.createErrorHandlers)(default_error_handlers_1.defaultErrorHandlers)), Effect.provideContext((0, Function_1.pipe)(Context.empty(), Context.add(types_1.CliConfigTag, cli), Context.add(tags_1.EnvTag, (0, create_env_1.createEnv)(env)))));
43
+ }
44
+ exports.lint = lint;
@@ -0,0 +1,2 @@
1
+ import type { SemverRangeEffects } from '../create-program/effects';
2
+ export declare const lintSemverRangesEffects: SemverRangeEffects<void>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.lintSemverRangesEffects = void 0;
30
+ const Function_1 = require("@effect/data/Function");
31
+ const Effect = __importStar(require("@effect/io/Effect"));
32
+ const chalk_1 = __importDefault(require("chalk"));
33
+ const constants_1 = require("../constants");
34
+ const log_group_header_1 = require("../lib/log-group-header");
35
+ exports.lintSemverRangesEffects = {
36
+ onFilteredOut() {
37
+ return Effect.unit();
38
+ },
39
+ onIgnored() {
40
+ return Effect.unit();
41
+ },
42
+ onValid() {
43
+ return Effect.unit();
44
+ },
45
+ onSemverRangeMismatch(input) {
46
+ return Effect.sync(() => (0, Function_1.pipe)(input, logHeader, logRangeMismatch));
47
+ },
48
+ onUnsupportedVersion(input) {
49
+ return Effect.sync(() => (0, Function_1.pipe)(input, logHeader, logUnsupportedVersion));
50
+ },
51
+ onWorkspaceSemverRangeMismatch(input) {
52
+ return Effect.sync(() => (0, Function_1.pipe)(input, logHeader, logRangeMismatch));
53
+ },
54
+ onComplete() {
55
+ return Effect.unit();
56
+ },
57
+ };
58
+ function logHeader(input) {
59
+ if (input.index === 0) {
60
+ log_group_header_1.logGroupHeader.semverGroup(input.group, input.index);
61
+ }
62
+ return input;
63
+ }
64
+ function logRangeMismatch({ report, ctx }) {
65
+ ctx.isInvalid = true;
66
+ console.log((0, chalk_1.default) `{red %s} %s {red %s} %s {green %s} {dim in %s of %s}`, constants_1.ICON.cross, report.name, report.instance.version, constants_1.ICON.rightArrow, report.expectedVersion, report.instance.strategy.path, report.instance.packageJsonFile.shortPath);
67
+ }
68
+ function logUnsupportedVersion({ report }) {
69
+ console.log((0, chalk_1.default) `{yellow %s} %s {yellow %s} {dim ignored as a format which syncpack cannot apply semver ranges to}`, constants_1.ICON.panic, report.name, report.instance.version);
70
+ }