syncpack 5.7.11 → 6.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 (125) hide show
  1. package/README.md +261 -103
  2. package/dist/bin-fix-mismatches/fix-mismatches.d.ts +3 -0
  3. package/dist/bin-fix-mismatches/fix-mismatches.js +58 -0
  4. package/dist/bin-fix-mismatches/get-highest-version.d.ts +1 -0
  5. package/dist/{commands/lib → bin-fix-mismatches}/get-highest-version.js +16 -19
  6. package/dist/bin-fix-mismatches/get-workspace-version.d.ts +6 -0
  7. package/dist/bin-fix-mismatches/get-workspace-version.js +17 -0
  8. package/dist/{bin-fix-mismatches.d.ts → bin-fix-mismatches/index.d.ts} +0 -0
  9. package/dist/bin-fix-mismatches/index.js +66 -0
  10. package/dist/bin-format/format.d.ts +3 -0
  11. package/dist/bin-format/format.js +44 -0
  12. package/dist/{bin-format.d.ts → bin-format/index.d.ts} +0 -0
  13. package/dist/bin-format/index.js +56 -0
  14. package/dist/{bin-list-mismatches.d.ts → bin-lint-semver-ranges/index.d.ts} +0 -0
  15. package/dist/bin-lint-semver-ranges/index.js +66 -0
  16. package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +2 -0
  17. package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +52 -0
  18. package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.d.ts +2 -0
  19. package/dist/bin-lint-semver-ranges/list-semver-group-mismatches.js +12 -0
  20. package/dist/{bin-set-semver-ranges.d.ts → bin-list/index.d.ts} +0 -0
  21. package/dist/bin-list/index.js +64 -0
  22. package/dist/bin-list/list-version-groups.d.ts +3 -0
  23. package/dist/bin-list/list-version-groups.js +40 -0
  24. package/dist/bin-list/list.d.ts +9 -0
  25. package/dist/bin-list/list.js +46 -0
  26. package/dist/{bin-list.d.ts → bin-list-mismatches/index.d.ts} +0 -0
  27. package/dist/bin-list-mismatches/index.js +64 -0
  28. package/dist/bin-list-mismatches/list-mismatches.d.ts +2 -0
  29. package/dist/bin-list-mismatches/list-mismatches.js +44 -0
  30. package/dist/bin-set-semver-ranges/index.d.ts +2 -0
  31. package/dist/bin-set-semver-ranges/index.js +68 -0
  32. package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +3 -0
  33. package/dist/bin-set-semver-ranges/set-semver-ranges.js +37 -0
  34. package/dist/bin.js +21 -7
  35. package/dist/constants.d.ts +53 -32
  36. package/dist/constants.js +23 -19
  37. package/dist/lib/collect.d.ts +1 -1
  38. package/dist/lib/collect.js +2 -2
  39. package/dist/lib/disk.d.ts +10 -0
  40. package/dist/lib/disk.js +32 -0
  41. package/dist/lib/get-input/get-config.d.ts +9 -0
  42. package/dist/lib/get-input/get-config.js +112 -0
  43. package/dist/lib/get-input/get-instances.d.ts +21 -0
  44. package/dist/lib/get-input/get-instances.js +133 -0
  45. package/dist/lib/get-input/get-wrappers/get-file-paths.d.ts +15 -0
  46. package/dist/lib/get-input/get-wrappers/get-file-paths.js +48 -0
  47. package/dist/lib/get-input/get-wrappers/get-patterns/get-lerna-patterns.d.ts +3 -0
  48. package/dist/lib/get-input/get-wrappers/get-patterns/get-lerna-patterns.js +36 -0
  49. package/dist/lib/get-input/get-wrappers/get-patterns/get-pnpm-patterns.d.ts +3 -0
  50. package/dist/lib/get-input/get-wrappers/get-patterns/get-pnpm-patterns.js +41 -0
  51. package/dist/lib/get-input/get-wrappers/get-patterns/get-yarn-patterns.d.ts +3 -0
  52. package/dist/lib/get-input/get-wrappers/get-patterns/get-yarn-patterns.js +42 -0
  53. package/dist/lib/get-input/get-wrappers/get-patterns/index.d.ts +13 -0
  54. package/dist/lib/get-input/get-wrappers/get-patterns/index.js +72 -0
  55. package/dist/lib/get-input/get-wrappers/get-patterns/props.d.ts +7 -0
  56. package/dist/lib/get-input/get-wrappers/get-patterns/props.js +39 -0
  57. package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.d.ts +4 -0
  58. package/dist/lib/get-input/get-wrappers/get-patterns/read-json-safe.js +37 -0
  59. package/dist/lib/get-input/get-wrappers/get-patterns/read-yaml-safe.d.ts +3 -0
  60. package/dist/lib/get-input/get-wrappers/get-patterns/read-yaml-safe.js +30 -0
  61. package/dist/lib/get-input/get-wrappers/index.d.ts +34 -0
  62. package/dist/lib/get-input/get-wrappers/index.js +36 -0
  63. package/dist/lib/get-input/get-wrappers/readonly.d.ts +4 -0
  64. package/dist/lib/get-input/get-wrappers/readonly.js +10 -0
  65. package/dist/lib/get-input/get-wrappers/tap.d.ts +5 -0
  66. package/dist/lib/get-input/get-wrappers/tap.js +39 -0
  67. package/dist/lib/get-input/get-wrappers/try-catch.d.ts +5 -0
  68. package/dist/lib/get-input/get-wrappers/try-catch.js +13 -0
  69. package/dist/lib/get-input/index.d.ts +18 -0
  70. package/dist/lib/get-input/index.js +33 -0
  71. package/dist/lib/group-by.d.ts +1 -0
  72. package/dist/lib/group-by.js +11 -0
  73. package/dist/lib/is-semver.d.ts +4 -0
  74. package/dist/lib/is-semver.js +26 -0
  75. package/dist/lib/matches-filter.d.ts +3 -0
  76. package/dist/lib/matches-filter.js +10 -0
  77. package/dist/lib/set-semver-range.d.ts +2 -0
  78. package/dist/lib/set-semver-range.js +19 -0
  79. package/dist/lib/sort-by-name.d.ts +5 -0
  80. package/dist/{commands/lib/installations → lib}/sort-by-name.js +2 -2
  81. package/dist/lib/write-if-changed.d.ts +10 -0
  82. package/dist/lib/write-if-changed.js +23 -0
  83. package/dist/option.d.ts +12 -0
  84. package/dist/option.js +42 -0
  85. package/package.json +41 -39
  86. package/CHANGELOG.md +0 -396
  87. package/dist/bin-fix-mismatches.js +0 -56
  88. package/dist/bin-format.js +0 -48
  89. package/dist/bin-list-mismatches.js +0 -54
  90. package/dist/bin-list.js +0 -54
  91. package/dist/bin-set-semver-ranges.js +0 -58
  92. package/dist/commands/fix-mismatches.d.ts +0 -6
  93. package/dist/commands/fix-mismatches.js +0 -58
  94. package/dist/commands/format.d.ts +0 -6
  95. package/dist/commands/format.js +0 -49
  96. package/dist/commands/lib/get-dependency-types.d.ts +0 -8
  97. package/dist/commands/lib/get-dependency-types.js +0 -14
  98. package/dist/commands/lib/get-highest-version.d.ts +0 -1
  99. package/dist/commands/lib/get-wrappers.d.ts +0 -42
  100. package/dist/commands/lib/get-wrappers.js +0 -46
  101. package/dist/commands/lib/installations/get-dependencies.d.ts +0 -19
  102. package/dist/commands/lib/installations/get-dependencies.js +0 -121
  103. package/dist/commands/lib/installations/get-grouped-mismatched-dependencies.d.ts +0 -4
  104. package/dist/commands/lib/installations/get-grouped-mismatched-dependencies.js +0 -133
  105. package/dist/commands/lib/installations/get-installations-of.d.ts +0 -4
  106. package/dist/commands/lib/installations/get-installations-of.js +0 -105
  107. package/dist/commands/lib/installations/get-mismatched-dependencies.d.ts +0 -4
  108. package/dist/commands/lib/installations/get-mismatched-dependencies.js +0 -131
  109. package/dist/commands/lib/installations/sort-by-name.d.ts +0 -2
  110. package/dist/commands/lib/is-semver.d.ts +0 -4
  111. package/dist/commands/lib/is-semver.js +0 -23
  112. package/dist/commands/lib/log.d.ts +0 -2
  113. package/dist/commands/lib/log.js +0 -31
  114. package/dist/commands/lib/matches-filter.d.ts +0 -4
  115. package/dist/commands/lib/matches-filter.js +0 -8
  116. package/dist/commands/lib/write-if-changed.d.ts +0 -2
  117. package/dist/commands/lib/write-if-changed.js +0 -26
  118. package/dist/commands/list-mismatches.d.ts +0 -7
  119. package/dist/commands/list-mismatches.js +0 -39
  120. package/dist/commands/list.d.ts +0 -6
  121. package/dist/commands/list.js +0 -42
  122. package/dist/commands/set-semver-ranges.d.ts +0 -7
  123. package/dist/commands/set-semver-ranges.js +0 -76
  124. package/dist/lib/get-config.d.ts +0 -2
  125. package/dist/lib/get-config.js +0 -40
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.getWorkspaceVersion = void 0;
4
+ /**
5
+ * If the dependency `name` is a package developed locally in this monorepo, we
6
+ * should use its version as the source of truth.
7
+ */
8
+ function getWorkspaceVersion(name, wrappers) {
9
+ var wrapper = wrappers.find(function (_a) {
10
+ var contents = _a.contents;
11
+ return contents.name === name;
12
+ });
13
+ if (!wrapper)
14
+ return '';
15
+ return wrapper.contents.version || '';
16
+ }
17
+ exports.getWorkspaceVersion = getWorkspaceVersion;
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
4
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5
+ return cooked;
6
+ };
7
+ var __read = (this && this.__read) || function (o, n) {
8
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
9
+ if (!m) return o;
10
+ var i = m.call(o), r, ar = [], e;
11
+ try {
12
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
+ }
14
+ catch (error) { e = { error: error }; }
15
+ finally {
16
+ try {
17
+ if (r && !r.done && (m = i["return"])) m.call(i);
18
+ }
19
+ finally { if (e) throw e.error; }
20
+ }
21
+ return ar;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ var _a, _b, _c, _d, _e, _f, _g;
36
+ exports.__esModule = true;
37
+ var chalk_1 = __importDefault(require("chalk"));
38
+ var commander_1 = require("commander");
39
+ var option_1 = require("../option");
40
+ var disk_1 = require("../lib/disk");
41
+ var get_input_1 = require("../lib/get-input");
42
+ var fix_mismatches_1 = require("./fix-mismatches");
43
+ commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Ensure that multiple packages requiring the same dependency define the same\n version, so that every package requires eg. {yellow react@16.4.2}, instead of a\n combination of {yellow react@16.4.2}, {yellow react@0.15.9}, and {yellow react@16.0.0}."], ["\n Ensure that multiple packages requiring the same dependency define the same\n version, so that every package requires eg. {yellow react@16.4.2}, instead of a\n combination of {yellow react@16.4.2}, {yellow react@0.15.9}, and {yellow react@16.0.0}."]))).replace(/^\n/, ''));
44
+ commander_1.program.on('--help', function () {
45
+ console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack fix-mismatches\n {dim # uses packages defined by --source when provided}\n syncpack fix-mismatches --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack fix-mismatches --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack fix-mismatches --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack fix-mismatches --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack fix-mismatches --dev --peer\n {dim # indent package.json with 4 spaces instead of 2}\n syncpack fix-mismatches --indent {yellow \" \"}\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack fix-mismatches\n {dim # uses packages defined by --source when provided}\n syncpack fix-mismatches --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack fix-mismatches --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack fix-mismatches --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack fix-mismatches --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack fix-mismatches --dev --peer\n {dim # indent package.json with 4 spaces instead of 2}\n syncpack fix-mismatches --indent {yellow \" \"}\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
46
+ });
47
+ (_a = (_b = (_c = (_d = (_e = (_f = (_g = commander_1.program
48
+ .option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
49
+ .option.apply(_g, __spreadArray([], __read(option_1.option.prod), false)))
50
+ .option.apply(_f, __spreadArray([], __read(option_1.option.dev), false)))
51
+ .option.apply(_e, __spreadArray([], __read(option_1.option.peer), false)))
52
+ .option.apply(_d, __spreadArray([], __read(option_1.option.resolutions), false)))
53
+ .option.apply(_c, __spreadArray([], __read(option_1.option.overrides), false)))
54
+ .option.apply(_b, __spreadArray([], __read(option_1.option.filter), false)))
55
+ .option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
56
+ (0, fix_mismatches_1.fixMismatches)((0, get_input_1.getInput)(disk_1.disk, {
57
+ dev: commander_1.program.opts().dev,
58
+ filter: commander_1.program.opts().filter,
59
+ indent: commander_1.program.opts().indent,
60
+ overrides: commander_1.program.opts().overrides,
61
+ peer: commander_1.program.opts().peer,
62
+ prod: commander_1.program.opts().prod,
63
+ resolutions: commander_1.program.opts().resolutions,
64
+ source: commander_1.program.opts().source
65
+ }), disk_1.disk);
66
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,3 @@
1
+ import type { Disk } from '../lib/disk';
2
+ import type { ProgramInput } from '../lib/get-input';
3
+ export declare function format(input: ProgramInput, disk: Disk): void;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.format = void 0;
4
+ var expect_more_1 = require("expect-more");
5
+ var write_if_changed_1 = require("../lib/write-if-changed");
6
+ function format(input, disk) {
7
+ var indent = input.indent, sortAz = input.sortAz, sortFirst = input.sortFirst, wrappers = input.wrappers;
8
+ wrappers.forEach(function (_a) {
9
+ var _b, _c;
10
+ var contents = _a.contents, filePath = _a.filePath, json = _a.json;
11
+ var sortedKeys = Object.keys(contents).sort();
12
+ var keys = new Set(sortFirst.concat(sortedKeys));
13
+ var optionalChaining = contents;
14
+ var bugsUrl = (_b = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.bugs) === null || _b === void 0 ? void 0 : _b.url;
15
+ var repositoryUrl = (_c = optionalChaining === null || optionalChaining === void 0 ? void 0 : optionalChaining.repository) === null || _c === void 0 ? void 0 : _c.url;
16
+ if (bugsUrl) {
17
+ contents.bugs = bugsUrl;
18
+ }
19
+ if (repositoryUrl) {
20
+ contents.repository = repositoryUrl.includes('github.com')
21
+ ? repositoryUrl.replace(/^.+github\.com\//, '')
22
+ : repositoryUrl;
23
+ }
24
+ sortAz.forEach(function (key) { return sortAlphabetically(contents[key]); });
25
+ sortObject(keys, contents);
26
+ (0, write_if_changed_1.writeIfChanged)(disk, { contents: contents, filePath: filePath, indent: indent, json: json });
27
+ });
28
+ function sortObject(sortedKeys, obj) {
29
+ sortedKeys.forEach(function (key) {
30
+ var value = obj[key];
31
+ delete obj[key];
32
+ obj[key] = value;
33
+ });
34
+ }
35
+ function sortAlphabetically(value) {
36
+ if ((0, expect_more_1.isArray)(value)) {
37
+ value.sort();
38
+ }
39
+ else if (value && typeof value === 'object') {
40
+ sortObject(Object.keys(value).sort(), value);
41
+ }
42
+ }
43
+ }
44
+ exports.format = format;
File without changes
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
4
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5
+ return cooked;
6
+ };
7
+ var __read = (this && this.__read) || function (o, n) {
8
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
9
+ if (!m) return o;
10
+ var i = m.call(o), r, ar = [], e;
11
+ try {
12
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
+ }
14
+ catch (error) { e = { error: error }; }
15
+ finally {
16
+ try {
17
+ if (r && !r.done && (m = i["return"])) m.call(i);
18
+ }
19
+ finally { if (e) throw e.error; }
20
+ }
21
+ return ar;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ var _a;
36
+ exports.__esModule = true;
37
+ var chalk_1 = __importDefault(require("chalk"));
38
+ var commander_1 = require("commander");
39
+ var option_1 = require("../option");
40
+ var disk_1 = require("../lib/disk");
41
+ var get_input_1 = require("../lib/get-input");
42
+ var format_1 = require("./format");
43
+ commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Organise package.json files according to a conventional format, where fields\n appear in a predictable order and nested fields are ordered alphabetically.\n Shorthand properties are used where available, such as the {yellow repository} and\n {yellow bugs} fields."], ["\n Organise package.json files according to a conventional format, where fields\n appear in a predictable order and nested fields are ordered alphabetically.\n Shorthand properties are used where available, such as the {yellow repository} and\n {yellow bugs} fields."]))).replace(/^\n/, ''));
44
+ commander_1.program.on('--help', function () {
45
+ console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack format\n {dim # uses packages defined by --source when provided}\n syncpack format --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack format --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # indent package.json with 4 spaces instead of 2}\n syncpack format --indent {yellow \" \"}\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack format\n {dim # uses packages defined by --source when provided}\n syncpack format --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack format --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # indent package.json with 4 spaces instead of 2}\n syncpack format --indent {yellow \" \"}\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
46
+ });
47
+ (_a = commander_1.program
48
+ .option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
49
+ .option.apply(_a, __spreadArray([], __read(option_1.option.indent), false)).parse(process.argv);
50
+ (0, format_1.format)((0, get_input_1.getInput)(disk_1.disk, {
51
+ indent: commander_1.program.opts().indent,
52
+ overrides: commander_1.program.opts().overrides,
53
+ resolutions: commander_1.program.opts().resolutions,
54
+ source: commander_1.program.opts().source
55
+ }), disk_1.disk);
56
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
4
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5
+ return cooked;
6
+ };
7
+ var __read = (this && this.__read) || function (o, n) {
8
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
9
+ if (!m) return o;
10
+ var i = m.call(o), r, ar = [], e;
11
+ try {
12
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
+ }
14
+ catch (error) { e = { error: error }; }
15
+ finally {
16
+ try {
17
+ if (r && !r.done && (m = i["return"])) m.call(i);
18
+ }
19
+ finally { if (e) throw e.error; }
20
+ }
21
+ return ar;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ var _a, _b, _c, _d, _e, _f, _g;
36
+ exports.__esModule = true;
37
+ var chalk_1 = __importDefault(require("chalk"));
38
+ var commander_1 = require("commander");
39
+ var option_1 = require("../option");
40
+ var disk_1 = require("../lib/disk");
41
+ var get_input_1 = require("../lib/get-input");
42
+ var lint_semver_ranges_1 = require("./lint-semver-ranges");
43
+ commander_1.program.description((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Check dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."], ["\n Check dependency versions within {yellow dependencies}, {yellow devDependencies},\n {yellow peerDependencies}, {yellow overrides}, and {yellow resolutions} follow a consistent format."]))).replace(/^\n/, ''));
44
+ commander_1.program.on('--help', function () {
45
+ console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack lint-semver-ranges\n {dim # uses packages defined by --source when provided}\n syncpack lint-semver-ranges --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack lint-semver-ranges --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack lint-semver-ranges --filter {yellow \"typescript|tslint\"}\n {dim # use ~ range instead of default \"\"}\n syncpack lint-semver-ranges --semver-range ~\n {dim # use ~ range in \"devDependencies\"}\n syncpack lint-semver-ranges --dev --semver-range ~\n {dim # use ~ range in \"devDependencies\" and \"peerDependencies\"}\n syncpack lint-semver-ranges --dev --peer --semver-range ~\n\nSupported Ranges:\n < {dim <1.4.2}\n <= {dim <=1.4.2}\n \"\" {dim 1.4.2}\n ~ {dim ~1.4.2}\n ^ {dim ^1.4.2}\n >= {dim >=1.4.2}\n > {dim >1.4.2}\n * {dim *}\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack lint-semver-ranges\n {dim # uses packages defined by --source when provided}\n syncpack lint-semver-ranges --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack lint-semver-ranges --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack lint-semver-ranges --filter {yellow \"typescript|tslint\"}\n {dim # use ~ range instead of default \"\"}\n syncpack lint-semver-ranges --semver-range ~\n {dim # use ~ range in \"devDependencies\"}\n syncpack lint-semver-ranges --dev --semver-range ~\n {dim # use ~ range in \"devDependencies\" and \"peerDependencies\"}\n syncpack lint-semver-ranges --dev --peer --semver-range ~\n\nSupported Ranges:\n < {dim <1.4.2}\n <= {dim <=1.4.2}\n \"\" {dim 1.4.2}\n ~ {dim ~1.4.2}\n ^ {dim ^1.4.2}\n >= {dim >=1.4.2}\n > {dim >1.4.2}\n * {dim *}\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
46
+ });
47
+ (_a = (_b = (_c = (_d = (_e = (_f = (_g = commander_1.program
48
+ .option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
49
+ .option.apply(_g, __spreadArray([], __read(option_1.option.prod), false)))
50
+ .option.apply(_f, __spreadArray([], __read(option_1.option.dev), false)))
51
+ .option.apply(_e, __spreadArray([], __read(option_1.option.peer), false)))
52
+ .option.apply(_d, __spreadArray([], __read(option_1.option.resolutions), false)))
53
+ .option.apply(_c, __spreadArray([], __read(option_1.option.overrides), false)))
54
+ .option.apply(_b, __spreadArray([], __read(option_1.option.filter), false)))
55
+ .option.apply(_a, __spreadArray([], __read(option_1.option.semverRange), false)).parse(process.argv);
56
+ (0, lint_semver_ranges_1.lintSemverRanges)((0, get_input_1.getInput)(disk_1.disk, {
57
+ dev: commander_1.program.opts().dev,
58
+ filter: commander_1.program.opts().filter,
59
+ overrides: commander_1.program.opts().overrides,
60
+ peer: commander_1.program.opts().peer,
61
+ prod: commander_1.program.opts().prod,
62
+ resolutions: commander_1.program.opts().resolutions,
63
+ semverRange: commander_1.program.opts().semverRange,
64
+ source: commander_1.program.opts().source
65
+ }));
66
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,2 @@
1
+ import type { ProgramInput } from '../lib/get-input';
2
+ export declare function lintSemverRanges(input: ProgramInput): void;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ exports.__esModule = true;
21
+ exports.lintSemverRanges = void 0;
22
+ var chalk_1 = __importDefault(require("chalk"));
23
+ var matches_filter_1 = require("../lib/matches-filter");
24
+ var set_semver_range_1 = require("../lib/set-semver-range");
25
+ var list_semver_group_mismatches_1 = require("./list-semver-group-mismatches");
26
+ function lintSemverRanges(input) {
27
+ var isInvalid = false;
28
+ /**
29
+ * Reverse the list so the default/ungrouped semver group is rendered first
30
+ * (appears at the top). The actual semver groups which the user configured
31
+ * will then start from index 1.
32
+ */
33
+ input.instances.semverGroups.reverse().forEach(function (semverGroup, i) {
34
+ var isSemverGroup = i > 0;
35
+ var mismatches = (0, list_semver_group_mismatches_1.listSemverGroupMismatches)(__assign(__assign({}, semverGroup), { instances: semverGroup.instances.filter((0, matches_filter_1.matchesFilter)(input)) }));
36
+ if (isSemverGroup) {
37
+ console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Semver Group ", " ", "}"], ["{dim = Semver Group ", " ", "}"])), i, '='.repeat(63)));
38
+ }
39
+ mismatches.forEach(function (_a) {
40
+ var dependencyType = _a.dependencyType, name = _a.name, version = _a.version, wrapper = _a.wrapper;
41
+ console.log((0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red \u2715 ", "} {red.dim ", " in ", " of ", " should be ", "}"], ["{red \u2715 ", "} {red.dim ", " in ", " of ", " should be ", "}"])), name, version, dependencyType, wrapper.contents.name, (0, set_semver_range_1.setSemverRange)(semverGroup.range, version)));
42
+ });
43
+ if (mismatches.length > 0) {
44
+ isInvalid = true;
45
+ }
46
+ });
47
+ if (isInvalid) {
48
+ process.exit(1);
49
+ }
50
+ }
51
+ exports.lintSemverRanges = lintSemverRanges;
52
+ var templateObject_1, templateObject_2;
@@ -0,0 +1,2 @@
1
+ import type { IndexedSemverGroup, Instance } from '../lib/get-input/get-instances';
2
+ export declare function listSemverGroupMismatches(semverGroup: IndexedSemverGroup): Instance[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.listSemverGroupMismatches = void 0;
4
+ var set_semver_range_1 = require("../lib/set-semver-range");
5
+ var sort_by_name_1 = require("../lib/sort-by-name");
6
+ function listSemverGroupMismatches(semverGroup) {
7
+ return semverGroup.instances.sort(sort_by_name_1.sortByName).filter(function (_a) {
8
+ var version = _a.version;
9
+ return version !== (0, set_semver_range_1.setSemverRange)(semverGroup.range, version);
10
+ });
11
+ }
12
+ exports.listSemverGroupMismatches = listSemverGroupMismatches;
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
4
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5
+ return cooked;
6
+ };
7
+ var __read = (this && this.__read) || function (o, n) {
8
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
9
+ if (!m) return o;
10
+ var i = m.call(o), r, ar = [], e;
11
+ try {
12
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
+ }
14
+ catch (error) { e = { error: error }; }
15
+ finally {
16
+ try {
17
+ if (r && !r.done && (m = i["return"])) m.call(i);
18
+ }
19
+ finally { if (e) throw e.error; }
20
+ }
21
+ return ar;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ var _a, _b, _c, _d, _e, _f;
36
+ exports.__esModule = true;
37
+ var chalk_1 = __importDefault(require("chalk"));
38
+ var commander_1 = require("commander");
39
+ var option_1 = require("../option");
40
+ var disk_1 = require("../lib/disk");
41
+ var get_input_1 = require("../lib/get-input");
42
+ var list_1 = require("./list");
43
+ commander_1.program.description(' List all dependencies required by your packages.');
44
+ commander_1.program.on('--help', function () {
45
+ console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack list\n {dim # uses packages defined by --source when provided}\n syncpack list --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack list --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack list --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack list --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack list --dev --peer\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack list\n {dim # uses packages defined by --source when provided}\n syncpack list --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack list --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack list --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack list --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack list --dev --peer\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
46
+ });
47
+ (_a = (_b = (_c = (_d = (_e = (_f = commander_1.program
48
+ .option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
49
+ .option.apply(_f, __spreadArray([], __read(option_1.option.prod), false)))
50
+ .option.apply(_e, __spreadArray([], __read(option_1.option.dev), false)))
51
+ .option.apply(_d, __spreadArray([], __read(option_1.option.peer), false)))
52
+ .option.apply(_c, __spreadArray([], __read(option_1.option.resolutions), false)))
53
+ .option.apply(_b, __spreadArray([], __read(option_1.option.overrides), false)))
54
+ .option.apply(_a, __spreadArray([], __read(option_1.option.filter), false)).parse(process.argv);
55
+ (0, list_1.list)((0, get_input_1.getInput)(disk_1.disk, {
56
+ dev: commander_1.program.opts().dev,
57
+ filter: commander_1.program.opts().filter,
58
+ overrides: commander_1.program.opts().overrides,
59
+ peer: commander_1.program.opts().peer,
60
+ prod: commander_1.program.opts().prod,
61
+ resolutions: commander_1.program.opts().resolutions,
62
+ source: commander_1.program.opts().source
63
+ }));
64
+ var templateObject_1;
@@ -0,0 +1,3 @@
1
+ import type { Instance } from '../lib/get-input/get-instances';
2
+ import type { ListItem } from './list';
3
+ export declare function listVersionGroups(instances: Instance[]): ListItem[];
@@ -0,0 +1,40 @@
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.listVersionGroups = void 0;
20
+ var group_by_1 = require("../lib/group-by");
21
+ var sort_by_name_1 = require("../lib/sort-by-name");
22
+ function listVersionGroups(instances) {
23
+ var instancesByName = (0, group_by_1.groupBy)('name', instances.sort(sort_by_name_1.sortByName));
24
+ return Object.entries(instancesByName).map(function (_a) {
25
+ var _b = __read(_a, 2), name = _b[0], instances = _b[1];
26
+ var versions = instances.map(function (_a) {
27
+ var version = _a.version;
28
+ return version;
29
+ });
30
+ var uniques = Array.from(new Set(versions));
31
+ var hasMismatches = uniques.length > 1;
32
+ return {
33
+ hasMismatches: hasMismatches,
34
+ instances: instances,
35
+ name: name,
36
+ uniques: uniques
37
+ };
38
+ });
39
+ }
40
+ exports.listVersionGroups = listVersionGroups;
@@ -0,0 +1,9 @@
1
+ import type { ProgramInput } from '../lib/get-input';
2
+ import type { Instance } from '../lib/get-input/get-instances';
3
+ export interface ListItem {
4
+ hasMismatches: boolean;
5
+ instances: Instance[];
6
+ name: string;
7
+ uniques: string[];
8
+ }
9
+ export declare function list(input: ProgramInput): void;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ exports.__esModule = true;
10
+ exports.list = void 0;
11
+ var chalk_1 = __importDefault(require("chalk"));
12
+ var matches_filter_1 = require("../lib/matches-filter");
13
+ var list_version_groups_1 = require("./list-version-groups");
14
+ function list(input) {
15
+ var isInvalid = false;
16
+ /**
17
+ * Reverse the list so the default/ungrouped version group is rendered first
18
+ * (appears at the top). The actual version groups which the user configured
19
+ * will then start from index 1.
20
+ */
21
+ input.instances.versionGroups.reverse().forEach(function (versionGroup, i) {
22
+ var isVersionGroup = i > 0;
23
+ var filtered = versionGroup.instances.filter((0, matches_filter_1.matchesFilter)(input));
24
+ var ungrouped = (0, list_version_groups_1.listVersionGroups)(filtered);
25
+ if (isVersionGroup) {
26
+ console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["{dim = Version Group ", " ", "}"], ["{dim = Version Group ", " ", "}"])), i, '='.repeat(63)));
27
+ }
28
+ ungrouped.forEach(function (_a) {
29
+ var hasMismatches = _a.hasMismatches, name = _a.name, uniques = _a.uniques;
30
+ var versionList = uniques.sort().join(', ');
31
+ console.log(hasMismatches
32
+ ? (0, chalk_1["default"])(templateObject_2 || (templateObject_2 = __makeTemplateObject(["{red \u2715 ", "} {dim.red ", "}"], ["{red \u2715 ", "} {dim.red ", "}"])), name, versionList) : (0, chalk_1["default"])(templateObject_3 || (templateObject_3 = __makeTemplateObject(["{dim -} {white ", "} {dim ", "}"], ["{dim -} {white ", "} {dim ", "}"])), name, versionList));
33
+ });
34
+ if (ungrouped.some(function (_a) {
35
+ var hasMismatches = _a.hasMismatches;
36
+ return hasMismatches;
37
+ })) {
38
+ isInvalid = true;
39
+ }
40
+ });
41
+ if (isInvalid) {
42
+ process.exit(1);
43
+ }
44
+ }
45
+ exports.list = list;
46
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
4
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5
+ return cooked;
6
+ };
7
+ var __read = (this && this.__read) || function (o, n) {
8
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
9
+ if (!m) return o;
10
+ var i = m.call(o), r, ar = [], e;
11
+ try {
12
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
+ }
14
+ catch (error) { e = { error: error }; }
15
+ finally {
16
+ try {
17
+ if (r && !r.done && (m = i["return"])) m.call(i);
18
+ }
19
+ finally { if (e) throw e.error; }
20
+ }
21
+ return ar;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ var _a, _b, _c, _d, _e, _f;
36
+ exports.__esModule = true;
37
+ var chalk_1 = __importDefault(require("chalk"));
38
+ var commander_1 = require("commander");
39
+ var option_1 = require("../option");
40
+ var disk_1 = require("../lib/disk");
41
+ var get_input_1 = require("../lib/get-input");
42
+ var list_mismatches_1 = require("./list-mismatches");
43
+ commander_1.program.description("\n List dependencies which are required by multiple packages, where the version\n is not the same across every package.".replace(/^\n/, ''));
44
+ commander_1.program.on('--help', function () {
45
+ console.log((0, chalk_1["default"])(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack list-mismatches\n {dim # uses packages defined by --source when provided}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack list-mismatches --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack list-mismatches --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack list-mismatches --dev --peer\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"], ["\nExamples:\n {dim # uses defaults for resolving packages}\n syncpack list-mismatches\n {dim # uses packages defined by --source when provided}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"}\n {dim # multiple globs can be provided like this}\n syncpack list-mismatches --source {yellow \"apps/*/package.json\"} --source {yellow \"core/*/package.json\"}\n {dim # uses dependencies regular expression defined by --filter when provided}\n syncpack list-mismatches --filter {yellow \"typescript|tslint\"}\n {dim # only inspect \"devDependencies\"}\n syncpack list-mismatches --dev\n {dim # only inspect \"devDependencies\" and \"peerDependencies\"}\n syncpack list-mismatches --dev --peer\n\nResolving Packages:\n 1. If {yellow --source} globs are provided, use those.\n 2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.\n 3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.\n 4. If using Lerna, read {yellow packages} from {yellow lerna.json}.\n 5. Default to {yellow \"package.json\"} and {yellow \"packages/*/package.json\"}.\n\nReference:\n globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}\n lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}\n Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}\n Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}\n"]))));
46
+ });
47
+ (_a = (_b = (_c = (_d = (_e = (_f = commander_1.program
48
+ .option.apply(commander_1.program, __spreadArray([], __read(option_1.option.source), false)))
49
+ .option.apply(_f, __spreadArray([], __read(option_1.option.prod), false)))
50
+ .option.apply(_e, __spreadArray([], __read(option_1.option.dev), false)))
51
+ .option.apply(_d, __spreadArray([], __read(option_1.option.peer), false)))
52
+ .option.apply(_c, __spreadArray([], __read(option_1.option.resolutions), false)))
53
+ .option.apply(_b, __spreadArray([], __read(option_1.option.overrides), false)))
54
+ .option.apply(_a, __spreadArray([], __read(option_1.option.filter), false)).parse(process.argv);
55
+ (0, list_mismatches_1.listMismatches)((0, get_input_1.getInput)(disk_1.disk, {
56
+ dev: commander_1.program.opts().dev,
57
+ filter: commander_1.program.opts().filter,
58
+ overrides: commander_1.program.opts().overrides,
59
+ peer: commander_1.program.opts().peer,
60
+ prod: commander_1.program.opts().prod,
61
+ resolutions: commander_1.program.opts().resolutions,
62
+ source: commander_1.program.opts().source
63
+ }));
64
+ var templateObject_1;
@@ -0,0 +1,2 @@
1
+ import type { ProgramInput } from '../lib/get-input';
2
+ export declare function listMismatches(input: ProgramInput): void;