@backstage/cli 0.27.1 → 0.28.0-next.1
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/CHANGELOG.md +55 -0
- package/config/jest.js +114 -68
- package/dist/cjs/{build-D9YZ-dyI.cjs.js → build-CQdcGuBr.cjs.js} +10 -9
- package/dist/cjs/{buildBackend-CmtimF8a.cjs.js → buildBackend-CkhZWCz1.cjs.js} +6 -6
- package/dist/cjs/{buildWorkspace-C4wCq5WM.cjs.js → buildWorkspace-CZPp9oRm.cjs.js} +7 -6
- package/dist/cjs/{bump-BQ6YRL6D.cjs.js → bump-BHEh5ytx.cjs.js} +73 -9
- package/dist/cjs/{clean-BllZTky1.cjs.js → clean-W6nxsHeK.cjs.js} +2 -2
- package/dist/cjs/{clean-CVl--Ec9.cjs.js → clean-a6Q4k9Vm.cjs.js} +2 -2
- package/dist/cjs/{config-BMsjTUVf.cjs.js → config-DBpmZirN.cjs.js} +2 -2
- package/dist/cjs/{createDistWorkspace-DxOWPD6z.cjs.js → createDistWorkspace-DdHPGSMS.cjs.js} +8 -6
- package/dist/cjs/{docs-DPzCP6Jp.cjs.js → docs-BGyA6jwW.cjs.js} +3 -3
- package/dist/cjs/{entryPoints-CoHH4lBA.cjs.js → entryPoints-coip0t-x.cjs.js} +4 -1
- package/dist/cjs/{fix-BM8I_DZ2.cjs.js → fix-COitqgqm.cjs.js} +2 -2
- package/dist/cjs/{index-CXG8-26G.cjs.js → index-BXv4Xa2e.cjs.js} +15 -12
- package/dist/cjs/{index-Cw0lUK20.cjs.js → index-CGuAP7nv.cjs.js} +11 -10
- package/dist/cjs/{index-DmUbBCFk.cjs.js → index-b1ouG3q6.cjs.js} +62 -82
- package/dist/cjs/{index-BgEQ8aeF.cjs.js → index-j193pV_Y.cjs.js} +2 -2
- package/dist/cjs/{info-FKrzx-9W.cjs.js → info-DuAv1Tsx.cjs.js} +5 -6
- package/dist/cjs/{lint-6vrbdjyg.cjs.js → lint-BwiDJkjE.cjs.js} +2 -2
- package/dist/cjs/{lint-Cm_9pg85.cjs.js → lint-Dsiocf9K.cjs.js} +2 -2
- package/dist/cjs/{list-deprecations-C6R3rEyS.cjs.js → list-deprecations-CtUaQgaP.cjs.js} +2 -2
- package/dist/cjs/{moduleFederation-8XXecxLD.cjs.js → moduleFederation-DmStnvEg.cjs.js} +4 -4
- package/dist/cjs/{new-DJUBFwiF.cjs.js → new-CEnFhTT-.cjs.js} +336 -97
- package/dist/cjs/{pack-BqFGqZb5.cjs.js → pack-XLRcGJqH.cjs.js} +5 -4
- package/dist/cjs/{packageExports-DvjdOWjC.cjs.js → packageExports-BJBwdvUH.cjs.js} +3 -3
- package/dist/cjs/{packageLintConfigs-DGkvTpBd.cjs.js → packageLintConfigs-DeUGBP17.cjs.js} +3 -3
- package/dist/cjs/{packageRole-CHz7zkIQ.cjs.js → packageRole-Iuv9NRii.cjs.js} +2 -2
- package/dist/cjs/{print-CQU7JzAh.cjs.js → print-Dd6aChXU.cjs.js} +3 -3
- package/dist/cjs/{productionPack-BWU8WkGs.cjs.js → productionPack-BxoMbBkH.cjs.js} +106 -5
- package/dist/cjs/{role-8b0z7P0n.cjs.js → role-BjiBExhi.cjs.js} +2 -2
- package/dist/cjs/{run-CSt1n0F1.cjs.js → run-CpZGNJQr.cjs.js} +2 -2
- package/dist/cjs/{schema-B4250t0W.cjs.js → schema-D93FRhBL.cjs.js} +3 -3
- package/dist/cjs/{test-Diil1uTk.cjs.js → test-COxIko8N.cjs.js} +3 -3
- package/dist/cjs/{test-DVUsmgyZ.cjs.js → test-JcLI2pPM.cjs.js} +3 -3
- package/dist/cjs/{validate-DDIGkK2r.cjs.js → validate-CELljsEX.cjs.js} +3 -3
- package/dist/cjs/{Lockfile-B4mqBkH6.cjs.js → yarn-6FNAgNBK.cjs.js} +31 -1
- package/dist/index.cjs.js +1 -1
- package/package.json +21 -22
- package/dist/cjs/codeowners-FKKtpciN.cjs.js +0 -91
- package/dist/cjs/createPlugin-Dj7O_us6.cjs.js +0 -280
- package/dist/cjs/diff-Drt115Zb.cjs.js +0 -436
- package/dist/cjs/index-DRp-18FB.cjs.js +0 -1027
- package/dist/cjs/install-BMA3RshT.cjs.js +0 -268
- package/dist/cjs/lint-Dkx_fBkS.cjs.js +0 -10
- package/dist/cjs/packages-Cuogjl7j.cjs.js +0 -75
- package/dist/cjs/tasks-DtAiMv5G.cjs.js +0 -188
- package/dist/cjs/yarn-Ukl9MOS0.cjs.js +0 -34
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var productionPack = require('./productionPack-
|
|
4
|
-
var index = require('./index-
|
|
3
|
+
var productionPack = require('./productionPack-BxoMbBkH.cjs.js');
|
|
4
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
5
5
|
var fs = require('fs-extra');
|
|
6
6
|
var publishing = require('./publishing-DQtsKTbc.cjs.js');
|
|
7
7
|
require('npm-packlist');
|
|
8
8
|
require('path');
|
|
9
|
-
require('./entryPoints-
|
|
9
|
+
require('./entryPoints-coip0t-x.cjs.js');
|
|
10
|
+
require('ts-morph');
|
|
10
11
|
require('commander');
|
|
11
12
|
require('chalk');
|
|
12
13
|
require('semver');
|
|
@@ -30,4 +31,4 @@ const post = async () => {
|
|
|
30
31
|
|
|
31
32
|
exports.post = post;
|
|
32
33
|
exports.pre = pre;
|
|
33
|
-
//# sourceMappingURL=pack-
|
|
34
|
+
//# sourceMappingURL=pack-XLRcGJqH.cjs.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var fix = require('./fix-
|
|
3
|
+
var fix = require('./fix-COitqgqm.cjs.js');
|
|
4
4
|
require('@backstage/cli-node');
|
|
5
5
|
require('fs-extra');
|
|
6
6
|
require('path');
|
|
7
|
-
require('./index-
|
|
7
|
+
require('./index-b1ouG3q6.cjs.js');
|
|
8
8
|
require('commander');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('semver');
|
|
@@ -24,4 +24,4 @@ async function command() {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
exports.command = command;
|
|
27
|
-
//# sourceMappingURL=packageExports-
|
|
27
|
+
//# sourceMappingURL=packageExports-BJBwdvUH.cjs.js.map
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var cliNode = require('@backstage/cli-node');
|
|
6
|
-
var run = require('./run-
|
|
6
|
+
var run = require('./run-CpZGNJQr.cjs.js');
|
|
7
7
|
require('child_process');
|
|
8
|
-
require('./index-
|
|
8
|
+
require('./index-b1ouG3q6.cjs.js');
|
|
9
9
|
require('commander');
|
|
10
10
|
require('chalk');
|
|
11
11
|
require('semver');
|
|
@@ -78,4 +78,4 @@ async function command() {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
exports.command = command;
|
|
81
|
-
//# sourceMappingURL=packageLintConfigs-
|
|
81
|
+
//# sourceMappingURL=packageLintConfigs-DeUGBP17.cjs.js.map
|
|
@@ -4,7 +4,7 @@ var fs = require('fs-extra');
|
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var getPackages = require('@manypkg/get-packages');
|
|
6
6
|
var cliNode = require('@backstage/cli-node');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
8
8
|
require('commander');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('semver');
|
|
@@ -55,4 +55,4 @@ var packageRole = async () => {
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
exports.default = packageRole;
|
|
58
|
-
//# sourceMappingURL=packageRole-
|
|
58
|
+
//# sourceMappingURL=packageRole-Iuv9NRii.cjs.js.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var yaml = require('yaml');
|
|
4
4
|
var config$1 = require('@backstage/config');
|
|
5
|
-
var config = require('./config-
|
|
5
|
+
var config = require('./config-DBpmZirN.cjs.js');
|
|
6
6
|
require('@backstage/config-loader');
|
|
7
|
-
require('./index-
|
|
7
|
+
require('./index-b1ouG3q6.cjs.js');
|
|
8
8
|
require('commander');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('fs-extra');
|
|
@@ -58,4 +58,4 @@ function serializeConfigData(appConfigs, schema, visibility) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
exports.default = print;
|
|
61
|
-
//# sourceMappingURL=print-
|
|
61
|
+
//# sourceMappingURL=print-Dd6aChXU.cjs.js.map
|
|
@@ -3,13 +3,100 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var npmPackList = require('npm-packlist');
|
|
5
5
|
var path = require('path');
|
|
6
|
-
var entryPoints = require('./entryPoints-
|
|
6
|
+
var entryPoints = require('./entryPoints-coip0t-x.cjs.js');
|
|
7
|
+
var tsMorph = require('ts-morph');
|
|
8
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
7
9
|
|
|
8
10
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
9
11
|
|
|
10
12
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
11
13
|
var npmPackList__default = /*#__PURE__*/_interopDefaultCompat(npmPackList);
|
|
12
14
|
|
|
15
|
+
const createTypeDistProject = async () => {
|
|
16
|
+
return new tsMorph.Project({
|
|
17
|
+
tsConfigFilePath: index.paths.resolveTargetRoot("tsconfig.json"),
|
|
18
|
+
skipAddingFilesFromTsConfig: true
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const targetPackageRoles = [
|
|
22
|
+
"backend-plugin",
|
|
23
|
+
"backend-plugin-module",
|
|
24
|
+
"frontend-plugin",
|
|
25
|
+
"frontend-plugin-module",
|
|
26
|
+
"web-library",
|
|
27
|
+
"node-library"
|
|
28
|
+
];
|
|
29
|
+
const targetFeatureTypes = [
|
|
30
|
+
"@backstage/BackendFeature",
|
|
31
|
+
"@backstage/BackstagePlugin",
|
|
32
|
+
"@backstage/FrontendPlugin",
|
|
33
|
+
"@backstage/FrontendModule"
|
|
34
|
+
];
|
|
35
|
+
const getEntryPointDefaultFeatureType = (role, packageDir, project, entryPoint) => {
|
|
36
|
+
if (isTargetPackageRole(role)) {
|
|
37
|
+
const distPath = path.resolve(packageDir, entryPoint);
|
|
38
|
+
try {
|
|
39
|
+
const defaultFeatureType = getSourceFileDefaultFeatureType(
|
|
40
|
+
project.addSourceFileAtPath(distPath)
|
|
41
|
+
);
|
|
42
|
+
if (defaultFeatureType) {
|
|
43
|
+
return defaultFeatureType;
|
|
44
|
+
}
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error(
|
|
47
|
+
`Failed to extract default feature type from ${distPath}, ${error}. Your package will publish fine but it may be missing metadata about its default feature.`
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
};
|
|
53
|
+
function getSourceFileDefaultFeatureType(sourceFile) {
|
|
54
|
+
for (const exportSymbol of sourceFile.getExportSymbols()) {
|
|
55
|
+
const declaration = exportSymbol.getDeclarations()[0];
|
|
56
|
+
const exportName = declaration.getSymbol()?.getName();
|
|
57
|
+
if (exportName !== "default") {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
let exportType;
|
|
61
|
+
if (declaration) {
|
|
62
|
+
if (declaration.isKind(tsMorph.SyntaxKind.ExportAssignment)) {
|
|
63
|
+
exportType = declaration.getExpression().getType();
|
|
64
|
+
} else if (declaration.isKind(tsMorph.SyntaxKind.ExportSpecifier)) {
|
|
65
|
+
if (!declaration.isTypeOnly()) {
|
|
66
|
+
exportType = declaration.getType();
|
|
67
|
+
}
|
|
68
|
+
} else if (declaration.isKind(tsMorph.SyntaxKind.VariableDeclaration)) {
|
|
69
|
+
exportType = declaration.getType();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (exportName && exportType) {
|
|
73
|
+
const $$type = getBackstagePackageFeature$$TypeFromType(exportType);
|
|
74
|
+
if ($$type) {
|
|
75
|
+
return $$type;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
function getBackstagePackageFeature$$TypeFromType(type) {
|
|
82
|
+
const exportType = type.getTargetType() ?? type;
|
|
83
|
+
for (const property of exportType.getProperties()) {
|
|
84
|
+
if (property.getName() === "$$type") {
|
|
85
|
+
const $$type = property.getValueDeclaration()?.getText().match(/(\$\$type: '(?<type>.+)')/)?.groups?.type;
|
|
86
|
+
if ($$type && isTargetFeatureType($$type)) {
|
|
87
|
+
return $$type;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
function isTargetPackageRole(role) {
|
|
94
|
+
return !!role && targetPackageRoles.includes(role);
|
|
95
|
+
}
|
|
96
|
+
function isTargetFeatureType(type) {
|
|
97
|
+
return !!type && targetFeatureTypes.includes(type);
|
|
98
|
+
}
|
|
99
|
+
|
|
13
100
|
const PKG_PATH = "package.json";
|
|
14
101
|
const PKG_BACKUP_PATH = "package.json-prepack";
|
|
15
102
|
const SKIPPED_KEYS = ["access", "registry", "tag"];
|
|
@@ -24,7 +111,8 @@ async function productionPack(options) {
|
|
|
24
111
|
}
|
|
25
112
|
const writeCompatibilityEntryPoints = await prepareExportsEntryPoints(
|
|
26
113
|
pkg,
|
|
27
|
-
packageDir
|
|
114
|
+
packageDir,
|
|
115
|
+
options.project
|
|
28
116
|
);
|
|
29
117
|
const publishConfig = pkg.publishConfig ?? {};
|
|
30
118
|
for (const key of Object.keys(publishConfig)) {
|
|
@@ -85,7 +173,7 @@ const EXPORT_MAP = {
|
|
|
85
173
|
require: ".cjs.js",
|
|
86
174
|
types: ".d.ts"
|
|
87
175
|
};
|
|
88
|
-
async function prepareExportsEntryPoints(pkg, packageDir) {
|
|
176
|
+
async function prepareExportsEntryPoints(pkg, packageDir, commonProject) {
|
|
89
177
|
const distPath = path.resolve(packageDir, "dist");
|
|
90
178
|
if (!await fs__default.default.pathExists(distPath)) {
|
|
91
179
|
return void 0;
|
|
@@ -94,12 +182,13 @@ async function prepareExportsEntryPoints(pkg, packageDir) {
|
|
|
94
182
|
const outputExports = {};
|
|
95
183
|
const compatibilityWriters = new Array();
|
|
96
184
|
const entryPoints$1 = entryPoints.readEntryPoints(pkg);
|
|
185
|
+
const project = commonProject || await createTypeDistProject();
|
|
97
186
|
for (const entryPoint of entryPoints$1) {
|
|
98
187
|
if (!SCRIPT_EXTS.includes(entryPoint.ext)) {
|
|
99
188
|
outputExports[entryPoint.mount] = entryPoint.path;
|
|
100
189
|
continue;
|
|
101
190
|
}
|
|
102
|
-
|
|
191
|
+
let exp = {};
|
|
103
192
|
for (const [key, ext] of Object.entries(EXPORT_MAP)) {
|
|
104
193
|
const name = `${entryPoint.name}${ext}`;
|
|
105
194
|
if (distFiles.includes(name)) {
|
|
@@ -107,6 +196,17 @@ async function prepareExportsEntryPoints(pkg, packageDir) {
|
|
|
107
196
|
}
|
|
108
197
|
}
|
|
109
198
|
exp.default = exp.require ?? exp.import;
|
|
199
|
+
if (exp.types) {
|
|
200
|
+
const defaultFeatureType = pkg.backstage?.role && getEntryPointDefaultFeatureType(
|
|
201
|
+
pkg.backstage?.role,
|
|
202
|
+
packageDir,
|
|
203
|
+
project,
|
|
204
|
+
exp.types
|
|
205
|
+
);
|
|
206
|
+
if (defaultFeatureType) {
|
|
207
|
+
exp = { backstage: defaultFeatureType, ...exp };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
110
210
|
if (entryPoint.mount === ".") {
|
|
111
211
|
if (exp.default) {
|
|
112
212
|
pkg.main = exp.default;
|
|
@@ -155,6 +255,7 @@ async function prepareExportsEntryPoints(pkg, packageDir) {
|
|
|
155
255
|
return void 0;
|
|
156
256
|
}
|
|
157
257
|
|
|
258
|
+
exports.createTypeDistProject = createTypeDistProject;
|
|
158
259
|
exports.productionPack = productionPack;
|
|
159
260
|
exports.revertProductionPack = revertProductionPack;
|
|
160
|
-
//# sourceMappingURL=productionPack-
|
|
261
|
+
//# sourceMappingURL=productionPack-BxoMbBkH.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
|
-
var index = require('./index-
|
|
4
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
5
5
|
var cliNode = require('@backstage/cli-node');
|
|
6
6
|
|
|
7
7
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
@@ -21,4 +21,4 @@ async function findRoleFromCommand(opts) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
exports.findRoleFromCommand = findRoleFromCommand;
|
|
24
|
-
//# sourceMappingURL=role-
|
|
24
|
+
//# sourceMappingURL=role-BjiBExhi.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var child_process = require('child_process');
|
|
4
|
-
var index = require('./index-
|
|
4
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
5
5
|
var util = require('util');
|
|
6
6
|
var errors = require('@backstage/errors');
|
|
7
7
|
|
|
@@ -78,4 +78,4 @@ exports.execFile = execFile;
|
|
|
78
78
|
exports.run = run;
|
|
79
79
|
exports.runCheck = runCheck;
|
|
80
80
|
exports.runPlain = runPlain;
|
|
81
|
-
//# sourceMappingURL=run-
|
|
81
|
+
//# sourceMappingURL=run-CpZGNJQr.cjs.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var yaml = require('yaml');
|
|
4
|
-
var config = require('./config-
|
|
4
|
+
var config = require('./config-DBpmZirN.cjs.js');
|
|
5
5
|
var configLoader = require('@backstage/config-loader');
|
|
6
6
|
require('@backstage/config');
|
|
7
|
-
require('./index-
|
|
7
|
+
require('./index-b1ouG3q6.cjs.js');
|
|
8
8
|
require('commander');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('fs-extra');
|
|
@@ -42,4 +42,4 @@ var schema = async (opts) => {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
exports.default = schema;
|
|
45
|
-
//# sourceMappingURL=schema-
|
|
45
|
+
//# sourceMappingURL=schema-D93FRhBL.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var run = require('./run-
|
|
3
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
4
|
+
var run = require('./run-CpZGNJQr.cjs.js');
|
|
5
5
|
require('commander');
|
|
6
6
|
require('chalk');
|
|
7
7
|
require('fs-extra');
|
|
@@ -56,4 +56,4 @@ var test = async (_opts, cmd) => {
|
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
exports.default = test;
|
|
59
|
-
//# sourceMappingURL=test-
|
|
59
|
+
//# sourceMappingURL=test-COxIko8N.cjs.js.map
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var os = require('os');
|
|
4
4
|
var cliNode = require('@backstage/cli-node');
|
|
5
|
-
var index = require('./index-
|
|
6
|
-
var run = require('./run-
|
|
5
|
+
var index = require('./index-b1ouG3q6.cjs.js');
|
|
6
|
+
var run = require('./run-CpZGNJQr.cjs.js');
|
|
7
7
|
require('commander');
|
|
8
8
|
require('chalk');
|
|
9
9
|
require('fs-extra');
|
|
@@ -123,4 +123,4 @@ async function command(opts, cmd) {
|
|
|
123
123
|
|
|
124
124
|
exports.command = command;
|
|
125
125
|
exports.createFlagFinder = createFlagFinder;
|
|
126
|
-
//# sourceMappingURL=test-
|
|
126
|
+
//# sourceMappingURL=test-JcLI2pPM.cjs.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var config = require('./config-
|
|
3
|
+
var config = require('./config-DBpmZirN.cjs.js');
|
|
4
4
|
require('@backstage/config-loader');
|
|
5
5
|
require('@backstage/config');
|
|
6
|
-
require('./index-
|
|
6
|
+
require('./index-b1ouG3q6.cjs.js');
|
|
7
7
|
require('commander');
|
|
8
8
|
require('chalk');
|
|
9
9
|
require('fs-extra');
|
|
@@ -25,4 +25,4 @@ var validate = async (opts) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.default = validate;
|
|
28
|
-
//# sourceMappingURL=validate-
|
|
28
|
+
//# sourceMappingURL=validate-CELljsEX.cjs.js.map
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var parsers = require('@yarnpkg/parsers');
|
|
5
5
|
var lockfile = require('@yarnpkg/lockfile');
|
|
6
|
+
var errors = require('@backstage/errors');
|
|
7
|
+
var child_process = require('child_process');
|
|
8
|
+
var util = require('util');
|
|
6
9
|
|
|
7
10
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
11
|
|
|
@@ -82,5 +85,32 @@ class Lockfile {
|
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
87
|
|
|
88
|
+
const execFile = util.promisify(child_process.execFile);
|
|
89
|
+
const versions = /* @__PURE__ */ new Map();
|
|
90
|
+
function detectYarnVersion(dir) {
|
|
91
|
+
const cwd = process.cwd();
|
|
92
|
+
if (versions.has(cwd)) {
|
|
93
|
+
return versions.get(cwd);
|
|
94
|
+
}
|
|
95
|
+
const promise = Promise.resolve().then(async () => {
|
|
96
|
+
try {
|
|
97
|
+
const { stdout } = await execFile("yarn", ["--version"], {
|
|
98
|
+
shell: true,
|
|
99
|
+
cwd
|
|
100
|
+
});
|
|
101
|
+
return stdout.trim().startsWith("1.") ? "classic" : "berry";
|
|
102
|
+
} catch (error) {
|
|
103
|
+
errors.assertError(error);
|
|
104
|
+
if ("stderr" in error) {
|
|
105
|
+
process.stderr.write(error.stderr);
|
|
106
|
+
}
|
|
107
|
+
throw new errors.ForwardedError("Failed to determine yarn version", error);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
versions.set(cwd, promise);
|
|
111
|
+
return promise;
|
|
112
|
+
}
|
|
113
|
+
|
|
85
114
|
exports.Lockfile = Lockfile;
|
|
86
|
-
|
|
115
|
+
exports.detectYarnVersion = detectYarnVersion;
|
|
116
|
+
//# sourceMappingURL=yarn-6FNAgNBK.cjs.js.map
|
package/dist/index.cjs.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0-next.1",
|
|
4
4
|
"description": "CLI for developing Backstage plugins and apps",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli"
|
|
@@ -42,16 +42,16 @@
|
|
|
42
42
|
"watch": "./src"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@backstage/catalog-model": "
|
|
46
|
-
"@backstage/cli-common": "
|
|
47
|
-
"@backstage/cli-node": "
|
|
48
|
-
"@backstage/config": "
|
|
49
|
-
"@backstage/config-loader": "
|
|
50
|
-
"@backstage/errors": "
|
|
51
|
-
"@backstage/eslint-plugin": "
|
|
52
|
-
"@backstage/integration": "
|
|
53
|
-
"@backstage/release-manifests": "
|
|
54
|
-
"@backstage/types": "
|
|
45
|
+
"@backstage/catalog-model": "1.7.0",
|
|
46
|
+
"@backstage/cli-common": "0.1.14",
|
|
47
|
+
"@backstage/cli-node": "0.2.8",
|
|
48
|
+
"@backstage/config": "1.2.0",
|
|
49
|
+
"@backstage/config-loader": "1.9.1",
|
|
50
|
+
"@backstage/errors": "1.2.4",
|
|
51
|
+
"@backstage/eslint-plugin": "0.1.10-next.0",
|
|
52
|
+
"@backstage/integration": "1.15.1-next.0",
|
|
53
|
+
"@backstage/release-manifests": "0.0.11",
|
|
54
|
+
"@backstage/types": "1.1.1",
|
|
55
55
|
"@manypkg/get-packages": "^1.1.3",
|
|
56
56
|
"@module-federation/enhanced": "^0.6.0",
|
|
57
57
|
"@octokit/graphql": "^5.0.0",
|
|
@@ -90,7 +90,6 @@
|
|
|
90
90
|
"cross-spawn": "^7.0.3",
|
|
91
91
|
"css-loader": "^6.5.1",
|
|
92
92
|
"ctrlc-windows": "^2.1.0",
|
|
93
|
-
"diff": "^5.0.0",
|
|
94
93
|
"esbuild": "^0.23.0",
|
|
95
94
|
"esbuild-loader": "^4.0.0",
|
|
96
95
|
"eslint": "^8.6.0",
|
|
@@ -147,6 +146,7 @@
|
|
|
147
146
|
"swc-loader": "^0.2.3",
|
|
148
147
|
"tar": "^6.1.12",
|
|
149
148
|
"terser-webpack-plugin": "^5.1.3",
|
|
149
|
+
"ts-morph": "^23.0.0",
|
|
150
150
|
"util": "^0.12.3",
|
|
151
151
|
"webpack": "^5.70.0",
|
|
152
152
|
"webpack-dev-server": "^5.0.0",
|
|
@@ -158,17 +158,16 @@
|
|
|
158
158
|
},
|
|
159
159
|
"devDependencies": {
|
|
160
160
|
"@backstage/backend-common": "^0.25.0",
|
|
161
|
-
"@backstage/backend-plugin-api": "
|
|
162
|
-
"@backstage/backend-test-utils": "
|
|
163
|
-
"@backstage/config": "
|
|
164
|
-
"@backstage/core-app-api": "
|
|
165
|
-
"@backstage/core-components": "
|
|
166
|
-
"@backstage/core-plugin-api": "
|
|
167
|
-
"@backstage/dev-utils": "
|
|
168
|
-
"@backstage/test-utils": "
|
|
169
|
-
"@backstage/theme": "
|
|
161
|
+
"@backstage/backend-plugin-api": "1.0.1-next.0",
|
|
162
|
+
"@backstage/backend-test-utils": "1.0.1-next.1",
|
|
163
|
+
"@backstage/config": "1.2.0",
|
|
164
|
+
"@backstage/core-app-api": "1.15.1-next.1",
|
|
165
|
+
"@backstage/core-components": "0.15.1-next.1",
|
|
166
|
+
"@backstage/core-plugin-api": "1.10.0-next.1",
|
|
167
|
+
"@backstage/dev-utils": "1.1.2-next.1",
|
|
168
|
+
"@backstage/test-utils": "1.6.1-next.1",
|
|
169
|
+
"@backstage/theme": "0.5.8-next.0",
|
|
170
170
|
"@types/cross-spawn": "^6.0.2",
|
|
171
|
-
"@types/diff": "^5.0.0",
|
|
172
171
|
"@types/ejs": "^3.1.3",
|
|
173
172
|
"@types/express": "^4.17.6",
|
|
174
173
|
"@types/fs-extra": "^11.0.0",
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var fs = require('fs-extra');
|
|
4
|
-
var path = require('path');
|
|
5
|
-
var index = require('./index-DmUbBCFk.cjs.js');
|
|
6
|
-
|
|
7
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
|
-
|
|
9
|
-
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
10
|
-
var path__default = /*#__PURE__*/_interopDefaultCompat(path);
|
|
11
|
-
|
|
12
|
-
const TEAM_ID_RE = /^@[-\w]+\/[-\w]+$/;
|
|
13
|
-
const USER_ID_RE = /^@[-\w]+$/;
|
|
14
|
-
const EMAIL_RE = /^[^@]+@[-.\w]+\.[-\w]+$/i;
|
|
15
|
-
const DEFAULT_OWNER = "@backstage/maintainers";
|
|
16
|
-
async function getCodeownersFilePath(rootDir) {
|
|
17
|
-
const possiblePaths = [
|
|
18
|
-
path__default.default.join(rootDir, ".github", "CODEOWNERS"),
|
|
19
|
-
path__default.default.join(rootDir, ".gitlab", "CODEOWNERS"),
|
|
20
|
-
path__default.default.join(rootDir, "docs", "CODEOWNERS"),
|
|
21
|
-
path__default.default.join(rootDir, "CODEOWNERS")
|
|
22
|
-
];
|
|
23
|
-
for (const p of possiblePaths) {
|
|
24
|
-
if (await fs__default.default.pathExists(p)) {
|
|
25
|
-
return p;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return void 0;
|
|
29
|
-
}
|
|
30
|
-
function isValidSingleOwnerId(id) {
|
|
31
|
-
if (!id || typeof id !== "string") {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
return TEAM_ID_RE.test(id) || USER_ID_RE.test(id) || EMAIL_RE.test(id);
|
|
35
|
-
}
|
|
36
|
-
function parseOwnerIds(spaceSeparatedOwnerIds) {
|
|
37
|
-
if (!spaceSeparatedOwnerIds || typeof spaceSeparatedOwnerIds !== "string") {
|
|
38
|
-
return void 0;
|
|
39
|
-
}
|
|
40
|
-
const ids = spaceSeparatedOwnerIds.split(" ").filter(Boolean);
|
|
41
|
-
if (!ids.every(isValidSingleOwnerId)) {
|
|
42
|
-
return void 0;
|
|
43
|
-
}
|
|
44
|
-
return ids;
|
|
45
|
-
}
|
|
46
|
-
async function addCodeownersEntry(ownedPath, ownerStr, codeownersFilePath) {
|
|
47
|
-
const ownerIds = parseOwnerIds(ownerStr);
|
|
48
|
-
if (!ownerIds || ownerIds.length === 0) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
let filePath = codeownersFilePath;
|
|
52
|
-
if (!filePath) {
|
|
53
|
-
filePath = await getCodeownersFilePath(index.paths.targetRoot);
|
|
54
|
-
if (!filePath) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const allLines = (await fs__default.default.readFile(filePath, "utf8")).split("\n");
|
|
59
|
-
const commentLines = [];
|
|
60
|
-
for (const line of allLines) {
|
|
61
|
-
if (line[0] !== "#") {
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
commentLines.push(line);
|
|
65
|
-
}
|
|
66
|
-
const oldDeclarationEntries = allLines.filter((line) => line[0] !== "#").map((line) => line.split(/\s+/).filter(Boolean)).filter((tokens) => tokens.length >= 2).map((tokens) => ({
|
|
67
|
-
ownedPath: tokens[0],
|
|
68
|
-
ownerIds: tokens.slice(1)
|
|
69
|
-
}));
|
|
70
|
-
const newDeclarationEntries = oldDeclarationEntries.filter((entry) => entry.ownedPath !== "*").concat([{ ownedPath, ownerIds }]).sort((l1, l2) => l1.ownedPath.localeCompare(l2.ownedPath));
|
|
71
|
-
newDeclarationEntries.unshift({
|
|
72
|
-
ownedPath: "*",
|
|
73
|
-
ownerIds: [DEFAULT_OWNER]
|
|
74
|
-
});
|
|
75
|
-
const longestOwnedPath = newDeclarationEntries.reduce(
|
|
76
|
-
(length, entry) => Math.max(length, entry.ownedPath.length),
|
|
77
|
-
0
|
|
78
|
-
);
|
|
79
|
-
const newDeclarationLines = newDeclarationEntries.map((entry) => {
|
|
80
|
-
const entryPath = entry.ownedPath + " ".repeat(longestOwnedPath - entry.ownedPath.length);
|
|
81
|
-
return [entryPath, ...entry.ownerIds].join(" ");
|
|
82
|
-
});
|
|
83
|
-
const newLines = [...commentLines, "", ...newDeclarationLines, ""];
|
|
84
|
-
await fs__default.default.writeFile(filePath, newLines.join("\n"), "utf8");
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
exports.addCodeownersEntry = addCodeownersEntry;
|
|
89
|
-
exports.getCodeownersFilePath = getCodeownersFilePath;
|
|
90
|
-
exports.parseOwnerIds = parseOwnerIds;
|
|
91
|
-
//# sourceMappingURL=codeowners-FKKtpciN.cjs.js.map
|