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.
- package/README.md +43 -24
- package/lib/changefile/getChangedPackages.d.ts +11 -1
- package/lib/changefile/getChangedPackages.d.ts.map +1 -1
- package/lib/changefile/getChangedPackages.js +13 -8
- package/lib/changefile/getChangedPackages.js.map +1 -1
- package/lib/changefile/promptForChange.d.ts.map +1 -1
- package/lib/changefile/promptForChange.js +23 -0
- package/lib/changefile/promptForChange.js.map +1 -1
- package/lib/changefile/unlinkChangeFiles.d.ts +1 -2
- package/lib/changefile/unlinkChangeFiles.d.ts.map +1 -1
- package/lib/changefile/unlinkChangeFiles.js.map +1 -1
- package/lib/changelog/renderChangelog.d.ts +1 -1
- package/lib/changelog/renderChangelog.d.ts.map +1 -1
- package/lib/changelog/renderChangelog.js +1 -0
- package/lib/changelog/renderChangelog.js.map +1 -1
- package/lib/changelog/renderPackageChangelog.js +9 -3
- package/lib/changelog/renderPackageChangelog.js.map +1 -1
- package/lib/cli.js +34 -8
- package/lib/cli.js.map +1 -1
- package/lib/commands/configGet.d.ts +11 -0
- package/lib/commands/configGet.d.ts.map +1 -0
- package/lib/commands/configGet.js +196 -0
- package/lib/commands/configGet.js.map +1 -0
- package/lib/commands/configList.d.ts +8 -0
- package/lib/commands/configList.d.ts.map +1 -0
- package/lib/commands/configList.js +35 -0
- package/lib/commands/configList.js.map +1 -0
- package/lib/commands/init.d.ts.map +1 -1
- package/lib/commands/init.js +6 -7
- package/lib/commands/init.js.map +1 -1
- package/lib/help.d.ts.map +1 -1
- package/lib/help.js +12 -1
- package/lib/help.js.map +1 -1
- package/lib/logging/formatValue.d.ts +17 -0
- package/lib/logging/formatValue.d.ts.map +1 -0
- package/lib/logging/formatValue.js +66 -0
- package/lib/logging/formatValue.js.map +1 -0
- package/lib/monorepo/createCommandContext.js +1 -1
- package/lib/monorepo/createCommandContext.js.map +1 -1
- package/lib/monorepo/filterIgnoredFiles.d.ts +11 -0
- package/lib/monorepo/filterIgnoredFiles.d.ts.map +1 -0
- package/lib/monorepo/filterIgnoredFiles.js +24 -0
- package/lib/monorepo/filterIgnoredFiles.js.map +1 -0
- package/lib/monorepo/getPackageGraph.d.ts +24 -4
- package/lib/monorepo/getPackageGraph.d.ts.map +1 -1
- package/lib/monorepo/getPackageGraph.js +50 -11
- package/lib/monorepo/getPackageGraph.js.map +1 -1
- package/lib/monorepo/getPackageGroups.d.ts.map +1 -1
- package/lib/monorepo/getPackageGroups.js +2 -3
- package/lib/monorepo/getPackageGroups.js.map +1 -1
- package/lib/monorepo/getPackageInfos.d.ts +7 -4
- package/lib/monorepo/getPackageInfos.d.ts.map +1 -1
- package/lib/monorepo/getPackageInfos.js +40 -45
- package/lib/monorepo/getPackageInfos.js.map +1 -1
- package/lib/options/getCliOptions.d.ts.map +1 -1
- package/lib/options/getCliOptions.js +9 -2
- package/lib/options/getCliOptions.js.map +1 -1
- package/lib/options/getRepoOptions.d.ts.map +1 -1
- package/lib/options/getRepoOptions.js +2 -4
- package/lib/options/getRepoOptions.js.map +1 -1
- package/lib/packageManager/packPackage.d.ts +11 -5
- package/lib/packageManager/packPackage.d.ts.map +1 -1
- package/lib/packageManager/packPackage.js +34 -12
- package/lib/packageManager/packPackage.js.map +1 -1
- package/lib/packageManager/packagePublish.d.ts.map +1 -1
- package/lib/packageManager/packagePublish.js +3 -4
- package/lib/packageManager/packagePublish.js.map +1 -1
- package/lib/publish/bumpAndPush.d.ts.map +1 -1
- package/lib/publish/bumpAndPush.js +4 -3
- package/lib/publish/bumpAndPush.js.map +1 -1
- package/lib/publish/displayManualRecovery.d.ts +1 -1
- package/lib/publish/displayManualRecovery.d.ts.map +1 -1
- package/lib/publish/displayManualRecovery.js +7 -6
- package/lib/publish/displayManualRecovery.js.map +1 -1
- package/lib/publish/getPackageGraphLayers.d.ts +30 -0
- package/lib/publish/getPackageGraphLayers.d.ts.map +1 -0
- package/lib/publish/getPackageGraphLayers.js +99 -0
- package/lib/publish/getPackageGraphLayers.js.map +1 -0
- package/lib/publish/getPackagesToPublish.d.ts +0 -2
- package/lib/publish/getPackagesToPublish.d.ts.map +1 -1
- package/lib/publish/getPackagesToPublish.js +2 -6
- package/lib/publish/getPackagesToPublish.js.map +1 -1
- package/lib/publish/publishToRegistry.d.ts.map +1 -1
- package/lib/publish/publishToRegistry.js +32 -11
- package/lib/publish/publishToRegistry.js.map +1 -1
- package/lib/publish/tagPackages.js +1 -1
- package/lib/publish/tagPackages.js.map +1 -1
- package/lib/publish/validatePackageDependencies.d.ts.map +1 -1
- package/lib/publish/validatePackageDependencies.js +3 -2
- package/lib/publish/validatePackageDependencies.js.map +1 -1
- package/lib/publish/validatePackageVersions.d.ts.map +1 -1
- package/lib/publish/validatePackageVersions.js +5 -4
- package/lib/publish/validatePackageVersions.js.map +1 -1
- package/lib/types/BeachballError.d.ts +15 -0
- package/lib/types/BeachballError.d.ts.map +1 -0
- package/lib/types/BeachballError.js +19 -0
- package/lib/types/BeachballError.js.map +1 -0
- package/lib/types/BeachballOptions.d.ts +21 -2
- package/lib/types/BeachballOptions.d.ts.map +1 -1
- package/lib/types/BumpInfo.d.ts +2 -3
- package/lib/types/BumpInfo.d.ts.map +1 -1
- package/lib/types/ChangelogOptions.d.ts +4 -0
- package/lib/types/ChangelogOptions.d.ts.map +1 -1
- package/lib/validation/validate.d.ts +1 -1
- package/lib/validation/validate.d.ts.map +1 -1
- package/lib/validation/validate.js +6 -13
- package/lib/validation/validate.js.map +1 -1
- package/package.json +6 -4
- package/lib/monorepo/getPackageDependencyGraph.d.ts +0 -7
- package/lib/monorepo/getPackageDependencyGraph.d.ts.map +0 -1
- package/lib/monorepo/getPackageDependencyGraph.js +0 -34
- package/lib/monorepo/getPackageDependencyGraph.js.map +0 -1
- package/lib/publish/toposortPackages.d.ts +0 -9
- package/lib/publish/toposortPackages.d.ts.map +0 -1
- package/lib/publish/toposortPackages.js +0 -24
- 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;
|
|
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"}
|
package/lib/commands/init.js
CHANGED
|
@@ -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
|
-
|
|
32
|
-
function
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
+
throwInitError(`Failed to read package.json at ${packageJsonFilePath}`);
|
|
54
53
|
}
|
|
55
54
|
packageJson.devDependencies ?? (packageJson.devDependencies = {});
|
|
56
55
|
packageJson.devDependencies.beachball = beachballVersion;
|
package/lib/commands/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAE7B,iDAA8C;AAC9C,2EAAwE;
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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;
|
|
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 =
|
|
8
|
-
const
|
|
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 = (
|
|
17
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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
|