syncpack 8.5.14 → 9.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 (150) hide show
  1. package/README.md +194 -108
  2. package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +2 -2
  3. package/dist/bin-fix-mismatches/fix-mismatches-cli.js +1 -1
  4. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +2 -2
  5. package/dist/bin-fix-mismatches/fix-mismatches.js +35 -8
  6. package/dist/bin-fix-mismatches/index.js +9 -18
  7. package/dist/bin-format/format-cli.d.ts +2 -2
  8. package/dist/bin-format/format-cli.js +1 -1
  9. package/dist/bin-format/format.d.ts +2 -2
  10. package/dist/bin-format/index.js +2 -0
  11. package/dist/bin-lint-semver-ranges/index.js +10 -19
  12. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +2 -2
  13. package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +1 -1
  14. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -2
  15. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +13 -14
  16. package/dist/bin-list/index.js +9 -18
  17. package/dist/bin-list/list-cli.d.ts +2 -2
  18. package/dist/bin-list/list-cli.js +1 -1
  19. package/dist/bin-list/list.d.ts +2 -2
  20. package/dist/bin-list/list.js +2 -2
  21. package/dist/bin-list-mismatches/index.js +9 -18
  22. package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +2 -2
  23. package/dist/bin-list-mismatches/list-mismatches-cli.js +1 -1
  24. package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -2
  25. package/dist/bin-list-mismatches/list-mismatches.js +6 -6
  26. package/dist/bin-set-semver-ranges/index.js +10 -19
  27. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +2 -2
  28. package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +1 -1
  29. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +2 -2
  30. package/dist/constants.d.ts +11 -7
  31. package/dist/constants.js +11 -22
  32. package/dist/get-context/$R.d.ts +13 -0
  33. package/dist/get-context/$R.js +56 -0
  34. package/dist/{lib/get-context → get-context}/get-all-instances.d.ts +0 -0
  35. package/dist/{lib/get-context → get-context}/get-all-instances.js +1 -1
  36. package/dist/get-context/get-config/get-core-types.d.ts +36 -0
  37. package/dist/get-context/get-config/get-core-types.js +68 -0
  38. package/dist/get-context/get-config/get-custom-types.d.ts +4 -0
  39. package/dist/get-context/get-config/get-custom-types.js +28 -0
  40. package/dist/get-context/get-config/get-enabled-types.d.ts +4 -0
  41. package/dist/get-context/get-config/get-enabled-types.js +19 -0
  42. package/dist/get-context/get-config/index.d.ts +7 -0
  43. package/dist/get-context/get-config/index.js +115 -0
  44. package/dist/get-context/get-config/path-strategy/index.d.ts +8 -0
  45. package/dist/get-context/get-config/path-strategy/index.js +18 -0
  46. package/dist/get-context/get-config/path-strategy/lib/get-non-empty-string-prop.d.ts +4 -0
  47. package/dist/get-context/get-config/path-strategy/lib/get-non-empty-string-prop.js +11 -0
  48. package/dist/get-context/get-config/path-strategy/name-and-version-props.d.ts +2 -0
  49. package/dist/get-context/get-config/path-strategy/name-and-version-props.js +66 -0
  50. package/dist/get-context/get-config/path-strategy/name-and-version-string.d.ts +2 -0
  51. package/dist/get-context/get-config/path-strategy/name-and-version-string.js +60 -0
  52. package/dist/get-context/get-config/path-strategy/types.d.ts +15 -0
  53. package/dist/{lib/get-context/get-config/config.js → get-context/get-config/path-strategy/types.js} +0 -0
  54. package/dist/get-context/get-config/path-strategy/version-string.d.ts +2 -0
  55. package/dist/get-context/get-config/path-strategy/version-string.js +60 -0
  56. package/dist/get-context/get-config/path-strategy/versions-by-name.d.ts +2 -0
  57. package/dist/get-context/get-config/path-strategy/versions-by-name.js +39 -0
  58. package/dist/get-context/get-config/schema/base-group.d.ts +6 -0
  59. package/dist/get-context/get-config/schema/base-group.js +9 -0
  60. package/dist/get-context/get-config/schema/index.d.ts +1276 -0
  61. package/dist/get-context/get-config/schema/index.js +104 -0
  62. package/dist/get-context/get-config/schema/paths.d.ts +89 -0
  63. package/dist/get-context/get-config/schema/paths.js +33 -0
  64. package/dist/get-context/get-config/schema/semver-group.d.ts +101 -0
  65. package/dist/get-context/get-config/schema/semver-group.js +50 -0
  66. package/dist/get-context/get-config/schema/semver-range.d.ts +2 -0
  67. package/dist/get-context/get-config/schema/semver-range.js +16 -0
  68. package/dist/get-context/get-config/schema/version-group.d.ts +151 -0
  69. package/dist/get-context/get-config/schema/version-group.js +31 -0
  70. package/dist/get-context/get-groups/get-semver-groups.d.ts +4 -0
  71. package/dist/{lib/get-context → get-context}/get-groups/get-semver-groups.js +2 -1
  72. package/dist/get-context/get-groups/get-version-groups.d.ts +4 -0
  73. package/dist/{lib/get-context → get-context}/get-groups/get-version-groups.js +2 -1
  74. package/dist/{lib/get-context → get-context}/get-groups/semver-group/index.d.ts +10 -11
  75. package/dist/get-context/get-groups/semver-group/index.js +56 -0
  76. package/dist/{lib/get-context → get-context}/get-groups/version-group/index.d.ts +5 -6
  77. package/dist/{lib/get-context → get-context}/get-groups/version-group/index.js +0 -0
  78. package/dist/{lib/get-context → get-context}/get-groups/version-group/instance-group/get-highest-version.d.ts +0 -0
  79. package/dist/{lib/get-context → get-context}/get-groups/version-group/instance-group/get-highest-version.js +2 -2
  80. package/dist/{lib/get-context → get-context}/get-groups/version-group/instance-group/index.d.ts +3 -1
  81. package/dist/{lib/get-context → get-context}/get-groups/version-group/instance-group/index.js +10 -9
  82. package/dist/get-context/get-package-json-files/get-file-paths.d.ts +14 -0
  83. package/dist/get-context/get-package-json-files/get-file-paths.js +40 -0
  84. package/dist/get-context/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +4 -0
  85. package/dist/get-context/get-package-json-files/get-patterns/get-lerna-patterns.js +19 -0
  86. package/dist/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +4 -0
  87. package/dist/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.js +23 -0
  88. package/dist/get-context/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +4 -0
  89. package/dist/get-context/get-package-json-files/get-patterns/get-yarn-patterns.js +20 -0
  90. package/dist/get-context/get-package-json-files/get-patterns/index.d.ts +11 -0
  91. package/dist/get-context/get-package-json-files/get-patterns/index.js +70 -0
  92. package/dist/get-context/get-package-json-files/get-patterns/lib/get-array-of-strings.d.ts +1 -0
  93. package/dist/get-context/get-package-json-files/get-patterns/lib/get-array-of-strings.js +10 -0
  94. package/dist/get-context/get-package-json-files/get-patterns/props.d.ts +6 -0
  95. package/dist/get-context/get-package-json-files/get-patterns/props.js +48 -0
  96. package/dist/{lib/get-context → get-context}/get-package-json-files/get-patterns/read-json-safe.d.ts +4 -3
  97. package/dist/get-context/get-package-json-files/get-patterns/read-json-safe.js +20 -0
  98. package/dist/get-context/get-package-json-files/get-patterns/read-yaml-safe.d.ts +4 -0
  99. package/dist/get-context/get-package-json-files/get-patterns/read-yaml-safe.js +11 -0
  100. package/dist/get-context/get-package-json-files/index.d.ts +5 -0
  101. package/dist/get-context/get-package-json-files/index.js +16 -0
  102. package/dist/{lib/get-context → get-context}/get-package-json-files/package-json-file/index.d.ts +7 -6
  103. package/dist/{lib/get-context → get-context}/get-package-json-files/package-json-file/index.js +28 -38
  104. package/dist/{lib/get-context → get-context}/get-package-json-files/package-json-file/instance.d.ts +6 -6
  105. package/dist/get-context/get-package-json-files/package-json-file/instance.js +62 -0
  106. package/dist/{lib/get-context → get-context}/index.d.ts +4 -5
  107. package/dist/{lib/get-context → get-context}/index.js +1 -1
  108. package/dist/lib/disk.d.ts +11 -11
  109. package/dist/lib/error.d.ts +12 -0
  110. package/dist/lib/error.js +43 -0
  111. package/dist/lib/exit-if-invalid.d.ts +2 -2
  112. package/dist/lib/is-semver.d.ts +2 -2
  113. package/dist/lib/set-semver-range.d.ts +2 -2
  114. package/dist/lib/show-help-on-error.d.ts +2 -0
  115. package/dist/lib/show-help-on-error.js +16 -0
  116. package/dist/lib/write-if-changed.d.ts +2 -2
  117. package/dist/option.d.ts +4 -10
  118. package/dist/option.js +6 -16
  119. package/dist/types.d.ts +88 -0
  120. package/dist/{lib/get-context/get-config/internal-config.js → types.js} +0 -0
  121. package/package.json +4 -3
  122. package/dist/lib/get-context/get-config/config.d.ts +0 -151
  123. package/dist/lib/get-context/get-config/index.d.ts +0 -8
  124. package/dist/lib/get-context/get-config/index.js +0 -160
  125. package/dist/lib/get-context/get-config/internal-config.d.ts +0 -24
  126. package/dist/lib/get-context/get-groups/get-semver-groups.d.ts +0 -4
  127. package/dist/lib/get-context/get-groups/get-version-groups.d.ts +0 -4
  128. package/dist/lib/get-context/get-groups/semver-group/index.js +0 -33
  129. package/dist/lib/get-context/get-package-json-files/get-file-paths.d.ts +0 -12
  130. package/dist/lib/get-context/get-package-json-files/get-file-paths.js +0 -55
  131. package/dist/lib/get-context/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +0 -3
  132. package/dist/lib/get-context/get-package-json-files/get-patterns/get-lerna-patterns.js +0 -40
  133. package/dist/lib/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +0 -3
  134. package/dist/lib/get-context/get-package-json-files/get-patterns/get-pnpm-patterns.js +0 -45
  135. package/dist/lib/get-context/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +0 -3
  136. package/dist/lib/get-context/get-package-json-files/get-patterns/get-yarn-patterns.js +0 -46
  137. package/dist/lib/get-context/get-package-json-files/get-patterns/index.d.ts +0 -10
  138. package/dist/lib/get-context/get-package-json-files/get-patterns/index.js +0 -79
  139. package/dist/lib/get-context/get-package-json-files/get-patterns/props.d.ts +0 -7
  140. package/dist/lib/get-context/get-package-json-files/get-patterns/props.js +0 -43
  141. package/dist/lib/get-context/get-package-json-files/get-patterns/read-json-safe.js +0 -41
  142. package/dist/lib/get-context/get-package-json-files/get-patterns/read-yaml-safe.d.ts +0 -3
  143. package/dist/lib/get-context/get-package-json-files/get-patterns/read-yaml-safe.js +0 -34
  144. package/dist/lib/get-context/get-package-json-files/index.d.ts +0 -5
  145. package/dist/lib/get-context/get-package-json-files/index.js +0 -40
  146. package/dist/lib/get-context/get-package-json-files/package-json-file/instance.js +0 -46
  147. package/dist/lib/get-context/get-package-json-files/tap.d.ts +0 -15
  148. package/dist/lib/get-context/get-package-json-files/tap.js +0 -56
  149. package/dist/lib/get-context/get-package-json-files/try-catch.d.ts +0 -5
  150. package/dist/lib/get-context/get-package-json-files/try-catch.js +0 -13
@@ -1,4 +1,3 @@
1
- import type { Config } from './lib/get-context/get-config/config';
2
1
  /** Single source of truth, intended to aid testing or to override */
3
2
  export declare const CWD: string;
4
3
  /** Where to search for packages if none are provided by the user */
@@ -11,11 +10,6 @@ export declare const ICON: {
11
10
  readonly skip: "-";
12
11
  readonly tick: "✓";
13
12
  };
14
- /**
15
- * Aliases for locations of versions within package.json files, it is looped
16
- * over by each command to operate on each are as defined by the user.
17
- */
18
- export declare const ALL_DEPENDENCY_TYPES: readonly ["dependencies", "devDependencies", "overrides", "peerDependencies", "pnpmOverrides", "resolutions", "workspace"];
19
13
  export declare const RANGE: {
20
14
  readonly ANY: "*";
21
15
  readonly EXACT: "";
@@ -27,4 +21,14 @@ export declare const RANGE: {
27
21
  readonly MINOR: "^";
28
22
  readonly PATCH: "~";
29
23
  };
30
- export declare const DEFAULT_CONFIG: Config.RcFile;
24
+ export declare const DEFAULT_CONFIG: {
25
+ readonly dependencyTypes: readonly ["dev", "overrides", "peer", "pnpmOverrides", "prod", "resolutions", "workspace"];
26
+ readonly filter: ".";
27
+ readonly indent: " ";
28
+ readonly semverGroups: readonly [];
29
+ readonly semverRange: "";
30
+ readonly sortAz: readonly ["contributors", "dependencies", "devDependencies", "keywords", "peerDependencies", "resolutions", "scripts"];
31
+ readonly sortFirst: readonly ["name", "description", "version", "author"];
32
+ readonly source: readonly [];
33
+ readonly versionGroups: readonly [];
34
+ };
package/dist/constants.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- exports.DEFAULT_CONFIG = exports.RANGE = exports.ALL_DEPENDENCY_TYPES = exports.ICON = exports.DEFAULT_SOURCES = exports.CWD = void 0;
3
+ exports.DEFAULT_CONFIG = exports.RANGE = exports.ICON = exports.DEFAULT_SOURCES = exports.CWD = void 0;
4
4
  /** Single source of truth, intended to aid testing or to override */
5
- exports.CWD = process.cwd();
5
+ exports.CWD = process.env.MOCK_CWD || process.cwd();
6
6
  /** Where to search for packages if none are provided by the user */
7
7
  exports.DEFAULT_SOURCES = ['package.json', 'packages/*/package.json'];
8
8
  /** Single source of truth for icons used in output */
@@ -13,19 +13,6 @@ exports.ICON = {
13
13
  skip: '-',
14
14
  tick: '✓'
15
15
  };
16
- /**
17
- * Aliases for locations of versions within package.json files, it is looped
18
- * over by each command to operate on each are as defined by the user.
19
- */
20
- exports.ALL_DEPENDENCY_TYPES = [
21
- 'dependencies',
22
- 'devDependencies',
23
- 'overrides',
24
- 'peerDependencies',
25
- 'pnpmOverrides',
26
- 'resolutions',
27
- 'workspace',
28
- ];
29
16
  exports.RANGE = {
30
17
  ANY: '*',
31
18
  EXACT: '',
@@ -38,15 +25,17 @@ exports.RANGE = {
38
25
  PATCH: '~'
39
26
  };
40
27
  exports.DEFAULT_CONFIG = {
41
- dev: true,
28
+ dependencyTypes: [
29
+ 'dev',
30
+ 'overrides',
31
+ 'peer',
32
+ 'pnpmOverrides',
33
+ 'prod',
34
+ 'resolutions',
35
+ 'workspace',
36
+ ],
42
37
  filter: '.',
43
38
  indent: ' ',
44
- overrides: true,
45
- peer: true,
46
- pnpmOverrides: true,
47
- prod: true,
48
- resolutions: true,
49
- workspace: true,
50
39
  semverGroups: [],
51
40
  semverRange: '',
52
41
  sortAz: [
@@ -0,0 +1,13 @@
1
+ import { R } from '@mobily/ts-belt';
2
+ import { BaseError } from '../lib/error';
3
+ /** Additional helpers for https://mobily.github.io/ts-belt/api/result */
4
+ export declare const $R: {
5
+ /**
6
+ * Return a single `R.Ok<output[]>` containing an array of the output of every
7
+ * `R.Result` returned by `getResult(input)` which succeeded, or a single
8
+ * `R.Error<BaseError>` if none succeeded.
9
+ */
10
+ onlyOk<Input, Output = Input>(getResult: (value: Input) => R.Result<Output, BaseError>): (inputs: Input[]) => R.Result<Output[], BaseError>;
11
+ /** Log verbose only when R.Result is an R.Err */
12
+ tapErrVerbose<T extends R.Result<unknown, BaseError>>(result: T): T;
13
+ };
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ exports.__esModule = true;
14
+ exports.$R = void 0;
15
+ var ts_belt_1 = require("@mobily/ts-belt");
16
+ var error_1 = require("../lib/error");
17
+ var log_1 = require("../lib/log");
18
+ /** Additional helpers for https://mobily.github.io/ts-belt/api/result */
19
+ exports.$R = {
20
+ /**
21
+ * Return a single `R.Ok<output[]>` containing an array of the output of every
22
+ * `R.Result` returned by `getResult(input)` which succeeded, or a single
23
+ * `R.Error<BaseError>` if none succeeded.
24
+ */
25
+ onlyOk: function (getResult) {
26
+ return function (inputs) {
27
+ var e_1, _a;
28
+ var outputs = [];
29
+ try {
30
+ for (var inputs_1 = __values(inputs), inputs_1_1 = inputs_1.next(); !inputs_1_1.done; inputs_1_1 = inputs_1.next()) {
31
+ var value = inputs_1_1.value;
32
+ var result = getResult(value);
33
+ if (ts_belt_1.R.isError(result))
34
+ continue;
35
+ outputs.push(ts_belt_1.R.getExn(result));
36
+ }
37
+ }
38
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
39
+ finally {
40
+ try {
41
+ if (inputs_1_1 && !inputs_1_1.done && (_a = inputs_1["return"])) _a.call(inputs_1);
42
+ }
43
+ finally { if (e_1) throw e_1.error; }
44
+ }
45
+ return outputs.length > 0
46
+ ? ts_belt_1.R.Ok(outputs)
47
+ : ts_belt_1.R.Error(new error_1.BaseError('No R.Ok() returned by $R.onlyOk'));
48
+ };
49
+ },
50
+ /** Log verbose only when R.Result is an R.Err */
51
+ tapErrVerbose: function (result) {
52
+ if (ts_belt_1.R.isError(result))
53
+ (0, log_1.verbose)(result._0.message);
54
+ return result;
55
+ }
56
+ };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
3
  exports.getAllInstances = void 0;
4
- var sort_by_name_1 = require("../sort-by-name");
4
+ var sort_by_name_1 = require("../lib/sort-by-name");
5
5
  function getAllInstances(packageJsonFiles) {
6
6
  return packageJsonFiles.flatMap(function (pkg) { return pkg.getInstances(); }).sort(sort_by_name_1.sortByName);
7
7
  }
@@ -0,0 +1,36 @@
1
+ import type { Syncpack } from '../../types';
2
+ type CoreTypes = typeof coreTypes;
3
+ export type CoreTypeName = keyof CoreTypes;
4
+ declare const coreTypes: {
5
+ readonly dev: {
6
+ readonly path: "devDependencies";
7
+ readonly strategy: "versionsByName";
8
+ };
9
+ readonly overrides: {
10
+ readonly path: "overrides";
11
+ readonly strategy: "versionsByName";
12
+ };
13
+ readonly peer: {
14
+ readonly path: "peerDependencies";
15
+ readonly strategy: "versionsByName";
16
+ };
17
+ readonly pnpmOverrides: {
18
+ readonly path: "pnpm.overrides";
19
+ readonly strategy: "versionsByName";
20
+ };
21
+ readonly prod: {
22
+ readonly path: "dependencies";
23
+ readonly strategy: "versionsByName";
24
+ };
25
+ readonly resolutions: {
26
+ readonly path: "resolutions";
27
+ readonly strategy: "versionsByName";
28
+ };
29
+ readonly workspace: {
30
+ readonly namePath: "name";
31
+ readonly path: "version";
32
+ readonly strategy: "name~version";
33
+ };
34
+ };
35
+ export declare function getCoreTypes(): Syncpack.PathDefinition[];
36
+ export {};
@@ -0,0 +1,68 @@
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
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ exports.__esModule = true;
30
+ exports.getCoreTypes = void 0;
31
+ var coreTypes = {
32
+ dev: {
33
+ path: 'devDependencies',
34
+ strategy: 'versionsByName'
35
+ },
36
+ overrides: {
37
+ path: 'overrides',
38
+ strategy: 'versionsByName'
39
+ },
40
+ peer: {
41
+ path: 'peerDependencies',
42
+ strategy: 'versionsByName'
43
+ },
44
+ pnpmOverrides: {
45
+ path: 'pnpm.overrides',
46
+ strategy: 'versionsByName'
47
+ },
48
+ prod: {
49
+ path: 'dependencies',
50
+ strategy: 'versionsByName'
51
+ },
52
+ resolutions: {
53
+ path: 'resolutions',
54
+ strategy: 'versionsByName'
55
+ },
56
+ workspace: {
57
+ namePath: 'name',
58
+ path: 'version',
59
+ strategy: 'name~version'
60
+ }
61
+ };
62
+ function getCoreTypes() {
63
+ return Object.entries(coreTypes).map(function (_a) {
64
+ var _b = __read(_a, 2), name = _b[0], pathDef = _b[1];
65
+ return (__assign(__assign({}, pathDef), { name: name }));
66
+ });
67
+ }
68
+ exports.getCoreTypes = getCoreTypes;
@@ -0,0 +1,4 @@
1
+ import type { Syncpack } from '../../types';
2
+ type Options = Pick<Partial<Syncpack.Config.Public>, 'customTypes'>;
3
+ export declare function getCustomTypes({ customTypes, }: Options): Syncpack.PathDefinition[];
4
+ export {};
@@ -0,0 +1,28 @@
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.getCustomTypes = void 0;
15
+ var expect_more_1 = require("expect-more");
16
+ function getCustomTypes(_a) {
17
+ var customTypes = _a.customTypes;
18
+ return customTypes
19
+ ? Object.keys(customTypes)
20
+ .map(function (name) {
21
+ var pathDef = customTypes[name];
22
+ if (pathDef)
23
+ return __assign(__assign({}, pathDef), { name: name });
24
+ })
25
+ .filter((expect_more_1.isObject))
26
+ : [];
27
+ }
28
+ exports.getCustomTypes = getCustomTypes;
@@ -0,0 +1,4 @@
1
+ import type { Syncpack } from '../../types';
2
+ type Options = Pick<Partial<Syncpack.Config.Public>, 'dependencyTypes' | 'types'>;
3
+ export declare function getEnabledTypes(allTypes: Syncpack.PathDefinition[], { dependencyTypes, types }: Options): Syncpack.PathDefinition[];
4
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.getEnabledTypes = void 0;
4
+ var expect_more_1 = require("expect-more");
5
+ function getEnabledTypes(allTypes, _a) {
6
+ var dependencyTypes = _a.dependencyTypes, types = _a.types;
7
+ var enabledNames = (0, expect_more_1.isNonEmptyString)(types)
8
+ ? types.split(',')
9
+ : (0, expect_more_1.isArrayOfStrings)(dependencyTypes)
10
+ ? dependencyTypes
11
+ : [];
12
+ return (0, expect_more_1.isNonEmptyArray)(enabledNames)
13
+ ? allTypes.filter(function (_a) {
14
+ var name = _a.name;
15
+ return enabledNames.includes(name);
16
+ })
17
+ : allTypes;
18
+ }
19
+ exports.getEnabledTypes = getEnabledTypes;
@@ -0,0 +1,7 @@
1
+ import type { Disk } from '../../lib/disk';
2
+ import type { Syncpack } from '../../types';
3
+ /**
4
+ * Take all configuration from the command line and config file, combine it, and
5
+ * set defaults for anything which hasn't been defined.
6
+ */
7
+ export declare const getConfig: (disk: Disk, fromCli: Partial<Syncpack.Config.Cli>) => Syncpack.Config.Private;
@@ -0,0 +1,115 @@
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
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __read = (this && this.__read) || function (o, n) {
37
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
38
+ if (!m) return o;
39
+ var i = m.call(o), r, ar = [], e;
40
+ try {
41
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42
+ }
43
+ catch (error) { e = { error: error }; }
44
+ finally {
45
+ try {
46
+ if (r && !r.done && (m = i["return"])) m.call(i);
47
+ }
48
+ finally { if (e) throw e.error; }
49
+ }
50
+ return ar;
51
+ };
52
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
53
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
54
+ if (ar || !(i in from)) {
55
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
56
+ ar[i] = from[i];
57
+ }
58
+ }
59
+ return to.concat(ar || Array.prototype.slice.call(from));
60
+ };
61
+ exports.__esModule = true;
62
+ exports.getConfig = void 0;
63
+ var log_1 = require("../../lib/log");
64
+ var get_core_types_1 = require("./get-core-types");
65
+ var get_custom_types_1 = require("./get-custom-types");
66
+ var get_enabled_types_1 = require("./get-enabled-types");
67
+ var ConfigSchema = __importStar(require("./schema"));
68
+ /**
69
+ * Take all configuration from the command line and config file, combine it, and
70
+ * set defaults for anything which hasn't been defined.
71
+ */
72
+ var getConfig = function (disk, fromCli) {
73
+ (0, log_1.verbose)('cli arguments:', fromCli);
74
+ var fromRcFile = disk.readConfigFileSync(fromCli.configPath);
75
+ (0, log_1.verbose)('rcfile contents:', fromRcFile);
76
+ var fromPublic = ConfigSchema.Public.parse({
77
+ customTypes: getConfigByName('customTypes'),
78
+ dependencyTypes: fromRcFile === null || fromRcFile === void 0 ? void 0 : fromRcFile.dependencyTypes,
79
+ filter: getConfigByName('filter'),
80
+ indent: getConfigByName('indent'),
81
+ semverGroups: getConfigByName('semverGroups'),
82
+ semverRange: getConfigByName('semverRange'),
83
+ sortAz: getConfigByName('sortAz'),
84
+ sortFirst: getConfigByName('sortFirst'),
85
+ source: getConfigByName('source'),
86
+ types: fromCli === null || fromCli === void 0 ? void 0 : fromCli.types,
87
+ versionGroups: getConfigByName('versionGroups')
88
+ });
89
+ (0, log_1.verbose)('user config:', fromPublic);
90
+ var coreTypes = (0, get_core_types_1.getCoreTypes)();
91
+ var customTypes = (0, get_custom_types_1.getCustomTypes)(fromPublic);
92
+ var allTypes = __spreadArray(__spreadArray([], __read(coreTypes), false), __read(customTypes), false);
93
+ var enabledTypes = (0, get_enabled_types_1.getEnabledTypes)(allTypes, fromPublic);
94
+ var allConfig = ConfigSchema.Private.parse(__assign(__assign({}, fromPublic), { allTypes: allTypes, enabledTypes: enabledTypes, defaultSemverGroup: {
95
+ dependencies: ['**'],
96
+ isDefault: true,
97
+ packages: ['**'],
98
+ range: fromPublic.semverRange
99
+ }, defaultVersionGroup: {
100
+ dependencies: ['**'],
101
+ isDefault: true,
102
+ packages: ['**']
103
+ } }));
104
+ allConfig.semverGroups.push(allConfig.defaultSemverGroup);
105
+ allConfig.versionGroups.push(allConfig.defaultVersionGroup);
106
+ (0, log_1.verbose)('final config:', allConfig);
107
+ return allConfig;
108
+ function getConfigByName(name) {
109
+ if (name in fromCli)
110
+ return fromCli[name];
111
+ if (name in fromRcFile)
112
+ return fromRcFile[name];
113
+ }
114
+ };
115
+ exports.getConfig = getConfig;
@@ -0,0 +1,8 @@
1
+ export type StrategyByName = typeof strategyByName;
2
+ export declare const strategyByName: {
3
+ readonly 'name@version': import("./types").Strategy<"name@version">;
4
+ readonly 'name~version': import("./types").Strategy<"name~version">;
5
+ readonly version: import("./types").Strategy<"version">;
6
+ readonly versionsByName: import("./types").Strategy<"versionsByName">;
7
+ };
8
+ export declare function exhaustiveCheck(strategyName: never): never;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.exhaustiveCheck = exports.strategyByName = void 0;
4
+ var error_1 = require("../../../lib/error");
5
+ var name_and_version_props_1 = require("./name-and-version-props");
6
+ var name_and_version_string_1 = require("./name-and-version-string");
7
+ var version_string_1 = require("./version-string");
8
+ var versions_by_name_1 = require("./versions-by-name");
9
+ exports.strategyByName = {
10
+ 'name@version': name_and_version_string_1.nameAndVersionString,
11
+ 'name~version': name_and_version_props_1.nameAndVersionProps,
12
+ 'version': version_string_1.versionString,
13
+ 'versionsByName': versions_by_name_1.versionsByName
14
+ };
15
+ function exhaustiveCheck(strategyName) {
16
+ throw new error_1.BaseError("Unrecognised strategy \"".concat(strategyName, "\""));
17
+ }
18
+ exports.exhaustiveCheck = exhaustiveCheck;
@@ -0,0 +1,4 @@
1
+ import type { R } from '@mobily/ts-belt';
2
+ import { BaseError } from '../../../../lib/error';
3
+ import type { PackageJsonFile } from '../../../get-package-json-files/package-json-file';
4
+ export declare function getNonEmptyStringProp(propPath: string, file: PackageJsonFile): R.Result<string, BaseError>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.getNonEmptyStringProp = void 0;
4
+ var ts_belt_1 = require("@mobily/ts-belt");
5
+ var expect_more_1 = require("expect-more");
6
+ var error_1 = require("../../../../lib/error");
7
+ var props_1 = require("../../../get-package-json-files/get-patterns/props");
8
+ function getNonEmptyStringProp(propPath, file) {
9
+ return (0, ts_belt_1.pipe)(file.contents, (0, props_1.props)(propPath, expect_more_1.isNonEmptyString), ts_belt_1.O.toResult(new error_1.BaseError("Failed to get ".concat(propPath, " in ").concat(file.shortPath))));
10
+ }
11
+ exports.getNonEmptyStringProp = getNonEmptyStringProp;
@@ -0,0 +1,2 @@
1
+ import type { Strategy } from './types';
2
+ export declare const nameAndVersionProps: Strategy<'name~version'>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ exports.__esModule = true;
19
+ exports.nameAndVersionProps = void 0;
20
+ var ts_belt_1 = require("@mobily/ts-belt");
21
+ var expect_more_1 = require("expect-more");
22
+ var error_1 = require("../../../lib/error");
23
+ var props_1 = require("../../get-package-json-files/get-patterns/props");
24
+ var get_non_empty_string_prop_1 = require("./lib/get-non-empty-string-prop");
25
+ exports.nameAndVersionProps = {
26
+ read: function (file, pathDef) {
27
+ return (0, ts_belt_1.pipe)(
28
+ // get name prop
29
+ (0, get_non_empty_string_prop_1.getNonEmptyStringProp)(pathDef.namePath, file), ts_belt_1.R.mapError(function () {
30
+ return new error_1.BaseError("Strategy<name~version> failed to get ".concat(pathDef.namePath, " in ").concat(file.shortPath));
31
+ }),
32
+ // add the version prop
33
+ ts_belt_1.R.flatMap(function (name) {
34
+ return (0, ts_belt_1.pipe)((0, get_non_empty_string_prop_1.getNonEmptyStringProp)(pathDef.path, file), ts_belt_1.R.map(function (version) { return ({ name: name, version: version }); }), ts_belt_1.R.mapError(function () {
35
+ return new error_1.BaseError("Strategy<name~version> failed to get ".concat(pathDef.path, " in ").concat(file.shortPath));
36
+ }));
37
+ }),
38
+ // if both are non empty strings, we can return them
39
+ ts_belt_1.R.map(function (_a) {
40
+ var name = _a.name, version = _a.version;
41
+ return [[name, version]];
42
+ }));
43
+ },
44
+ write: function (file, pathDef, _a) {
45
+ var _b = __read(_a, 2), version = _b[1];
46
+ var contents = file.contents, shortPath = file.shortPath;
47
+ var isNestedPath = pathDef.path.includes('.');
48
+ if (isNestedPath) {
49
+ var fullPath = pathDef.path.split('.');
50
+ var pathToParent = fullPath.slice(0, fullPath.length - 1).join('.');
51
+ var key_1 = fullPath.slice(-1).join('');
52
+ return (0, ts_belt_1.pipe)(contents, (0, props_1.props)(pathToParent, expect_more_1.isObject), ts_belt_1.O.toResult(onError()), ts_belt_1.R.tap(function (parent) {
53
+ parent[key_1] = version;
54
+ }), ts_belt_1.R.mapError(onError), ts_belt_1.R.map(function () { return file; }));
55
+ }
56
+ else {
57
+ return (0, ts_belt_1.pipe)(ts_belt_1.R.fromExecution(function () {
58
+ contents[pathDef.path] = version;
59
+ }), ts_belt_1.R.mapError(onError), ts_belt_1.R.map(function () { return file; }));
60
+ }
61
+ function onError() {
62
+ var msg = "Strategy<name~version> failed to set ".concat(pathDef.path, " in ").concat(shortPath);
63
+ return new error_1.BaseError(msg);
64
+ }
65
+ }
66
+ };
@@ -0,0 +1,2 @@
1
+ import type { Strategy } from './types';
2
+ export declare const nameAndVersionString: Strategy<'name@version'>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ exports.__esModule = true;
19
+ exports.nameAndVersionString = void 0;
20
+ var ts_belt_1 = require("@mobily/ts-belt");
21
+ var expect_more_1 = require("expect-more");
22
+ var error_1 = require("../../../lib/error");
23
+ var props_1 = require("../../get-package-json-files/get-patterns/props");
24
+ var get_non_empty_string_prop_1 = require("./lib/get-non-empty-string-prop");
25
+ exports.nameAndVersionString = {
26
+ read: function (file, pathDef) {
27
+ return (0, ts_belt_1.pipe)(
28
+ // get version prop
29
+ (0, get_non_empty_string_prop_1.getNonEmptyStringProp)(pathDef.path, file),
30
+ // if it is a non empty string, we can read it
31
+ ts_belt_1.R.flatMap(function (value) {
32
+ var _a = __read(value.split('@'), 2), name = _a[0], version = _a[1];
33
+ return (0, expect_more_1.isNonEmptyString)(name) && (0, expect_more_1.isNonEmptyString)(version)
34
+ ? ts_belt_1.R.Ok([[name, version]])
35
+ : ts_belt_1.R.Error(new error_1.BaseError("Strategy<name@version> failed to get ".concat(pathDef.path, " in ").concat(file.shortPath)));
36
+ }));
37
+ },
38
+ write: function (file, pathDef, _a) {
39
+ var _b = __read(_a, 2), name = _b[0], version = _b[1];
40
+ var contents = file.contents, shortPath = file.shortPath;
41
+ var isNestedPath = pathDef.path.includes('.');
42
+ if (isNestedPath) {
43
+ var fullPath = pathDef.path.split('.');
44
+ var pathToParent = fullPath.slice(0, fullPath.length - 1).join('.');
45
+ var key_1 = fullPath.slice(-1).join('');
46
+ return (0, ts_belt_1.pipe)(contents, (0, props_1.props)(pathToParent, expect_more_1.isObject), ts_belt_1.O.toResult(onError()), ts_belt_1.R.tap(function (parent) {
47
+ parent[key_1] = "".concat(name, "@").concat(version);
48
+ }), ts_belt_1.R.mapError(onError), ts_belt_1.R.map(function () { return file; }));
49
+ }
50
+ else {
51
+ return (0, ts_belt_1.pipe)(ts_belt_1.R.fromExecution(function () {
52
+ contents[pathDef.path] = "".concat(name, "@").concat(version);
53
+ }), ts_belt_1.R.mapError(onError), ts_belt_1.R.map(function () { return file; }));
54
+ }
55
+ function onError() {
56
+ var msg = "Strategy<name@version> failed to set ".concat(pathDef.path, " in ").concat(shortPath);
57
+ return new error_1.BaseError(msg);
58
+ }
59
+ }
60
+ };
@@ -0,0 +1,15 @@
1
+ import type { R } from '@mobily/ts-belt';
2
+ import type { BaseError } from '../../../lib/error';
3
+ import type { Syncpack } from '../../../types';
4
+ import type { PackageJsonFile } from '../../get-package-json-files/package-json-file';
5
+ export type PathDef<T extends Syncpack.PathDefinition['strategy']> = Syncpack.PathDefinition & {
6
+ strategy: T;
7
+ };
8
+ /** A name/version pair */
9
+ export type Entry = [string, string];
10
+ export interface Strategy<T extends Syncpack.PathDefinition['strategy']> {
11
+ /** Read from in-memory package.json file */
12
+ read(file: PackageJsonFile, pathDef: PathDef<T>): R.Result<Entry[], BaseError>;
13
+ /** Mutate in-memory package.json file */
14
+ write(file: PackageJsonFile, pathDef: PathDef<T>, entry: [string, string | undefined]): R.Result<PackageJsonFile, BaseError>;
15
+ }