syncpack 10.5.1 → 10.6.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 (177) hide show
  1. package/dist/bin-fix-mismatches/effects.d.ts +2 -0
  2. package/dist/bin-fix-mismatches/effects.js +112 -0
  3. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +4 -2
  4. package/dist/bin-fix-mismatches/fix-mismatches.js +38 -49
  5. package/dist/bin-fix-mismatches/index.js +28 -4
  6. package/dist/bin-format/format-cli.d.ts +4 -3
  7. package/dist/bin-format/format-cli.js +35 -4
  8. package/dist/bin-format/format.d.ts +3 -2
  9. package/dist/bin-format/format.js +25 -1
  10. package/dist/bin-format/index.js +27 -3
  11. package/dist/bin-lint/index.js +28 -4
  12. package/dist/bin-lint/lint.d.ts +4 -0
  13. package/dist/bin-lint/lint.js +44 -0
  14. package/dist/bin-lint-semver-ranges/effects.d.ts +2 -0
  15. package/dist/bin-lint-semver-ranges/effects.js +70 -0
  16. package/dist/bin-lint-semver-ranges/index.js +28 -4
  17. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +4 -2
  18. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +14 -39
  19. package/dist/bin-list/effects.d.ts +2 -0
  20. package/dist/bin-list/effects.js +112 -0
  21. package/dist/bin-list/index.js +28 -4
  22. package/dist/bin-list/list.d.ts +4 -2
  23. package/dist/bin-list/list.js +14 -75
  24. package/dist/bin-list-mismatches/effects.d.ts +2 -0
  25. package/dist/bin-list-mismatches/effects.js +136 -0
  26. package/dist/bin-list-mismatches/index.js +28 -4
  27. package/dist/bin-list-mismatches/list-mismatches.d.ts +4 -2
  28. package/dist/bin-list-mismatches/list-mismatches.js +14 -87
  29. package/dist/bin-prompt/effects.d.ts +2 -0
  30. package/dist/bin-prompt/effects.js +110 -0
  31. package/dist/bin-prompt/index.js +28 -4
  32. package/dist/bin-prompt/prompt.d.ts +4 -0
  33. package/dist/bin-prompt/prompt.js +42 -0
  34. package/dist/bin-set-semver-ranges/effects.d.ts +2 -0
  35. package/dist/bin-set-semver-ranges/effects.js +61 -0
  36. package/dist/bin-set-semver-ranges/index.js +28 -4
  37. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +4 -2
  38. package/dist/bin-set-semver-ranges/set-semver-ranges.js +39 -22
  39. package/dist/config/get-custom-types.d.ts +2 -2
  40. package/dist/config/get-enabled-types.d.ts +12 -2
  41. package/dist/config/get-enabled-types.js +38 -4
  42. package/dist/config/get-filter.d.ts +2 -2
  43. package/dist/config/get-indent.d.ts +2 -2
  44. package/dist/config/get-semver-range.d.ts +2 -2
  45. package/dist/config/get-semver-range.js +4 -4
  46. package/dist/config/get-sort-az.d.ts +2 -2
  47. package/dist/config/get-sort-first.d.ts +2 -2
  48. package/dist/config/get-source.d.ts +2 -2
  49. package/dist/config/get-source.js +1 -2
  50. package/dist/config/types.d.ts +8 -6
  51. package/dist/config/types.js +26 -0
  52. package/dist/constants.d.ts +1 -1
  53. package/dist/constants.js +1 -1
  54. package/dist/create-program/effects.d.ts +42 -0
  55. package/dist/create-program/effects.js +2 -0
  56. package/dist/create-program/semver-ranges.d.ts +7 -0
  57. package/dist/create-program/semver-ranges.js +43 -0
  58. package/dist/create-program/versions.d.ts +7 -0
  59. package/dist/create-program/versions.js +48 -0
  60. package/dist/env/create-env.d.ts +21 -0
  61. package/dist/env/create-env.js +60 -0
  62. package/dist/env/default-env.d.ts +18 -0
  63. package/dist/env/default-env.js +95 -0
  64. package/dist/env/exit-if-invalid.d.ts +4 -0
  65. package/dist/env/exit-if-invalid.js +34 -0
  66. package/dist/env/tags.d.ts +58 -0
  67. package/dist/env/tags.js +50 -0
  68. package/dist/env/write-if-changed.d.ts +11 -0
  69. package/dist/env/write-if-changed.js +73 -0
  70. package/dist/error-handlers/create-error-handlers.d.ts +19 -0
  71. package/dist/error-handlers/create-error-handlers.js +57 -0
  72. package/dist/error-handlers/default-error-handlers.d.ts +2 -0
  73. package/dist/error-handlers/default-error-handlers.js +57 -0
  74. package/dist/get-context/index.d.ts +11 -8
  75. package/dist/get-context/index.js +31 -9
  76. package/dist/get-package-json-files/get-file-paths.d.ts +17 -8
  77. package/dist/get-package-json-files/get-file-paths.js +40 -20
  78. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +4 -3
  79. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +31 -8
  80. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +4 -3
  81. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +36 -14
  82. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +4 -3
  83. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +37 -9
  84. package/dist/get-package-json-files/get-patterns/index.d.ts +4 -4
  85. package/dist/get-package-json-files/get-patterns/index.js +37 -18
  86. package/dist/get-package-json-files/get-patterns/read-json-safe.d.ts +15 -3
  87. package/dist/get-package-json-files/get-patterns/read-json-safe.js +36 -10
  88. package/dist/get-package-json-files/index.d.ts +7 -4
  89. package/dist/get-package-json-files/index.js +27 -9
  90. package/dist/get-package-json-files/instance.js +2 -2
  91. package/dist/get-package-json-files/package-json-file.d.ts +6 -10
  92. package/dist/get-package-json-files/package-json-file.js +5 -21
  93. package/dist/get-semver-groups/filtered-out.d.ts +12 -6
  94. package/dist/get-semver-groups/filtered-out.js +40 -14
  95. package/dist/get-semver-groups/ignored.d.ts +10 -4
  96. package/dist/get-semver-groups/ignored.js +34 -8
  97. package/dist/get-semver-groups/index.d.ts +80 -28
  98. package/dist/get-semver-groups/index.js +94 -42
  99. package/dist/get-semver-groups/with-range.d.ts +12 -5
  100. package/dist/get-semver-groups/with-range.js +49 -25
  101. package/dist/get-version-groups/banned.d.ts +10 -4
  102. package/dist/get-version-groups/banned.js +34 -8
  103. package/dist/get-version-groups/filtered-out.d.ts +12 -6
  104. package/dist/get-version-groups/filtered-out.js +40 -14
  105. package/dist/get-version-groups/ignored.d.ts +10 -4
  106. package/dist/get-version-groups/ignored.js +34 -8
  107. package/dist/get-version-groups/index.d.ts +131 -47
  108. package/dist/get-version-groups/index.js +123 -51
  109. package/dist/get-version-groups/lib/get-highest-version.js +2 -2
  110. package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
  111. package/dist/get-version-groups/lib/get-range-score.js +1 -3
  112. package/dist/get-version-groups/lib/sort.js +3 -3
  113. package/dist/get-version-groups/pinned.d.ts +10 -4
  114. package/dist/get-version-groups/pinned.js +39 -16
  115. package/dist/get-version-groups/same-range.d.ts +10 -4
  116. package/dist/get-version-groups/same-range.js +38 -15
  117. package/dist/get-version-groups/snapped-to.d.ts +10 -4
  118. package/dist/get-version-groups/snapped-to.js +41 -16
  119. package/dist/get-version-groups/standard.d.ts +12 -5
  120. package/dist/get-version-groups/standard.js +63 -39
  121. package/dist/guards/can-add-to-group.d.ts +4 -0
  122. package/dist/guards/can-add-to-group.js +15 -0
  123. package/dist/guards/is-loose-semver.d.ts +1 -0
  124. package/dist/guards/is-loose-semver.js +9 -0
  125. package/dist/guards/is-semver.d.ts +1 -0
  126. package/dist/guards/is-semver.js +16 -0
  127. package/dist/guards/is-supported.d.ts +1 -0
  128. package/dist/guards/is-supported.js +17 -0
  129. package/dist/guards/is-valid-semver-range.d.ts +2 -0
  130. package/dist/guards/is-valid-semver-range.js +17 -0
  131. package/dist/lib/$R.js +2 -2
  132. package/dist/lib/log-group-header.d.ts +6 -0
  133. package/dist/lib/log-group-header.js +34 -0
  134. package/dist/lib/log-verbose.d.ts +1 -0
  135. package/dist/lib/log-verbose.js +24 -0
  136. package/dist/lib/set-semver-range.js +5 -5
  137. package/dist/option.js +1 -4
  138. package/dist/strategy/lib/get-non-empty-string-prop.js +2 -2
  139. package/dist/strategy/name-and-version-props.js +5 -5
  140. package/dist/strategy/named-version-string.js +4 -4
  141. package/dist/strategy/unnamed-version-string.js +4 -4
  142. package/dist/strategy/versions-by-name.js +3 -3
  143. package/package.json +16 -11
  144. package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +0 -3
  145. package/dist/bin-fix-mismatches/fix-mismatches-cli.js +0 -12
  146. package/dist/bin-lint/lint-cli.d.ts +0 -3
  147. package/dist/bin-lint/lint-cli.js +0 -12
  148. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +0 -3
  149. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +0 -11
  150. package/dist/bin-list/list-cli.d.ts +0 -3
  151. package/dist/bin-list/list-cli.js +0 -11
  152. package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +0 -3
  153. package/dist/bin-list-mismatches/list-mismatches-cli.js +0 -11
  154. package/dist/bin-prompt/prompt-cli.d.ts +0 -3
  155. package/dist/bin-prompt/prompt-cli.js +0 -50
  156. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +0 -3
  157. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +0 -11
  158. package/dist/get-package-json-files/get-patterns/read-yaml-safe.d.ts +0 -3
  159. package/dist/get-package-json-files/get-patterns/read-yaml-safe.js +0 -12
  160. package/dist/get-semver-groups/catch-all.d.ts +0 -4
  161. package/dist/get-semver-groups/catch-all.js +0 -11
  162. package/dist/get-version-groups/catch-all.d.ts +0 -4
  163. package/dist/get-version-groups/catch-all.js +0 -11
  164. package/dist/lib/disk.d.ts +0 -21
  165. package/dist/lib/disk.js +0 -79
  166. package/dist/lib/exit-if-invalid.d.ts +0 -2
  167. package/dist/lib/exit-if-invalid.js +0 -10
  168. package/dist/lib/is-semver.d.ts +0 -6
  169. package/dist/lib/is-semver.js +0 -49
  170. package/dist/lib/log.d.ts +0 -5
  171. package/dist/lib/log.js +0 -51
  172. package/dist/lib/newlines.d.ts +0 -6
  173. package/dist/lib/newlines.js +0 -24
  174. package/dist/lib/print-strings.d.ts +0 -1
  175. package/dist/lib/print-strings.js +0 -7
  176. package/dist/lib/write-if-changed.d.ts +0 -2
  177. package/dist/lib/write-if-changed.js +0 -21
@@ -22,94 +22,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
26
  exports.listMismatches = void 0;
30
- const chalk_1 = __importDefault(require("chalk"));
31
- const is_non_empty_array_1 = require("tightrope/guard/is-non-empty-array");
32
- const constants_1 = require("../constants");
33
- const get_version_groups_1 = require("../get-version-groups");
34
- const log = __importStar(require("../lib/log"));
35
- const sort_by_name_1 = require("../lib/sort-by-name");
36
- function listMismatches(ctx) {
37
- const versionGroups = (0, get_version_groups_1.getVersionGroups)(ctx);
38
- const hasUserGroups = (0, is_non_empty_array_1.isNonEmptyArray)(ctx.config.rcFile.versionGroups);
39
- versionGroups.forEach((versionGroup, i) => {
40
- versionGroup
41
- .inspect()
42
- .sort(sort_by_name_1.sortByName)
43
- .forEach((report, ii) => {
44
- // no action needed
45
- if (report.isValid)
46
- return;
47
- // Allow eg. CLI to exit with the correct status code.
48
- ctx.isInvalid = true;
49
- // Annotate each group
50
- if (ii === 0 && hasUserGroups)
51
- log.versionGroupHeader(versionGroup, i);
52
- switch (report.status) {
53
- case 'BANNED':
54
- console.log((0, chalk_1.default) ` {red %s} %s {dim is banned in this version group}`, constants_1.ICON.cross, report.name);
55
- report.instances.forEach((instance) => {
56
- console.log((0, chalk_1.default) ` {red %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
57
- });
58
- break;
59
- case 'HIGHEST_SEMVER_MISMATCH':
60
- case 'LOWEST_SEMVER_MISMATCH': {
61
- console.log((0, chalk_1.default) `{red %s} %s {green %s} {dim is the %s valid semver version in use}`, constants_1.ICON.cross, report.name, report.expectedVersion, report.status === 'LOWEST_SEMVER_MISMATCH' ? 'lowest' : 'highest');
62
- report.instances.forEach((instance) => {
63
- if (instance.version !== report.expectedVersion) {
64
- console.log((0, chalk_1.default) ` {red %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
65
- }
66
- });
67
- break;
68
- }
69
- case 'PINNED_MISMATCH': {
70
- console.log((0, chalk_1.default) `{red %s} %s {dim is pinned in this version group at} {green %s}`, constants_1.ICON.cross, report.name, report.expectedVersion);
71
- report.instances.forEach((instance) => {
72
- if (instance.version !== report.expectedVersion) {
73
- console.log((0, chalk_1.default) ` {red %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
74
- }
75
- });
76
- break;
77
- }
78
- case 'SNAPPED_TO_MISMATCH': {
79
- console.log((0, chalk_1.default) `{red %s} %s {dim should snap to {reset.green %s}, used by %s}`, constants_1.ICON.cross, report.name, report.expectedVersion, versionGroup.config.snapTo.join(' || '));
80
- report.instances.forEach((instance) => {
81
- if (instance.version !== report.expectedVersion) {
82
- console.log((0, chalk_1.default) ` {red %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
83
- }
84
- });
85
- break;
86
- }
87
- case 'SAME_RANGE_MISMATCH': {
88
- console.log((0, chalk_1.default) `{red %s} %s {dim has mismatched semver range versions which syncpack cannot fix}`, constants_1.ICON.cross, report.name);
89
- report.instances.forEach((instance) => {
90
- console.log((0, chalk_1.default) ` {yellow %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
91
- });
92
- break;
93
- }
94
- case 'UNSUPPORTED_MISMATCH': {
95
- console.log((0, chalk_1.default) `{red %s} %s {dim has mismatched versions which syncpack cannot fix}`, constants_1.ICON.cross, report.name);
96
- report.instances.forEach((instance) => {
97
- console.log((0, chalk_1.default) ` {yellow %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
98
- });
99
- break;
100
- }
101
- case 'WORKSPACE_MISMATCH': {
102
- console.log((0, chalk_1.default) `{red %s} %s {green %s} {dim is developed in this repo at %s}`, constants_1.ICON.cross, report.name, report.expectedVersion, report.workspaceInstance.packageJsonFile.shortPath);
103
- report.instances.forEach((instance) => {
104
- if (instance.version !== report.expectedVersion) {
105
- console.log((0, chalk_1.default) ` {red %s} {dim in %s of %s}`, instance.version, instance.strategy.path, instance.packageJsonFile.shortPath);
106
- }
107
- });
108
- break;
109
- }
110
- }
111
- });
112
- });
113
- 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 create_error_handlers_1 = require("../error-handlers/create-error-handlers");
36
+ const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
37
+ const get_context_1 = require("../get-context");
38
+ const effects_1 = require("./effects");
39
+ function listMismatches(cli, env) {
40
+ return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, versions_1.createVersionsProgram)(ctx, effects_1.listMismatchesEffects)), 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)))));
114
41
  }
115
42
  exports.listMismatches = listMismatches;
@@ -0,0 +1,2 @@
1
+ import type { VersionEffects } from '../create-program/effects';
2
+ export declare const promptEffects: VersionEffects;
@@ -0,0 +1,110 @@
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.promptEffects = 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 tags_1 = require("../env/tags");
35
+ const get_unique_versions_1 = require("../get-version-groups/lib/get-unique-versions");
36
+ const log_group_header_1 = require("../lib/log-group-header");
37
+ exports.promptEffects = {
38
+ FilteredOut() {
39
+ return Effect.unit();
40
+ },
41
+ Ignored() {
42
+ return Effect.unit();
43
+ },
44
+ Valid() {
45
+ return Effect.unit();
46
+ },
47
+ Banned() {
48
+ return Effect.unit();
49
+ },
50
+ HighestSemverMismatch() {
51
+ return Effect.unit();
52
+ },
53
+ LowestSemverMismatch() {
54
+ return Effect.unit();
55
+ },
56
+ PinnedMismatch() {
57
+ return Effect.unit();
58
+ },
59
+ SameRangeMismatch(input) {
60
+ return (0, Function_1.pipe)(Effect.sync(() => logHeader(input)), Effect.flatMap(askForNextVersion));
61
+ },
62
+ SnappedToMismatch() {
63
+ return Effect.unit();
64
+ },
65
+ UnsupportedMismatch(input) {
66
+ return (0, Function_1.pipe)(Effect.sync(() => logHeader(input)), Effect.flatMap(askForNextVersion));
67
+ },
68
+ WorkspaceMismatch() {
69
+ return Effect.unit();
70
+ },
71
+ TearDown() {
72
+ return Effect.unit();
73
+ },
74
+ };
75
+ function logHeader(input) {
76
+ if (input.index === 0) {
77
+ log_group_header_1.logGroupHeader.versionGroup(input.group, input.index);
78
+ }
79
+ return input;
80
+ }
81
+ function askForNextVersion({ report }) {
82
+ return (0, Function_1.pipe)(Effect.gen(function* ($) {
83
+ const OTHER = chalk_1.default.dim('Other');
84
+ const SKIP = chalk_1.default.dim('Skip this dependency');
85
+ const env = yield* $(tags_1.EnvTag);
86
+ const choice = yield* $(env.askForChoice({
87
+ message: (0, chalk_1.default) `${report.name} {dim Choose a version to replace the others}`,
88
+ choices: [...(0, get_unique_versions_1.getUniqueVersions)(report.instances), OTHER, SKIP],
89
+ }));
90
+ if (choice === SKIP)
91
+ return;
92
+ const nextVersion = choice === OTHER
93
+ ? yield* $(env.askForInput({
94
+ message: (0, chalk_1.default) `${report.name} {dim Enter a new version to replace the others}`,
95
+ }))
96
+ : choice;
97
+ yield* $(Effect.sync(() => {
98
+ report.instances.forEach((instance) => {
99
+ instance.setVersion(nextVersion);
100
+ });
101
+ }));
102
+ }), Effect.catchTags({
103
+ AskForChoiceError: (err) => Effect.sync(() => {
104
+ console.error(chalk_1.default.red(constants_1.ICON.panic, 'AskForChoiceError:', err));
105
+ }),
106
+ AskForInputError: (err) => Effect.sync(() => {
107
+ console.error(chalk_1.default.red(constants_1.ICON.panic, 'AskForInputError:', err));
108
+ }),
109
+ }));
110
+ }
@@ -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 prompt_cli_1 = require("./prompt-cli");
36
+ const prompt_1 = require("./prompt");
13
37
  commander_1.program.description(' displays a series of prompts to fix mismatches which syncpack cannot fix automatically');
14
38
  commander_1.program.on('--help', () => {
15
39
  console.log((0, chalk_1.default) `
@@ -48,9 +72,9 @@ commander_1.program
48
72
  .option(...option_1.option.config)
49
73
  .option(...option_1.option.types)
50
74
  .parse(process.argv);
51
- (0, prompt_cli_1.promptCli)({
75
+ Effect.runPromise((0, prompt_1.prompt)({
52
76
  configPath: commander_1.program.opts().config,
53
77
  filter: commander_1.program.opts().filter,
54
78
  source: commander_1.program.opts().source,
55
79
  types: commander_1.program.opts().types,
56
- }, disk_1.disk);
80
+ }, 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 prompt(cli: Partial<CliConfig>, env: DefaultEnv): Effect.Effect<never, never, void | import("../get-context").Ctx>;
@@ -0,0 +1,42 @@
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.prompt = 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 types_1 = require("../config/types");
31
+ const versions_1 = require("../create-program/versions");
32
+ const create_env_1 = require("../env/create-env");
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");
37
+ const get_context_1 = require("../get-context");
38
+ const effects_1 = require("./effects");
39
+ function prompt(cli, env) {
40
+ return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, versions_1.createVersionsProgram)(ctx, effects_1.promptEffects)), Effect.flatMap(write_if_changed_1.writeIfChanged), 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)))));
41
+ }
42
+ exports.prompt = prompt;
@@ -0,0 +1,2 @@
1
+ import type { SemverRangeEffects } from '../create-program/effects';
2
+ export declare const setSemverRangesEffects: SemverRangeEffects;
@@ -0,0 +1,61 @@
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.setSemverRangesEffects = void 0;
30
+ const Effect = __importStar(require("@effect/io/Effect"));
31
+ const chalk_1 = __importDefault(require("chalk"));
32
+ const constants_1 = require("../constants");
33
+ exports.setSemverRangesEffects = {
34
+ FilteredOut() {
35
+ return Effect.unit();
36
+ },
37
+ Ignored() {
38
+ return Effect.unit();
39
+ },
40
+ Valid() {
41
+ return Effect.unit();
42
+ },
43
+ SemverRangeMismatch(input) {
44
+ return Effect.sync(() => setVersions(input));
45
+ },
46
+ UnsupportedVersion(input) {
47
+ return Effect.sync(() => logUnsupportedVersion(input));
48
+ },
49
+ WorkspaceSemverRangeMismatch(input) {
50
+ return Effect.sync(() => setVersions(input));
51
+ },
52
+ TearDown() {
53
+ return Effect.unit();
54
+ },
55
+ };
56
+ function setVersions({ report }) {
57
+ report.instance.setVersion(report.expectedVersion);
58
+ }
59
+ function logUnsupportedVersion({ report }) {
60
+ 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);
61
+ }
@@ -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 set_semver_ranges_cli_1 = require("./set-semver-ranges-cli");
36
+ const set_semver_ranges_1 = require("./set-semver-ranges");
13
37
  commander_1.program.description((0, chalk_1.default) `
14
38
  Ensure dependency versions within {yellow dependencies}, {yellow devDependencies},
15
39
  {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format.`.replace(/^\n/, ''));
@@ -66,11 +90,11 @@ commander_1.program
66
90
  .option(...option_1.option.types)
67
91
  .option(...option_1.option.indent)
68
92
  .parse(process.argv);
69
- (0, set_semver_ranges_cli_1.setSemverRangesCli)({
93
+ Effect.runSync((0, set_semver_ranges_1.setSemverRanges)({
70
94
  configPath: commander_1.program.opts().config,
71
95
  filter: commander_1.program.opts().filter,
72
96
  indent: commander_1.program.opts().indent,
73
97
  semverRange: commander_1.program.opts().semverRange,
74
98
  source: commander_1.program.opts().source,
75
99
  types: commander_1.program.opts().types,
76
- }, disk_1.disk);
100
+ }, default_env_1.defaultEnv));
@@ -1,2 +1,4 @@
1
- import type { Context } from '../get-context';
2
- export declare const setSemverRanges: (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 setSemverRanges(cli: Partial<CliConfig>, env: DefaultEnv): Effect.Effect<never, never, void | import("../get-context").Ctx>;
@@ -1,26 +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.setSemverRanges = void 0;
4
- const get_semver_groups_1 = require("../get-semver-groups");
5
- const setSemverRanges = (ctx) => {
6
- (0, get_semver_groups_1.getSemverGroups)(ctx).forEach((semverGroup) => {
7
- semverGroup.inspect().forEach((report) => {
8
- switch (report.status) {
9
- case 'WORKSPACE_SEMVER_RANGE_MISMATCH':
10
- case 'SEMVER_RANGE_MISMATCH': {
11
- report.instance.setVersion(report.expectedVersion);
12
- break;
13
- }
14
- case 'FILTERED_OUT':
15
- case 'IGNORED':
16
- case 'UNSUPPORTED_VERSION':
17
- case 'VALID': {
18
- // no action needed
19
- break;
20
- }
21
- }
22
- });
23
- });
24
- return ctx;
25
- };
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 semver_ranges_1 = require("../create-program/semver-ranges");
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 setSemverRanges(cli, env) {
41
+ return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, semver_ranges_1.createSemverRangesProgram)(ctx, effects_1.setSemverRangesEffects)), 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)))));
42
+ }
26
43
  exports.setSemverRanges = setSemverRanges;
@@ -1,4 +1,4 @@
1
- import type { Context } from '../get-context';
1
+ import type { Ctx } from '../get-context';
2
2
  import { NameAndVersionPropsStrategy } from '../strategy/name-and-version-props';
3
3
  import { NamedVersionStringStrategy } from '../strategy/named-version-string';
4
4
  import { UnnamedVersionStringStrategy } from '../strategy/unnamed-version-string';
@@ -6,4 +6,4 @@ import { VersionsByNameStrategy } from '../strategy/versions-by-name';
6
6
  export declare namespace Strategy {
7
7
  type Any = NameAndVersionPropsStrategy | NamedVersionStringStrategy | UnnamedVersionStringStrategy | VersionsByNameStrategy;
8
8
  }
9
- export declare function getCustomTypes({ rcFile }: Context['config']): Strategy.Any[];
9
+ export declare function getCustomTypes({ rcFile }: Ctx['config']): Strategy.Any[];
@@ -1,3 +1,13 @@
1
- import type { Context } from '../get-context';
1
+ import * as Data from '@effect/data/Data';
2
+ import * as Effect from '@effect/io/Effect';
3
+ import type { Ctx } from '../get-context';
2
4
  import type { Strategy } from './get-custom-types';
3
- export declare function getEnabledTypes({ cli, rcFile, }: Context['config']): Strategy.Any[];
5
+ declare const DeprecatedTypesError_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
6
+ _tag: "DeprecatedTypesError";
7
+ }>;
8
+ export declare class DeprecatedTypesError extends DeprecatedTypesError_base<{
9
+ readonly types: string[];
10
+ }> {
11
+ }
12
+ export declare function getEnabledTypes({ cli, rcFile, }: Ctx['config']): Effect.Effect<never, DeprecatedTypesError, Strategy.Any[]>;
13
+ export {};
@@ -1,12 +1,44 @@
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
- exports.getEnabledTypes = void 0;
26
+ exports.getEnabledTypes = exports.DeprecatedTypesError = void 0;
27
+ const Data = __importStar(require("@effect/data/Data"));
28
+ const Effect = __importStar(require("@effect/io/Effect"));
4
29
  const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
30
+ const is_boolean_1 = require("tightrope/guard/is-boolean");
5
31
  const is_empty_array_1 = require("tightrope/guard/is-empty-array");
6
32
  const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
33
+ const constants_1 = require("../constants");
7
34
  const name_and_version_props_1 = require("../strategy/name-and-version-props");
8
35
  const versions_by_name_1 = require("../strategy/versions-by-name");
9
36
  const get_custom_types_1 = require("./get-custom-types");
37
+ class DeprecatedTypesError extends Data.TaggedClass('DeprecatedTypesError') {
38
+ }
39
+ exports.DeprecatedTypesError = DeprecatedTypesError;
40
+ // @TODO accept `dependencyTypes: ['**']`
41
+ // @TODO support `dependencyTypes: ['!dev']`
10
42
  function getEnabledTypes({ cli, rcFile, }) {
11
43
  const enabledTypes = [];
12
44
  const enabledTypeNames = ((0, is_non_empty_string_1.isNonEmptyString)(cli.types)
@@ -14,9 +46,11 @@ function getEnabledTypes({ cli, rcFile, }) {
14
46
  : (0, is_array_of_strings_1.isArrayOfStrings)(rcFile.dependencyTypes)
15
47
  ? rcFile.dependencyTypes
16
48
  : []).filter(is_non_empty_string_1.isNonEmptyString);
17
- // @TODO accept `dependencyTypes: ['**']`
18
- // @TODO support `dependencyTypes: ['!dev']`
19
49
  const useDefaults = (0, is_empty_array_1.isEmptyArray)(enabledTypeNames);
50
+ const deprecatedTypes = constants_1.DEFAULT_CONFIG.dependencyTypes.filter((key) => (0, is_boolean_1.isBoolean)(rcFile[key]));
51
+ if (deprecatedTypes.length > 0) {
52
+ return Effect.fail(new DeprecatedTypesError({ types: deprecatedTypes }));
53
+ }
20
54
  if (useDefaults || enabledTypeNames.includes('dev')) {
21
55
  enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('dev', 'devDependencies'));
22
56
  }
@@ -43,6 +77,6 @@ function getEnabledTypes({ cli, rcFile, }) {
43
77
  enabledTypes.push(customType);
44
78
  }
45
79
  });
46
- return enabledTypes;
80
+ return Effect.succeed(enabledTypes);
47
81
  }
48
82
  exports.getEnabledTypes = getEnabledTypes;
@@ -1,2 +1,2 @@
1
- import type { Context } from '../get-context';
2
- export declare function getFilter({ cli, rcFile }: Context['config']): string;
1
+ import type { Ctx } from '../get-context';
2
+ export declare function getFilter({ cli, rcFile }: Ctx['config']): string;
@@ -1,2 +1,2 @@
1
- import type { Context } from '../get-context';
2
- export declare function getIndent({ cli, rcFile }: Context['config']): string;
1
+ import type { Ctx } from '../get-context';
2
+ export declare function getIndent({ cli, rcFile }: Ctx['config']): string;
@@ -1,3 +1,3 @@
1
- import type { Context } from '../get-context';
1
+ import type { Ctx } from '../get-context';
2
2
  import type { SemverRange } from './types';
3
- export declare function getSemverRange({ cli, rcFile, }: Context['config']): SemverRange;
3
+ export declare function getSemverRange({ cli, rcFile }: Ctx['config']): SemverRange;