syncpack 9.8.4 → 10.0.0

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 (212) hide show
  1. package/LICENSE +12 -13
  2. package/README.md +17 -19
  3. package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +2 -2
  4. package/dist/bin-fix-mismatches/fix-mismatches-cli.js +3 -1
  5. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +2 -2
  6. package/dist/bin-fix-mismatches/fix-mismatches.js +44 -25
  7. package/dist/bin-format/format-cli.d.ts +2 -2
  8. package/dist/bin-format/format-cli.js +2 -1
  9. package/dist/bin-format/format.d.ts +2 -2
  10. package/dist/bin-format/format.js +7 -4
  11. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +2 -2
  12. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +2 -1
  13. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -2
  14. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +29 -25
  15. package/dist/bin-list/list-cli.d.ts +2 -2
  16. package/dist/bin-list/list-cli.js +2 -1
  17. package/dist/bin-list/list.d.ts +2 -2
  18. package/dist/bin-list/list.js +58 -52
  19. package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +2 -2
  20. package/dist/bin-list-mismatches/list-mismatches-cli.js +2 -1
  21. package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -2
  22. package/dist/bin-list-mismatches/list-mismatches.js +72 -105
  23. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +2 -2
  24. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +2 -1
  25. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +2 -2
  26. package/dist/bin-set-semver-ranges/set-semver-ranges.js +17 -3
  27. package/dist/config/get-custom-types.d.ts +9 -0
  28. package/dist/config/get-custom-types.js +49 -0
  29. package/dist/config/get-enabled-types.d.ts +3 -0
  30. package/dist/config/get-enabled-types.js +48 -0
  31. package/dist/config/get-filter.d.ts +2 -0
  32. package/dist/config/get-filter.js +13 -0
  33. package/dist/config/get-indent.d.ts +2 -0
  34. package/dist/config/get-indent.js +12 -0
  35. package/dist/config/get-semver-range.d.ts +3 -0
  36. package/dist/config/get-semver-range.js +12 -0
  37. package/dist/config/get-sort-az.d.ts +2 -0
  38. package/dist/config/get-sort-az.js +18 -0
  39. package/dist/config/get-sort-first.d.ts +2 -0
  40. package/dist/config/get-sort-first.js +10 -0
  41. package/dist/config/get-source.d.ts +2 -0
  42. package/dist/config/get-source.js +13 -0
  43. package/dist/config/types.d.ts +106 -0
  44. package/dist/constants.d.ts +1 -0
  45. package/dist/constants.js +1 -0
  46. package/dist/get-context/index.d.ts +8 -16
  47. package/dist/get-context/index.js +8 -31
  48. package/dist/get-package-json-files/get-file-paths.d.ts +13 -0
  49. package/dist/get-package-json-files/get-file-paths.js +30 -0
  50. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +3 -0
  51. package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +17 -0
  52. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +3 -0
  53. package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +22 -0
  54. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +3 -0
  55. package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +18 -0
  56. package/dist/get-package-json-files/get-patterns/index.d.ts +10 -0
  57. package/dist/get-package-json-files/get-patterns/index.js +35 -0
  58. package/dist/{get-context/get-package-json-files → get-package-json-files}/get-patterns/read-json-safe.d.ts +3 -4
  59. package/dist/get-package-json-files/get-patterns/read-json-safe.js +14 -0
  60. package/dist/get-package-json-files/get-patterns/read-yaml-safe.d.ts +3 -0
  61. package/dist/get-package-json-files/get-patterns/read-yaml-safe.js +12 -0
  62. package/dist/get-package-json-files/index.d.ts +6 -0
  63. package/dist/get-package-json-files/index.js +18 -0
  64. package/dist/{get-context/get-package-json-files/package-json-file → get-package-json-files}/instance.d.ts +6 -8
  65. package/dist/get-package-json-files/instance.js +23 -0
  66. package/dist/{get-context/get-package-json-files/package-json-file/index.d.ts → get-package-json-files/package-json-file.d.ts} +7 -9
  67. package/dist/get-package-json-files/package-json-file.js +45 -0
  68. package/dist/get-semver-groups/catch-all.d.ts +4 -0
  69. package/dist/get-semver-groups/catch-all.js +11 -0
  70. package/dist/get-semver-groups/filtered-out.d.ts +13 -0
  71. package/dist/get-semver-groups/filtered-out.js +29 -0
  72. package/dist/get-semver-groups/ignored.d.ts +11 -0
  73. package/dist/get-semver-groups/ignored.js +22 -0
  74. package/dist/get-semver-groups/index.d.ts +32 -0
  75. package/dist/get-semver-groups/index.js +90 -0
  76. package/dist/get-semver-groups/with-range.d.ts +11 -0
  77. package/dist/get-semver-groups/with-range.js +55 -0
  78. package/dist/get-version-groups/banned.d.ts +11 -0
  79. package/dist/get-version-groups/banned.js +24 -0
  80. package/dist/get-version-groups/catch-all.d.ts +4 -0
  81. package/dist/get-version-groups/catch-all.js +11 -0
  82. package/dist/get-version-groups/filtered-out.d.ts +13 -0
  83. package/dist/get-version-groups/filtered-out.js +31 -0
  84. package/dist/get-version-groups/ignored.d.ts +11 -0
  85. package/dist/get-version-groups/ignored.js +24 -0
  86. package/dist/get-version-groups/index.d.ts +57 -0
  87. package/dist/get-version-groups/index.js +119 -0
  88. package/dist/get-version-groups/lib/delete.d.ts +2 -0
  89. package/dist/get-version-groups/lib/delete.js +4 -0
  90. package/dist/get-version-groups/lib/get-highest-version.d.ts +2 -0
  91. package/dist/get-version-groups/lib/get-highest-version.js +13 -0
  92. package/dist/get-version-groups/lib/get-lowest-version.d.ts +2 -0
  93. package/dist/get-version-groups/lib/get-lowest-version.js +13 -0
  94. package/dist/{get-context/get-groups/version-group/instance-group → get-version-groups}/lib/get-range-score.js +3 -2
  95. package/dist/get-version-groups/lib/get-unique-versions.d.ts +2 -0
  96. package/dist/get-version-groups/lib/get-unique-versions.js +8 -0
  97. package/dist/get-version-groups/lib/group-by.d.ts +1 -0
  98. package/dist/get-version-groups/lib/group-by.js +11 -0
  99. package/dist/get-version-groups/lib/sort.d.ts +1 -0
  100. package/dist/get-version-groups/lib/sort.js +44 -0
  101. package/dist/get-version-groups/pinned.d.ts +11 -0
  102. package/dist/get-version-groups/pinned.js +43 -0
  103. package/dist/get-version-groups/snapped-to.d.ts +11 -0
  104. package/dist/get-version-groups/snapped-to.js +52 -0
  105. package/dist/get-version-groups/standard.d.ts +11 -0
  106. package/dist/get-version-groups/standard.js +95 -0
  107. package/dist/index.d.ts +2 -0
  108. package/dist/lib/$R.d.ts +12 -0
  109. package/dist/lib/$R.js +34 -0
  110. package/dist/lib/disk.d.ts +3 -2
  111. package/dist/lib/disk.js +1 -1
  112. package/dist/lib/exit-if-invalid.d.ts +2 -2
  113. package/dist/lib/is-semver.d.ts +5 -3
  114. package/dist/lib/is-semver.js +18 -4
  115. package/dist/lib/log.d.ts +4 -8
  116. package/dist/lib/log.js +4 -30
  117. package/dist/lib/set-semver-range.d.ts +2 -2
  118. package/dist/lib/write-if-changed.d.ts +2 -2
  119. package/dist/lib/write-if-changed.js +6 -25
  120. package/dist/strategy/lib/get-non-empty-string-prop.d.ts +3 -0
  121. package/dist/strategy/lib/get-non-empty-string-prop.js +12 -0
  122. package/dist/strategy/name-and-version-props.d.ts +12 -0
  123. package/dist/strategy/name-and-version-props.js +50 -0
  124. package/dist/strategy/named-version-string.d.ts +11 -0
  125. package/dist/strategy/named-version-string.js +53 -0
  126. package/dist/strategy/unnamed-version-string.d.ts +11 -0
  127. package/dist/strategy/unnamed-version-string.js +48 -0
  128. package/dist/strategy/versions-by-name.d.ts +11 -0
  129. package/dist/strategy/versions-by-name.js +29 -0
  130. package/package.json +23 -20
  131. package/dist/get-context/$R.d.ts +0 -13
  132. package/dist/get-context/$R.js +0 -34
  133. package/dist/get-context/get-config/get-core-types.d.ts +0 -36
  134. package/dist/get-context/get-config/get-core-types.js +0 -38
  135. package/dist/get-context/get-config/get-custom-types.d.ts +0 -4
  136. package/dist/get-context/get-config/get-custom-types.js +0 -16
  137. package/dist/get-context/get-config/get-enabled-types.d.ts +0 -4
  138. package/dist/get-context/get-config/get-enabled-types.js +0 -17
  139. package/dist/get-context/get-config/index.d.ts +0 -9
  140. package/dist/get-context/get-config/index.js +0 -91
  141. package/dist/get-context/get-config/path-strategy/index.d.ts +0 -8
  142. package/dist/get-context/get-config/path-strategy/index.js +0 -18
  143. package/dist/get-context/get-config/path-strategy/lib/get-non-empty-string-prop.d.ts +0 -4
  144. package/dist/get-context/get-config/path-strategy/lib/get-non-empty-string-prop.js +0 -11
  145. package/dist/get-context/get-config/path-strategy/name-and-version-props.d.ts +0 -2
  146. package/dist/get-context/get-config/path-strategy/name-and-version-props.js +0 -40
  147. package/dist/get-context/get-config/path-strategy/name-and-version-string.d.ts +0 -2
  148. package/dist/get-context/get-config/path-strategy/name-and-version-string.js +0 -44
  149. package/dist/get-context/get-config/path-strategy/types.d.ts +0 -15
  150. package/dist/get-context/get-config/path-strategy/version-string.d.ts +0 -2
  151. package/dist/get-context/get-config/path-strategy/version-string.js +0 -44
  152. package/dist/get-context/get-config/path-strategy/versions-by-name.d.ts +0 -2
  153. package/dist/get-context/get-config/path-strategy/versions-by-name.js +0 -23
  154. package/dist/get-context/get-config/schema/base-group.d.ts +0 -7
  155. package/dist/get-context/get-config/schema/base-group.js +0 -10
  156. package/dist/get-context/get-config/schema/index.d.ts +0 -1540
  157. package/dist/get-context/get-config/schema/index.js +0 -81
  158. package/dist/get-context/get-config/schema/lib/non-empty-string.d.ts +0 -2
  159. package/dist/get-context/get-config/schema/lib/non-empty-string.js +0 -5
  160. package/dist/get-context/get-config/schema/paths.d.ts +0 -89
  161. package/dist/get-context/get-config/schema/paths.js +0 -33
  162. package/dist/get-context/get-config/schema/semver-group.d.ts +0 -119
  163. package/dist/get-context/get-config/schema/semver-group.js +0 -43
  164. package/dist/get-context/get-config/schema/semver-range.d.ts +0 -2
  165. package/dist/get-context/get-config/schema/semver-range.js +0 -16
  166. package/dist/get-context/get-config/schema/version-group.d.ts +0 -230
  167. package/dist/get-context/get-config/schema/version-group.js +0 -36
  168. package/dist/get-context/get-groups/base-group.d.ts +0 -22
  169. package/dist/get-context/get-groups/base-group.js +0 -39
  170. package/dist/get-context/get-groups/index.d.ts +0 -12
  171. package/dist/get-context/get-groups/index.js +0 -51
  172. package/dist/get-context/get-groups/semver-group.d.ts +0 -15
  173. package/dist/get-context/get-groups/semver-group.js +0 -46
  174. package/dist/get-context/get-groups/version-group/index.d.ts +0 -15
  175. package/dist/get-context/get-groups/version-group/index.js +0 -36
  176. package/dist/get-context/get-groups/version-group/instance-group/get-highest-version.d.ts +0 -3
  177. package/dist/get-context/get-groups/version-group/instance-group/get-highest-version.js +0 -42
  178. package/dist/get-context/get-groups/version-group/instance-group/get-lowest-version.d.ts +0 -3
  179. package/dist/get-context/get-groups/version-group/instance-group/get-lowest-version.js +0 -44
  180. package/dist/get-context/get-groups/version-group/instance-group/index.d.ts +0 -35
  181. package/dist/get-context/get-groups/version-group/instance-group/index.js +0 -88
  182. package/dist/get-context/get-groups/version-group/instance-group/lib/compare-semver.d.ts +0 -4
  183. package/dist/get-context/get-groups/version-group/instance-group/lib/compare-semver.js +0 -38
  184. package/dist/get-context/get-package-json-files/get-file-paths.d.ts +0 -14
  185. package/dist/get-context/get-package-json-files/get-file-paths.js +0 -40
  186. package/dist/get-context/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +0 -4
  187. package/dist/get-context/get-package-json-files/get-patterns/get-lerna-patterns.js +0 -16
  188. package/dist/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +0 -4
  189. package/dist/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.js +0 -21
  190. package/dist/get-context/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +0 -4
  191. package/dist/get-context/get-package-json-files/get-patterns/get-yarn-patterns.js +0 -17
  192. package/dist/get-context/get-package-json-files/get-patterns/index.d.ts +0 -11
  193. package/dist/get-context/get-package-json-files/get-patterns/index.js +0 -43
  194. package/dist/get-context/get-package-json-files/get-patterns/lib/get-array-of-strings.d.ts +0 -1
  195. package/dist/get-context/get-package-json-files/get-patterns/lib/get-array-of-strings.js +0 -8
  196. package/dist/get-context/get-package-json-files/get-patterns/props.d.ts +0 -6
  197. package/dist/get-context/get-package-json-files/get-patterns/props.js +0 -24
  198. package/dist/get-context/get-package-json-files/get-patterns/read-json-safe.js +0 -17
  199. package/dist/get-context/get-package-json-files/get-patterns/read-yaml-safe.d.ts +0 -4
  200. package/dist/get-context/get-package-json-files/get-patterns/read-yaml-safe.js +0 -11
  201. package/dist/get-context/get-package-json-files/index.d.ts +0 -7
  202. package/dist/get-context/get-package-json-files/index.js +0 -16
  203. package/dist/get-context/get-package-json-files/package-json-file/index.js +0 -63
  204. package/dist/get-context/get-package-json-files/package-json-file/instance.js +0 -46
  205. package/dist/lib/error.d.ts +0 -12
  206. package/dist/lib/error.js +0 -25
  207. package/dist/types.d.ts +0 -90
  208. /package/dist/{get-context/get-config/path-strategy → config}/types.js +0 -0
  209. /package/dist/{get-context/get-groups/version-group/instance-group → get-version-groups}/lib/clean.d.ts +0 -0
  210. /package/dist/{get-context/get-groups/version-group/instance-group → get-version-groups}/lib/clean.js +0 -0
  211. /package/dist/{get-context/get-groups/version-group/instance-group → get-version-groups}/lib/get-range-score.d.ts +0 -0
  212. /package/dist/{types.js → index.js} +0 -0
@@ -1,11 +0,0 @@
1
- import { R } from '@mobily/ts-belt';
2
- import type { Disk } from '../../../lib/disk';
3
- import { BaseError } from '../../../lib/error';
4
- import type { Syncpack } from '../../../types';
5
- /**
6
- * Find every glob pattern which should be used to find package.json files for
7
- * this monorepo.
8
- *
9
- * @returns `['./package.json', './packages/* /package.json']`
10
- */
11
- export declare function getPatterns(disk: Disk): (program: Syncpack.Config.SyncpackRc) => R.Result<string[], BaseError>;
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPatterns = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const is_array_of_strings_1 = require("expect-more/dist/is-array-of-strings");
6
- const constants_1 = require("../../../constants");
7
- const error_1 = require("../../../lib/error");
8
- const get_lerna_patterns_1 = require("./get-lerna-patterns");
9
- const get_pnpm_patterns_1 = require("./get-pnpm-patterns");
10
- const get_yarn_patterns_1 = require("./get-yarn-patterns");
11
- /**
12
- * Find every glob pattern which should be used to find package.json files for
13
- * this monorepo.
14
- *
15
- * @returns `['./package.json', './packages/* /package.json']`
16
- */
17
- function getPatterns(disk) {
18
- return function getPatterns(program) {
19
- const getters = [
20
- getCliPatterns,
21
- (0, get_yarn_patterns_1.getYarnPatterns)(disk),
22
- (0, get_pnpm_patterns_1.getPnpmPatterns)(disk),
23
- (0, get_lerna_patterns_1.getLernaPatterns)(disk),
24
- ];
25
- const initialResult = ts_belt_1.R.Error(new error_1.BaseError('getPatterns did not try any sources'));
26
- const res = ts_belt_1.A.reduce(getters, initialResult, (previousResult, getNextResult) => {
27
- if (ts_belt_1.R.isOk(previousResult))
28
- return previousResult;
29
- return getNextResult();
30
- });
31
- return (0, ts_belt_1.pipe)(res, ts_belt_1.R.map(addRootDir), ts_belt_1.R.map(limitToPackageJson), ts_belt_1.R.handleError(() => constants_1.DEFAULT_SOURCES), ts_belt_1.R.mapError(ts_belt_1.F.identity));
32
- function getCliPatterns() {
33
- return ts_belt_1.R.fromPredicate(program.source, is_array_of_strings_1.isArrayOfStrings, new error_1.BaseError('No --source options provided'));
34
- }
35
- function addRootDir(patterns) {
36
- return ['package.json', ...patterns];
37
- }
38
- function limitToPackageJson(patterns) {
39
- return patterns.map((pattern) => pattern.includes('package.json') ? pattern : `${pattern}/package.json`);
40
- }
41
- };
42
- }
43
- exports.getPatterns = getPatterns;
@@ -1 +0,0 @@
1
- export declare const getArrayOfStrings: (path: string) => (obj: unknown) => import("@mobily/ts-belt").Option<string[]>;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getArrayOfStrings = void 0;
4
- const is_array_of_strings_1 = require("expect-more/dist/is-array-of-strings");
5
- const props_1 = require("../props");
6
- // Yarn's config for this can be in more than one place
7
- const getArrayOfStrings = (path) => (0, props_1.props)(path, is_array_of_strings_1.isArrayOfStrings);
8
- exports.getArrayOfStrings = getArrayOfStrings;
@@ -1,6 +0,0 @@
1
- import { O } from '@mobily/ts-belt';
2
- /**
3
- * Safely read nested properties of any value.
4
- * @param keys 'child.grandChild.greatGrandChild'
5
- */
6
- export declare function props<T>(keys: string, predicate: (value: unknown) => value is T): (obj: unknown) => O.Option<T>;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.props = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const isWalkable = (value) => value !== null && typeof value !== 'undefined';
6
- /**
7
- * Safely read nested properties of any value.
8
- * @param keys 'child.grandChild.greatGrandChild'
9
- */
10
- function props(keys, predicate) {
11
- return function getNestedProp(obj) {
12
- let next = obj;
13
- for (const key of keys.split('.')) {
14
- if (isWalkable(next) && key in next) {
15
- next = next[key];
16
- }
17
- else {
18
- return ts_belt_1.O.None;
19
- }
20
- }
21
- return ts_belt_1.O.fromPredicate(next, predicate);
22
- };
23
- }
24
- exports.props = props;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readJsonSafe = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const error_1 = require("../../../lib/error");
6
- function readJsonSafe(disk) {
7
- return function readJsonSafe(filePath) {
8
- return (0, ts_belt_1.pipe)(readFileSafe(filePath), ts_belt_1.R.flatMap((0, ts_belt_1.flow)((parseJsonSafe), ts_belt_1.R.mapError(error_1.BaseError.map(`Failed to parse JSON file at ${filePath}`)), ts_belt_1.R.map(({ contents, json }) => ({ contents, filePath, json })))));
9
- };
10
- function readFileSafe(filePath) {
11
- return (0, ts_belt_1.pipe)(ts_belt_1.R.fromExecution(() => disk.readFileSync(filePath)), ts_belt_1.R.mapError(error_1.BaseError.map(`Failed to read JSON file at ${filePath}`)));
12
- }
13
- }
14
- exports.readJsonSafe = readJsonSafe;
15
- function parseJsonSafe(json) {
16
- return (0, ts_belt_1.pipe)(ts_belt_1.R.fromExecution(() => JSON.parse(json)), ts_belt_1.R.mapError(error_1.BaseError.map('Failed to parse JSON')), ts_belt_1.R.map((contents) => ({ contents, json })));
17
- }
@@ -1,4 +0,0 @@
1
- import { R } from '@mobily/ts-belt';
2
- import type { Disk } from '../../../lib/disk';
3
- import { BaseError } from '../../../lib/error';
4
- export declare function readYamlSafe<T = unknown>(disk: Disk): (filePath: string) => R.Result<T, BaseError>;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readYamlSafe = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const error_1 = require("../../../lib/error");
6
- function readYamlSafe(disk) {
7
- return function readYamlSafe(filePath) {
8
- return (0, ts_belt_1.pipe)(ts_belt_1.R.fromExecution(() => disk.readYamlFileSync(filePath)), ts_belt_1.R.mapError(error_1.BaseError.map(`Failed to read YAML file at ${filePath}`)));
9
- };
10
- }
11
- exports.readYamlSafe = readYamlSafe;
@@ -1,7 +0,0 @@
1
- import { R } from '@mobily/ts-belt';
2
- import type { Disk } from '../../lib/disk';
3
- import type { BaseError } from '../../lib/error';
4
- import type { Syncpack } from '../../types';
5
- import { PackageJsonFile } from './package-json-file';
6
- /** Create an API for every package.json file needed. */
7
- export declare function getPackageJsonFiles(disk: Disk, config: Syncpack.Config.Private): R.Result<PackageJsonFile[], BaseError>;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPackageJsonFiles = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const _R_1 = require("../$R");
6
- const get_file_paths_1 = require("./get-file-paths");
7
- const read_json_safe_1 = require("./get-patterns/read-json-safe");
8
- const package_json_file_1 = require("./package-json-file");
9
- /** Create an API for every package.json file needed. */
10
- function getPackageJsonFiles(disk, config) {
11
- return (0, ts_belt_1.pipe)((0, get_file_paths_1.getFilePaths)(disk, config), ts_belt_1.R.flatMap(_R_1.$R.onlyOk(resolvePackageJson(disk))), ts_belt_1.R.recover([]));
12
- function resolvePackageJson(disk) {
13
- return (0, ts_belt_1.flow)((0, read_json_safe_1.readJsonSafe)(disk), ts_belt_1.R.map((jsonFile) => new package_json_file_1.PackageJsonFile(jsonFile, config, disk)), _R_1.$R.tapErrVerbose);
14
- }
15
- }
16
- exports.getPackageJsonFiles = getPackageJsonFiles;
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PackageJsonFile = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const path_1 = require("path");
6
- const constants_1 = require("../../../constants");
7
- const log_1 = require("../../../lib/log");
8
- const newlines_1 = require("../../../lib/newlines");
9
- const path_strategy_1 = require("../../get-config/path-strategy");
10
- const instance_1 = require("./instance");
11
- class PackageJsonFile {
12
- constructor(jsonFile, config, disk) {
13
- this.contents = jsonFile.contents;
14
- this.disk = disk;
15
- this.filePath = jsonFile.filePath;
16
- this.json = jsonFile.json;
17
- this.config = config;
18
- this.shortPath = (0, path_1.relative)(constants_1.CWD, jsonFile.filePath);
19
- }
20
- hasChanged() {
21
- return this.json !== this.getSource();
22
- }
23
- write() {
24
- this.disk.writeFileSync(this.filePath, this.getSource());
25
- }
26
- getSource() {
27
- const contents = this.contents;
28
- const indent = this.config.indent;
29
- const EOL = newlines_1.newlines.detect(this.json);
30
- const source = `${JSON.stringify(contents, null, indent)}${EOL}`;
31
- return newlines_1.newlines.fix(source, EOL);
32
- }
33
- getInstances() {
34
- return this.config.enabledTypes
35
- .flatMap((pathDef) => this.getPathEntries(pathDef, this).map(([name, version]) => new instance_1.Instance(pathDef, name, this, version)))
36
- .filter((instance) => {
37
- const { pathDef, name, version } = instance;
38
- const filter = this.config.filter;
39
- if (name.search(new RegExp(filter)) === -1) {
40
- (0, log_1.verbose)(`skip, name "${name}" does not match filter "${filter}"`);
41
- return false;
42
- }
43
- (0, log_1.verbose)(`add ${name}@${version} to ${pathDef.name}:${pathDef.strategy} ${this.shortPath}`);
44
- return true;
45
- });
46
- }
47
- getPathEntries(pathDef, file) {
48
- const strategyName = pathDef.strategy;
49
- switch (strategyName) {
50
- case 'name@version':
51
- return (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].read(file, pathDef), ts_belt_1.R.getWithDefault([]));
52
- case 'name~version':
53
- return (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].read(file, pathDef), ts_belt_1.R.getWithDefault([]));
54
- case 'version':
55
- return (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].read(file, pathDef), ts_belt_1.R.getWithDefault([]));
56
- case 'versionsByName':
57
- return (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].read(file, pathDef), ts_belt_1.R.getWithDefault([]));
58
- default:
59
- return (0, path_strategy_1.exhaustiveCheck)(strategyName);
60
- }
61
- }
62
- }
63
- exports.PackageJsonFile = PackageJsonFile;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Instance = void 0;
4
- const ts_belt_1 = require("@mobily/ts-belt");
5
- const _R_1 = require("../../$R");
6
- const path_strategy_1 = require("../../get-config/path-strategy");
7
- const instance_group_1 = require("../../get-groups/version-group/instance-group");
8
- class Instance {
9
- constructor(pathDef, name, packageJsonFile, version) {
10
- this.pathDef = pathDef;
11
- this.name = name;
12
- this.packageJsonFile = packageJsonFile;
13
- this.pkgName = packageJsonFile.contents.name || 'PACKAGE_JSON_HAS_NO_NAME';
14
- this.version = version;
15
- }
16
- /** Is this instance the package.json file of this package developed in this repo? */
17
- isWorkspace() {
18
- return this.pathDef.name === 'workspace';
19
- }
20
- /**
21
- * In the case of banned dependencies, their version is set to `undefined`,
22
- * which causes them to be removed by `JSON.stringify`.
23
- */
24
- setVersion(version) {
25
- const strategyName = this.pathDef.strategy;
26
- const entry = [this.name, version === instance_group_1.DELETE ? undefined : version];
27
- const file = this.packageJsonFile;
28
- switch (strategyName) {
29
- case 'name@version':
30
- (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].write(file, this.pathDef, entry), _R_1.$R.tapErrVerbose);
31
- break;
32
- case 'name~version':
33
- (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].write(file, this.pathDef, entry), _R_1.$R.tapErrVerbose);
34
- break;
35
- case 'version':
36
- (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].write(file, this.pathDef, entry), _R_1.$R.tapErrVerbose);
37
- break;
38
- case 'versionsByName':
39
- (0, ts_belt_1.pipe)(path_strategy_1.strategyByName[strategyName].write(file, this.pathDef, entry), _R_1.$R.tapErrVerbose);
40
- break;
41
- default:
42
- return (0, path_strategy_1.exhaustiveCheck)(strategyName);
43
- }
44
- }
45
- }
46
- exports.Instance = Instance;
@@ -1,12 +0,0 @@
1
- export declare class BaseError extends Error {
2
- name: 'SyncpackError';
3
- cause?: BaseError | Error | null;
4
- constructor(message: string, options?: {
5
- cause?: unknown;
6
- props?: {
7
- args: any[];
8
- };
9
- });
10
- static normalize(value: unknown): BaseError | Error | null;
11
- static map(message: string): (cause: unknown) => BaseError;
12
- }
package/dist/lib/error.js DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseError = void 0;
4
- class BaseError extends Error {
5
- constructor(message, options) {
6
- super(message);
7
- this.name = 'SyncpackError';
8
- this.cause = BaseError.normalize(options?.cause);
9
- }
10
- static normalize(value) {
11
- if (value instanceof BaseError)
12
- return value;
13
- if (value instanceof Error)
14
- return value;
15
- if (typeof value === 'string')
16
- return new Error(value);
17
- return null;
18
- }
19
- static map(message) {
20
- return (cause) => {
21
- return new BaseError(message, { cause });
22
- };
23
- }
24
- }
25
- exports.BaseError = BaseError;
package/dist/types.d.ts DELETED
@@ -1,90 +0,0 @@
1
- import type { z } from 'zod';
2
- import type { Context as TContext } from './get-context';
3
- import type { CoreTypeName } from './get-context/get-config/get-core-types';
4
- import type { Cli as cli, Private as privateSchema, Public as publicSchema, SyncpackRc as syncpackRc } from './get-context/get-config/schema';
5
- import type * as paths from './get-context/get-config/schema/paths';
6
- import type * as semverGroup from './get-context/get-config/schema/semver-group';
7
- import type * as semverRange from './get-context/get-config/schema/semver-range';
8
- import type * as versionGroup from './get-context/get-config/schema/version-group';
9
- import type { SemverGroup as TSemverGroup } from './get-context/get-groups/semver-group';
10
- import type { VersionGroup as TVersionGroup } from './get-context/get-groups/version-group';
11
- import type { PackageJsonFile as TPackageJsonFile } from './get-context/get-package-json-files/package-json-file';
12
- import type { Instance as TInstance } from './get-context/get-package-json-files/package-json-file/instance';
13
- export declare namespace Syncpack {
14
- type Ctx = TContext;
15
- type Instance = TInstance;
16
- type PackageJsonFile = TPackageJsonFile;
17
- type PathDefinition = z.infer<typeof paths.pathDefinition>;
18
- type TypeName = CoreTypeName | string;
19
- type SemverGroup = TSemverGroup;
20
- type VersionGroup = TVersionGroup;
21
- namespace Config {
22
- /** All config which can be set via the command line */
23
- type Cli = z.infer<typeof cli>;
24
- /** @private */
25
- type Private = z.infer<typeof privateSchema>;
26
- /** All config which can be set via the command line and/or .syncpackrc */
27
- type Public = z.infer<typeof publicSchema>;
28
- /** All valid contents of a .syncpackrc */
29
- type SyncpackRc = z.infer<typeof syncpackRc>;
30
- namespace Paths {
31
- type T = typeof paths;
32
- /** Direct syncpack where and how to find and fix versions elsewhere */
33
- export type ConfigByName = z.infer<T['pathConfigByName']>;
34
- export {};
35
- }
36
- namespace SemverRange {
37
- /**
38
- * Aliases for semver range formats supported by syncpack
39
- *
40
- * Defaults to `""` to ensure that exact dependency versions are used
41
- * instead of loose ranges, but this can be overridden in your config file
42
- * or via the `--semver-range` command line option.
43
- *
44
- * | Supported Range | Example |
45
- * | --------------- | --------: |
46
- * | `"<"` | `<1.4.2` |
47
- * | `"<="` | `<=1.4.2` |
48
- * | `""` | `1.4.2` |
49
- * | `"~"` | `~1.4.2` |
50
- * | `"^"` | `^1.4.2` |
51
- * | `">="` | `>=1.4.2` |
52
- * | `">"` | `>1.4.2` |
53
- * | `"*"` | `*` |
54
- *
55
- * @default ""
56
- */
57
- type Value = z.infer<typeof semverRange.value>;
58
- }
59
- namespace SemverGroup {
60
- type T = typeof semverGroup;
61
- /** Let dependencies in this group do whatever they like */
62
- export type Ignored = z.infer<T['ignored']>;
63
- /** Ensure the version range of dependencies in this group is always this */
64
- export type WithRange = z.infer<T['withRange']>;
65
- /** @private */
66
- export type Default = z.infer<T['base']>;
67
- /** Every valid type of SemverGroup */
68
- export type Any = z.infer<T['any']>;
69
- export {};
70
- }
71
- namespace VersionGroup {
72
- type T = typeof versionGroup;
73
- /** Partion these dependencies and make sure they match internally */
74
- export type Standard = z.infer<T['standard']>;
75
- /** Prevent dependencies in this group from being added to the project */
76
- export type Banned = z.infer<T['banned']>;
77
- /** Let dependencies in this group do whatever they like */
78
- export type Ignored = z.infer<T['ignored']>;
79
- /** Override the version of dependencies in this group to always be this */
80
- export type Pinned = z.infer<T['pinned']>;
81
- /** Use these named packages as the source of truth for versions */
82
- export type SnappedTo = z.infer<T['snappedTo']>;
83
- /** @private */
84
- export type Default = z.infer<T['defaultGroup']>;
85
- /** Every valid type of VersionGroup */
86
- export type Any = z.infer<T['any']>;
87
- export {};
88
- }
89
- }
90
- }
File without changes