syncpack 12.3.0 → 12.3.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 (206) hide show
  1. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +9 -9
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +43 -54
  3. package/dist/bin-fix-mismatches/index.js +26 -31
  4. package/dist/bin-format/format.d.ts +6 -6
  5. package/dist/bin-format/format.js +27 -32
  6. package/dist/bin-format/index.js +20 -25
  7. package/dist/bin-lint/index.js +15 -20
  8. package/dist/bin-lint/lint.d.ts +4 -4
  9. package/dist/bin-lint/lint.js +28 -35
  10. package/dist/bin-lint-semver-ranges/index.js +24 -29
  11. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +8 -8
  12. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +34 -44
  13. package/dist/bin-list/index.js +24 -29
  14. package/dist/bin-list/list.d.ts +7 -7
  15. package/dist/bin-list/list.js +55 -64
  16. package/dist/bin-list-mismatches/index.js +24 -29
  17. package/dist/bin-list-mismatches/list-mismatches.d.ts +10 -10
  18. package/dist/bin-list-mismatches/list-mismatches.js +62 -70
  19. package/dist/bin-prompt/index.js +26 -31
  20. package/dist/bin-prompt/prompt.d.ts +4 -4
  21. package/dist/bin-prompt/prompt.js +41 -48
  22. package/dist/bin-set-semver-ranges/index.js +26 -31
  23. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +4 -4
  24. package/dist/bin-set-semver-ranges/set-semver-ranges.js +26 -30
  25. package/dist/bin-update/effects.d.ts +18 -18
  26. package/dist/bin-update/effects.js +77 -106
  27. package/dist/bin-update/index.js +23 -28
  28. package/dist/bin-update/update.d.ts +5 -5
  29. package/dist/bin-update/update.js +37 -45
  30. package/dist/bin.js +8 -5
  31. package/dist/config/get-custom-types.d.ts +9 -9
  32. package/dist/config/get-custom-types.js +22 -27
  33. package/dist/config/get-enabled-types.d.ts +8 -8
  34. package/dist/config/get-enabled-types.js +42 -48
  35. package/dist/config/get-filter.d.ts +1 -1
  36. package/dist/config/get-filter.js +6 -10
  37. package/dist/config/get-indent.d.ts +1 -1
  38. package/dist/config/get-indent.js +6 -10
  39. package/dist/config/get-sort-az.d.ts +1 -1
  40. package/dist/config/get-sort-az.js +6 -10
  41. package/dist/config/get-sort-exports.d.ts +1 -1
  42. package/dist/config/get-sort-exports.js +6 -10
  43. package/dist/config/get-sort-first.d.ts +1 -1
  44. package/dist/config/get-sort-first.js +6 -10
  45. package/dist/config/get-source.d.ts +1 -1
  46. package/dist/config/get-source.js +4 -8
  47. package/dist/config/tag.d.ts +1 -1
  48. package/dist/config/tag.js +2 -5
  49. package/dist/config/types.d.ts +2 -5
  50. package/dist/config/types.js +1 -2
  51. package/dist/constants.js +7 -10
  52. package/dist/error-handlers/default-error-handlers.d.ts +10 -10
  53. package/dist/error-handlers/default-error-handlers.js +55 -61
  54. package/dist/get-context/index.d.ts +5 -5
  55. package/dist/get-context/index.js +13 -17
  56. package/dist/get-context/lib/key-by.js +1 -5
  57. package/dist/get-instances/index.d.ts +7 -7
  58. package/dist/get-instances/index.js +19 -23
  59. package/dist/get-instances/instance.d.ts +7 -7
  60. package/dist/get-instances/instance.js +4 -8
  61. package/dist/get-package-json-files/get-file-paths.d.ts +7 -7
  62. package/dist/get-package-json-files/get-file-paths.js +10 -15
  63. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +2 -2
  64. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +8 -12
  65. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +2 -2
  66. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +8 -12
  67. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +2 -2
  68. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +14 -18
  69. package/dist/get-package-json-files/get-patterns/index.d.ts +3 -3
  70. package/dist/get-package-json-files/get-patterns/index.js +11 -15
  71. package/dist/get-package-json-files/index.d.ts +8 -8
  72. package/dist/get-package-json-files/index.js +6 -10
  73. package/dist/get-package-json-files/package-json-file.d.ts +6 -6
  74. package/dist/get-package-json-files/package-json-file.js +8 -12
  75. package/dist/guards/can-add-to-group.d.ts +4 -4
  76. package/dist/guards/can-add-to-group.js +10 -14
  77. package/dist/guards/is-semver.js +3 -7
  78. package/dist/guards/is-valid-semver-range.d.ts +1 -1
  79. package/dist/guards/is-valid-semver-range.js +12 -16
  80. package/dist/index.d.ts +1 -1
  81. package/dist/index.js +1 -2
  82. package/dist/io/ask-for-choice.d.ts +5 -5
  83. package/dist/io/ask-for-choice.js +5 -9
  84. package/dist/io/ask-for-input.d.ts +5 -5
  85. package/dist/io/ask-for-input.js +5 -9
  86. package/dist/io/exit-if-invalid.d.ts +3 -3
  87. package/dist/io/exit-if-invalid.js +5 -9
  88. package/dist/io/glob-sync.d.ts +5 -5
  89. package/dist/io/glob-sync.js +4 -9
  90. package/dist/io/index.d.ts +8 -8
  91. package/dist/io/index.js +12 -38
  92. package/dist/io/read-config-file.d.ts +7 -0
  93. package/dist/io/read-config-file.js +22 -0
  94. package/dist/io/read-file-sync.d.ts +5 -5
  95. package/dist/io/read-file-sync.js +4 -9
  96. package/dist/io/read-json-file-sync.d.ts +8 -8
  97. package/dist/io/read-json-file-sync.js +10 -16
  98. package/dist/io/read-yaml-file-sync.d.ts +5 -5
  99. package/dist/io/read-yaml-file-sync.js +4 -8
  100. package/dist/io/to-json.d.ts +2 -2
  101. package/dist/io/to-json.js +8 -12
  102. package/dist/io/write-file-sync.d.ts +5 -5
  103. package/dist/io/write-file-sync.js +5 -10
  104. package/dist/io/write-if-changed.d.ts +4 -4
  105. package/dist/io/write-if-changed.js +9 -16
  106. package/dist/lib/format-repository-url.js +1 -5
  107. package/dist/lib/get-group-header.d.ts +2 -2
  108. package/dist/lib/get-group-header.js +4 -12
  109. package/dist/lib/get.d.ts +10 -10
  110. package/dist/lib/get.js +15 -19
  111. package/dist/lib/pad-start.js +1 -5
  112. package/dist/lib/ring-buffer.js +1 -5
  113. package/dist/lib/set-semver-range.d.ts +1 -1
  114. package/dist/lib/set-semver-range.js +8 -12
  115. package/dist/lib/show-help-on-error.js +3 -10
  116. package/dist/lib/sort-by-name.js +1 -5
  117. package/dist/lib/with-logger.d.ts +1 -1
  118. package/dist/lib/with-logger.js +17 -24
  119. package/dist/option.d.ts +1 -1
  120. package/dist/option.js +8 -14
  121. package/dist/report.d.ts +2 -2
  122. package/dist/report.js +2 -5
  123. package/dist/semver-group/create-semver-groups.d.ts +3 -3
  124. package/dist/semver-group/create-semver-groups.js +28 -32
  125. package/dist/semver-group/disabled.d.ts +11 -11
  126. package/dist/semver-group/disabled.js +6 -10
  127. package/dist/semver-group/filtered-out.d.ts +12 -12
  128. package/dist/semver-group/filtered-out.js +8 -12
  129. package/dist/semver-group/ignored.d.ts +11 -11
  130. package/dist/semver-group/ignored.js +6 -10
  131. package/dist/semver-group/index.d.ts +6 -7
  132. package/dist/semver-group/index.js +4 -7
  133. package/dist/semver-group/with-range.d.ts +11 -11
  134. package/dist/semver-group/with-range.js +13 -17
  135. package/dist/specifier/alias.d.ts +5 -5
  136. package/dist/specifier/alias.js +9 -13
  137. package/dist/specifier/base.d.ts +7 -7
  138. package/dist/specifier/base.js +9 -13
  139. package/dist/specifier/delete.d.ts +5 -5
  140. package/dist/specifier/delete.js +5 -9
  141. package/dist/specifier/exact.d.ts +6 -6
  142. package/dist/specifier/exact.js +7 -11
  143. package/dist/specifier/file.d.ts +1 -1
  144. package/dist/specifier/file.js +2 -6
  145. package/dist/specifier/hosted-git.d.ts +5 -5
  146. package/dist/specifier/hosted-git.js +9 -13
  147. package/dist/specifier/index.d.ts +13 -13
  148. package/dist/specifier/index.js +28 -31
  149. package/dist/specifier/latest.d.ts +6 -6
  150. package/dist/specifier/latest.js +7 -11
  151. package/dist/specifier/lib/non-semver-error.d.ts +5 -5
  152. package/dist/specifier/lib/non-semver-error.js +3 -7
  153. package/dist/specifier/lib/parse-specifier.d.ts +1 -1
  154. package/dist/specifier/lib/parse-specifier.js +4 -11
  155. package/dist/specifier/lib/specific-registry-result.js +1 -2
  156. package/dist/specifier/range.d.ts +6 -6
  157. package/dist/specifier/range.js +7 -11
  158. package/dist/specifier/tag.d.ts +2 -2
  159. package/dist/specifier/tag.js +2 -6
  160. package/dist/specifier/unsupported.d.ts +1 -1
  161. package/dist/specifier/unsupported.js +2 -6
  162. package/dist/specifier/url.d.ts +1 -1
  163. package/dist/specifier/url.js +2 -6
  164. package/dist/specifier/workspace-protocol.d.ts +7 -7
  165. package/dist/specifier/workspace-protocol.js +9 -13
  166. package/dist/strategy/lib/get-non-empty-string-prop.d.ts +2 -2
  167. package/dist/strategy/lib/get-non-empty-string-prop.js +6 -10
  168. package/dist/strategy/name-and-version-props.d.ts +4 -4
  169. package/dist/strategy/name-and-version-props.js +19 -23
  170. package/dist/strategy/named-version-string.d.ts +4 -4
  171. package/dist/strategy/named-version-string.js +20 -24
  172. package/dist/strategy/unnamed-version-string.d.ts +4 -4
  173. package/dist/strategy/unnamed-version-string.js +17 -21
  174. package/dist/strategy/versions-by-name.d.ts +4 -4
  175. package/dist/strategy/versions-by-name.js +11 -15
  176. package/dist/version-group/banned.d.ts +7 -7
  177. package/dist/version-group/banned.js +8 -12
  178. package/dist/version-group/create-version-groups.d.ts +3 -3
  179. package/dist/version-group/create-version-groups.js +34 -38
  180. package/dist/version-group/filtered-out.d.ts +8 -8
  181. package/dist/version-group/filtered-out.js +8 -12
  182. package/dist/version-group/ignored.d.ts +7 -7
  183. package/dist/version-group/ignored.js +6 -10
  184. package/dist/version-group/index.d.ts +9 -10
  185. package/dist/version-group/index.js +4 -7
  186. package/dist/version-group/lib/clean.js +4 -11
  187. package/dist/version-group/lib/delete.js +1 -4
  188. package/dist/version-group/lib/get-highest-version.d.ts +2 -2
  189. package/dist/version-group/lib/get-highest-version.js +3 -7
  190. package/dist/version-group/lib/get-lowest-version.d.ts +2 -2
  191. package/dist/version-group/lib/get-lowest-version.js +3 -7
  192. package/dist/version-group/lib/get-preferred-version.d.ts +4 -4
  193. package/dist/version-group/lib/get-preferred-version.js +17 -24
  194. package/dist/version-group/lib/get-range-score.js +13 -17
  195. package/dist/version-group/lib/group-by.js +1 -5
  196. package/dist/version-group/pinned.d.ts +7 -7
  197. package/dist/version-group/pinned.js +8 -12
  198. package/dist/version-group/same-range.d.ts +8 -8
  199. package/dist/version-group/same-range.js +23 -30
  200. package/dist/version-group/snapped-to.d.ts +7 -7
  201. package/dist/version-group/snapped-to.js +20 -24
  202. package/dist/version-group/standard.d.ts +7 -7
  203. package/dist/version-group/standard.js +29 -33
  204. package/package.json +30 -37
  205. package/dist/io/read-config-file-sync.d.ts +0 -7
  206. package/dist/io/read-config-file-sync.js +0 -26
@@ -1,16 +1,16 @@
1
1
  import { Effect } from 'effect';
2
- import { type CliConfig } from '../config/types';
3
- import type { ErrorHandlers } from '../error-handlers/default-error-handlers';
4
- import type { Io } from '../io';
5
- import type { Report } from '../report';
2
+ import { type CliConfig } from '../config/types.js';
3
+ import type { ErrorHandlers } from '../error-handlers/default-error-handlers.js';
4
+ import type { Io } from '../io/index.js';
5
+ import type { Report } from '../report.js';
6
6
  interface Input {
7
7
  io: Io;
8
8
  cli: Partial<CliConfig>;
9
9
  errorHandlers?: ErrorHandlers;
10
10
  }
11
- export declare function fixMismatches({ io, cli, errorHandlers }: Input): Effect.Effect<never, never, unknown>;
12
- export declare function fixMismatch(report: Report.Version.Fixable.Any): Effect.Effect<never, never, import("../get-package-json-files/package-json-file").PackageJsonFile>;
13
- export declare function logAlreadyValidSize(amount: number): Effect.Effect<never, never, void>;
14
- export declare function logFixedSize(amount: number): Effect.Effect<never, never, void>;
15
- export declare function logUnfixableSize(amount: number): Effect.Effect<never, never, void>;
11
+ export declare function fixMismatches({ io, cli, errorHandlers }: Input): Effect.Effect<unknown, never, never>;
12
+ export declare function fixMismatch(report: Report.Version.Fixable.Any): Effect.Effect<import("../get-package-json-files/package-json-file.js").PackageJsonFile, never, never>;
13
+ export declare function logAlreadyValidSize(amount: number): Effect.Effect<void, never, never>;
14
+ export declare function logFixedSize(amount: number): Effect.Effect<void, never, never>;
15
+ export declare function logUnfixableSize(amount: number): Effect.Effect<void, never, never>;
16
16
  export {};
@@ -1,30 +1,24 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logUnfixableSize = exports.logFixedSize = exports.logAlreadyValidSize = exports.fixMismatch = exports.fixMismatches = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const effect_1 = require("effect");
9
- const is_object_1 = require("tightrope/guard/is-object");
10
- const is_undefined_1 = require("tightrope/guard/is-undefined");
11
- const lint_semver_ranges_1 = require("../bin-lint-semver-ranges/lint-semver-ranges");
12
- const list_mismatches_1 = require("../bin-list-mismatches/list-mismatches");
13
- const tag_1 = require("../config/tag");
14
- const constants_1 = require("../constants");
15
- const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
16
- const get_context_1 = require("../get-context");
17
- const get_instances_1 = require("../get-instances");
18
- const io_1 = require("../io");
19
- const exit_if_invalid_1 = require("../io/exit-if-invalid");
20
- const write_if_changed_1 = require("../io/write-if-changed");
21
- const get_group_header_1 = require("../lib/get-group-header");
22
- const pad_start_1 = require("../lib/pad-start");
23
- const with_logger_1 = require("../lib/with-logger");
24
- const delete_1 = require("../version-group/lib/delete");
25
- function fixMismatches({ io, cli, errorHandlers = default_error_handlers_1.defaultErrorHandlers }) {
26
- return (0, effect_1.pipe)((0, get_context_1.getContext)({ io, cli, errorHandlers }), effect_1.Effect.flatMap((ctx) => (0, effect_1.pipe)(effect_1.Effect.gen(function* ($) {
27
- const { versionGroups } = yield* $((0, get_instances_1.getInstances)(ctx, io, errorHandlers));
1
+ import chalk from 'chalk-template';
2
+ import { Context, Effect, flow, pipe } from 'effect';
3
+ import { isObject } from 'tightrope/guard/is-object.js';
4
+ import { isUndefined } from 'tightrope/guard/is-undefined.js';
5
+ import { logIgnoredSize } from '../bin-lint-semver-ranges/lint-semver-ranges.js';
6
+ import { logMissingLocalVersion, logMissingSnappedToMismatch, logSameRangeMismatch, logUnsupportedMismatch, } from '../bin-list-mismatches/list-mismatches.js';
7
+ import { CliConfigTag } from '../config/tag.js';
8
+ import { ICON } from '../constants.js';
9
+ import { defaultErrorHandlers } from '../error-handlers/default-error-handlers.js';
10
+ import { getContext } from '../get-context/index.js';
11
+ import { getInstances } from '../get-instances/index.js';
12
+ import { exitIfInvalid } from '../io/exit-if-invalid.js';
13
+ import { IoTag } from '../io/index.js';
14
+ import { writeIfChanged } from '../io/write-if-changed.js';
15
+ import { getVersionGroupHeader } from '../lib/get-group-header.js';
16
+ import { padStart } from '../lib/pad-start.js';
17
+ import { withLogger } from '../lib/with-logger.js';
18
+ import { DELETE } from '../version-group/lib/delete.js';
19
+ export function fixMismatches({ io, cli, errorHandlers = defaultErrorHandlers }) {
20
+ return pipe(getContext({ io, cli, errorHandlers }), Effect.flatMap((ctx) => pipe(Effect.gen(function* ($) {
21
+ const { versionGroups } = yield* $(getInstances(ctx, io, errorHandlers));
28
22
  let index = 0;
29
23
  for (const group of versionGroups) {
30
24
  const groupSize = group.instances.length;
@@ -35,9 +29,9 @@ function fixMismatches({ io, cli, errorHandlers = default_error_handlers_1.defau
35
29
  index++;
36
30
  continue;
37
31
  }
38
- yield* $(effect_1.Effect.logInfo((0, get_group_header_1.getVersionGroupHeader)({ group, index })));
32
+ yield* $(Effect.logInfo(getVersionGroupHeader({ group, index })));
39
33
  if (group._tag === 'Ignored') {
40
- yield* $((0, lint_semver_ranges_1.logIgnoredSize)(groupSize));
34
+ yield* $(logIgnoredSize(groupSize));
41
35
  index++;
42
36
  continue;
43
37
  }
@@ -55,16 +49,16 @@ function fixMismatches({ io, cli, errorHandlers = default_error_handlers_1.defau
55
49
  unfixableCount++;
56
50
  }
57
51
  if (report._tag === 'MissingLocalVersion') {
58
- yield* $((0, list_mismatches_1.logMissingLocalVersion)(report));
52
+ yield* $(logMissingLocalVersion(report));
59
53
  }
60
54
  else if (report._tag === 'MissingSnappedToMismatch') {
61
- yield* $((0, list_mismatches_1.logMissingSnappedToMismatch)(report));
55
+ yield* $(logMissingSnappedToMismatch(report));
62
56
  }
63
57
  else if (report._tag === 'UnsupportedMismatch') {
64
- yield* $((0, list_mismatches_1.logUnsupportedMismatch)(report));
58
+ yield* $(logUnsupportedMismatch(report));
65
59
  }
66
60
  else if (report._tag === 'SameRangeMismatch') {
67
- yield* $((0, list_mismatches_1.logSameRangeMismatch)(report));
61
+ yield* $(logSameRangeMismatch(report));
68
62
  }
69
63
  }
70
64
  }
@@ -78,44 +72,39 @@ function fixMismatches({ io, cli, errorHandlers = default_error_handlers_1.defau
78
72
  }
79
73
  yield* $(removeEmptyObjects(ctx));
80
74
  return ctx;
81
- }), effect_1.Effect.flatMap(write_if_changed_1.writeIfChanged), effect_1.Effect.catchTags({
82
- WriteFileError: (0, effect_1.flow)(errorHandlers.WriteFileError, effect_1.Effect.map(() => {
75
+ }), Effect.flatMap(writeIfChanged), Effect.catchTags({
76
+ WriteFileError: flow(errorHandlers.WriteFileError, Effect.map(() => {
83
77
  ctx.isInvalid = true;
84
78
  return ctx;
85
79
  })),
86
- }), effect_1.Effect.flatMap(exit_if_invalid_1.exitIfInvalid))), effect_1.Effect.provide((0, effect_1.pipe)(effect_1.Context.empty(), effect_1.Context.add(tag_1.CliConfigTag, cli), effect_1.Context.add(io_1.IoTag, io))), with_logger_1.withLogger);
80
+ }), Effect.flatMap(exitIfInvalid))), Effect.provide(pipe(Context.empty(), Context.add(CliConfigTag, cli), Context.add(IoTag, io))), withLogger);
87
81
  }
88
- exports.fixMismatches = fixMismatches;
89
- function fixMismatch(report) {
90
- return report.fixable.instance.write(report._tag === 'Banned' ? delete_1.DELETE : report.fixable.raw);
82
+ export function fixMismatch(report) {
83
+ return report.fixable.instance.write(report._tag === 'Banned' ? DELETE : report.fixable.raw);
91
84
  }
92
- exports.fixMismatch = fixMismatch;
93
85
  /** Remove empty objects such as `{"dependencies": {}}` left after deleting */
94
86
  function removeEmptyObjects(ctx) {
95
- return effect_1.Effect.sync(() => {
87
+ return Effect.sync(() => {
96
88
  ctx.packageJsonFiles.forEach((file) => {
97
89
  const contents = file.jsonFile.contents;
98
90
  Object.keys(contents).forEach((key) => {
99
91
  const value = contents[key];
100
- if ((0, is_object_1.isObject)(value) && Object.values(value).every(is_undefined_1.isUndefined)) {
92
+ if (isObject(value) && value && Object.values(value).every(isUndefined)) {
101
93
  delete contents[key];
102
94
  }
103
95
  });
104
96
  });
105
97
  });
106
98
  }
107
- function logAlreadyValidSize(amount) {
108
- const msg = (0, chalk_1.default) `${(0, pad_start_1.padStart)(amount)} {green ${constants_1.ICON.tick}} already valid`;
109
- return effect_1.Effect.logInfo(msg);
99
+ export function logAlreadyValidSize(amount) {
100
+ const msg = chalk `${padStart(amount)} {green ${ICON.tick}} already valid`;
101
+ return Effect.logInfo(msg);
110
102
  }
111
- exports.logAlreadyValidSize = logAlreadyValidSize;
112
- function logFixedSize(amount) {
113
- const msg = (0, chalk_1.default) `${(0, pad_start_1.padStart)(amount)} {green ${constants_1.ICON.tick}} fixed`;
114
- return effect_1.Effect.logInfo(msg);
103
+ export function logFixedSize(amount) {
104
+ const msg = chalk `${padStart(amount)} {green ${ICON.tick}} fixed`;
105
+ return Effect.logInfo(msg);
115
106
  }
116
- exports.logFixedSize = logFixedSize;
117
- function logUnfixableSize(amount) {
118
- const msg = (0, chalk_1.default) `{red ${(0, pad_start_1.padStart)(amount)} ${constants_1.ICON.panic} can be fixed manually using} {blue syncpack prompt}`;
119
- return effect_1.Effect.logInfo(msg);
107
+ export function logUnfixableSize(amount) {
108
+ const msg = chalk `{red ${padStart(amount)} ${ICON.panic} can be fixed manually using} {blue syncpack prompt}`;
109
+ return Effect.logInfo(msg);
120
110
  }
121
- exports.logUnfixableSize = logUnfixableSize;
@@ -1,22 +1,17 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const commander_1 = require("commander");
9
- const effect_1 = require("effect");
10
- const io_1 = require("../io");
11
- const show_help_on_error_1 = require("../lib/show-help-on-error");
12
- const option_1 = require("../option");
13
- const fix_mismatches_1 = require("./fix-mismatches");
14
- commander_1.program.description((0, chalk_1.default) `
2
+ import chalk from 'chalk-template';
3
+ import { program } from 'commander';
4
+ import { Effect } from 'effect';
5
+ import { io } from '../io/index.js';
6
+ import { showHelpOnError } from '../lib/show-help-on-error.js';
7
+ import { option } from '../option.js';
8
+ import { fixMismatches } from './fix-mismatches.js';
9
+ program.description(chalk `
15
10
  Ensure that multiple packages requiring the same dependency define the same
16
11
  version, so that every package requires eg. {yellow react@16.4.2}, instead of a
17
12
  combination of {yellow react@16.4.2}, {yellow react@0.15.9}, and {yellow react@16.0.0}.`.replace(/^\n/, ''));
18
- commander_1.program.on('--help', () => {
19
- console.log((0, chalk_1.default) `
13
+ program.on('--help', () => {
14
+ console.log(chalk `
20
15
  Resolving Packages:
21
16
  1. If {yellow --source} globs are provided, use those.
22
17
  2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.
@@ -47,23 +42,23 @@ Reference:
47
42
  Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}
48
43
  `);
49
44
  });
50
- (0, show_help_on_error_1.showHelpOnError)(commander_1.program);
51
- commander_1.program
52
- .option(...option_1.option.source)
53
- .option(...option_1.option.filter)
54
- .option(...option_1.option.specs)
55
- .option(...option_1.option.types)
56
- .option(...option_1.option.config)
57
- .option(...option_1.option.indent)
45
+ showHelpOnError(program);
46
+ program
47
+ .option(...option.source)
48
+ .option(...option.filter)
49
+ .option(...option.specs)
50
+ .option(...option.types)
51
+ .option(...option.config)
52
+ .option(...option.indent)
58
53
  .parse(process.argv);
59
- effect_1.Effect.runPromise((0, fix_mismatches_1.fixMismatches)({
60
- io: io_1.io,
54
+ Effect.runPromise(fixMismatches({
55
+ io,
61
56
  cli: {
62
- configPath: commander_1.program.opts().config,
63
- filter: commander_1.program.opts().filter,
64
- indent: commander_1.program.opts().indent,
65
- source: commander_1.program.opts().source,
66
- specs: commander_1.program.opts().specs,
67
- types: commander_1.program.opts().types,
57
+ configPath: program.opts().config,
58
+ filter: program.opts().filter,
59
+ indent: program.opts().indent,
60
+ source: program.opts().source,
61
+ specs: program.opts().specs,
62
+ types: program.opts().types,
68
63
  },
69
64
  }));
@@ -1,13 +1,13 @@
1
1
  import { Effect } from 'effect';
2
- import { type CliConfig } from '../config/types';
3
- import type { ErrorHandlers } from '../error-handlers/default-error-handlers';
4
- import type { Ctx } from '../get-context';
5
- import type { Io } from '../io';
2
+ import { type CliConfig } from '../config/types.js';
3
+ import type { ErrorHandlers } from '../error-handlers/default-error-handlers.js';
4
+ import type { Ctx } from '../get-context/index.js';
5
+ import type { Io } from '../io/index.js';
6
6
  interface Input {
7
7
  io: Io;
8
8
  cli: Partial<CliConfig>;
9
9
  errorHandlers?: ErrorHandlers;
10
10
  }
11
- export declare function format({ io, cli, errorHandlers }: Input): Effect.Effect<never, never, unknown>;
12
- export declare function pipeline(ctx: Ctx): Effect.Effect<never, never, Ctx>;
11
+ export declare function format({ io, cli, errorHandlers }: Input): Effect.Effect<unknown, never, never>;
12
+ export declare function pipeline(ctx: Ctx): Effect.Effect<Ctx>;
13
13
  export {};
@@ -1,34 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pipeline = exports.format = void 0;
4
- const effect_1 = require("effect");
5
- const is_array_1 = require("tightrope/guard/is-array");
6
- const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
7
- const is_object_1 = require("tightrope/guard/is-object");
8
- const get_sort_az_1 = require("../config/get-sort-az");
9
- const get_sort_exports_1 = require("../config/get-sort-exports");
10
- const get_sort_first_1 = require("../config/get-sort-first");
11
- const tag_1 = require("../config/tag");
12
- const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
13
- const get_context_1 = require("../get-context");
14
- const io_1 = require("../io");
15
- const exit_if_invalid_1 = require("../io/exit-if-invalid");
16
- const write_if_changed_1 = require("../io/write-if-changed");
17
- const with_logger_1 = require("../lib/with-logger");
18
- function format({ io, cli, errorHandlers = default_error_handlers_1.defaultErrorHandlers }) {
19
- return (0, effect_1.pipe)((0, get_context_1.getContext)({ io, cli, errorHandlers }), effect_1.Effect.flatMap(pipeline), effect_1.Effect.flatMap((ctx) => (0, effect_1.pipe)((0, write_if_changed_1.writeIfChanged)(ctx), effect_1.Effect.catchTags({
20
- WriteFileError: (0, effect_1.flow)(errorHandlers.WriteFileError, effect_1.Effect.map(() => {
1
+ import { Context, Effect, flow, pipe } from 'effect';
2
+ import { isArray } from 'tightrope/guard/is-array.js';
3
+ import { isNonEmptyString } from 'tightrope/guard/is-non-empty-string.js';
4
+ import { isObject } from 'tightrope/guard/is-object.js';
5
+ import { getSortAz } from '../config/get-sort-az.js';
6
+ import { getSortExports } from '../config/get-sort-exports.js';
7
+ import { getSortFirst } from '../config/get-sort-first.js';
8
+ import { CliConfigTag } from '../config/tag.js';
9
+ import { defaultErrorHandlers } from '../error-handlers/default-error-handlers.js';
10
+ import { getContext } from '../get-context/index.js';
11
+ import { exitIfInvalid } from '../io/exit-if-invalid.js';
12
+ import { IoTag } from '../io/index.js';
13
+ import { writeIfChanged } from '../io/write-if-changed.js';
14
+ import { withLogger } from '../lib/with-logger.js';
15
+ export function format({ io, cli, errorHandlers = defaultErrorHandlers }) {
16
+ return pipe(getContext({ io, cli, errorHandlers }), Effect.flatMap(pipeline), Effect.flatMap((ctx) => pipe(writeIfChanged(ctx), Effect.catchTags({
17
+ WriteFileError: flow(errorHandlers.WriteFileError, Effect.map(() => {
21
18
  ctx.isInvalid = true;
22
19
  return ctx;
23
20
  })),
24
- }))), effect_1.Effect.flatMap(exit_if_invalid_1.exitIfInvalid), effect_1.Effect.provide((0, effect_1.pipe)(effect_1.Context.empty(), effect_1.Context.add(tag_1.CliConfigTag, cli), effect_1.Context.add(io_1.IoTag, io))), with_logger_1.withLogger);
21
+ }))), Effect.flatMap(exitIfInvalid), Effect.provide(pipe(Context.empty(), Context.add(CliConfigTag, cli), Context.add(IoTag, io))), withLogger);
25
22
  }
26
- exports.format = format;
27
- function pipeline(ctx) {
23
+ export function pipeline(ctx) {
28
24
  const { config, packageJsonFiles } = ctx;
29
- const sortAz = (0, get_sort_az_1.getSortAz)(config);
30
- const sortExports = (0, get_sort_exports_1.getSortExports)(config);
31
- const sortFirst = (0, get_sort_first_1.getSortFirst)(config);
25
+ const sortAz = getSortAz(config);
26
+ const sortExports = getSortExports(config);
27
+ const sortFirst = getSortFirst(config);
32
28
  const sortPackages = config.rcFile.sortPackages !== false;
33
29
  const formatBugs = config.rcFile.formatBugs !== false;
34
30
  const formatRepository = config.rcFile.formatRepository !== false;
@@ -44,7 +40,7 @@ function pipeline(ctx) {
44
40
  if (formatRepository) {
45
41
  const repoUrl = chain?.repository?.url;
46
42
  const repoDir = chain?.repository?.directory;
47
- if ((0, is_non_empty_string_1.isNonEmptyString)(repoUrl) && !(0, is_non_empty_string_1.isNonEmptyString)(repoDir)) {
43
+ if (isNonEmptyString(repoUrl) && !isNonEmptyString(repoDir)) {
48
44
  contents.repository = repoUrl.includes('github.com')
49
45
  ? repoUrl.replace(/^.+github\.com\//, '')
50
46
  : repoUrl;
@@ -66,11 +62,10 @@ function pipeline(ctx) {
66
62
  sortObject(sortedKeys, contents);
67
63
  }
68
64
  });
69
- return effect_1.Effect.succeed(ctx);
65
+ return Effect.succeed(ctx);
70
66
  }
71
- exports.pipeline = pipeline;
72
67
  function visitExports(sortExports, value) {
73
- if ((0, is_object_1.isObject)(value)) {
68
+ if (isObject(value)) {
74
69
  const otherKeys = Object.keys(value);
75
70
  const sortedKeys = new Set([...sortExports, ...otherKeys]);
76
71
  sortObject(sortedKeys, value);
@@ -85,10 +80,10 @@ function sortObject(sortedKeys, obj) {
85
80
  });
86
81
  }
87
82
  function sortAlphabetically(value) {
88
- if ((0, is_array_1.isArray)(value)) {
83
+ if (isArray(value)) {
89
84
  value.sort();
90
85
  }
91
- else if ((0, is_object_1.isObject)(value)) {
86
+ else if (isObject(value)) {
92
87
  sortObject(Object.keys(value).sort(), value);
93
88
  }
94
89
  }
@@ -1,23 +1,18 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const commander_1 = require("commander");
9
- const effect_1 = require("effect");
10
- const io_1 = require("../io");
11
- const show_help_on_error_1 = require("../lib/show-help-on-error");
12
- const option_1 = require("../option");
13
- const format_1 = require("./format");
14
- commander_1.program.description((0, chalk_1.default) `
2
+ import chalk from 'chalk-template';
3
+ import { program } from 'commander';
4
+ import { Effect } from 'effect';
5
+ import { io } from '../io/index.js';
6
+ import { showHelpOnError } from '../lib/show-help-on-error.js';
7
+ import { option } from '../option.js';
8
+ import { format } from './format.js';
9
+ program.description(chalk `
15
10
  Organise package.json files according to a conventional format, where fields
16
11
  appear in a predictable order and nested fields are ordered alphabetically.
17
12
  Shorthand properties are used where available, such as the {yellow repository} and
18
13
  {yellow bugs} fields.`.replace(/^\n/, ''));
19
- commander_1.program.on('--help', () => {
20
- console.log((0, chalk_1.default) `
14
+ program.on('--help', () => {
15
+ console.log(chalk `
21
16
  Examples:
22
17
  {dim # uses defaults for resolving packages}
23
18
  syncpack format
@@ -42,17 +37,17 @@ Reference:
42
37
  Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}
43
38
  `);
44
39
  });
45
- (0, show_help_on_error_1.showHelpOnError)(commander_1.program);
46
- commander_1.program
47
- .option(...option_1.option.source)
48
- .option(...option_1.option.config)
49
- .option(...option_1.option.indent)
40
+ showHelpOnError(program);
41
+ program
42
+ .option(...option.source)
43
+ .option(...option.config)
44
+ .option(...option.indent)
50
45
  .parse(process.argv);
51
- effect_1.Effect.runPromise((0, format_1.format)({
52
- io: io_1.io,
46
+ Effect.runPromise(format({
47
+ io,
53
48
  cli: {
54
- configPath: commander_1.program.opts().config,
55
- indent: commander_1.program.opts().indent,
56
- source: commander_1.program.opts().source,
49
+ configPath: program.opts().config,
50
+ indent: program.opts().indent,
51
+ source: program.opts().source,
57
52
  },
58
53
  }));
@@ -1,19 +1,14 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const commander_1 = require("commander");
9
- const effect_1 = require("effect");
10
- const io_1 = require("../io");
11
- const show_help_on_error_1 = require("../lib/show-help-on-error");
12
- const option_1 = require("../option");
13
- const lint_1 = require("./lint");
14
- commander_1.program.description(' lint all versions and ranges');
15
- commander_1.program.on('--help', () => {
16
- console.log((0, chalk_1.default) `
2
+ import chalk from 'chalk-template';
3
+ import { program } from 'commander';
4
+ import { Effect } from 'effect';
5
+ import { io } from '../io/index.js';
6
+ import { showHelpOnError } from '../lib/show-help-on-error.js';
7
+ import { option } from '../option.js';
8
+ import { lint } from './lint.js';
9
+ program.description(' lint all versions and ranges');
10
+ program.on('--help', () => {
11
+ console.log(chalk `
17
12
  Examples:
18
13
  {dim # uses config file for resolving packages}
19
14
  syncpack lint
@@ -33,11 +28,11 @@ Reference:
33
28
  Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}
34
29
  `);
35
30
  });
36
- (0, show_help_on_error_1.showHelpOnError)(commander_1.program);
37
- commander_1.program.option(...option_1.option.config).parse(process.argv);
38
- effect_1.Effect.runPromise((0, lint_1.lint)({
39
- io: io_1.io,
31
+ showHelpOnError(program);
32
+ program.option(...option.config).parse(process.argv);
33
+ Effect.runPromise(lint({
34
+ io,
40
35
  cli: {
41
- configPath: commander_1.program.opts().config,
36
+ configPath: program.opts().config,
42
37
  },
43
38
  }));
@@ -1,11 +1,11 @@
1
1
  import { Effect } from 'effect';
2
- import { type CliConfig } from '../config/types';
3
- import type { ErrorHandlers } from '../error-handlers/default-error-handlers';
4
- import type { Io } from '../io';
2
+ import { type CliConfig } from '../config/types.js';
3
+ import type { ErrorHandlers } from '../error-handlers/default-error-handlers.js';
4
+ import type { Io } from '../io/index.js';
5
5
  interface Input {
6
6
  io: Io;
7
7
  cli: Partial<CliConfig>;
8
8
  errorHandlers?: ErrorHandlers;
9
9
  }
10
- export declare function lint({ io, cli, errorHandlers }: Input): Effect.Effect<never, never, unknown>;
10
+ export declare function lint({ io, cli, errorHandlers }: Input): Effect.Effect<unknown, never, never>;
11
11
  export {};
@@ -1,59 +1,52 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.lint = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const effect_1 = require("effect");
9
- const format_1 = require("../bin-format/format");
10
- const lint_semver_ranges_1 = require("../bin-lint-semver-ranges/lint-semver-ranges");
11
- const list_mismatches_1 = require("../bin-list-mismatches/list-mismatches");
12
- const tag_1 = require("../config/tag");
13
- const constants_1 = require("../constants");
14
- const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
15
- const get_context_1 = require("../get-context");
16
- const io_1 = require("../io");
17
- const exit_if_invalid_1 = require("../io/exit-if-invalid");
18
- const to_json_1 = require("../io/to-json");
19
- const with_logger_1 = require("../lib/with-logger");
20
- function lint({ io, cli, errorHandlers = default_error_handlers_1.defaultErrorHandlers }) {
21
- return (0, effect_1.pipe)((0, get_context_1.getContext)({ io, cli, errorHandlers }),
1
+ import chalk from 'chalk-template';
2
+ import { Context, Effect, pipe } from 'effect';
3
+ import { pipeline as format } from '../bin-format/format.js';
4
+ import { pipeline as lintSemverRanges } from '../bin-lint-semver-ranges/lint-semver-ranges.js';
5
+ import { pipeline as listMismatches } from '../bin-list-mismatches/list-mismatches.js';
6
+ import { CliConfigTag } from '../config/tag.js';
7
+ import { ICON } from '../constants.js';
8
+ import { defaultErrorHandlers } from '../error-handlers/default-error-handlers.js';
9
+ import { getContext } from '../get-context/index.js';
10
+ import { exitIfInvalid } from '../io/exit-if-invalid.js';
11
+ import { IoTag } from '../io/index.js';
12
+ import { toJson } from '../io/to-json.js';
13
+ import { withLogger } from '../lib/with-logger.js';
14
+ export function lint({ io, cli, errorHandlers = defaultErrorHandlers }) {
15
+ return pipe(getContext({ io, cli, errorHandlers }),
22
16
  // Versions
23
- effect_1.Effect.flatMap((ctx) => effect_1.Effect.gen(function* ($) {
17
+ Effect.flatMap((ctx) => Effect.gen(function* ($) {
24
18
  if (ctx.config.rcFile.lintVersions !== false) {
25
- yield* $(effect_1.Effect.logInfo((0, chalk_1.default) `{yellow Versions}`));
26
- yield* $((0, list_mismatches_1.pipeline)(ctx, io, errorHandlers));
19
+ yield* $(Effect.logInfo(chalk `{yellow Versions}`));
20
+ yield* $(listMismatches(ctx, io, errorHandlers));
27
21
  }
28
22
  return ctx;
29
23
  })),
30
24
  // Semver Ranges
31
- effect_1.Effect.flatMap((ctx) => effect_1.Effect.gen(function* ($) {
25
+ Effect.flatMap((ctx) => Effect.gen(function* ($) {
32
26
  if (ctx.config.rcFile.lintSemverRanges !== false) {
33
- yield* $(effect_1.Effect.logInfo((0, chalk_1.default) `{yellow Semver Ranges}`));
34
- yield* $((0, lint_semver_ranges_1.pipeline)(ctx, io, errorHandlers));
27
+ yield* $(Effect.logInfo(chalk `{yellow Semver Ranges}`));
28
+ yield* $(lintSemverRanges(ctx, io, errorHandlers));
35
29
  }
36
30
  return ctx;
37
31
  })),
38
32
  // Formatting
39
- effect_1.Effect.flatMap((ctx) => effect_1.Effect.gen(function* ($) {
33
+ Effect.flatMap((ctx) => Effect.gen(function* ($) {
40
34
  if (ctx.config.rcFile.lintFormatting !== false) {
41
- yield* $(effect_1.Effect.logInfo((0, chalk_1.default) `{yellow Formatting}`));
42
- yield* $((0, format_1.pipeline)(ctx));
35
+ yield* $(Effect.logInfo(chalk `{yellow Formatting}`));
36
+ yield* $(format(ctx));
43
37
  for (const file of ctx.packageJsonFiles) {
44
- const nextJson = (0, to_json_1.toJson)(ctx, file);
38
+ const nextJson = toJson(ctx, file);
45
39
  const hasChanged = file.jsonFile.json !== nextJson;
46
40
  const shortPath = file.jsonFile.shortPath;
47
41
  if (hasChanged) {
48
42
  ctx.isInvalid = true;
49
- yield* $(effect_1.Effect.logInfo((0, chalk_1.default) `{red ${constants_1.ICON.cross}} ${shortPath}`));
43
+ yield* $(Effect.logInfo(chalk `{red ${ICON.cross}} ${shortPath}`));
50
44
  }
51
45
  else {
52
- yield* $(effect_1.Effect.logInfo((0, chalk_1.default) `{green ${constants_1.ICON.tick}} ${shortPath}`));
46
+ yield* $(Effect.logInfo(chalk `{green ${ICON.tick}} ${shortPath}`));
53
47
  }
54
48
  }
55
49
  }
56
50
  return ctx;
57
- })), effect_1.Effect.flatMap(exit_if_invalid_1.exitIfInvalid), effect_1.Effect.provide((0, effect_1.pipe)(effect_1.Context.empty(), effect_1.Context.add(tag_1.CliConfigTag, cli), effect_1.Context.add(io_1.IoTag, io))), with_logger_1.withLogger);
51
+ })), Effect.flatMap(exitIfInvalid), Effect.provide(pipe(Context.empty(), Context.add(CliConfigTag, cli), Context.add(IoTag, io))), withLogger);
58
52
  }
59
- exports.lint = lint;