syncpack 10.7.3 → 11.2.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 (92) hide show
  1. package/dist/bin-fix-mismatches/effects.js +9 -9
  2. package/dist/bin-fix-mismatches/fix-mismatches.js +2 -2
  3. package/dist/bin-format/format-cli.js +2 -2
  4. package/dist/bin-format/format.js +4 -3
  5. package/dist/bin-lint/lint.js +2 -2
  6. package/dist/bin-lint-semver-ranges/effects.js +10 -10
  7. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +2 -2
  8. package/dist/bin-list/effects.js +16 -14
  9. package/dist/bin-list/list.js +2 -2
  10. package/dist/bin-list-mismatches/effects.js +22 -22
  11. package/dist/bin-list-mismatches/list-mismatches.js +2 -2
  12. package/dist/bin-prompt/effects.js +15 -15
  13. package/dist/bin-prompt/prompt.js +2 -2
  14. package/dist/bin-set-semver-ranges/effects.js +10 -10
  15. package/dist/bin-set-semver-ranges/set-semver-ranges.js +2 -2
  16. package/dist/bin-update/effects.js +36 -30
  17. package/dist/bin-update/update.js +2 -2
  18. package/dist/config/get-enabled-types.d.ts +6 -1
  19. package/dist/config/get-enabled-types.js +62 -34
  20. package/dist/config/tag.d.ts +3 -0
  21. package/dist/config/tag.js +28 -0
  22. package/dist/config/types.d.ts +0 -2
  23. package/dist/config/types.js +0 -26
  24. package/dist/constants.d.ts +3 -4
  25. package/dist/constants.js +12 -13
  26. package/dist/create-program/effects.d.ts +4 -4
  27. package/dist/create-program/semver-ranges.d.ts +2 -2
  28. package/dist/create-program/semver-ranges.js +6 -6
  29. package/dist/create-program/versions.d.ts +2 -2
  30. package/dist/create-program/versions.js +6 -6
  31. package/dist/env/create-env.js +28 -7
  32. package/dist/env/default-env.js +14 -9
  33. package/dist/env/exit-if-invalid.js +1 -1
  34. package/dist/env/write-if-changed.js +1 -1
  35. package/dist/error-handlers/create-error-handlers.d.ts +2 -1
  36. package/dist/error-handlers/create-error-handlers.js +3 -0
  37. package/dist/error-handlers/default-error-handlers.js +5 -0
  38. package/dist/get-context/index.js +2 -2
  39. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +1 -1
  40. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +1 -1
  41. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +9 -6
  42. package/dist/get-package-json-files/get-patterns/index.js +1 -1
  43. package/dist/get-package-json-files/get-patterns/read-json-safe.js +5 -2
  44. package/dist/get-package-json-files/package-json-file.d.ts +4 -2
  45. package/dist/get-package-json-files/package-json-file.js +5 -4
  46. package/dist/get-semver-groups/filtered-out.d.ts +3 -3
  47. package/dist/get-semver-groups/filtered-out.js +1 -1
  48. package/dist/get-semver-groups/ignored.d.ts +3 -3
  49. package/dist/get-semver-groups/index.d.ts +18 -18
  50. package/dist/get-semver-groups/index.js +5 -5
  51. package/dist/get-semver-groups/with-range.d.ts +4 -4
  52. package/dist/get-semver-groups/with-range.js +9 -9
  53. package/dist/get-version-groups/banned.d.ts +3 -3
  54. package/dist/get-version-groups/filtered-out.d.ts +3 -3
  55. package/dist/get-version-groups/filtered-out.js +1 -1
  56. package/dist/get-version-groups/ignored.d.ts +3 -3
  57. package/dist/get-version-groups/index.d.ts +72 -24
  58. package/dist/get-version-groups/index.js +54 -6
  59. package/dist/get-version-groups/lib/{sort.js → compare-semver.js} +0 -5
  60. package/dist/get-version-groups/lib/get-highest-version.js +2 -2
  61. package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
  62. package/dist/get-version-groups/lib/get-unique-specifiers.d.ts +2 -0
  63. package/dist/get-version-groups/lib/get-unique-specifiers.js +11 -0
  64. package/dist/get-version-groups/pinned.d.ts +3 -3
  65. package/dist/get-version-groups/pinned.js +1 -1
  66. package/dist/get-version-groups/same-range.d.ts +3 -3
  67. package/dist/get-version-groups/same-range.js +1 -1
  68. package/dist/get-version-groups/snapped-to.d.ts +3 -3
  69. package/dist/get-version-groups/snapped-to.js +4 -3
  70. package/dist/get-version-groups/standard.d.ts +4 -4
  71. package/dist/get-version-groups/standard.js +19 -18
  72. package/dist/guards/can-add-to-group.d.ts +2 -2
  73. package/dist/guards/can-add-to-group.js +35 -5
  74. package/dist/guards/is-loose-semver.d.ts +1 -0
  75. package/dist/guards/is-loose-semver.js +1 -0
  76. package/dist/guards/is-semver.d.ts +1 -0
  77. package/dist/guards/is-semver.js +1 -0
  78. package/dist/guards/is-valid-semver-range.d.ts +1 -0
  79. package/dist/guards/is-valid-semver-range.js +1 -0
  80. package/dist/instance/create.d.ts +4 -0
  81. package/dist/instance/create.js +142 -0
  82. package/dist/instance/index.d.ts +122 -0
  83. package/dist/instance/index.js +154 -0
  84. package/dist/schema.json +361 -0
  85. package/package.json +24 -20
  86. package/dist/get-package-json-files/instance.d.ts +0 -21
  87. package/dist/get-package-json-files/instance.js +0 -23
  88. package/dist/get-version-groups/lib/get-unique-versions.d.ts +0 -2
  89. package/dist/get-version-groups/lib/get-unique-versions.js +0 -8
  90. package/dist/guards/is-supported.d.ts +0 -1
  91. package/dist/guards/is-supported.js +0 -17
  92. /package/dist/get-version-groups/lib/{sort.d.ts → compare-semver.d.ts} +0 -0
@@ -38,44 +38,44 @@ const prompts_1 = __importDefault(require("prompts"));
38
38
  const unwrap_1 = require("tightrope/result/unwrap");
39
39
  const constants_1 = require("../constants");
40
40
  const get_highest_version_1 = require("../get-version-groups/lib/get-highest-version");
41
- const get_unique_versions_1 = require("../get-version-groups/lib/get-unique-versions");
41
+ const get_unique_specifiers_1 = require("../get-version-groups/lib/get-unique-specifiers");
42
42
  const log_verbose_1 = require("../lib/log-verbose");
43
43
  const set_semver_range_1 = require("../lib/set-semver-range");
44
44
  let spinner;
45
45
  let fetchCount = 0;
46
46
  exports.updateEffects = {
47
47
  onFilteredOut() {
48
- return Effect.unit();
48
+ return Effect.unit;
49
49
  },
50
50
  onIgnored() {
51
- return Effect.unit();
51
+ return Effect.unit;
52
52
  },
53
53
  onValid(input) {
54
54
  return fetchPackageVersions(input);
55
55
  },
56
56
  onBanned() {
57
- return Effect.unit();
57
+ return Effect.unit;
58
58
  },
59
59
  onHighestSemverMismatch(input) {
60
60
  return fetchPackageVersions(input);
61
61
  },
62
62
  onLowestSemverMismatch() {
63
- return Effect.unit();
63
+ return Effect.unit;
64
64
  },
65
65
  onPinnedMismatch() {
66
- return Effect.unit();
66
+ return Effect.unit;
67
67
  },
68
68
  onSameRangeMismatch(input) {
69
69
  return fetchPackageVersions(input);
70
70
  },
71
71
  onSnappedToMismatch() {
72
- return Effect.unit();
72
+ return Effect.unit;
73
73
  },
74
- onUnsupportedMismatch() {
75
- return Effect.unit();
74
+ onNonSemverMismatch() {
75
+ return Effect.unit;
76
76
  },
77
- onWorkspaceMismatch() {
78
- return Effect.unit();
77
+ onLocalPackageMismatch() {
78
+ return Effect.unit;
79
79
  },
80
80
  onComplete(ctx, results) {
81
81
  return promptForUpdates(results);
@@ -120,14 +120,14 @@ function fetchPackageVersions(input) {
120
120
  }
121
121
  function promptForUpdates(results) {
122
122
  spinner.stop();
123
- return (0, Function_1.pipe)(Effect.Do(), Effect.bind('choices', () => Effect.sync(() => results.reduce((arr, result) => {
123
+ return (0, Function_1.pipe)(Effect.Do, Effect.bind('choices', () => Effect.sync(() => results.reduce((arr, result) => {
124
124
  if (!result)
125
125
  return arr;
126
126
  if (!['SameRange', 'Standard'].includes(result.input.group._tag))
127
127
  return arr;
128
128
  const input = result.input;
129
129
  const latestVersion = result.versions.latest;
130
- const uniqueVersions = (0, get_unique_versions_1.getUniqueVersions)(input.report.instances);
130
+ const uniqueVersions = (0, get_unique_specifiers_1.getUniqueSpecifiers)(input.report.instances).map((i) => i.specifier);
131
131
  const highestVersion = (0, unwrap_1.unwrap)((0, get_highest_version_1.getHighestVersion)(uniqueVersions));
132
132
  const exactHighestVersion = (0, set_semver_range_1.setSemverRange)('', highestVersion);
133
133
  if (exactHighestVersion === latestVersion)
@@ -144,27 +144,30 @@ function promptForUpdates(results) {
144
144
  .replace('NEW', latestWithRange),
145
145
  });
146
146
  return arr;
147
- }, []))), Effect.bind('chosenUpdates', ({ choices }) => Effect.tryCatchPromise(() => (0, prompts_1.default)([
148
- {
149
- name: 'indexes',
150
- type: 'multiselect',
151
- message: 'Choose which packages to upgrade',
152
- instructions: true,
153
- // @ts-expect-error optionsPerPage *does* exist https://github.com/terkelg/prompts#options-7
154
- optionsPerPage: 50,
155
- choices: choices,
156
- },
157
- ])
158
- .then(({ indexes = [] }) => ({ choices, indexes }))
159
- .then(({ choices, indexes }) => indexes.map((i) => choices[i].result)), () => new Error('Prompt failed'))), Effect.flatMap(({ chosenUpdates }) => Effect.sync(() => {
147
+ }, []))), Effect.bind('chosenUpdates', ({ choices }) => Effect.tryPromise({
148
+ try: () => (0, prompts_1.default)([
149
+ {
150
+ name: 'indexes',
151
+ type: 'multiselect',
152
+ message: 'Choose which packages to upgrade',
153
+ instructions: true,
154
+ // @ts-expect-error optionsPerPage *does* exist https://github.com/terkelg/prompts#options-7
155
+ optionsPerPage: 50,
156
+ choices: choices,
157
+ },
158
+ ])
159
+ .then(({ indexes = [] }) => ({ choices, indexes }))
160
+ .then(({ choices, indexes }) => indexes.map((i) => choices[i].result)),
161
+ catch: () => new Error('Prompt failed'),
162
+ })), Effect.flatMap(({ chosenUpdates }) => Effect.sync(() => {
160
163
  chosenUpdates.forEach(({ input, versions }) => {
161
164
  input.report.instances.forEach((instance) => {
162
- const semverRange = (0, set_semver_range_1.getSemverRange)(instance.version);
165
+ const semverRange = (0, set_semver_range_1.getSemverRange)(instance.specifier);
163
166
  const latestWithRange = (0, set_semver_range_1.setSemverRange)(semverRange, versions.latest);
164
- instance.setVersion(latestWithRange);
167
+ instance.setSpecifier(latestWithRange);
165
168
  });
166
169
  });
167
- })), Effect.catchAll(() => Effect.unit()));
170
+ })), Effect.catchAll(() => Effect.unit));
168
171
  }
169
172
  // @TODO: add a cache with a short TTL on disk in $TMPDIR
170
173
  function fetchUrl(url) {
@@ -183,5 +186,8 @@ function fetchUrl(url) {
183
186
  .on('error', (err) => {
184
187
  resume(Effect.fail(new HttpError({ error: String(err) })));
185
188
  });
186
- }), Effect.flatMap((body) => Effect.tryCatch(() => JSON.parse(body), (err) => new JsonParseError({ error: String(err) }))));
189
+ }), Effect.flatMap((body) => Effect.try({
190
+ try: () => JSON.parse(body),
191
+ catch: (err) => new JsonParseError({ error: String(err) }),
192
+ })));
187
193
  }
@@ -28,7 +28,7 @@ const Context = __importStar(require("@effect/data/Context"));
28
28
  const Function_1 = require("@effect/data/Function");
29
29
  const Effect = __importStar(require("@effect/io/Effect"));
30
30
  // import { setSemverRangesEffects } from '../bin-set-semver-ranges/effects';
31
- const types_1 = require("../config/types");
31
+ const tag_1 = require("../config/tag");
32
32
  // import { createSemverRangesProgram } from '../create-program/semver-ranges';
33
33
  const versions_1 = require("../create-program/versions");
34
34
  const create_env_1 = require("../env/create-env");
@@ -42,6 +42,6 @@ const effects_1 = require("./effects");
42
42
  function update(cli, env) {
43
43
  return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, versions_1.createVersionsProgram)(ctx, effects_1.updateEffects)),
44
44
  // Effect.flatMap((ctx) => createSemverRangesProgram(ctx, setSemverRangesEffects)),
45
- 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.withParallelism(10), 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)))));
45
+ 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.withConcurrency(10), Effect.provideContext((0, Function_1.pipe)(Context.empty(), Context.add(tag_1.CliConfigTag, cli), Context.add(tags_1.EnvTag, (0, create_env_1.createEnv)(env)))));
46
46
  }
47
47
  exports.update = update;
@@ -9,5 +9,10 @@ export declare class DeprecatedTypesError extends DeprecatedTypesError_base<{
9
9
  readonly types: string[];
10
10
  }> {
11
11
  }
12
- export declare function getEnabledTypes({ cli, rcFile, }: Ctx['config']): Effect.Effect<never, DeprecatedTypesError, Strategy.Any[]>;
12
+ declare const RenamedWorkspaceTypeError_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 & {
13
+ _tag: "RenamedWorkspaceTypeError";
14
+ }>;
15
+ export declare class RenamedWorkspaceTypeError extends RenamedWorkspaceTypeError_base<Record<string, never>> {
16
+ }
17
+ export declare function getEnabledTypes({ cli, rcFile, }: Ctx['config']): Effect.Effect<never, DeprecatedTypesError | RenamedWorkspaceTypeError, Strategy.Any[]>;
13
18
  export {};
@@ -23,8 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getEnabledTypes = exports.DeprecatedTypesError = void 0;
26
+ exports.getEnabledTypes = exports.RenamedWorkspaceTypeError = exports.DeprecatedTypesError = void 0;
27
27
  const Data = __importStar(require("@effect/data/Data"));
28
+ const ReadonlyArray_1 = require("@effect/data/ReadonlyArray");
28
29
  const Effect = __importStar(require("@effect/io/Effect"));
29
30
  const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
30
31
  const is_boolean_1 = require("tightrope/guard/is-boolean");
@@ -37,46 +38,73 @@ const get_custom_types_1 = require("./get-custom-types");
37
38
  class DeprecatedTypesError extends Data.TaggedClass('DeprecatedTypesError') {
38
39
  }
39
40
  exports.DeprecatedTypesError = DeprecatedTypesError;
40
- // @TODO accept `dependencyTypes: ['**']`
41
- // @TODO support `dependencyTypes: ['!dev']`
41
+ class RenamedWorkspaceTypeError extends Data.TaggedClass('RenamedWorkspaceTypeError') {
42
+ }
43
+ exports.RenamedWorkspaceTypeError = RenamedWorkspaceTypeError;
42
44
  function getEnabledTypes({ cli, rcFile, }) {
43
- const enabledTypes = [];
44
- const enabledTypeNames = ((0, is_non_empty_string_1.isNonEmptyString)(cli.types)
45
- ? cli.types.split(',')
46
- : (0, is_array_of_strings_1.isArrayOfStrings)(rcFile.dependencyTypes)
47
- ? rcFile.dependencyTypes
48
- : []).filter(is_non_empty_string_1.isNonEmptyString);
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
- }
54
- if (useDefaults || enabledTypeNames.includes('dev')) {
55
- enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('dev', 'devDependencies'));
45
+ const deprecatedTypeProps = getDeprecatedTypeProps();
46
+ if (deprecatedTypeProps.length > 0) {
47
+ return Effect.fail(new DeprecatedTypesError({ types: deprecatedTypeProps }));
56
48
  }
57
- if (useDefaults || enabledTypeNames.includes('overrides')) {
58
- enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('overrides', 'overrides'));
49
+ const allStrategiesByName = Object.fromEntries([
50
+ ['dev', new versions_by_name_1.VersionsByNameStrategy('dev', 'devDependencies')],
51
+ ['local', new name_and_version_props_1.NameAndVersionPropsStrategy('local', 'version', 'name')],
52
+ ['overrides', new versions_by_name_1.VersionsByNameStrategy('overrides', 'overrides')],
53
+ ['peer', new versions_by_name_1.VersionsByNameStrategy('peer', 'peerDependencies')],
54
+ ['pnpmOverrides', new versions_by_name_1.VersionsByNameStrategy('pnpmOverrides', 'pnpm.overrides')],
55
+ ['prod', new versions_by_name_1.VersionsByNameStrategy('prod', 'dependencies')],
56
+ ['resolutions', new versions_by_name_1.VersionsByNameStrategy('resolutions', 'resolutions')],
57
+ ...(0, get_custom_types_1.getCustomTypes)({ cli, rcFile }).map((customType) => [customType.name, customType]),
58
+ ]);
59
+ const allStrategyNames = Object.keys(allStrategiesByName);
60
+ const names = {
61
+ provided: ((0, is_non_empty_string_1.isNonEmptyString)(cli.types)
62
+ ? cli.types.split(',')
63
+ : (0, is_array_of_strings_1.isArrayOfStrings)(rcFile.dependencyTypes)
64
+ ? rcFile.dependencyTypes
65
+ : []).filter(is_non_empty_string_1.isNonEmptyString),
66
+ enabled: [],
67
+ positive: [],
68
+ negative: [],
69
+ };
70
+ if ((0, is_empty_array_1.isEmptyArray)(names.provided) || names.provided.join('') === '**') {
71
+ return Effect.succeed(allStrategyNames.map(getStrategyByName));
59
72
  }
60
- if (useDefaults || enabledTypeNames.includes('peer')) {
61
- enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('peer', 'peerDependencies'));
73
+ names.provided.forEach((name) => {
74
+ if (name.startsWith('!')) {
75
+ names.negative.push(name.replace('!', ''));
76
+ }
77
+ else {
78
+ names.positive.push(name);
79
+ }
80
+ });
81
+ if ((0, ReadonlyArray_1.isNonEmptyArray)(names.negative)) {
82
+ allStrategyNames.forEach((name) => {
83
+ if (!names.negative.includes(name)) {
84
+ names.enabled.push(name);
85
+ }
86
+ });
62
87
  }
63
- if (useDefaults || enabledTypeNames.includes('pnpmOverrides')) {
64
- enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('pnpmOverrides', 'pnpm.overrides'));
88
+ if ((0, ReadonlyArray_1.isNonEmptyArray)(names.positive)) {
89
+ names.positive.forEach((name) => {
90
+ if (!names.enabled.includes(name)) {
91
+ names.enabled.push(name);
92
+ }
93
+ });
65
94
  }
66
- if (useDefaults || enabledTypeNames.includes('prod')) {
67
- enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('prod', 'dependencies'));
95
+ if (names.enabled.includes('workspace')) {
96
+ return Effect.fail(new RenamedWorkspaceTypeError({}));
68
97
  }
69
- if (useDefaults || enabledTypeNames.includes('resolutions')) {
70
- enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('resolutions', 'resolutions'));
98
+ return Effect.succeed(names.enabled.map(getStrategyByName));
99
+ function getStrategyByName(type) {
100
+ return allStrategiesByName[type];
71
101
  }
72
- if (useDefaults || enabledTypeNames.includes('workspace')) {
73
- enabledTypes.push(new name_and_version_props_1.NameAndVersionPropsStrategy('workspace', 'version', 'name'));
102
+ /**
103
+ * Look for dependency types defined using the old syntax of `{ prod: true }`
104
+ * which was deprecated in syncpack@9.0.0.
105
+ */
106
+ function getDeprecatedTypeProps() {
107
+ return constants_1.INTERNAL_TYPES.filter((key) => (0, is_boolean_1.isBoolean)(rcFile[key]));
74
108
  }
75
- (0, get_custom_types_1.getCustomTypes)({ cli, rcFile }).forEach((customType) => {
76
- if (useDefaults || enabledTypeNames.includes(customType.name)) {
77
- enabledTypes.push(customType);
78
- }
79
- });
80
- return Effect.succeed(enabledTypes);
81
109
  }
82
110
  exports.getEnabledTypes = getEnabledTypes;
@@ -0,0 +1,3 @@
1
+ import * as Context from '@effect/data/Context';
2
+ import type { CliConfig } from './types';
3
+ export declare const CliConfigTag: Context.Tag<Partial<CliConfig>, Partial<CliConfig>>;
@@ -0,0 +1,28 @@
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.CliConfigTag = void 0;
27
+ const Context = __importStar(require("@effect/data/Context"));
28
+ exports.CliConfigTag = Context.Tag();
@@ -1,4 +1,3 @@
1
- import * as Context from '@effect/data/Context';
2
1
  import type { Union } from 'ts-toolbelt';
3
2
  /**
4
3
  * Aliases for semver range formats supported by syncpack
@@ -88,7 +87,6 @@ export interface CliConfig {
88
87
  readonly source: string[];
89
88
  readonly types: string;
90
89
  }
91
- export declare const CliConfigTag: Context.Tag<Partial<CliConfig>, Partial<CliConfig>>;
92
90
  export interface RcConfig {
93
91
  /** @see https://jamiemason.github.io/syncpack/config/custom-types */
94
92
  customTypes: Record<string, CustomTypeConfig.Any>;
@@ -1,28 +1,2 @@
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
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.CliConfigTag = void 0;
27
- const Context = __importStar(require("@effect/data/Context"));
28
- exports.CliConfigTag = Context.Tag();
@@ -1,7 +1,5 @@
1
1
  /** Single source of truth, intended to aid testing or to override */
2
2
  export declare const CWD: string;
3
- /** Where to search for packages if none are provided by the user */
4
- export declare const DEFAULT_SOURCES: string[];
5
3
  /** Single source of truth for icons used in output */
6
4
  export declare const ICON: {
7
5
  readonly cross: "✘";
@@ -23,14 +21,15 @@ export declare const RANGE: {
23
21
  readonly PATCH: "~";
24
22
  readonly WORKSPACE: "workspace:";
25
23
  };
24
+ export declare const INTERNAL_TYPES: readonly ["dev", "local", "overrides", "peer", "pnpmOverrides", "prod", "resolutions"];
26
25
  export declare const DEFAULT_CONFIG: {
27
- readonly dependencyTypes: readonly ["dev", "overrides", "peer", "pnpmOverrides", "prod", "resolutions", "workspace"];
26
+ readonly dependencyTypes: readonly ["**"];
28
27
  readonly filter: ".";
29
28
  readonly indent: " ";
30
29
  readonly semverGroups: readonly [];
31
30
  readonly semverRange: "";
32
31
  readonly sortAz: readonly ["contributors", "dependencies", "devDependencies", "keywords", "peerDependencies", "resolutions", "scripts"];
33
32
  readonly sortFirst: readonly ["name", "description", "version", "author"];
34
- readonly source: string[];
33
+ readonly source: readonly ["package.json", "packages/*/package.json"];
35
34
  readonly versionGroups: readonly [];
36
35
  };
package/dist/constants.js CHANGED
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_CONFIG = exports.RANGE = exports.ICON = exports.DEFAULT_SOURCES = exports.CWD = void 0;
3
+ exports.DEFAULT_CONFIG = exports.INTERNAL_TYPES = exports.RANGE = exports.ICON = exports.CWD = void 0;
4
4
  /** Single source of truth, intended to aid testing or to override */
5
5
  exports.CWD = process.env.MOCK_CWD || process.cwd();
6
- /** Where to search for packages if none are provided by the user */
7
- exports.DEFAULT_SOURCES = ['package.json', 'packages/*/package.json'];
8
6
  /** Single source of truth for icons used in output */
9
7
  exports.ICON = {
10
8
  cross: '✘',
@@ -26,16 +24,17 @@ exports.RANGE = {
26
24
  PATCH: '~',
27
25
  WORKSPACE: 'workspace:',
28
26
  };
27
+ exports.INTERNAL_TYPES = [
28
+ 'dev',
29
+ 'local',
30
+ 'overrides',
31
+ 'peer',
32
+ 'pnpmOverrides',
33
+ 'prod',
34
+ 'resolutions',
35
+ ];
29
36
  exports.DEFAULT_CONFIG = {
30
- dependencyTypes: [
31
- 'dev',
32
- 'overrides',
33
- 'peer',
34
- 'pnpmOverrides',
35
- 'prod',
36
- 'resolutions',
37
- 'workspace',
38
- ],
37
+ dependencyTypes: ['**'],
39
38
  filter: '.',
40
39
  indent: ' ',
41
40
  semverGroups: [],
@@ -50,6 +49,6 @@ exports.DEFAULT_CONFIG = {
50
49
  'scripts',
51
50
  ],
52
51
  sortFirst: ['name', 'description', 'version', 'author'],
53
- source: exports.DEFAULT_SOURCES,
52
+ source: ['package.json', 'packages/*/package.json'],
54
53
  versionGroups: [],
55
54
  };
@@ -19,9 +19,9 @@ export interface SemverRangeEffects<A> {
19
19
  onFilteredOut: (input: SemverRangeEffectInput<SR.FilteredOut>) => Effect.Effect<Env | never, never, A>;
20
20
  onIgnored: (input: SemverRangeEffectInput<SR.Ignored>) => Effect.Effect<Env | never, never, A>;
21
21
  onSemverRangeMismatch: (input: SemverRangeEffectInput<SR.SemverRangeMismatch>) => Effect.Effect<Env | never, never, A>;
22
- onUnsupportedVersion: (input: SemverRangeEffectInput<SR.UnsupportedVersion>) => Effect.Effect<Env | never, never, A>;
22
+ onNonSemverVersion: (input: SemverRangeEffectInput<SR.NonSemverVersion>) => Effect.Effect<Env | never, never, A>;
23
23
  onValid: (input: SemverRangeEffectInput<SR.Valid>) => Effect.Effect<Env | never, never, A>;
24
- onWorkspaceSemverRangeMismatch: (input: SemverRangeEffectInput<SR.WorkspaceSemverRangeMismatch>) => Effect.Effect<Env | never, never, A>;
24
+ onLocalPackageSemverRangeMismatch: (input: SemverRangeEffectInput<SR.LocalPackageSemverRangeMismatch>) => Effect.Effect<Env | never, never, A>;
25
25
  onComplete: (ctx: Ctx, results: A[]) => Effect.Effect<Env | never, never, A>;
26
26
  }
27
27
  export interface VersionEffects<A> {
@@ -33,8 +33,8 @@ export interface VersionEffects<A> {
33
33
  onPinnedMismatch: (input: VersionEffectInput<VR.PinnedMismatch>) => Effect.Effect<Env | never, never, A>;
34
34
  onSameRangeMismatch: (input: VersionEffectInput<VR.SameRangeMismatch>) => Effect.Effect<Env | never, never, A>;
35
35
  onSnappedToMismatch: (input: VersionEffectInput<VR.SnappedToMismatch>) => Effect.Effect<Env | never, never, A>;
36
- onUnsupportedMismatch: (input: VersionEffectInput<VR.UnsupportedMismatch>) => Effect.Effect<Env | never, never, A>;
36
+ onNonSemverMismatch: (input: VersionEffectInput<VR.NonSemverMismatch>) => Effect.Effect<Env | never, never, A>;
37
37
  onValid: (input: VersionEffectInput<VR.Valid>) => Effect.Effect<Env | never, never, A>;
38
- onWorkspaceMismatch: (input: VersionEffectInput<VR.WorkspaceMismatch>) => Effect.Effect<Env | never, never, A>;
38
+ onLocalPackageMismatch: (input: VersionEffectInput<VR.LocalPackageMismatch>) => Effect.Effect<Env | never, never, A>;
39
39
  onComplete: (ctx: Ctx, results: A[]) => Effect.Effect<Env | never, never, A>;
40
40
  }
@@ -1,7 +1,7 @@
1
1
  import * as Effect from '@effect/io/Effect';
2
- import type { DeprecatedTypesError } from '../config/get-enabled-types';
2
+ import type { DeprecatedTypesError, RenamedWorkspaceTypeError } from '../config/get-enabled-types';
3
3
  import type { Env } from '../env/create-env';
4
4
  import type { Ctx } from '../get-context';
5
5
  import type { SemverGroupConfigError } from '../get-semver-groups';
6
6
  import type { SemverRangeEffects } from './effects';
7
- export declare function createSemverRangesProgram<T extends SemverRangeEffects<any>>(ctx: Ctx, effects: T): Effect.Effect<Env, SemverGroupConfigError | DeprecatedTypesError, Ctx>;
7
+ export declare function createSemverRangesProgram<T extends SemverRangeEffects<any>>(ctx: Ctx, effects: T): Effect.Effect<Env, SemverGroupConfigError | DeprecatedTypesError | RenamedWorkspaceTypeError, Ctx>;
@@ -30,7 +30,7 @@ const Effect = __importStar(require("@effect/io/Effect"));
30
30
  const Match = __importStar(require("@effect/match"));
31
31
  const get_semver_groups_1 = require("../get-semver-groups");
32
32
  function createSemverRangesProgram(ctx, effects) {
33
- return (0, Function_1.pipe)((0, get_semver_groups_1.getSemverGroups)(ctx), Effect.flatMap((semverGroups) => Effect.allPar(semverGroups.flatMap((group) => group.inspect().map((reportEffect, index) => (0, Function_1.pipe)((0, Unify_1.unify)(reportEffect), Effect.flatMap((0, Function_1.pipe)(Match.type(), Match.tagsExhaustive({
33
+ return (0, Function_1.pipe)((0, get_semver_groups_1.getSemverGroups)(ctx), Effect.flatMap((semverGroups) => Effect.all(semverGroups.flatMap((group) => group.inspect().map((reportEffect, index) => (0, Function_1.pipe)((0, Unify_1.unify)(reportEffect), Effect.flatMap((0, Function_1.pipe)(Match.type(), Match.tagsExhaustive({
34
34
  FilteredOut(report) {
35
35
  return effects.onFilteredOut({ ctx, group, index, report });
36
36
  },
@@ -44,12 +44,12 @@ function createSemverRangesProgram(ctx, effects) {
44
44
  SemverRangeMismatch(report) {
45
45
  return effects.onSemverRangeMismatch({ ctx, group, index, report });
46
46
  },
47
- UnsupportedVersion(report) {
48
- return effects.onUnsupportedVersion({ ctx, group, index, report });
47
+ NonSemverVersion(report) {
48
+ return effects.onNonSemverVersion({ ctx, group, index, report });
49
49
  },
50
- WorkspaceSemverRangeMismatch(report) {
51
- return effects.onWorkspaceSemverRangeMismatch({ ctx, group, index, report });
50
+ LocalPackageSemverRangeMismatch(report) {
51
+ return effects.onLocalPackageSemverRangeMismatch({ ctx, group, index, report });
52
52
  },
53
- })))))), Effect.flatMap((results) => effects.onComplete(ctx, results)), Effect.map(() => ctx));
53
+ })))), { concurrency: 'inherit' })), Effect.flatMap((results) => effects.onComplete(ctx, results)), Effect.map(() => ctx));
54
54
  }
55
55
  exports.createSemverRangesProgram = createSemverRangesProgram;
@@ -1,7 +1,7 @@
1
1
  import * as Effect from '@effect/io/Effect';
2
- import type { DeprecatedTypesError } from '../config/get-enabled-types';
2
+ import type { DeprecatedTypesError, RenamedWorkspaceTypeError } from '../config/get-enabled-types';
3
3
  import type { Env } from '../env/create-env';
4
4
  import type { Ctx } from '../get-context';
5
5
  import type { VersionGroupConfigError } from '../get-version-groups';
6
6
  import type { VersionEffects } from './effects';
7
- export declare function createVersionsProgram<T extends VersionEffects<any>>(ctx: Ctx, effects: T): Effect.Effect<Env, VersionGroupConfigError | DeprecatedTypesError, Ctx>;
7
+ export declare function createVersionsProgram<T extends VersionEffects<any>>(ctx: Ctx, effects: T): Effect.Effect<Env, VersionGroupConfigError | DeprecatedTypesError | RenamedWorkspaceTypeError, Ctx>;
@@ -30,7 +30,7 @@ const Effect = __importStar(require("@effect/io/Effect"));
30
30
  const Match = __importStar(require("@effect/match"));
31
31
  const get_version_groups_1 = require("../get-version-groups");
32
32
  function createVersionsProgram(ctx, effects) {
33
- return (0, Function_1.pipe)((0, get_version_groups_1.getVersionGroups)(ctx), Effect.flatMap((versionGroups) => Effect.allPar(versionGroups.flatMap((group) => group.inspect().map((reportEffect, index) => (0, Function_1.pipe)((0, Unify_1.unify)(reportEffect), Effect.flatMap((0, Function_1.pipe)(Match.type(), Match.tagsExhaustive({
33
+ return (0, Function_1.pipe)((0, get_version_groups_1.getVersionGroups)(ctx), Effect.flatMap((versionGroups) => Effect.all(versionGroups.flatMap((group) => group.inspect().map((reportEffect, index) => (0, Function_1.pipe)((0, Unify_1.unify)(reportEffect), Effect.flatMap((0, Function_1.pipe)(Match.type(), Match.tagsExhaustive({
34
34
  FilteredOut(report) {
35
35
  return effects.onFilteredOut({ ctx, group, index, report });
36
36
  },
@@ -59,12 +59,12 @@ function createVersionsProgram(ctx, effects) {
59
59
  SnappedToMismatch(report) {
60
60
  return effects.onSnappedToMismatch({ ctx, group, index, report });
61
61
  },
62
- UnsupportedMismatch(report) {
63
- return effects.onUnsupportedMismatch({ ctx, group, index, report });
62
+ NonSemverMismatch(report) {
63
+ return effects.onNonSemverMismatch({ ctx, group, index, report });
64
64
  },
65
- WorkspaceMismatch(report) {
66
- return effects.onWorkspaceMismatch({ ctx, group, index, report });
65
+ LocalPackageMismatch(report) {
66
+ return effects.onLocalPackageMismatch({ ctx, group, index, report });
67
67
  },
68
- })))))), Effect.flatMap((results) => effects.onComplete(ctx, results)), Effect.map(() => ctx));
68
+ })))), { concurrency: 'inherit' })), Effect.flatMap((results) => effects.onComplete(ctx, results)), Effect.map(() => ctx));
69
69
  }
70
70
  exports.createVersionsProgram = createVersionsProgram;
@@ -29,10 +29,16 @@ const tags_1 = require("./tags");
29
29
  function createEnv(env) {
30
30
  return {
31
31
  askForChoice(opts) {
32
- return Effect.tryCatchPromise(() => env.askForChoice(opts), (err) => new tags_1.AskForChoiceError({ error: String(err) }));
32
+ return Effect.tryPromise({
33
+ try: () => env.askForChoice(opts),
34
+ catch: (err) => new tags_1.AskForChoiceError({ error: String(err) }),
35
+ });
33
36
  },
34
37
  askForInput(opts) {
35
- return Effect.tryCatchPromise(() => env.askForInput(opts), (err) => new tags_1.AskForInputError({ error: String(err) }));
38
+ return Effect.tryPromise({
39
+ try: () => env.askForInput(opts),
40
+ catch: (err) => new tags_1.AskForInputError({ error: String(err) }),
41
+ });
36
42
  },
37
43
  // @FIXME: process.exit is probably handled some other way in effect-ts
38
44
  exitProcess(code) {
@@ -41,19 +47,34 @@ function createEnv(env) {
41
47
  });
42
48
  },
43
49
  globSync(patterns) {
44
- return Effect.tryCatch(() => env.globSync(patterns), (err) => new tags_1.GlobError({ error: String(err) }));
50
+ return Effect.try({
51
+ try: () => env.globSync(patterns),
52
+ catch: (err) => new tags_1.GlobError({ error: String(err) }),
53
+ });
45
54
  },
46
55
  readConfigFileSync(filePath) {
47
- return Effect.tryCatch(() => env.readConfigFileSync(filePath), (err) => new tags_1.ReadConfigFileError({ filePath: filePath || '', error: String(err) }));
56
+ return Effect.try({
57
+ try: () => env.readConfigFileSync(filePath),
58
+ catch: (err) => new tags_1.ReadConfigFileError({ filePath: filePath || '', error: String(err) }),
59
+ });
48
60
  },
49
61
  readFileSync(filePath) {
50
- return Effect.tryCatch(() => env.readFileSync(filePath), (err) => new tags_1.ReadFileError({ filePath, error: String(err) }));
62
+ return Effect.try({
63
+ try: () => env.readFileSync(filePath),
64
+ catch: (err) => new tags_1.ReadFileError({ filePath, error: String(err) }),
65
+ });
51
66
  },
52
67
  readYamlFileSync(filePath) {
53
- return Effect.tryCatch(() => env.readYamlFileSync(filePath), (err) => new tags_1.ReadYamlFileError({ filePath, error: String(err) }));
68
+ return Effect.try({
69
+ try: () => env.readYamlFileSync(filePath),
70
+ catch: (err) => new tags_1.ReadYamlFileError({ filePath, error: String(err) }),
71
+ });
54
72
  },
55
73
  writeFileSync(filePath, contents) {
56
- return Effect.tryCatch(() => env.writeFileSync(filePath, contents), (err) => new tags_1.WriteFileError({ filePath, error: String(err) }));
74
+ return Effect.try({
75
+ try: () => env.writeFileSync(filePath, contents),
76
+ catch: (err) => new tags_1.WriteFileError({ filePath, error: String(err) }),
77
+ });
57
78
  },
58
79
  };
59
80
  }