syncpack 8.4.11 → 8.5.14

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 (129) hide show
  1. package/README.md +1 -1
  2. package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +3 -0
  3. package/dist/bin-fix-mismatches/fix-mismatches-cli.js +10 -0
  4. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +2 -3
  5. package/dist/bin-fix-mismatches/fix-mismatches.js +19 -58
  6. package/dist/bin-fix-mismatches/index.js +3 -4
  7. package/dist/bin-format/format-cli.d.ts +3 -0
  8. package/dist/bin-format/format-cli.js +10 -0
  9. package/dist/bin-format/format.d.ts +2 -3
  10. package/dist/bin-format/format.js +10 -11
  11. package/dist/bin-format/index.js +3 -4
  12. package/dist/bin-lint-semver-ranges/index.js +3 -4
  13. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +3 -0
  14. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +10 -0
  15. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -3
  16. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +73 -27
  17. package/dist/bin-list/index.js +3 -4
  18. package/dist/bin-list/list-cli.d.ts +3 -0
  19. package/dist/bin-list/list-cli.js +10 -0
  20. package/dist/bin-list/list.d.ts +2 -3
  21. package/dist/bin-list/list.js +60 -35
  22. package/dist/bin-list-mismatches/index.js +3 -4
  23. package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +3 -0
  24. package/dist/bin-list-mismatches/list-mismatches-cli.js +10 -0
  25. package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -3
  26. package/dist/bin-list-mismatches/list-mismatches.js +75 -73
  27. package/dist/bin-set-semver-ranges/index.js +3 -4
  28. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +3 -0
  29. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +10 -0
  30. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +2 -3
  31. package/dist/bin-set-semver-ranges/set-semver-ranges.js +5 -29
  32. package/dist/constants.d.ts +27 -21
  33. package/dist/constants.js +28 -32
  34. package/dist/lib/disk.d.ts +3 -3
  35. package/dist/lib/disk.js +0 -1
  36. package/dist/lib/exit-if-invalid.d.ts +2 -0
  37. package/dist/lib/exit-if-invalid.js +10 -0
  38. package/dist/lib/get-context/get-all-instances.d.ts +3 -0
  39. package/dist/lib/get-context/get-all-instances.js +8 -0
  40. package/dist/lib/get-context/get-config/config.d.ts +151 -0
  41. package/dist/{types/index.js → lib/get-context/get-config/config.js} +0 -0
  42. package/dist/lib/get-context/get-config/index.d.ts +8 -0
  43. package/dist/lib/{get-input/get-config.js → get-context/get-config/index.js} +35 -10
  44. package/dist/lib/get-context/get-config/internal-config.d.ts +24 -0
  45. package/dist/{types/semver-group.js → lib/get-context/get-config/internal-config.js} +0 -0
  46. package/dist/lib/get-context/get-groups/get-semver-groups.d.ts +4 -0
  47. package/dist/lib/get-context/get-groups/get-semver-groups.js +45 -0
  48. package/dist/lib/get-context/get-groups/get-version-groups.d.ts +4 -0
  49. package/dist/lib/get-context/get-groups/get-version-groups.js +71 -0
  50. package/dist/lib/get-context/get-groups/semver-group/index.d.ts +30 -0
  51. package/dist/lib/get-context/get-groups/semver-group/index.js +33 -0
  52. package/dist/lib/get-context/get-groups/version-group/index.d.ts +30 -0
  53. package/dist/lib/get-context/get-groups/version-group/index.js +23 -0
  54. package/dist/{bin-fix-mismatches/get-expected-version → lib/get-context/get-groups/version-group/instance-group}/get-highest-version.d.ts +0 -0
  55. package/dist/{bin-fix-mismatches/get-expected-version → lib/get-context/get-groups/version-group/instance-group}/get-highest-version.js +10 -10
  56. package/dist/lib/get-context/get-groups/version-group/instance-group/index.d.ts +32 -0
  57. package/dist/lib/get-context/get-groups/version-group/instance-group/index.js +79 -0
  58. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-file-paths.d.ts +3 -3
  59. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-file-paths.js +7 -2
  60. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-lerna-patterns.d.ts +1 -1
  61. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-lerna-patterns.js +0 -0
  62. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-pnpm-patterns.d.ts +1 -1
  63. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-pnpm-patterns.js +0 -0
  64. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-yarn-patterns.d.ts +1 -1
  65. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/get-yarn-patterns.js +0 -0
  66. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/index.d.ts +3 -3
  67. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/index.js +1 -1
  68. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/props.d.ts +0 -0
  69. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/props.js +0 -0
  70. package/dist/lib/get-context/get-package-json-files/get-patterns/read-json-safe.d.ts +11 -0
  71. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/read-json-safe.js +0 -0
  72. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/read-yaml-safe.d.ts +1 -1
  73. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/get-patterns/read-yaml-safe.js +0 -0
  74. package/dist/lib/get-context/get-package-json-files/index.d.ts +5 -0
  75. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/index.js +8 -8
  76. package/dist/lib/get-context/get-package-json-files/package-json-file/index.d.ts +50 -0
  77. package/dist/lib/get-context/get-package-json-files/package-json-file/index.js +95 -0
  78. package/dist/lib/get-context/get-package-json-files/package-json-file/instance.d.ts +25 -0
  79. package/dist/lib/get-context/get-package-json-files/package-json-file/instance.js +46 -0
  80. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/tap.d.ts +1 -1
  81. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/tap.js +0 -0
  82. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/try-catch.d.ts +0 -0
  83. package/dist/lib/{get-input/get-wrappers → get-context/get-package-json-files}/try-catch.js +0 -0
  84. package/dist/lib/get-context/index.d.ts +22 -0
  85. package/dist/lib/get-context/index.js +38 -0
  86. package/dist/lib/is-semver.d.ts +1 -1
  87. package/dist/lib/is-semver.js +9 -9
  88. package/dist/lib/log.d.ts +6 -0
  89. package/dist/lib/log.js +40 -1
  90. package/dist/lib/newlines.d.ts +6 -0
  91. package/dist/lib/newlines.js +24 -0
  92. package/dist/lib/set-semver-range.d.ts +1 -1
  93. package/dist/lib/set-semver-range.js +1 -1
  94. package/dist/lib/write-if-changed.d.ts +2 -0
  95. package/dist/lib/write-if-changed.js +40 -0
  96. package/dist/option.d.ts +2 -1
  97. package/dist/option.js +4 -2
  98. package/package.json +21 -21
  99. package/dist/bin-fix-mismatches/get-expected-version/get-pinned-version.d.ts +0 -2
  100. package/dist/bin-fix-mismatches/get-expected-version/get-pinned-version.js +0 -7
  101. package/dist/bin-fix-mismatches/get-expected-version/get-workspace-version.d.ts +0 -6
  102. package/dist/bin-fix-mismatches/get-expected-version/get-workspace-version.js +0 -17
  103. package/dist/bin-fix-mismatches/get-expected-version/index.d.ts +0 -3
  104. package/dist/bin-fix-mismatches/get-expected-version/index.js +0 -27
  105. package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.d.ts +0 -2
  106. package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.js +0 -12
  107. package/dist/bin-list/list-version-groups.d.ts +0 -10
  108. package/dist/bin-list/list-version-groups.js +0 -52
  109. package/dist/lib/collect.d.ts +0 -1
  110. package/dist/lib/collect.js +0 -7
  111. package/dist/lib/get-input/get-config.d.ts +0 -12
  112. package/dist/lib/get-input/get-instances.d.ts +0 -29
  113. package/dist/lib/get-input/get-instances.js +0 -172
  114. package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.d.ts +0 -4
  115. package/dist/lib/get-input/get-wrappers/index.d.ts +0 -38
  116. package/dist/lib/get-input/get-wrappers/readonly.d.ts +0 -4
  117. package/dist/lib/get-input/get-wrappers/readonly.js +0 -10
  118. package/dist/lib/get-input/index.d.ts +0 -20
  119. package/dist/lib/get-input/index.js +0 -32
  120. package/dist/lib/group-by.d.ts +0 -1
  121. package/dist/lib/group-by.js +0 -11
  122. package/dist/lib/write-if-changed/index.d.ts +0 -10
  123. package/dist/lib/write-if-changed/index.js +0 -25
  124. package/dist/lib/write-if-changed/set-newlines.d.ts +0 -4
  125. package/dist/lib/write-if-changed/set-newlines.js +0 -24
  126. package/dist/types/index.d.ts +0 -77
  127. package/dist/types/semver-group.d.ts +0 -30
  128. package/dist/types/version-group.d.ts +0 -35
  129. package/dist/types/version-group.js +0 -2
@@ -1,20 +0,0 @@
1
- import type { SyncpackConfig } from '../../types';
2
- import type { Disk } from '../../lib/disk';
3
- import type { Instances } from './get-instances';
4
- import type { SourceWrapper } from './get-wrappers';
5
- export declare type ProgramInput = SyncpackConfig & {
6
- disk: Disk;
7
- instances: Instances;
8
- wrappers: SourceWrapper[];
9
- };
10
- /**
11
- * Every command in syncpack should accept the return value of this function as
12
- * its input. The aim here is to move all disk activity to a single place, so
13
- * that the majority of syncpack and its tests don't have to deal with the file
14
- * system and can focus solely on transformation logic.
15
- *
16
- * @param program Options received from CLI arguments
17
- */
18
- export declare function getInput(disk: Disk, program: Partial<SyncpackConfig & {
19
- configPath: string | undefined;
20
- }>): ProgramInput;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- exports.__esModule = true;
14
- exports.getInput = void 0;
15
- var get_config_1 = require("./get-config");
16
- var get_instances_1 = require("./get-instances");
17
- var get_wrappers_1 = require("./get-wrappers");
18
- /**
19
- * Every command in syncpack should accept the return value of this function as
20
- * its input. The aim here is to move all disk activity to a single place, so
21
- * that the majority of syncpack and its tests don't have to deal with the file
22
- * system and can focus solely on transformation logic.
23
- *
24
- * @param program Options received from CLI arguments
25
- */
26
- function getInput(disk, program) {
27
- var config = (0, get_config_1.getConfig)(disk, program);
28
- var wrappers = (0, get_wrappers_1.getWrappers)(disk, config);
29
- var instances = (0, get_instances_1.getInstances)(config, wrappers);
30
- return __assign(__assign({}, config), { disk: disk, instances: instances, wrappers: wrappers });
31
- }
32
- exports.getInput = getInput;
@@ -1 +0,0 @@
1
- export declare function groupBy<T>(key: string, array: T[]): Record<string, T[]>;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.groupBy = void 0;
4
- function groupBy(key, array) {
5
- return array.reduce(function (memo, obj) {
6
- var value = obj[key];
7
- memo[value] = (memo[value] || []).concat(obj);
8
- return memo;
9
- }, {});
10
- }
11
- exports.groupBy = groupBy;
@@ -1,10 +0,0 @@
1
- import type { Disk } from '../disk';
2
- import type { Source } from '../get-input/get-wrappers';
3
- interface FileData {
4
- contents: Source;
5
- filePath: string;
6
- indent: string;
7
- json: string;
8
- }
9
- export declare function writeIfChanged(disk: Disk, fileData: FileData): void;
10
- export {};
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- exports.__esModule = true;
6
- exports.writeIfChanged = void 0;
7
- var chalk_1 = __importDefault(require("chalk"));
8
- var path_1 = require("path");
9
- var constants_1 = require("../../constants");
10
- var set_newlines_1 = require("./set-newlines");
11
- function writeIfChanged(disk, fileData) {
12
- var contents = fileData.contents, filePath = fileData.filePath, indent = fileData.indent, json = fileData.json;
13
- var EOL = (0, set_newlines_1.detectNewlines)(json);
14
- var shortPath = (0, path_1.relative)(constants_1.CWD, filePath);
15
- var source = "".concat(JSON.stringify(contents, null, indent)).concat(EOL);
16
- var after = (0, set_newlines_1.setNewlines)(source, EOL);
17
- if (json !== after) {
18
- disk.writeFileSync(filePath, after);
19
- console.log(chalk_1["default"].green(constants_1.ICON.tick), shortPath);
20
- }
21
- else {
22
- console.log(chalk_1["default"].dim(constants_1.ICON.skip), chalk_1["default"].dim(shortPath));
23
- }
24
- }
25
- exports.writeIfChanged = writeIfChanged;
@@ -1,4 +0,0 @@
1
- declare type Ending = '\n' | '\r' | '\r\n' | string;
2
- export declare function setNewlines(source: string, lineEnding: Ending): string;
3
- export declare function detectNewlines(source: string): Ending;
4
- export {};
@@ -1,24 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.detectNewlines = exports.setNewlines = void 0;
4
- var os_1 = require("os");
5
- var LF = '\n';
6
- var CR = '\r';
7
- var CRLF = '\r\n';
8
- function setNewlines(source, lineEnding) {
9
- return source.replace(/\r\n|\n|\r/g, lineEnding);
10
- }
11
- exports.setNewlines = setNewlines;
12
- function detectNewlines(source) {
13
- var cr = source.split(CR).length;
14
- var lf = source.split(LF).length;
15
- var crlf = source.split(CRLF).length;
16
- if (cr + lf === 0)
17
- return os_1.EOL;
18
- if (crlf === cr && crlf === lf)
19
- return CRLF;
20
- if (cr > lf)
21
- return CR;
22
- return LF;
23
- }
24
- exports.detectNewlines = detectNewlines;
@@ -1,77 +0,0 @@
1
- import type { RANGE_ANY, RANGE_EXACT, RANGE_GT, RANGE_GTE, RANGE_LOOSE, RANGE_LT, RANGE_LTE, RANGE_MINOR, RANGE_PATCH } from '../constants';
2
- import type { AnySemverGroup } from './semver-group';
3
- import type { AnyVersionGroup } from './version-group';
4
- export declare type DependencyType = 'dependencies' | 'devDependencies' | 'overrides' | 'peerDependencies' | 'pnpmOverrides' | 'resolutions' | 'workspace';
5
- export declare type DependencyOption = Pick<SyncpackConfig, 'dev' | 'workspace' | 'overrides' | 'peer' | 'prod' | 'resolutions'>;
6
- export declare type ValidRange = typeof RANGE_ANY | typeof RANGE_EXACT | typeof RANGE_GT | typeof RANGE_GTE | typeof RANGE_LOOSE | typeof RANGE_LT | typeof RANGE_LTE | typeof RANGE_MINOR | typeof RANGE_PATCH;
7
- export interface SyncpackConfig {
8
- /**
9
- * which dependency properties to search within
10
- */
11
- dependencyTypes: DependencyType[];
12
- /**
13
- * whether to search within devDependencies
14
- */
15
- dev: boolean;
16
- /**
17
- * a string which will be passed to `new RegExp()` to match against package
18
- * names that should be included
19
- */
20
- filter: string;
21
- /**
22
- * the character(s) to be used to indent your package.json files when writing
23
- * to disk
24
- */
25
- indent: string;
26
- /**
27
- * whether to search within npm overrides
28
- */
29
- overrides: boolean;
30
- /**
31
- * whether to search within peerDependencies
32
- */
33
- peer: boolean;
34
- /**
35
- * whether to search within pnpm overrides
36
- */
37
- pnpmOverrides: boolean;
38
- /**
39
- * whether to search within dependencies
40
- */
41
- prod: boolean;
42
- /**
43
- * whether to search within yarn resolutions
44
- */
45
- resolutions: boolean;
46
- /**
47
- *
48
- */
49
- semverGroups: AnySemverGroup[];
50
- /**
51
- * defaults to `""` to ensure that exact dependency versions are used instead
52
- * of loose ranges
53
- */
54
- semverRange: ValidRange;
55
- /**
56
- * which fields within package.json files should be sorted alphabetically
57
- */
58
- sortAz: string[];
59
- /**
60
- * which fields within package.json files should appear at the top, and in
61
- * what order
62
- */
63
- sortFirst: string[];
64
- /**
65
- * glob patterns for package.json file locations
66
- */
67
- source: string[];
68
- /**
69
- *
70
- */
71
- versionGroups: AnyVersionGroup[];
72
- /**
73
- * whether to include the versions of the `--source` packages developed in
74
- * your workspace/monorepo as part of the search for versions to sync
75
- */
76
- workspace: boolean;
77
- }
@@ -1,30 +0,0 @@
1
- import type { ValidRange, DependencyType } from '.';
2
- export declare type AnySemverGroup = IgnoredSemverGroup | SemverGroup;
3
- export interface IgnoredSemverGroup extends Base {
4
- /**
5
- * optionally force syncpack to ignore all dependencies in this group
6
- */
7
- isIgnored: true;
8
- }
9
- export interface SemverGroup extends Base {
10
- /**
11
- * the semver range which dependencies in this group should use
12
- */
13
- range: ValidRange;
14
- }
15
- interface Base {
16
- /**
17
- * the names of packages in your monorepo which belong to this group, taken
18
- * from the "name" field in package.json, not the package directory name
19
- */
20
- packages: string[];
21
- /**
22
- * the names of the dependencies (eg. "lodash") which belong to this group
23
- */
24
- dependencies: string[];
25
- /**
26
- * optionally only apply this group to dependencies of the provided types
27
- */
28
- dependencyTypes?: DependencyType[];
29
- }
30
- export {};
@@ -1,35 +0,0 @@
1
- import type { DependencyType } from '.';
2
- export declare type AnyVersionGroup = VersionGroup | BannedVersionGroup | IgnoredVersionGroup | PinnedVersionGroup;
3
- export interface VersionGroup {
4
- /**
5
- * the names of packages in your monorepo which belong to this group, taken
6
- * from the "name" field in package.json, not the package directory name
7
- */
8
- packages: string[];
9
- /**
10
- * the names of the dependencies (eg. "lodash") which belong to this group
11
- */
12
- dependencies: string[];
13
- /**
14
- * optionally only apply this group to dependencies of the provided types
15
- */
16
- dependencyTypes?: DependencyType[];
17
- }
18
- export interface BannedVersionGroup extends VersionGroup {
19
- /**
20
- * optionally force all dependencies in this group to be removed
21
- */
22
- isBanned: true;
23
- }
24
- export interface IgnoredVersionGroup extends VersionGroup {
25
- /**
26
- * optionally force syncpack to ignore all dependencies in this group
27
- */
28
- isIgnored?: true;
29
- }
30
- export interface PinnedVersionGroup extends VersionGroup {
31
- /**
32
- * optionally force all dependencies in this group to have this version
33
- */
34
- pinVersion?: string;
35
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;