beachball 2.63.0 → 2.64.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 (116) hide show
  1. package/README.md +43 -24
  2. package/lib/changefile/getChangedPackages.d.ts +11 -1
  3. package/lib/changefile/getChangedPackages.d.ts.map +1 -1
  4. package/lib/changefile/getChangedPackages.js +13 -8
  5. package/lib/changefile/getChangedPackages.js.map +1 -1
  6. package/lib/changefile/promptForChange.d.ts.map +1 -1
  7. package/lib/changefile/promptForChange.js +23 -0
  8. package/lib/changefile/promptForChange.js.map +1 -1
  9. package/lib/changefile/unlinkChangeFiles.d.ts +1 -2
  10. package/lib/changefile/unlinkChangeFiles.d.ts.map +1 -1
  11. package/lib/changefile/unlinkChangeFiles.js.map +1 -1
  12. package/lib/changelog/renderChangelog.d.ts +1 -1
  13. package/lib/changelog/renderChangelog.d.ts.map +1 -1
  14. package/lib/changelog/renderChangelog.js +1 -0
  15. package/lib/changelog/renderChangelog.js.map +1 -1
  16. package/lib/changelog/renderPackageChangelog.js +9 -3
  17. package/lib/changelog/renderPackageChangelog.js.map +1 -1
  18. package/lib/cli.js +34 -8
  19. package/lib/cli.js.map +1 -1
  20. package/lib/commands/configGet.d.ts +11 -0
  21. package/lib/commands/configGet.d.ts.map +1 -0
  22. package/lib/commands/configGet.js +196 -0
  23. package/lib/commands/configGet.js.map +1 -0
  24. package/lib/commands/configList.d.ts +8 -0
  25. package/lib/commands/configList.d.ts.map +1 -0
  26. package/lib/commands/configList.js +35 -0
  27. package/lib/commands/configList.js.map +1 -0
  28. package/lib/commands/init.d.ts.map +1 -1
  29. package/lib/commands/init.js +6 -7
  30. package/lib/commands/init.js.map +1 -1
  31. package/lib/help.d.ts.map +1 -1
  32. package/lib/help.js +12 -1
  33. package/lib/help.js.map +1 -1
  34. package/lib/logging/formatValue.d.ts +17 -0
  35. package/lib/logging/formatValue.d.ts.map +1 -0
  36. package/lib/logging/formatValue.js +66 -0
  37. package/lib/logging/formatValue.js.map +1 -0
  38. package/lib/monorepo/createCommandContext.js +1 -1
  39. package/lib/monorepo/createCommandContext.js.map +1 -1
  40. package/lib/monorepo/filterIgnoredFiles.d.ts +11 -0
  41. package/lib/monorepo/filterIgnoredFiles.d.ts.map +1 -0
  42. package/lib/monorepo/filterIgnoredFiles.js +24 -0
  43. package/lib/monorepo/filterIgnoredFiles.js.map +1 -0
  44. package/lib/monorepo/getPackageGraph.d.ts +24 -4
  45. package/lib/monorepo/getPackageGraph.d.ts.map +1 -1
  46. package/lib/monorepo/getPackageGraph.js +50 -11
  47. package/lib/monorepo/getPackageGraph.js.map +1 -1
  48. package/lib/monorepo/getPackageGroups.d.ts.map +1 -1
  49. package/lib/monorepo/getPackageGroups.js +2 -3
  50. package/lib/monorepo/getPackageGroups.js.map +1 -1
  51. package/lib/monorepo/getPackageInfos.d.ts +7 -4
  52. package/lib/monorepo/getPackageInfos.d.ts.map +1 -1
  53. package/lib/monorepo/getPackageInfos.js +40 -45
  54. package/lib/monorepo/getPackageInfos.js.map +1 -1
  55. package/lib/options/getCliOptions.d.ts.map +1 -1
  56. package/lib/options/getCliOptions.js +9 -2
  57. package/lib/options/getCliOptions.js.map +1 -1
  58. package/lib/options/getRepoOptions.d.ts.map +1 -1
  59. package/lib/options/getRepoOptions.js +2 -4
  60. package/lib/options/getRepoOptions.js.map +1 -1
  61. package/lib/packageManager/packPackage.d.ts +11 -5
  62. package/lib/packageManager/packPackage.d.ts.map +1 -1
  63. package/lib/packageManager/packPackage.js +34 -12
  64. package/lib/packageManager/packPackage.js.map +1 -1
  65. package/lib/packageManager/packagePublish.d.ts.map +1 -1
  66. package/lib/packageManager/packagePublish.js +3 -4
  67. package/lib/packageManager/packagePublish.js.map +1 -1
  68. package/lib/publish/bumpAndPush.d.ts.map +1 -1
  69. package/lib/publish/bumpAndPush.js +4 -3
  70. package/lib/publish/bumpAndPush.js.map +1 -1
  71. package/lib/publish/displayManualRecovery.d.ts +1 -1
  72. package/lib/publish/displayManualRecovery.d.ts.map +1 -1
  73. package/lib/publish/displayManualRecovery.js +7 -6
  74. package/lib/publish/displayManualRecovery.js.map +1 -1
  75. package/lib/publish/getPackageGraphLayers.d.ts +30 -0
  76. package/lib/publish/getPackageGraphLayers.d.ts.map +1 -0
  77. package/lib/publish/getPackageGraphLayers.js +99 -0
  78. package/lib/publish/getPackageGraphLayers.js.map +1 -0
  79. package/lib/publish/getPackagesToPublish.d.ts +0 -2
  80. package/lib/publish/getPackagesToPublish.d.ts.map +1 -1
  81. package/lib/publish/getPackagesToPublish.js +2 -6
  82. package/lib/publish/getPackagesToPublish.js.map +1 -1
  83. package/lib/publish/publishToRegistry.d.ts.map +1 -1
  84. package/lib/publish/publishToRegistry.js +32 -11
  85. package/lib/publish/publishToRegistry.js.map +1 -1
  86. package/lib/publish/tagPackages.js +1 -1
  87. package/lib/publish/tagPackages.js.map +1 -1
  88. package/lib/publish/validatePackageDependencies.d.ts.map +1 -1
  89. package/lib/publish/validatePackageDependencies.js +3 -2
  90. package/lib/publish/validatePackageDependencies.js.map +1 -1
  91. package/lib/publish/validatePackageVersions.d.ts.map +1 -1
  92. package/lib/publish/validatePackageVersions.js +5 -4
  93. package/lib/publish/validatePackageVersions.js.map +1 -1
  94. package/lib/types/BeachballError.d.ts +15 -0
  95. package/lib/types/BeachballError.d.ts.map +1 -0
  96. package/lib/types/BeachballError.js +19 -0
  97. package/lib/types/BeachballError.js.map +1 -0
  98. package/lib/types/BeachballOptions.d.ts +21 -2
  99. package/lib/types/BeachballOptions.d.ts.map +1 -1
  100. package/lib/types/BumpInfo.d.ts +2 -3
  101. package/lib/types/BumpInfo.d.ts.map +1 -1
  102. package/lib/types/ChangelogOptions.d.ts +4 -0
  103. package/lib/types/ChangelogOptions.d.ts.map +1 -1
  104. package/lib/validation/validate.d.ts +1 -1
  105. package/lib/validation/validate.d.ts.map +1 -1
  106. package/lib/validation/validate.js +6 -13
  107. package/lib/validation/validate.js.map +1 -1
  108. package/package.json +6 -4
  109. package/lib/monorepo/getPackageDependencyGraph.d.ts +0 -7
  110. package/lib/monorepo/getPackageDependencyGraph.d.ts.map +0 -1
  111. package/lib/monorepo/getPackageDependencyGraph.js +0 -34
  112. package/lib/monorepo/getPackageDependencyGraph.js.map +0 -1
  113. package/lib/publish/toposortPackages.d.ts +0 -9
  114. package/lib/publish/toposortPackages.d.ts.map +0 -1
  115. package/lib/publish/toposortPackages.js +0 -24
  116. package/lib/publish/toposortPackages.js.map +0 -1
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configGet = void 0;
4
+ const getChangedPackages_1 = require("../changefile/getChangedPackages");
5
+ const getDisallowedChangeTypes_1 = require("../changefile/getDisallowedChangeTypes");
6
+ const formatValue_1 = require("../logging/formatValue");
7
+ const BeachballError_1 = require("../types/BeachballError");
8
+ /** Keys that can be overridden per-package (exhaustive via Record) */
9
+ const packageOptionKeys = {
10
+ tag: true,
11
+ defaultNpmTag: true,
12
+ disallowedChangeTypes: true,
13
+ gitTags: true,
14
+ shouldPublish: true,
15
+ };
16
+ /** Keys from RepoOptions (the full set of valid config file settings, exhaustive via Record) */
17
+ const repoOptionKeys = {
18
+ access: true,
19
+ authType: true,
20
+ branch: true,
21
+ bump: true,
22
+ bumpDeps: true,
23
+ canaryName: true,
24
+ changeFilePrompt: true,
25
+ changehint: true,
26
+ changeDir: true,
27
+ changelog: true,
28
+ commit: true,
29
+ concurrency: true,
30
+ npmReadConcurrency: true,
31
+ defaultNpmTag: true,
32
+ disallowedChangeTypes: true,
33
+ disallowDeletedChangeFiles: true,
34
+ fetch: true,
35
+ fromRef: true,
36
+ generateChangelog: true,
37
+ groups: true,
38
+ gitTags: true,
39
+ hooks: true,
40
+ ignorePatterns: true,
41
+ keepChangeFiles: true,
42
+ message: true,
43
+ path: true,
44
+ prereleasePrefix: true,
45
+ identifierBase: true,
46
+ publish: true,
47
+ packToPath: true,
48
+ packStyle: true,
49
+ push: true,
50
+ registry: true,
51
+ retries: true,
52
+ scope: true,
53
+ tag: true,
54
+ timeout: true,
55
+ gitTimeout: true,
56
+ transform: true,
57
+ groupChanges: true,
58
+ depth: true,
59
+ new: true,
60
+ };
61
+ const groupOptionsKeys = {
62
+ disallowedChangeTypes: true,
63
+ };
64
+ /** All valid config names that can be queried */
65
+ const validConfigNames = new Set([
66
+ ...Object.keys(repoOptionKeys),
67
+ ...Object.keys(packageOptionKeys),
68
+ ...Object.keys(groupOptionsKeys),
69
+ ]);
70
+ /**
71
+ * Handles the `beachball config get <name>` command.
72
+ *
73
+ * The output of this command is intended to be read by humans or AI, not parsed directly.
74
+ * It includes the top-level setting and any package and/or group overrides.
75
+ * (If parseable output is needed, an option could be added in the future.)
76
+ */
77
+ function configGet(options, context) {
78
+ const { originalPackageInfos: packageInfos, scopedPackages } = context;
79
+ const extraArgs = options._extraPositionalArgs || [];
80
+ if (extraArgs[0] !== 'get' || extraArgs.length !== 2) {
81
+ throw new BeachballError_1.BeachballError('Usage: beachball config get <setting>\n\nGets the value of the specified config setting.');
82
+ }
83
+ const name = extraArgs[1];
84
+ if (!validConfigNames.has(name)) {
85
+ const suggestion = findSimilar(name, [...validConfigNames]);
86
+ throw new BeachballError_1.BeachballError(suggestion
87
+ ? `Unknown config setting: "${name}" - did you mean "${suggestion}"?`
88
+ : `Unknown config setting: "${name}"`);
89
+ }
90
+ // Validate any provided package names
91
+ const packageNames = Array.isArray(options.package) ? options.package : options.package ? [options.package] : [];
92
+ let hasError = false;
93
+ for (const pkgName of packageNames) {
94
+ if (!packageInfos[pkgName]) {
95
+ console.error(`Package "${pkgName}" not found in repo`);
96
+ hasError = true;
97
+ }
98
+ else {
99
+ const { isIncluded, reason } = (0, getChangedPackages_1.isPackageIncluded)(packageInfos[pkgName], scopedPackages);
100
+ if (!isIncluded) {
101
+ console.error(`Invalid package: ${reason}`);
102
+ hasError = true;
103
+ }
104
+ }
105
+ }
106
+ if (hasError) {
107
+ throw new BeachballError_1.BeachballError('One or more packages not included', { alreadyLogged: true });
108
+ }
109
+ if (packageNames?.length) {
110
+ printForPackages(name, packageNames, options, context);
111
+ }
112
+ else {
113
+ printDefault(name, options, context);
114
+ }
115
+ }
116
+ exports.configGet = configGet;
117
+ /** Print the effective value of a setting for specific packages (--package) */
118
+ function printForPackages(name, packageNames, options, context) {
119
+ const { originalPackageInfos: packageInfos, packageGroups } = context;
120
+ const mainValue = options[name];
121
+ const results = {};
122
+ for (const pkgName of packageNames) {
123
+ if (groupOptionsKeys[name]) {
124
+ if (name === 'disallowedChangeTypes') {
125
+ results[pkgName] = (0, getDisallowedChangeTypes_1.getDisallowedChangeTypes)(pkgName, packageInfos, packageGroups, options);
126
+ }
127
+ else {
128
+ // guard against future group options
129
+ throw new BeachballError_1.BeachballError(`Not implemented: need logic to merge group option "${name}"`);
130
+ }
131
+ }
132
+ else {
133
+ const pkgValue = packageOptionKeys[name]
134
+ ? packageInfos[pkgName].packageOptions?.[name]
135
+ : undefined;
136
+ results[pkgName] = pkgValue !== undefined ? pkgValue : mainValue;
137
+ }
138
+ }
139
+ console.log((0, formatValue_1.formatValue)(results));
140
+ }
141
+ /** Print the repo-level value of a setting, plus any package or group overrides */
142
+ function printDefault(name, options, context) {
143
+ const { originalPackageInfos: packageInfos, scopedPackages, packageGroups } = context;
144
+ const mainValue = options[name];
145
+ // Collect package overrides
146
+ const pkgOverrides = {};
147
+ if (packageOptionKeys[name]) {
148
+ const pkgKey = name;
149
+ for (const pkgInfo of Object.values(packageInfos)) {
150
+ const pkgValue = pkgInfo.packageOptions?.[pkgKey];
151
+ // Verify the package is included, but it's not an error here since it wasn't explicitly requested
152
+ if ((0, getChangedPackages_1.isPackageIncluded)(pkgInfo, scopedPackages).isIncluded && pkgValue !== undefined) {
153
+ pkgOverrides[pkgInfo.name] = pkgValue;
154
+ }
155
+ }
156
+ }
157
+ // Collect group overrides
158
+ const groupOverrides = {};
159
+ if (groupOptionsKeys[name] && options.groups?.length) {
160
+ const groupKey = name;
161
+ for (const group of options.groups) {
162
+ if (group[groupKey] !== undefined) {
163
+ groupOverrides[group.name] = {
164
+ [groupKey]: group[groupKey],
165
+ packageNames: packageGroups[group.name]?.packageNames,
166
+ };
167
+ }
168
+ }
169
+ }
170
+ const hasGroupOverrides = Object.keys(groupOverrides).length > 0;
171
+ const hasPkgOverrides = Object.keys(pkgOverrides).length > 0;
172
+ const prefix = hasPkgOverrides || hasGroupOverrides ? 'Main value: ' : '';
173
+ console.log(prefix + (0, formatValue_1.formatValue)(mainValue));
174
+ if (hasPkgOverrides) {
175
+ console.log('\nPackage overrides:');
176
+ console.log((0, formatValue_1.formatValue)(pkgOverrides, { level: 1 }));
177
+ }
178
+ if (hasGroupOverrides) {
179
+ console.log('\nGroup overrides:');
180
+ console.log((0, formatValue_1.formatValue)(groupOverrides, { level: 1 }));
181
+ }
182
+ }
183
+ /** Find a similar string (for typo suggestions) using simple edit distance check */
184
+ function findSimilar(input, candidates) {
185
+ const lower = input.toLowerCase();
186
+ // First try prefix match
187
+ const prefixMatch = candidates.find(c => c.toLowerCase().startsWith(lower));
188
+ if (prefixMatch)
189
+ return prefixMatch;
190
+ // Then try contains
191
+ const containsMatch = candidates.find(c => c.toLowerCase().includes(lower));
192
+ if (containsMatch)
193
+ return containsMatch;
194
+ return undefined;
195
+ }
196
+ //# sourceMappingURL=configGet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configGet.js","sourceRoot":"","sources":["../../src/commands/configGet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { BeachballOptions } from '../types/BeachballOptions';
2
+ import type { BasicCommandContext } from '../types/CommandContext';
3
+ /**
4
+ * Handles the `beachball config list` command.
5
+ * Prints all main settings, then any group overrides, then any per-package overrides.
6
+ */
7
+ export declare function configList(options: BeachballOptions, context: BasicCommandContext): void;
8
+ //# sourceMappingURL=configList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configList.d.ts","sourceRoot":"","sources":["../../src/commands/configList.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CA0BxF"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configList = void 0;
4
+ const getChangedPackages_1 = require("../changefile/getChangedPackages");
5
+ const formatValue_1 = require("../logging/formatValue");
6
+ /**
7
+ * Handles the `beachball config list` command.
8
+ * Prints all main settings, then any group overrides, then any per-package overrides.
9
+ */
10
+ function configList(options, context) {
11
+ const { originalPackageInfos: packageInfos, scopedPackages, packageGroups } = context;
12
+ const optionsRecord = options;
13
+ // Print main settings (from repo options and defaults; CLI overrides aren't relevant
14
+ // but would currently be included automatically since we don't validate args by command)
15
+ const sortedOptions = Object.fromEntries(Object.entries(optionsRecord).sort(([a], [b]) => a.localeCompare(b)));
16
+ console.log('Main options (including defaults):');
17
+ console.log((0, formatValue_1.formatValue)(sortedOptions, { level: 1 }));
18
+ // Print group overrides, omitting any that just have include/exclude without settings
19
+ // (need to filter by other keys too if added later)
20
+ const groupsWithOverrides = Object.entries(packageGroups).filter(([_, group]) => 'disallowedChangeTypes' in group);
21
+ if (groupsWithOverrides.length) {
22
+ console.log('\nGroup overrides:');
23
+ console.log((0, formatValue_1.formatValue)(Object.fromEntries(groupsWithOverrides), { level: 1 }));
24
+ }
25
+ // Print per-package overrides
26
+ const packagesWithOverrides = Object.values(packageInfos)
27
+ .filter(pkg => Object.keys(pkg.packageOptions || {}).length && (0, getChangedPackages_1.isPackageIncluded)(pkg, scopedPackages))
28
+ .map(pkg => [pkg.name, pkg.packageOptions]);
29
+ if (packagesWithOverrides.length) {
30
+ console.log('\nPackage overrides:');
31
+ console.log((0, formatValue_1.formatValue)(Object.fromEntries(packagesWithOverrides), { level: 1 }));
32
+ }
33
+ }
34
+ exports.configList = configList;
35
+ //# sourceMappingURL=configList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configList.js","sourceRoot":"","sources":["../../src/commands/configList.ts"],"names":[],"mappings":";;;AAAA,yEAAqE;AACrE,wDAAqD;AAIrD;;;GAGG;AACH,SAAgB,UAAU,CAAC,OAAyB,EAAE,OAA4B;IAChF,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACtF,MAAM,aAAa,GAAG,OAA6C,CAAC;IAEpE,qFAAqF;IACrF,yFAAyF;IACzF,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAW,EAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtD,sFAAsF;IACtF,oDAAoD;IACpD,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,uBAAuB,IAAI,KAAK,CAAC,CAAC;IACnH,IAAI,mBAAmB,CAAC,MAAM,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAW,EAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACjF;IAED,8BAA8B;IAC9B,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;SACtD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,IAAA,sCAAiB,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACrG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAU,CAAC,CAAC;IACvD,IAAI,qBAAqB,CAAC,MAAM,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAA,yBAAW,EAAC,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACnF;AACH,CAAC;AA1BD,gCA0BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAiBlE,wBAAsB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC9F"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAgBlE,wBAAsB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC9F"}
@@ -28,21 +28,20 @@ const fs = __importStar(require("fs"));
28
28
  const path = __importStar(require("path"));
29
29
  const readJson_1 = require("../object/readJson");
30
30
  const getNpmPackageInfo_1 = require("../packageManager/getNpmPackageInfo");
31
- // TODO: consider modifying this to propagate up
32
- function errorExit(message) {
31
+ const BeachballError_1 = require("../types/BeachballError");
32
+ function throwInitError(message) {
33
33
  console.error(message);
34
34
  console.log('You can still set up beachball manually by following the instructions here: https://microsoft.github.io/beachball/overview/getting-started.html');
35
- // eslint-disable-next-line no-restricted-properties
36
- process.exit(1);
35
+ throw new BeachballError_1.BeachballError(message, { alreadyLogged: true });
37
36
  }
38
37
  async function init(options) {
39
38
  const packageJsonFilePath = path.join(options.path, 'package.json');
40
39
  if (!fs.existsSync(packageJsonFilePath)) {
41
- errorExit(`Cannot find package.json at ${packageJsonFilePath}`);
40
+ throwInitError(`Cannot find package.json at ${packageJsonFilePath}`);
42
41
  }
43
42
  const beachballInfo = await (0, getNpmPackageInfo_1.getNpmPackageInfo)('beachball', options);
44
43
  if (!beachballInfo) {
45
- errorExit('Failed to retrieve beachball version from npm');
44
+ throwInitError('Failed to retrieve beachball version from npm');
46
45
  }
47
46
  const beachballVersion = beachballInfo['dist-tags'].latest;
48
47
  let packageJson = {};
@@ -50,7 +49,7 @@ async function init(options) {
50
49
  packageJson = (0, readJson_1.readJson)(packageJsonFilePath);
51
50
  }
52
51
  catch {
53
- errorExit(`Failed to read package.json at ${packageJsonFilePath}`);
52
+ throwInitError(`Failed to read package.json at ${packageJsonFilePath}`);
54
53
  }
55
54
  packageJson.devDependencies ?? (packageJson.devDependencies = {});
56
55
  packageJson.devDependencies.beachball = beachballVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAE7B,iDAA8C;AAC9C,2EAAwE;AAExE,gDAAgD;AAChD,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CACT,iJAAiJ,CAClJ,CAAC;IACF,oDAAoD;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,OAAoD;IAC7E,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;QACvC,SAAS,CAAC,+BAA+B,mBAAmB,EAAE,CAAC,CAAC;KACjE;IAED,MAAM,aAAa,GAAG,MAAM,IAAA,qCAAiB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,aAAa,EAAE;QAClB,SAAS,CAAC,+CAA+C,CAAC,CAAC;KAC5D;IACD,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAE3D,IAAI,WAAW,GAAG,EAAiB,CAAC;IACpC,IAAI;QACF,WAAW,GAAG,IAAA,mBAAQ,EAAc,mBAAmB,CAAC,CAAC;KAC1D;IAAC,MAAM;QACN,SAAS,CAAC,kCAAkC,mBAAmB,EAAE,CAAC,CAAC;KACpE;IAED,WAAW,CAAC,eAAe,KAA3B,WAAW,CAAC,eAAe,GAAK,EAAE,EAAC;IACnC,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACzD,WAAW,CAAC,OAAO,KAAnB,WAAW,CAAC,OAAO,GAAK,EAAE,EAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC;IACpD,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAChD,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG,mBAAmB,CAAC;IAElD,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;QAC3B,OAAO,CAAC,IAAI,CACV,qFAAqF;YACnF,sDAAsD,CACzD,CAAC;KACH;IAED,OAAO,CAAC,GAAG,CAAC,uGAAuG,CAAC,CAAC;AACvH,CAAC;AArCD,oBAqCC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAE7B,iDAA8C;AAC9C,2EAAwE;AACxE,4DAAyD;AAEzD,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CACT,iJAAiJ,CAClJ,CAAC;IACF,MAAM,IAAI,+BAAc,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,OAAoD;IAC7E,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;QACvC,cAAc,CAAC,+BAA+B,mBAAmB,EAAE,CAAC,CAAC;KACtE;IAED,MAAM,aAAa,GAAG,MAAM,IAAA,qCAAiB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,aAAa,EAAE;QAClB,cAAc,CAAC,+CAA+C,CAAC,CAAC;KACjE;IACD,MAAM,gBAAgB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAE3D,IAAI,WAAW,GAAG,EAAiB,CAAC;IACpC,IAAI;QACF,WAAW,GAAG,IAAA,mBAAQ,EAAc,mBAAmB,CAAC,CAAC;KAC1D;IAAC,MAAM;QACN,cAAc,CAAC,kCAAkC,mBAAmB,EAAE,CAAC,CAAC;KACzE;IAED,WAAW,CAAC,eAAe,KAA3B,WAAW,CAAC,eAAe,GAAK,EAAE,EAAC;IACnC,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACzD,WAAW,CAAC,OAAO,KAAnB,WAAW,CAAC,OAAO,GAAK,EAAE,EAAC;IAC3B,WAAW,CAAC,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC;IACpD,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAChD,WAAW,CAAC,OAAO,CAAC,OAAO,GAAG,mBAAmB,CAAC;IAElD,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;QAC3B,OAAO,CAAC,IAAI,CACV,qFAAqF;YACnF,sDAAsD,CACzD,CAAC;KACH;IAED,OAAO,CAAC,GAAG,CAAC,uGAAuG,CAAC,CAAC;AACvH,CAAC;AArCD,oBAqCC"}
package/lib/help.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,wBAAgB,QAAQ,IAAI,IAAI,CA+E/B"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,wBAAgB,QAAQ,IAAI,IAAI,CA0F/B"}
package/lib/help.js CHANGED
@@ -32,8 +32,10 @@ Commands:
32
32
  pushes changelogs back into the default branch
33
33
  sync - synchronize published versions of packages from the registry with
34
34
  local package.json versions
35
+ config get <name> - get the value of a config setting (with any overrides)
36
+ config list - list all config settings (with any overrides)
35
37
 
36
- Options supported by all commands:
38
+ Options supported by all commands except 'config':
37
39
 
38
40
  --branch, -b - target branch from remote (default: git config init.defaultBranch)
39
41
  --change-dir - name of the directory to store change files (default: change)
@@ -88,6 +90,15 @@ Options supported by all commands:
88
90
  --tag, -t - sync to the specified npm dist-tag (default: 'latest')
89
91
  --force - use the version from the registry even if it's older than local
90
92
 
93
+ 'config get <name>' options:
94
+
95
+ --package, -p - get the effective value for specific package(s)
96
+ (can be specified multiple times)
97
+
98
+ 'config list' options:
99
+
100
+ (no additional options)
101
+
91
102
  `);
92
103
  }
93
104
  exports.showHelp = showHelp;
package/lib/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,gDAA6C;AAE7C,SAAgB,WAAW;IACzB,MAAM,WAAW,GAAG,IAAA,mBAAQ,EAAc,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,OAAO,sCAAsC,CAAC,CAAC;AACvF,CAAC;AAHD,kCAGC;AAED,SAAgB,QAAQ;IACtB,WAAW,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Eb,CAAC,CAAC;AACH,CAAC;AA/ED,4BA+EC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,gDAA6C;AAE7C,SAAgB,WAAW;IACzB,MAAM,WAAW,GAAG,IAAA,mBAAQ,EAAc,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,OAAO,sCAAsC,CAAC,CAAC;AACvF,CAAC;AAHD,kCAGC;AAED,SAAgB,QAAQ;IACtB,WAAW,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFb,CAAC,CAAC;AACH,CAAC;AA1FD,4BA0FC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Format a value for display. Uses YAML-like formatting (though it may not be valid YAML):
3
+ * - Objects use `key: value` on separate lines, no braces, no quotes around keys
4
+ * - Arrays use `[val, val]` on a single line if they fit within `maxWidth`,
5
+ * otherwise use `- item` list syntax
6
+ * - Strings are quoted, other primitives are printed as-is
7
+ * - Functions are displayed as `(Function)`
8
+ *
9
+ * The returned string is indented to the given `level` (each level = 2 spaces).
10
+ */
11
+ export declare function formatValue(value: unknown, options?: {
12
+ /** Current nesting level (each level = 2 spaces of indentation) */
13
+ level?: number;
14
+ /** Character width limit before arrays go to multiple lines (default 80) */
15
+ maxWidth?: number;
16
+ }): string;
17
+ //# sourceMappingURL=formatValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatValue.d.ts","sourceRoot":"","sources":["../../src/logging/formatValue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;IACR,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,CAyDR"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatValue = void 0;
4
+ /**
5
+ * Format a value for display. Uses YAML-like formatting (though it may not be valid YAML):
6
+ * - Objects use `key: value` on separate lines, no braces, no quotes around keys
7
+ * - Arrays use `[val, val]` on a single line if they fit within `maxWidth`,
8
+ * otherwise use `- item` list syntax
9
+ * - Strings are quoted, other primitives are printed as-is
10
+ * - Functions are displayed as `(Function)`
11
+ *
12
+ * The returned string is indented to the given `level` (each level = 2 spaces).
13
+ */
14
+ function formatValue(value, options) {
15
+ const { level = 0, maxWidth = 80 } = options || {};
16
+ const pad = ' '.repeat(level * 2);
17
+ if (value === undefined)
18
+ return `${pad}undefined`;
19
+ if (typeof value === 'function')
20
+ return `${pad}(Function)`;
21
+ // Leaf values — use JSON.stringify for strings/numbers/booleans
22
+ if (value === null || typeof value !== 'object') {
23
+ return `${pad}${JSON.stringify(value)}`;
24
+ }
25
+ const childLevel = level + 1;
26
+ if (Array.isArray(value)) {
27
+ if (value.length === 0)
28
+ return `${pad}[]`;
29
+ // Items are formatted at level 0 (no padding) since the array handles positioning
30
+ const items = value.map(v => formatValue(v, { level: 0, maxWidth }));
31
+ // Try single-line format first
32
+ // This isn't the most efficient, but it probably doesn't matter in expected usage.
33
+ const singleLine = `[${items.join(', ')}]`;
34
+ if (level * 2 + singleLine.length <= maxWidth && !singleLine.includes('\n')) {
35
+ return `${pad}${singleLine}`;
36
+ }
37
+ // Multi-line: YAML-like list with "- " prefix.
38
+ // Continuation lines are indented by 2 to align with the content after "- ".
39
+ return items.map(item => `${pad}- ${item.replace(/\n/g, `\n${pad} `)}`).join('\n');
40
+ }
41
+ // Make sure it's a plain object
42
+ if (value.constructor && value.constructor.name !== 'Object') {
43
+ return `${pad}(${value.constructor.name})`;
44
+ }
45
+ // Objects: YAML-like key: value on separate lines
46
+ const entries = Object.entries(value);
47
+ if (entries.length === 0)
48
+ return `${pad}{}`;
49
+ return entries
50
+ .map(([k, v]) => {
51
+ const formattedValue = formatValue(v, { level: childLevel, maxWidth });
52
+ const trimmedValue = formattedValue.trimStart();
53
+ // If the value is a longer array or a structured type, place it on the next line (already padded)
54
+ const isStructured = Array.isArray(v)
55
+ ? !trimmedValue.startsWith('[')
56
+ : !!v && typeof v === 'object' && trimmedValue !== '{}';
57
+ if (isStructured) {
58
+ return `${pad}${k}:\n${formattedValue}`;
59
+ }
60
+ // Inline value — strip the child padding since it goes after "key: "
61
+ return `${pad}${k}: ${trimmedValue}`;
62
+ })
63
+ .join('\n');
64
+ }
65
+ exports.formatValue = formatValue;
66
+ //# sourceMappingURL=formatValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatValue.js","sourceRoot":"","sources":["../../src/logging/formatValue.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ function createBasicCommandContext(_options, originalPackageInfos) {
9
9
  const options = 'cliOptions' in _options ? _options.options : _options;
10
10
  originalPackageInfos ?? (originalPackageInfos =
11
11
  // eslint-disable-next-line etc/no-deprecated -- this is a compat helper
12
- 'cliOptions' in _options ? (0, getPackageInfos_1.getPackageInfos)(_options.cliOptions) : (0, getPackageInfos_1.getPackageInfos)(options.path));
12
+ 'cliOptions' in _options ? (0, getPackageInfos_1.getPackageInfos)(_options) : (0, getPackageInfos_1.getPackageInfos)(options.path));
13
13
  const scopedPackages = (0, getScopedPackages_1.getScopedPackages)(options, originalPackageInfos);
14
14
  return {
15
15
  originalPackageInfos,
@@ -1 +1 @@
1
- {"version":3,"file":"createCommandContext.js","sourceRoot":"","sources":["../../src/monorepo/createCommandContext.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAIhE,yDAAsD;AACtD,uDAAoD;AACpD,2DAAwD;AAaxD,SAAgB,yBAAyB,CACvC,QAA0C,EAC1C,oBAAmC;IAEnC,MAAM,OAAO,GAAG,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,oBAAoB,KAApB,oBAAoB;IAClB,wEAAwE;IACxE,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAA,iCAAe,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAe,EAAC,OAAO,CAAC,IAAI,CAAC,EAAC;IAClG,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACxE,OAAO;QACL,oBAAoB;QACpB,cAAc;QACd,aAAa,EAAE,IAAA,mCAAgB,EAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;KACpF,CAAC;AACJ,CAAC;AAdD,8DAcC;AAUD,SAAgB,oBAAoB,CAClC,QAA0C,EAC1C,oBAAmC;IAEnC,MAAM,OAAO,GACX,YAAY,IAAI,QAAQ;QACtB,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,6CAA6C;YAC7C,yBAAyB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO;QACL,GAAG,OAAO;QACV,SAAS,EAAE,IAAA,iCAAe,EAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,cAAc,CAAC;QACzF,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC;AAfD,oDAeC"}
1
+ {"version":3,"file":"createCommandContext.js","sourceRoot":"","sources":["../../src/monorepo/createCommandContext.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAIhE,yDAAsD;AACtD,uDAAoD;AACpD,2DAAwD;AAaxD,SAAgB,yBAAyB,CACvC,QAA0C,EAC1C,oBAAmC;IAEnC,MAAM,OAAO,GAAG,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,oBAAoB,KAApB,oBAAoB;IAClB,wEAAwE;IACxE,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAA,iCAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAe,EAAC,OAAO,CAAC,IAAI,CAAC,EAAC;IACvF,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACxE,OAAO;QACL,oBAAoB;QACpB,cAAc;QACd,aAAa,EAAE,IAAA,mCAAgB,EAAC,oBAAoB,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;KACpF,CAAC;AACJ,CAAC;AAdD,8DAcC;AAUD,SAAgB,oBAAoB,CAClC,QAA0C,EAC1C,oBAAmC;IAEnC,MAAM,OAAO,GACX,YAAY,IAAI,QAAQ;QACtB,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,6CAA6C;YAC7C,yBAAyB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO;QACL,GAAG,OAAO;QACV,SAAS,EAAE,IAAA,iCAAe,EAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,cAAc,CAAC;QACzF,QAAQ,EAAE,SAAS;KACpB,CAAC;AACJ,CAAC;AAfD,oDAeC"}
@@ -0,0 +1,11 @@
1
+ import type { BeachballOptions } from '../types/BeachballOptions';
2
+ /**
3
+ * Filter `filePaths` to exclude any paths matching `ignorePatterns`.
4
+ */
5
+ export declare function filterIgnoredFiles(params: Pick<BeachballOptions, 'ignorePatterns'> & {
6
+ /** Relative file paths */
7
+ filePaths: string[];
8
+ /** If specified, called for each ignored file */
9
+ logIgnored?: (filePath: string, reason: string) => void;
10
+ }): string[];
11
+ //# sourceMappingURL=filterIgnoredFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterIgnoredFiles.d.ts","sourceRoot":"","sources":["../../src/monorepo/filterIgnoredFiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIlE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG;IACjD,0BAA0B;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD,GACA,MAAM,EAAE,CAWV"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.filterIgnoredFiles = void 0;
7
+ const minimatch_1 = __importDefault(require("minimatch"));
8
+ const minimatchOptions = { matchBase: true };
9
+ /**
10
+ * Filter `filePaths` to exclude any paths matching `ignorePatterns`.
11
+ */
12
+ function filterIgnoredFiles(params) {
13
+ const { filePaths, ignorePatterns, logIgnored } = params;
14
+ if (!ignorePatterns?.length) {
15
+ return filePaths;
16
+ }
17
+ return filePaths.filter(filePath => {
18
+ const ignorePattern = ignorePatterns.find(pattern => (0, minimatch_1.default)(filePath, pattern, minimatchOptions));
19
+ ignorePattern && logIgnored?.(filePath, `ignored by pattern "${ignorePattern}"`);
20
+ return !ignorePattern;
21
+ });
22
+ }
23
+ exports.filterIgnoredFiles = filterIgnoredFiles;
24
+ //# sourceMappingURL=filterIgnoredFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterIgnoredFiles.js","sourceRoot":"","sources":["../../src/monorepo/filterIgnoredFiles.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAGlC,MAAM,gBAAgB,GAAuB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEjE;;GAEG;AACH,SAAgB,kBAAkB,CAChC,MAKC;IAED,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACzD,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE;QAC3B,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACjC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,mBAAS,EAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACrG,aAAa,IAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,uBAAuB,aAAa,GAAG,CAAC,CAAC;QACjF,OAAO,CAAC,aAAa,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,gDAkBC"}
@@ -1,6 +1,26 @@
1
+ import { PGraph } from 'p-graph';
1
2
  import type { PackageInfo, PackageInfos } from '../types/PackageInfo';
2
- import pGraph from 'p-graph';
3
- type PGraph = ReturnType<typeof pGraph>;
4
- export declare function getPackageGraph(affectedPackages: string[], packageInfos: PackageInfos, runHook: (packageInfo: PackageInfo) => Promise<void>): PGraph;
5
- export {};
3
+ /**
4
+ * Get a PGraph of `affectedPackages` which will run a function in dependency topological order.
5
+ * Note that this version only considers dependencies listed directly in the graph (see comment
6
+ * on `getPackageGraphLayers` for why this might matter).
7
+ * @param affectedPackages Packages to include
8
+ * @param packageInfos All packages in the repo
9
+ * @param runHook Function to run for each package
10
+ * @returns The graph ready to run
11
+ */
12
+ export declare function getPackageGraph(affectedPackages: string[], packageInfos: PackageInfos, runHook: (packageInfo: PackageInfo) => void | Promise<void>): PGraph;
13
+ /**
14
+ * Get the graph of non-dev dependencies within the repo.
15
+ * Dev dependencies can be omitted since they don't impact publishing or installation.
16
+ *
17
+ * @returns Each element is a tuple of `[dependency, dependent]` where `dependent` depends on `dependency`.
18
+ * These are the edges of the dependency graph.
19
+ */
20
+ export declare function _getPackageDependencyGraph(packages: string[], packageInfos: PackageInfos): [string, string][];
21
+ /**
22
+ * Call {@link getPackageDependencies} with consistent options: ignore dev deps,
23
+ * include deps of all other types if included in `packageSet`.
24
+ */
25
+ export declare function getPackageDependenciesWrapper(packageInfo: PackageInfos[string], packageSet: Set<string>): string[];
6
26
  //# sourceMappingURL=getPackageGraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPackageGraph.d.ts","sourceRoot":"","sources":["../../src/monorepo/getPackageGraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,MAA8B,MAAM,SAAS,CAAC;AAIrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAExC,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GACnD,MAAM,CAWR"}
1
+ {"version":3,"file":"getPackageGraph.d.ts","sourceRoot":"","sources":["../../src/monorepo/getPackageGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEtE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC1D,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAmB7G;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAMlH"}
@@ -1,11 +1,17 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPackageGraph = void 0;
7
- const p_graph_1 = __importDefault(require("p-graph"));
8
- const getPackageDependencyGraph_1 = require("./getPackageDependencyGraph");
3
+ exports.getPackageDependenciesWrapper = exports._getPackageDependencyGraph = exports.getPackageGraph = void 0;
4
+ const p_graph_1 = require("p-graph");
5
+ const workspace_tools_1 = require("workspace-tools");
6
+ /**
7
+ * Get a PGraph of `affectedPackages` which will run a function in dependency topological order.
8
+ * Note that this version only considers dependencies listed directly in the graph (see comment
9
+ * on `getPackageGraphLayers` for why this might matter).
10
+ * @param affectedPackages Packages to include
11
+ * @param packageInfos All packages in the repo
12
+ * @param runHook Function to run for each package
13
+ * @returns The graph ready to run
14
+ */
9
15
  function getPackageGraph(affectedPackages, packageInfos, runHook) {
10
16
  const nodeMap = new Map();
11
17
  for (const packageToBump of affectedPackages) {
@@ -13,12 +19,45 @@ function getPackageGraph(affectedPackages, packageInfos, runHook) {
13
19
  run: async () => await runHook(packageInfos[packageToBump]),
14
20
  });
15
21
  }
16
- const dependencyGraph = (0, getPackageDependencyGraph_1.getPackageDependencyGraph)(affectedPackages, packageInfos);
17
- const filteredDependencyGraph = filterDependencyGraph(dependencyGraph);
18
- return (0, p_graph_1.default)(nodeMap, filteredDependencyGraph);
22
+ const dependencyGraph = _getPackageDependencyGraph(affectedPackages, packageInfos);
23
+ return new p_graph_1.PGraph(nodeMap, dependencyGraph);
19
24
  }
20
25
  exports.getPackageGraph = getPackageGraph;
21
- function filterDependencyGraph(dependencyGraph) {
22
- return dependencyGraph.filter(([dep]) => dep !== undefined);
26
+ /**
27
+ * Get the graph of non-dev dependencies within the repo.
28
+ * Dev dependencies can be omitted since they don't impact publishing or installation.
29
+ *
30
+ * @returns Each element is a tuple of `[dependency, dependent]` where `dependent` depends on `dependency`.
31
+ * These are the edges of the dependency graph.
32
+ */
33
+ function _getPackageDependencyGraph(packages, packageInfos) {
34
+ const packageSet = new Set(packages);
35
+ const dependencyGraph = [];
36
+ for (const pkgName of packageSet) {
37
+ const info = packageInfos[pkgName];
38
+ if (!info) {
39
+ throw new Error(`Package info is missing for ${pkgName}.`);
40
+ }
41
+ const allDeps = getPackageDependenciesWrapper(info, packageSet);
42
+ if (allDeps.length) {
43
+ for (const depPkgName of allDeps) {
44
+ dependencyGraph.push([depPkgName, pkgName]);
45
+ }
46
+ }
47
+ }
48
+ return dependencyGraph;
49
+ }
50
+ exports._getPackageDependencyGraph = _getPackageDependencyGraph;
51
+ /**
52
+ * Call {@link getPackageDependencies} with consistent options: ignore dev deps,
53
+ * include deps of all other types if included in `packageSet`.
54
+ */
55
+ function getPackageDependenciesWrapper(packageInfo, packageSet) {
56
+ return (0, workspace_tools_1.getPackageDependencies)(packageInfo, packageSet, {
57
+ withDevDependencies: false,
58
+ withPeerDependencies: true,
59
+ withOptionalDependencies: true,
60
+ });
23
61
  }
62
+ exports.getPackageDependenciesWrapper = getPackageDependenciesWrapper;
24
63
  //# sourceMappingURL=getPackageGraph.js.map