syncpack 10.7.3 → 10.9.3

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 (67) hide show
  1. package/dist/bin-fix-mismatches/effects.js +9 -9
  2. package/dist/bin-format/format.js +4 -3
  3. package/dist/bin-lint-semver-ranges/effects.js +10 -10
  4. package/dist/bin-list/effects.js +16 -14
  5. package/dist/bin-list-mismatches/effects.js +22 -22
  6. package/dist/bin-prompt/effects.js +15 -15
  7. package/dist/bin-set-semver-ranges/effects.js +10 -10
  8. package/dist/bin-update/effects.js +36 -30
  9. package/dist/bin-update/update.js +1 -1
  10. package/dist/config/get-enabled-types.js +1 -1
  11. package/dist/create-program/effects.d.ts +4 -4
  12. package/dist/create-program/semver-ranges.js +6 -6
  13. package/dist/create-program/versions.js +6 -6
  14. package/dist/env/create-env.js +28 -7
  15. package/dist/env/default-env.js +2 -1
  16. package/dist/env/exit-if-invalid.js +1 -1
  17. package/dist/env/write-if-changed.js +1 -1
  18. package/dist/get-context/index.js +1 -1
  19. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +1 -1
  20. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +1 -1
  21. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +9 -6
  22. package/dist/get-package-json-files/get-patterns/read-json-safe.js +5 -2
  23. package/dist/get-package-json-files/package-json-file.d.ts +4 -2
  24. package/dist/get-package-json-files/package-json-file.js +5 -4
  25. package/dist/get-semver-groups/filtered-out.d.ts +3 -3
  26. package/dist/get-semver-groups/ignored.d.ts +3 -3
  27. package/dist/get-semver-groups/index.d.ts +16 -16
  28. package/dist/get-semver-groups/index.js +5 -5
  29. package/dist/get-semver-groups/with-range.d.ts +4 -4
  30. package/dist/get-semver-groups/with-range.js +9 -9
  31. package/dist/get-version-groups/banned.d.ts +3 -3
  32. package/dist/get-version-groups/filtered-out.d.ts +3 -3
  33. package/dist/get-version-groups/ignored.d.ts +3 -3
  34. package/dist/get-version-groups/index.d.ts +70 -22
  35. package/dist/get-version-groups/index.js +53 -5
  36. package/dist/get-version-groups/lib/{sort.js → compare-semver.js} +0 -5
  37. package/dist/get-version-groups/lib/get-highest-version.js +2 -2
  38. package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
  39. package/dist/get-version-groups/lib/get-unique-specifiers.d.ts +2 -0
  40. package/dist/get-version-groups/lib/get-unique-specifiers.js +11 -0
  41. package/dist/get-version-groups/pinned.d.ts +3 -3
  42. package/dist/get-version-groups/pinned.js +1 -1
  43. package/dist/get-version-groups/same-range.d.ts +3 -3
  44. package/dist/get-version-groups/same-range.js +1 -1
  45. package/dist/get-version-groups/snapped-to.d.ts +3 -3
  46. package/dist/get-version-groups/snapped-to.js +4 -3
  47. package/dist/get-version-groups/standard.d.ts +4 -4
  48. package/dist/get-version-groups/standard.js +19 -18
  49. package/dist/guards/can-add-to-group.d.ts +2 -2
  50. package/dist/guards/is-loose-semver.d.ts +1 -0
  51. package/dist/guards/is-loose-semver.js +1 -0
  52. package/dist/guards/is-semver.d.ts +1 -0
  53. package/dist/guards/is-semver.js +1 -0
  54. package/dist/guards/is-valid-semver-range.d.ts +1 -0
  55. package/dist/guards/is-valid-semver-range.js +1 -0
  56. package/dist/instance/create.d.ts +4 -0
  57. package/dist/instance/create.js +142 -0
  58. package/dist/instance/index.d.ts +122 -0
  59. package/dist/instance/index.js +154 -0
  60. package/package.json +18 -16
  61. package/dist/get-package-json-files/instance.d.ts +0 -21
  62. package/dist/get-package-json-files/instance.js +0 -23
  63. package/dist/get-version-groups/lib/get-unique-versions.d.ts +0 -2
  64. package/dist/get-version-groups/lib/get-unique-versions.js +0 -8
  65. package/dist/guards/is-supported.d.ts +0 -1
  66. package/dist/guards/is-supported.js +0 -17
  67. /package/dist/get-version-groups/lib/{sort.d.ts → compare-semver.d.ts} +0 -0
@@ -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
  }
@@ -59,13 +59,14 @@ exports.defaultEnv = {
59
59
  process.exit(code);
60
60
  },
61
61
  readConfigFileSync(configPath) {
62
+ var _a;
62
63
  (0, log_verbose_1.logVerbose)('readConfigFileSync(', configPath, ')');
63
64
  const client = (0, cosmiconfig_1.cosmiconfigSync)('syncpack');
64
65
  const result = configPath ? client.load(configPath) : client.search();
65
66
  if (!(0, is_non_empty_object_1.isNonEmptyObject)(result)) {
66
67
  const rcPath = (0, path_1.join)(constants_1.CWD, 'package.json');
67
68
  const pjson = (0, fs_extra_1.readJsonSync)(rcPath, { throws: false });
68
- const rcConfig = pjson?.config?.syncpack;
69
+ const rcConfig = (_a = pjson === null || pjson === void 0 ? void 0 : pjson.config) === null || _a === void 0 ? void 0 : _a.syncpack;
69
70
  if ((0, is_non_empty_object_1.isNonEmptyObject)(rcConfig))
70
71
  return rcConfig;
71
72
  (0, log_verbose_1.logVerbose)('no config file found');
@@ -29,6 +29,6 @@ const Effect = __importStar(require("@effect/io/Effect"));
29
29
  const tags_1 = require("./tags");
30
30
  // @TODO what's the effect-ts way to process.exit?
31
31
  function exitIfInvalid(ctx) {
32
- return (0, Function_1.pipe)(tags_1.EnvTag, Effect.flatMap((env) => (ctx.isInvalid ? env.exitProcess(1) : Effect.unit())), Effect.map(() => ctx));
32
+ return (0, Function_1.pipe)(tags_1.EnvTag, Effect.flatMap((env) => (ctx.isInvalid ? env.exitProcess(1) : Effect.unit)), Effect.map(() => ctx));
33
33
  }
34
34
  exports.exitIfInvalid = exitIfInvalid;
@@ -35,7 +35,7 @@ const get_indent_1 = require("../config/get-indent");
35
35
  const constants_1 = require("../constants");
36
36
  const tags_1 = require("./tags");
37
37
  function writeIfChanged(ctx) {
38
- return (0, Function_1.pipe)(tags_1.EnvTag, Effect.flatMap((env) => Effect.all(ctx.packageJsonFiles.map((file) => (0, Function_1.pipe)(Effect.Do(), Effect.bind('nextJson', () => toJson(file)), Effect.bind('hasChanged', ({ nextJson }) => Effect.succeed(file.json !== nextJson)), Effect.flatMap(({ hasChanged, nextJson }) => hasChanged
38
+ return (0, Function_1.pipe)(tags_1.EnvTag, Effect.flatMap((env) => Effect.all(ctx.packageJsonFiles.map((file) => (0, Function_1.pipe)(Effect.Do, Effect.bind('nextJson', () => toJson(file)), Effect.bind('hasChanged', ({ nextJson }) => Effect.succeed(file.json !== nextJson)), Effect.flatMap(({ hasChanged, nextJson }) => hasChanged
39
39
  ? (0, Function_1.pipe)(env.writeFileSync(file.filePath, nextJson), Effect.flatMap(() => Effect.sync(() => {
40
40
  console.log((0, chalk_1.default) `{green ${constants_1.ICON.tick}}`, file.shortPath);
41
41
  })))
@@ -30,7 +30,7 @@ const types_1 = require("../config/types");
30
30
  const tags_1 = require("../env/tags");
31
31
  const get_package_json_files_1 = require("../get-package-json-files");
32
32
  function getContext() {
33
- return (0, Function_1.pipe)(Effect.Do(), Effect.bind('cli', () => types_1.CliConfigTag), Effect.bind('env', () => tags_1.EnvTag), Effect.bind('rcFile', ({ cli, env }) => env.readConfigFileSync(cli.configPath)), Effect.bind('packageJsonFiles', get_package_json_files_1.getPackageJsonFiles), Effect.map(({ cli, rcFile, packageJsonFiles }) => ({
33
+ return (0, Function_1.pipe)(Effect.Do, Effect.bind('cli', () => types_1.CliConfigTag), Effect.bind('env', () => tags_1.EnvTag), Effect.bind('rcFile', ({ cli, env }) => env.readConfigFileSync(cli.configPath)), Effect.bind('packageJsonFiles', get_package_json_files_1.getPackageJsonFiles), Effect.map(({ cli, rcFile, packageJsonFiles }) => ({
34
34
  config: { cli, rcFile },
35
35
  isInvalid: false,
36
36
  packageJsonFiles,
@@ -32,7 +32,7 @@ const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
32
32
  const constants_1 = require("../../constants");
33
33
  const read_json_safe_1 = require("./read-json-safe");
34
34
  function getLernaPatterns() {
35
- return (0, Function_1.pipe)((0, read_json_safe_1.readJsonSafe)((0, path_1.join)(constants_1.CWD, 'lerna.json')), Effect.map((file) => (0, is_array_of_strings_1.isArrayOfStrings)(file?.contents?.packages) ? O.some(file.contents.packages) : O.none()), Effect.catchTags({
35
+ return (0, Function_1.pipe)((0, read_json_safe_1.readJsonSafe)((0, path_1.join)(constants_1.CWD, 'lerna.json')), Effect.map((file) => { var _a; return (0, is_array_of_strings_1.isArrayOfStrings)((_a = file === null || file === void 0 ? void 0 : file.contents) === null || _a === void 0 ? void 0 : _a.packages) ? O.some(file.contents.packages) : O.none(); }), Effect.catchTags({
36
36
  ReadFileError: () => Effect.succeed(O.none()),
37
37
  JsonParseError: () => Effect.succeed(O.none()),
38
38
  }));
@@ -37,7 +37,7 @@ function getPnpmPatterns() {
37
37
  // - "packages/**"
38
38
  // - "components/**"
39
39
  // - "!**/test/**"
40
- tags_1.EnvTag, Effect.flatMap((env) => env.readYamlFileSync((0, path_1.join)(constants_1.CWD, 'pnpm-workspace.yaml'))), Effect.map((file) => ((0, is_array_of_strings_1.isArrayOfStrings)(file?.packages) ? O.some(file.packages) : O.none())), Effect.catchTags({
40
+ tags_1.EnvTag, Effect.flatMap((env) => env.readYamlFileSync((0, path_1.join)(constants_1.CWD, 'pnpm-workspace.yaml'))), Effect.map((file) => ((0, is_array_of_strings_1.isArrayOfStrings)(file === null || file === void 0 ? void 0 : file.packages) ? O.some(file.packages) : O.none())), Effect.catchTags({
41
41
  ReadYamlFileError: () => Effect.succeed(O.none()),
42
42
  }));
43
43
  }
@@ -33,12 +33,15 @@ const is_non_empty_object_1 = require("tightrope/guard/is-non-empty-object");
33
33
  const constants_1 = require("../../constants");
34
34
  const read_json_safe_1 = require("./read-json-safe");
35
35
  function getYarnPatterns() {
36
- return (0, Function_1.pipe)((0, read_json_safe_1.readJsonSafe)((0, path_1.join)(constants_1.CWD, 'package.json')), Effect.map((file) => (0, is_non_empty_object_1.isNonEmptyObject)(file?.contents?.workspaces) &&
37
- (0, is_array_of_strings_1.isArrayOfStrings)(file.contents.workspaces?.packages)
38
- ? O.some(file.contents.workspaces.packages)
39
- : (0, is_array_of_strings_1.isArrayOfStrings)(file?.contents?.workspaces)
40
- ? O.some(file.contents.workspaces)
41
- : O.none()), Effect.catchTags({
36
+ return (0, Function_1.pipe)((0, read_json_safe_1.readJsonSafe)((0, path_1.join)(constants_1.CWD, 'package.json')), Effect.map((file) => {
37
+ var _a, _b, _c;
38
+ return (0, is_non_empty_object_1.isNonEmptyObject)((_a = file === null || file === void 0 ? void 0 : file.contents) === null || _a === void 0 ? void 0 : _a.workspaces) &&
39
+ (0, is_array_of_strings_1.isArrayOfStrings)((_b = file.contents.workspaces) === null || _b === void 0 ? void 0 : _b.packages)
40
+ ? O.some(file.contents.workspaces.packages)
41
+ : (0, is_array_of_strings_1.isArrayOfStrings)((_c = file === null || file === void 0 ? void 0 : file.contents) === null || _c === void 0 ? void 0 : _c.workspaces)
42
+ ? O.some(file.contents.workspaces)
43
+ : O.none();
44
+ }), Effect.catchTags({
42
45
  ReadFileError: () => Effect.succeed(O.none()),
43
46
  JsonParseError: () => Effect.succeed(O.none()),
44
47
  }));
@@ -33,8 +33,11 @@ class JsonParseError extends Data.TaggedClass('JsonParseError') {
33
33
  exports.JsonParseError = JsonParseError;
34
34
  // @TODO: move to env.readJsonFileSync
35
35
  function readJsonSafe(filePath) {
36
- return (0, Function_1.pipe)(Effect.Do(), Effect.bind('env', () => tags_1.EnvTag), Effect.bind('json', ({ env }) => env.readFileSync(filePath)), Effect.bind('contents', ({ json }) =>
36
+ return (0, Function_1.pipe)(Effect.Do, Effect.bind('env', () => tags_1.EnvTag), Effect.bind('json', ({ env }) => env.readFileSync(filePath)), Effect.bind('contents', ({ json }) =>
37
37
  // @TODO: move to env.parseJson
38
- Effect.tryCatch(() => JSON.parse(json), (err) => new JsonParseError({ error: String(err), filePath, json }))), Effect.map(({ contents, json }) => ({ contents, filePath, json })));
38
+ Effect.try({
39
+ try: () => JSON.parse(json),
40
+ catch: (err) => new JsonParseError({ error: String(err), filePath, json }),
41
+ })), Effect.map(({ contents, json }) => ({ contents, filePath, json })));
39
42
  }
40
43
  exports.readJsonSafe = readJsonSafe;
@@ -1,7 +1,7 @@
1
1
  import type { Strategy } from '../config/get-custom-types';
2
2
  import type { Ctx } from '../get-context';
3
+ import type { Instance } from '../instance';
3
4
  import type { JsonFile } from './get-patterns/read-json-safe';
4
- import { Instance } from './instance';
5
5
  export interface PackageJson {
6
6
  bugs?: {
7
7
  url: string;
@@ -34,6 +34,8 @@ export declare class PackageJsonFile {
34
34
  contents: PackageJson;
35
35
  /** absolute path on disk to this file */
36
36
  readonly filePath: string;
37
+ /** absolute path on disk to this file's directory */
38
+ readonly dirPath: string;
37
39
  /** raw file contents of the file */
38
40
  readonly json: string;
39
41
  /** resolved configuration */
@@ -41,5 +43,5 @@ export declare class PackageJsonFile {
41
43
  /** relative path on disk to this file */
42
44
  readonly shortPath: string;
43
45
  constructor(jsonFile: JsonFile<PackageJson>, config: Ctx['config']);
44
- getInstances(enabledTypes: Strategy.Any[]): Instance[];
46
+ getInstances(enabledTypes: Strategy.Any[]): Instance.Any[];
45
47
  }
@@ -5,22 +5,23 @@ const Function_1 = require("@effect/data/Function");
5
5
  const path_1 = require("path");
6
6
  const map_1 = require("tightrope/result/map");
7
7
  const constants_1 = require("../constants");
8
+ const create_1 = require("../instance/create");
8
9
  const log_verbose_1 = require("../lib/log-verbose");
9
- const instance_1 = require("./instance");
10
10
  class PackageJsonFile {
11
11
  constructor(jsonFile, config) {
12
12
  this.config = config;
13
13
  this.contents = jsonFile.contents;
14
14
  this.filePath = jsonFile.filePath;
15
+ this.dirPath = (0, path_1.dirname)(jsonFile.filePath);
15
16
  this.json = jsonFile.json;
16
17
  this.shortPath = (0, path_1.relative)(constants_1.CWD, jsonFile.filePath);
17
18
  }
18
19
  getInstances(enabledTypes) {
19
20
  const instances = [];
20
21
  enabledTypes.forEach((strategy) => {
21
- (0, Function_1.pipe)(strategy.read(this), (0, map_1.map)((entries) => entries.forEach(([name, version]) => {
22
- (0, log_verbose_1.logVerbose)(`add ${name}@${version} to ${strategy.name}:${strategy._tag} ${this.shortPath}`);
23
- instances.push(new instance_1.Instance(strategy, name, this, version));
22
+ (0, Function_1.pipe)(strategy.read(this), (0, map_1.map)((entries) => entries.forEach(([name, specifier]) => {
23
+ (0, log_verbose_1.logVerbose)(`add ${name}@${specifier} to ${strategy.name}:${strategy._tag} ${this.shortPath}`);
24
+ instances.push((0, create_1.createInstance)(strategy, name, this, specifier));
24
25
  })));
25
26
  });
26
27
  return instances;
@@ -3,17 +3,17 @@ import * as Effect from '@effect/io/Effect';
3
3
  import { SemverGroupReport } from '.';
4
4
  import type { GroupConfig } from '../config/types';
5
5
  import type { Ctx } from '../get-context';
6
- import type { Instance } from '../get-package-json-files/instance';
6
+ import type { Instance } from '../instance';
7
7
  declare const FilteredOutSemverGroup_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 & {
8
8
  _tag: "FilteredOut";
9
9
  }>;
10
10
  export declare class FilteredOutSemverGroup extends FilteredOutSemverGroup_base<{
11
11
  config: GroupConfig;
12
12
  filter: string;
13
- instances: Instance[];
13
+ instances: Instance.Any[];
14
14
  }> {
15
15
  constructor(ctx: Ctx);
16
- canAdd(instance: Instance): boolean;
16
+ canAdd(instance: Instance.Any): boolean;
17
17
  inspect(): Effect.Effect<never, never, SemverGroupReport.FilteredOut>[];
18
18
  }
19
19
  export {};
@@ -2,16 +2,16 @@ import * as Data from '@effect/data/Data';
2
2
  import * as Effect from '@effect/io/Effect';
3
3
  import { SemverGroupReport } from '.';
4
4
  import type { SemverGroupConfig } from '../config/types';
5
- import type { Instance } from '../get-package-json-files/instance';
5
+ import type { Instance } from '../instance';
6
6
  declare const IgnoredSemverGroup_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 & {
7
7
  _tag: "Ignored";
8
8
  }>;
9
9
  export declare class IgnoredSemverGroup extends IgnoredSemverGroup_base<{
10
10
  config: SemverGroupConfig.Ignored;
11
- instances: Instance[];
11
+ instances: Instance.Any[];
12
12
  }> {
13
13
  constructor(config: SemverGroupConfig.Ignored);
14
- canAdd(_: Instance): boolean;
14
+ canAdd(_: Instance.Any): boolean;
15
15
  inspect(): Effect.Effect<never, never, SemverGroupReport.Ignored>[];
16
16
  }
17
17
  export {};
@@ -3,7 +3,7 @@ import * as Effect from '@effect/io/Effect';
3
3
  import type { Union } from 'ts-toolbelt';
4
4
  import type { DeprecatedTypesError } from '../config/get-enabled-types';
5
5
  import type { Ctx } from '../get-context';
6
- import type { Instance } from '../get-package-json-files/instance';
6
+ import type { Instance } from '../instance';
7
7
  import { FilteredOutSemverGroup } from './filtered-out';
8
8
  import { IgnoredSemverGroup } from './ignored';
9
9
  import { WithRangeSemverGroup } from './with-range';
@@ -14,7 +14,7 @@ export declare namespace SemverGroupReport {
14
14
  }>;
15
15
  export class FilteredOut extends FilteredOut_base<{
16
16
  name: string;
17
- instance: Instance;
17
+ instance: Instance.Any;
18
18
  readonly isValid: true;
19
19
  }> {
20
20
  }
@@ -23,7 +23,7 @@ export declare namespace SemverGroupReport {
23
23
  }>;
24
24
  export class Ignored extends Ignored_base<{
25
25
  name: string;
26
- instance: Instance;
26
+ instance: Instance.Any;
27
27
  readonly isValid: true;
28
28
  }> {
29
29
  }
@@ -32,16 +32,16 @@ export declare namespace SemverGroupReport {
32
32
  }>;
33
33
  export class Valid extends Valid_base<{
34
34
  name: string;
35
- instance: Instance;
35
+ instance: Instance.Any;
36
36
  readonly isValid: true;
37
37
  }> {
38
38
  }
39
- const WorkspaceSemverRangeMismatch_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 & {
40
- _tag: "WorkspaceSemverRangeMismatch";
39
+ const LocalPackageSemverRangeMismatch_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 & {
40
+ _tag: "LocalPackageSemverRangeMismatch";
41
41
  }>;
42
- export class WorkspaceSemverRangeMismatch extends WorkspaceSemverRangeMismatch_base<{
42
+ export class LocalPackageSemverRangeMismatch extends LocalPackageSemverRangeMismatch_base<{
43
43
  name: string;
44
- instance: Instance;
44
+ instance: Instance.Any;
45
45
  readonly isValid: false;
46
46
  readonly expectedVersion: string;
47
47
  }> {
@@ -51,24 +51,24 @@ export declare namespace SemverGroupReport {
51
51
  }>;
52
52
  export class SemverRangeMismatch extends SemverRangeMismatch_base<{
53
53
  name: string;
54
- instance: Instance;
54
+ instance: Instance.Any;
55
55
  readonly isValid: false;
56
56
  readonly expectedVersion: string;
57
57
  }> {
58
58
  }
59
- const UnsupportedVersion_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 & {
60
- _tag: "UnsupportedVersion";
59
+ const NonSemverVersion_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 & {
60
+ _tag: "NonSemverVersion";
61
61
  }>;
62
- export class UnsupportedVersion extends UnsupportedVersion_base<{
62
+ export class NonSemverVersion extends NonSemverVersion_base<{
63
63
  name: string;
64
- instance: Instance;
64
+ instance: Instance.Any;
65
65
  readonly isValid: false;
66
66
  }> {
67
67
  }
68
68
  export type ValidCases = Union.Strict<FilteredOut | Ignored | Valid>;
69
- export type InvalidCases = Union.Strict<SemverRangeMismatch | UnsupportedVersion | WorkspaceSemverRangeMismatch>;
70
- export type FixableCases = Union.Strict<SemverRangeMismatch | WorkspaceSemverRangeMismatch>;
71
- export type UnfixableCases = Union.Strict<UnsupportedVersion>;
69
+ export type InvalidCases = Union.Strict<SemverRangeMismatch | NonSemverVersion | LocalPackageSemverRangeMismatch>;
70
+ export type FixableCases = Union.Strict<SemverRangeMismatch | LocalPackageSemverRangeMismatch>;
71
+ export type UnfixableCases = Union.Strict<NonSemverVersion>;
72
72
  export type Any = Union.Strict<ValidCases | InvalidCases>;
73
73
  export {};
74
74
  }
@@ -50,21 +50,21 @@ var SemverGroupReport;
50
50
  class Valid extends Data.TaggedClass('Valid') {
51
51
  }
52
52
  SemverGroupReport.Valid = Valid;
53
- class WorkspaceSemverRangeMismatch extends Data.TaggedClass('WorkspaceSemverRangeMismatch') {
53
+ class LocalPackageSemverRangeMismatch extends Data.TaggedClass('LocalPackageSemverRangeMismatch') {
54
54
  }
55
- SemverGroupReport.WorkspaceSemverRangeMismatch = WorkspaceSemverRangeMismatch;
55
+ SemverGroupReport.LocalPackageSemverRangeMismatch = LocalPackageSemverRangeMismatch;
56
56
  class SemverRangeMismatch extends Data.TaggedClass('SemverRangeMismatch') {
57
57
  }
58
58
  SemverGroupReport.SemverRangeMismatch = SemverRangeMismatch;
59
- class UnsupportedVersion extends Data.TaggedClass('UnsupportedVersion') {
59
+ class NonSemverVersion extends Data.TaggedClass('NonSemverVersion') {
60
60
  }
61
- SemverGroupReport.UnsupportedVersion = UnsupportedVersion;
61
+ SemverGroupReport.NonSemverVersion = NonSemverVersion;
62
62
  })(SemverGroupReport || (exports.SemverGroupReport = SemverGroupReport = {}));
63
63
  class SemverGroupConfigError extends Data.TaggedClass('SemverGroupConfigError') {
64
64
  }
65
65
  exports.SemverGroupConfigError = SemverGroupConfigError;
66
66
  function getSemverGroups(ctx) {
67
- return (0, Function_1.pipe)(Effect.Do(), Effect.bind('enabledTypes', () => (0, get_enabled_types_1.getEnabledTypes)(ctx.config)), Effect.bind('semverGroups', () => createSemverGroups(ctx)), Effect.flatMap(({ enabledTypes, semverGroups }) => {
67
+ return (0, Function_1.pipe)(Effect.Do, Effect.bind('enabledTypes', () => (0, get_enabled_types_1.getEnabledTypes)(ctx.config)), Effect.bind('semverGroups', () => createSemverGroups(ctx)), Effect.flatMap(({ enabledTypes, semverGroups }) => {
68
68
  for (const file of ctx.packageJsonFiles) {
69
69
  instances: for (const instance of file.getInstances(enabledTypes)) {
70
70
  for (const group of semverGroups) {
@@ -2,17 +2,17 @@ import * as Data from '@effect/data/Data';
2
2
  import * as Effect from '@effect/io/Effect';
3
3
  import { SemverGroupReport } from '.';
4
4
  import type { SemverGroupConfig } from '../config/types';
5
- import type { Instance } from '../get-package-json-files/instance';
5
+ import type { Instance } from '../instance';
6
6
  declare const WithRangeSemverGroup_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 & {
7
7
  _tag: "WithRange";
8
8
  }>;
9
9
  export declare class WithRangeSemverGroup extends WithRangeSemverGroup_base<{
10
10
  config: SemverGroupConfig.WithRange;
11
- instances: Instance[];
11
+ instances: Instance.Any[];
12
12
  isCatchAll: boolean;
13
13
  }> {
14
14
  constructor(isCatchAll: boolean, config: SemverGroupConfig.WithRange);
15
- canAdd(_: Instance): boolean;
16
- inspect(): Effect.Effect<never, SemverGroupReport.UnsupportedVersion | SemverGroupReport.WorkspaceSemverRangeMismatch | SemverGroupReport.SemverRangeMismatch, SemverGroupReport.Valid>[];
15
+ canAdd(_: Instance.Any): boolean;
16
+ inspect(): Effect.Effect<never, SemverGroupReport.NonSemverVersion | SemverGroupReport.LocalPackageSemverRangeMismatch | SemverGroupReport.SemverRangeMismatch, SemverGroupReport.Valid>[];
17
17
  }
18
18
  export {};
@@ -25,9 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.WithRangeSemverGroup = void 0;
27
27
  const Data = __importStar(require("@effect/data/Data"));
28
+ const Option = __importStar(require("@effect/data/Option"));
28
29
  const Effect = __importStar(require("@effect/io/Effect"));
29
30
  const _1 = require(".");
30
- const is_supported_1 = require("../guards/is-supported");
31
31
  const set_semver_range_1 = require("../lib/set-semver-range");
32
32
  class WithRangeSemverGroup extends Data.TaggedClass('WithRange') {
33
33
  constructor(isCatchAll, config) {
@@ -42,25 +42,25 @@ class WithRangeSemverGroup extends Data.TaggedClass('WithRange') {
42
42
  }
43
43
  inspect() {
44
44
  return this.instances.map((instance) => {
45
- if (!(0, is_supported_1.isSupported)(instance.version)) {
46
- return Effect.fail(new _1.SemverGroupReport.UnsupportedVersion({
45
+ if (Option.isNone(instance.getSemverSpecifier())) {
46
+ return Effect.fail(new _1.SemverGroupReport.NonSemverVersion({
47
47
  name: instance.name,
48
48
  instance,
49
49
  isValid: false,
50
50
  }));
51
51
  }
52
- const isWsInstance = instance.strategy.name === 'workspace';
53
- const exactVersion = (0, set_semver_range_1.setSemverRange)('', instance.version);
54
- const expectedVersion = (0, set_semver_range_1.setSemverRange)(this.config.range, instance.version);
55
- if (isWsInstance && instance.version !== exactVersion) {
56
- return Effect.fail(new _1.SemverGroupReport.WorkspaceSemverRangeMismatch({
52
+ const isLocalPackageInstance = instance.strategy.name === 'localPackage';
53
+ const exactVersion = (0, set_semver_range_1.setSemverRange)('', instance.specifier);
54
+ const expectedVersion = (0, set_semver_range_1.setSemverRange)(this.config.range, instance.specifier);
55
+ if (isLocalPackageInstance && instance.specifier !== exactVersion) {
56
+ return Effect.fail(new _1.SemverGroupReport.LocalPackageSemverRangeMismatch({
57
57
  name: instance.name,
58
58
  instance,
59
59
  isValid: false,
60
60
  expectedVersion: exactVersion,
61
61
  }));
62
62
  }
63
- if (instance.version === expectedVersion) {
63
+ if (instance.specifier === expectedVersion) {
64
64
  return Effect.succeed(new _1.SemverGroupReport.Valid({
65
65
  name: instance.name,
66
66
  instance,
@@ -2,16 +2,16 @@ import * as Data from '@effect/data/Data';
2
2
  import * as Effect from '@effect/io/Effect';
3
3
  import { VersionGroupReport } from '.';
4
4
  import type { VersionGroupConfig } from '../config/types';
5
- import type { Instance } from '../get-package-json-files/instance';
5
+ import type { Instance } from '../instance';
6
6
  declare const BannedVersionGroup_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 & {
7
7
  _tag: "Banned";
8
8
  }>;
9
9
  export declare class BannedVersionGroup extends BannedVersionGroup_base<{
10
10
  config: VersionGroupConfig.Banned;
11
- instances: Instance[];
11
+ instances: Instance.Any[];
12
12
  }> {
13
13
  constructor(config: VersionGroupConfig.Banned);
14
- canAdd(_: Instance): boolean;
14
+ canAdd(_: Instance.Any): boolean;
15
15
  inspect(): Effect.Effect<never, VersionGroupReport.Banned, never>[];
16
16
  }
17
17
  export {};
@@ -3,17 +3,17 @@ import * as Effect from '@effect/io/Effect';
3
3
  import { VersionGroupReport } from '.';
4
4
  import type { GroupConfig } from '../config/types';
5
5
  import type { Ctx } from '../get-context';
6
- import type { Instance } from '../get-package-json-files/instance';
6
+ import type { Instance } from '../instance';
7
7
  declare const FilteredOutVersionGroup_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 & {
8
8
  _tag: "FilteredOut";
9
9
  }>;
10
10
  export declare class FilteredOutVersionGroup extends FilteredOutVersionGroup_base<{
11
11
  config: GroupConfig;
12
12
  filter: string;
13
- instances: Instance[];
13
+ instances: Instance.Any[];
14
14
  }> {
15
15
  constructor(ctx: Ctx);
16
- canAdd(instance: Instance): boolean;
16
+ canAdd(instance: Instance.Any): boolean;
17
17
  inspect(): Effect.Effect<never, never, VersionGroupReport.FilteredOut>[];
18
18
  }
19
19
  export {};
@@ -2,16 +2,16 @@ import * as Data from '@effect/data/Data';
2
2
  import * as Effect from '@effect/io/Effect';
3
3
  import { VersionGroupReport } from '.';
4
4
  import type { VersionGroupConfig } from '../config/types';
5
- import type { Instance } from '../get-package-json-files/instance';
5
+ import type { Instance } from '../instance';
6
6
  declare const IgnoredVersionGroup_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 & {
7
7
  _tag: "Ignored";
8
8
  }>;
9
9
  export declare class IgnoredVersionGroup extends IgnoredVersionGroup_base<{
10
10
  config: VersionGroupConfig.Ignored;
11
- instances: Instance[];
11
+ instances: Instance.Any[];
12
12
  }> {
13
13
  constructor(config: VersionGroupConfig.Ignored);
14
- canAdd(_: Instance): boolean;
14
+ canAdd(_: Instance.Any): boolean;
15
15
  inspect(): Effect.Effect<never, never, VersionGroupReport.Ignored>[];
16
16
  }
17
17
  export {};