@backstage/cli 0.25.3-next.2 → 0.26.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 +56 -0
- package/bin/backstage-cli +1 -9
- package/config/jest.js +1 -1
- package/config/nodeTransform.cjs +45 -0
- package/dist/cjs/{Lockfile-eced6070.cjs.js → Lockfile-C7rtIlD6.cjs.js} +13 -13
- package/dist/cjs/{build-8382b8d8.cjs.js → build-CwpT6bF2.cjs.js} +18 -16
- package/dist/cjs/{buildBackend-8dad4184.cjs.js → buildBackend-DA1sPj38.cjs.js} +39 -37
- package/dist/cjs/{buildWorkspace-65108f13.cjs.js → buildWorkspace-C1SYLOri.cjs.js} +13 -12
- package/dist/cjs/{bump-7eb29899.cjs.js → bump-CeCdrJTX.cjs.js} +38 -38
- package/dist/cjs/{clean-da51bc11.cjs.js → clean-Cv8IvozP.cjs.js} +10 -10
- package/dist/cjs/clean-DM4n37HU.cjs.js +22 -0
- package/dist/cjs/{codeowners-20b953b3.cjs.js → codeowners-D7pqDS5v.cjs.js} +12 -12
- package/dist/cjs/{config-56e0de04.cjs.js → config-30A1doGp.cjs.js} +2 -2
- package/dist/cjs/{createDistWorkspace-030a024c.cjs.js → createDistWorkspace-BGiN72e4.cjs.js} +57 -54
- package/dist/cjs/{createPlugin-204e49d9.cjs.js → createPlugin-CwxnrMzx.cjs.js} +41 -41
- package/dist/cjs/{diff-7d8597da.cjs.js → diff-D3wUBD1R.cjs.js} +27 -27
- package/dist/cjs/{docs-f78c80fc.cjs.js → docs-Cvi9d_ZX.cjs.js} +7 -7
- package/dist/cjs/{entryPoints-0cc55995.cjs.js → entryPoints-CoHH4lBA.cjs.js} +1 -1
- package/dist/cjs/{fix-d22e0b11.cjs.js → fix-Bea3_Noa.cjs.js} +5 -5
- package/dist/cjs/{index-09d2153b.cjs.js → index-D3oMtC-Y.cjs.js} +16 -14
- package/dist/cjs/{index-e1de5c59.cjs.js → index-DY45BN_5.cjs.js} +94 -81
- package/dist/cjs/{index-9544d932.cjs.js → index-DvRrNqwO.cjs.js} +56 -57
- package/dist/cjs/{index-edd730f9.cjs.js → index-nDVbtUZr.cjs.js} +27 -27
- package/dist/cjs/{index-9063098c.cjs.js → index-sM4O9JuD.cjs.js} +64 -72
- package/dist/cjs/{info-1f294f45.cjs.js → info-RFihkADz.cjs.js} +13 -13
- package/dist/cjs/{install-673dc92b.cjs.js → install-DoqtVqrm.cjs.js} +19 -19
- package/dist/cjs/{lint-8300340a.cjs.js → lint-BR_vl9_l.cjs.js} +6 -6
- package/dist/cjs/{lint-ba008767.cjs.js → lint-C7Wrrowb.cjs.js} +10 -10
- package/dist/cjs/{lint-b802a7cd.cjs.js → lint-YPKovWFd.cjs.js} +3 -3
- package/dist/cjs/{list-deprecations-e2ee5969.cjs.js → list-deprecations-BSHe0Jb3.cjs.js} +5 -5
- package/dist/cjs/{new-c58b4036.cjs.js → new-C_MIBxr7.cjs.js} +54 -54
- package/dist/cjs/{pack-50caa243.cjs.js → pack-CsV2iPfV.cjs.js} +4 -4
- package/dist/cjs/{packageDetection-4743318d.cjs.js → packageDetection-pUH1daGF.cjs.js} +48 -45
- package/dist/cjs/{packageExports-a1441001.cjs.js → packageExports-B8ow9_g8.cjs.js} +3 -3
- package/dist/cjs/{packageLintConfigs-d64c7abd.cjs.js → packageLintConfigs-DU8CUxDG.cjs.js} +8 -8
- package/dist/cjs/{packageRole-dac636ac.cjs.js → packageRole-BPygF5yd.cjs.js} +6 -6
- package/dist/cjs/{packageScripts-bb7b6de2.cjs.js → packageScripts-CPnlPBBs.cjs.js} +4 -4
- package/dist/cjs/{packages-6d977cf6.cjs.js → packages-BlHOrEEW.cjs.js} +4 -4
- package/dist/cjs/{parallel-2d9d247e.cjs.js → parallel-BszNaKyc.cjs.js} +4 -4
- package/dist/cjs/{print-6b92e96e.cjs.js → print-DoEMvoPB.cjs.js} +4 -4
- package/dist/cjs/{productionPack-8b9ac9b7.cjs.js → productionPack-DotlEIE2.cjs.js} +19 -19
- package/dist/cjs/{reactRouterDeps-a2bb1d62.cjs.js → reactRouterDeps-BBKc6o07.cjs.js} +4 -4
- package/dist/cjs/{role-a4d0fea7.cjs.js → role-C2mHZAQE.cjs.js} +5 -5
- package/dist/cjs/{run-d7eebc11.cjs.js → run-DdHCwSFu.cjs.js} +2 -2
- package/dist/cjs/{schema-4835d534.cjs.js → schema-BC3xv-Rs.cjs.js} +4 -4
- package/dist/cjs/{svgrTemplate-3549ea1c.cjs.js → svgrTemplate-BTjBQ3by.cjs.js} +1 -1
- package/dist/cjs/{tasks-84de240c.cjs.js → tasks-mGXy8WjR.cjs.js} +23 -23
- package/dist/cjs/{test-5db6618e.cjs.js → test-CE3ZjSss.cjs.js} +6 -6
- package/dist/cjs/{test-7743a73f.cjs.js → test-dJeJGdt8.cjs.js} +4 -4
- package/dist/cjs/{validate-beb5d30e.cjs.js → validate-BsyK7u74.cjs.js} +4 -4
- package/dist/cjs/{yarn-6cd89e16.cjs.js → yarn-BDZCENk5.cjs.js} +1 -1
- package/dist/index.cjs.js +1 -1
- package/package.json +30 -26
- package/templates/default-backend-plugin/dev/index.ts +9 -0
- package/templates/default-backend-plugin/package.json.hbs +4 -0
- package/templates/default-backend-plugin/src/index.ts.hbs +2 -0
- package/templates/default-backend-plugin/src/plugin.ts.hbs +32 -0
- package/templates/default-backend-plugin/src/service/router.ts +3 -2
- package/dist/cjs/clean-5afc7d48.cjs.js +0 -22
- package/templates/default-backend-plugin/src/index.ts +0 -1
- package/templates/default-backend-plugin/src/run.ts.hbs +0 -17
- package/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs +0 -34
package/dist/cjs/{createDistWorkspace-030a024c.cjs.js → createDistWorkspace-BGiN72e4.cjs.js}
RENAMED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var fs = require('fs-extra');
|
|
5
5
|
var path = require('path');
|
|
6
|
+
var pLimit = require('p-limit');
|
|
6
7
|
var os = require('os');
|
|
7
8
|
var tar = require('tar');
|
|
8
9
|
var partition = require('lodash/partition');
|
|
9
|
-
var index = require('./index-
|
|
10
|
-
var run = require('./run-
|
|
10
|
+
var index = require('./index-DY45BN_5.cjs.js');
|
|
11
|
+
var run = require('./run-DdHCwSFu.cjs.js');
|
|
11
12
|
var rollup = require('rollup');
|
|
12
13
|
var commonjs = require('@rollup/plugin-commonjs');
|
|
13
14
|
var resolve = require('@rollup/plugin-node-resolve');
|
|
@@ -18,26 +19,27 @@ var dts = require('rollup-plugin-dts');
|
|
|
18
19
|
var json = require('@rollup/plugin-json');
|
|
19
20
|
var yaml = require('@rollup/plugin-yaml');
|
|
20
21
|
var rollupPluginutils = require('rollup-pluginutils');
|
|
21
|
-
var svgrTemplate = require('./svgrTemplate-
|
|
22
|
-
var entryPoints = require('./entryPoints-
|
|
22
|
+
var svgrTemplate = require('./svgrTemplate-BTjBQ3by.cjs.js');
|
|
23
|
+
var entryPoints = require('./entryPoints-CoHH4lBA.cjs.js');
|
|
23
24
|
var cliNode = require('@backstage/cli-node');
|
|
24
|
-
var parallel = require('./parallel-
|
|
25
|
-
var productionPack = require('./productionPack-
|
|
25
|
+
var parallel = require('./parallel-BszNaKyc.cjs.js');
|
|
26
|
+
var productionPack = require('./productionPack-DotlEIE2.cjs.js');
|
|
26
27
|
|
|
27
|
-
function
|
|
28
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
28
29
|
|
|
29
|
-
var chalk__default = /*#__PURE__*/
|
|
30
|
-
var fs__default = /*#__PURE__*/
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var
|
|
30
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
31
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
32
|
+
var pLimit__default = /*#__PURE__*/_interopDefaultCompat(pLimit);
|
|
33
|
+
var tar__default = /*#__PURE__*/_interopDefaultCompat(tar);
|
|
34
|
+
var partition__default = /*#__PURE__*/_interopDefaultCompat(partition);
|
|
35
|
+
var commonjs__default = /*#__PURE__*/_interopDefaultCompat(commonjs);
|
|
36
|
+
var resolve__default = /*#__PURE__*/_interopDefaultCompat(resolve);
|
|
37
|
+
var postcss__default = /*#__PURE__*/_interopDefaultCompat(postcss);
|
|
38
|
+
var esbuild__default = /*#__PURE__*/_interopDefaultCompat(esbuild);
|
|
39
|
+
var svgr__default = /*#__PURE__*/_interopDefaultCompat(svgr);
|
|
40
|
+
var dts__default = /*#__PURE__*/_interopDefaultCompat(dts);
|
|
41
|
+
var json__default = /*#__PURE__*/_interopDefaultCompat(json);
|
|
42
|
+
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
|
|
41
43
|
|
|
42
44
|
function forwardFileImports(options) {
|
|
43
45
|
const filter = rollupPluginutils.createFilter(options.include, options.exclude);
|
|
@@ -67,8 +69,8 @@ function forwardFileImports(options) {
|
|
|
67
69
|
Array.from(exportedFiles).map(async (exportedFile) => {
|
|
68
70
|
const outputPath = path.relative(srcRoot, exportedFile);
|
|
69
71
|
const targetFile = path.resolve(dir, outputPath);
|
|
70
|
-
await fs__default
|
|
71
|
-
await fs__default
|
|
72
|
+
await fs__default.default.ensureDir(path.dirname(targetFile));
|
|
73
|
+
await fs__default.default.copyFile(exportedFile, targetFile);
|
|
72
74
|
})
|
|
73
75
|
);
|
|
74
76
|
return;
|
|
@@ -125,7 +127,7 @@ async function makeRollupConfigs(options) {
|
|
|
125
127
|
let targetPkg = options.packageJson;
|
|
126
128
|
if (!targetPkg) {
|
|
127
129
|
const packagePath = path.resolve(targetDir, "package.json");
|
|
128
|
-
targetPkg = await fs__default
|
|
130
|
+
targetPkg = await fs__default.default.readJson(packagePath);
|
|
129
131
|
}
|
|
130
132
|
const onwarn = ({ code, message }) => {
|
|
131
133
|
if (code === "EMPTY_BUNDLE") {
|
|
@@ -151,6 +153,7 @@ async function makeRollupConfigs(options) {
|
|
|
151
153
|
entryFileNames: `[name].cjs.js`,
|
|
152
154
|
chunkFileNames: `cjs/[name]-[hash].cjs.js`,
|
|
153
155
|
format: "commonjs",
|
|
156
|
+
interop: "compat",
|
|
154
157
|
sourcemap: true,
|
|
155
158
|
exports: "named"
|
|
156
159
|
});
|
|
@@ -175,12 +178,12 @@ async function makeRollupConfigs(options) {
|
|
|
175
178
|
// All module imports are always marked as external
|
|
176
179
|
external: (source, importer, isResolved) => Boolean(importer && !isResolved && !isFileImport(source)),
|
|
177
180
|
plugins: [
|
|
178
|
-
resolve__default
|
|
179
|
-
commonjs__default
|
|
181
|
+
resolve__default.default({ mainFields }),
|
|
182
|
+
commonjs__default.default({
|
|
180
183
|
include: /node_modules/,
|
|
181
184
|
exclude: [/\/[^/]+\.(?:stories|test)\.[^/]+$/]
|
|
182
185
|
}),
|
|
183
|
-
postcss__default
|
|
186
|
+
postcss__default.default(),
|
|
184
187
|
forwardFileImports({
|
|
185
188
|
exclude: /\.icon\.svg$/,
|
|
186
189
|
include: [
|
|
@@ -196,13 +199,13 @@ async function makeRollupConfigs(options) {
|
|
|
196
199
|
/\.md$/
|
|
197
200
|
]
|
|
198
201
|
}),
|
|
199
|
-
json__default
|
|
200
|
-
yaml__default
|
|
201
|
-
svgr__default
|
|
202
|
+
json__default.default(),
|
|
203
|
+
yaml__default.default(),
|
|
204
|
+
svgr__default.default({
|
|
202
205
|
include: /\.icon\.svg$/,
|
|
203
206
|
template: svgrTemplate.svgrTemplate
|
|
204
207
|
}),
|
|
205
|
-
esbuild__default
|
|
208
|
+
esbuild__default.default({
|
|
206
209
|
target: "es2019",
|
|
207
210
|
minify: options.minify
|
|
208
211
|
})
|
|
@@ -221,11 +224,11 @@ async function makeRollupConfigs(options) {
|
|
|
221
224
|
])
|
|
222
225
|
);
|
|
223
226
|
for (const path$1 of Object.values(input)) {
|
|
224
|
-
const declarationsExist = await fs__default
|
|
227
|
+
const declarationsExist = await fs__default.default.pathExists(path$1);
|
|
225
228
|
if (!declarationsExist) {
|
|
226
229
|
const declarationPath = path.relative(targetDir, path$1);
|
|
227
230
|
throw new Error(
|
|
228
|
-
`No declaration files found at ${declarationPath}, be sure to run ${chalk__default
|
|
231
|
+
`No declaration files found at ${declarationPath}, be sure to run ${chalk__default.default.bgRed.white(
|
|
229
232
|
"yarn tsc"
|
|
230
233
|
)} to generate .d.ts files before packaging`
|
|
231
234
|
);
|
|
@@ -250,7 +253,7 @@ async function makeRollupConfigs(options) {
|
|
|
250
253
|
/\.ttf$/
|
|
251
254
|
],
|
|
252
255
|
onwarn,
|
|
253
|
-
plugins: [dts__default
|
|
256
|
+
plugins: [dts__default.default()]
|
|
254
257
|
});
|
|
255
258
|
}
|
|
256
259
|
return configs;
|
|
@@ -269,7 +272,7 @@ function formatErrorMessage(error) {
|
|
|
269
272
|
for (const { text, location } of error.errors) {
|
|
270
273
|
const { line, column } = location;
|
|
271
274
|
const path$1 = path.relative(index.paths.targetDir, error.id);
|
|
272
|
-
const loc = chalk__default
|
|
275
|
+
const loc = chalk__default.default.cyan(`${path$1}:${line}:${column}`);
|
|
273
276
|
if (text === 'Unexpected "<"' && error.id.endsWith(".js")) {
|
|
274
277
|
msg += `${loc}: ${text}, JavaScript files with JSX should use a .jsx extension`;
|
|
275
278
|
} else {
|
|
@@ -294,11 +297,11 @@ function formatErrorMessage(error) {
|
|
|
294
297
|
msg += `${error}
|
|
295
298
|
`;
|
|
296
299
|
if (error.url) {
|
|
297
|
-
msg += `${chalk__default
|
|
300
|
+
msg += `${chalk__default.default.cyan(error.url)}
|
|
298
301
|
`;
|
|
299
302
|
}
|
|
300
303
|
if (error.frame) {
|
|
301
|
-
msg += `${chalk__default
|
|
304
|
+
msg += `${chalk__default.default.dim(error.frame)}
|
|
302
305
|
`;
|
|
303
306
|
}
|
|
304
307
|
}
|
|
@@ -319,12 +322,12 @@ async function rollupBuild(config) {
|
|
|
319
322
|
}
|
|
320
323
|
const buildPackage = async (options) => {
|
|
321
324
|
try {
|
|
322
|
-
const { resolutions } = await fs__default
|
|
325
|
+
const { resolutions } = await fs__default.default.readJson(
|
|
323
326
|
index.paths.resolveTargetRoot("package.json")
|
|
324
327
|
);
|
|
325
328
|
if (resolutions == null ? void 0 : resolutions.esbuild) {
|
|
326
329
|
console.warn(
|
|
327
|
-
chalk__default
|
|
330
|
+
chalk__default.default.red(
|
|
328
331
|
'Your root package.json contains a "resolutions" entry for "esbuild". This was included in older @backstage/create-app templates in order to work around build issues that have since been fixed. Please remove the entry and run `yarn install`'
|
|
329
332
|
)
|
|
330
333
|
);
|
|
@@ -332,7 +335,7 @@ const buildPackage = async (options) => {
|
|
|
332
335
|
} catch {
|
|
333
336
|
}
|
|
334
337
|
const rollupConfigs = await makeRollupConfigs(options);
|
|
335
|
-
await fs__default
|
|
338
|
+
await fs__default.default.remove(index.paths.resolveTarget("dist"));
|
|
336
339
|
const buildTasks = rollupConfigs.map(rollupBuild);
|
|
337
340
|
await Promise.all(buildTasks);
|
|
338
341
|
};
|
|
@@ -342,7 +345,7 @@ const buildPackages = async (options) => {
|
|
|
342
345
|
}
|
|
343
346
|
const rollupConfigs = await Promise.all(options.map(makeRollupConfigs));
|
|
344
347
|
await Promise.all(
|
|
345
|
-
options.map(({ targetDir }) => fs__default
|
|
348
|
+
options.map(({ targetDir }) => fs__default.default.remove(path.resolve(targetDir, "dist")))
|
|
346
349
|
);
|
|
347
350
|
const buildTasks = rollupConfigs.flat().map((opts) => () => rollupBuild(opts));
|
|
348
351
|
await parallel.runParallelWorkers({
|
|
@@ -380,7 +383,7 @@ function prefixLogFunc(prefix, out) {
|
|
|
380
383
|
}
|
|
381
384
|
async function createDistWorkspace(packageNames, options = {}) {
|
|
382
385
|
var _a, _b, _c, _d, _e, _f;
|
|
383
|
-
const targetDir = (_a = options.targetDir) != null ? _a : await fs__default
|
|
386
|
+
const targetDir = (_a = options.targetDir) != null ? _a : await fs__default.default.mkdtemp(path.resolve(os.tmpdir(), "dist-workspace"));
|
|
384
387
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
385
388
|
const packageGraph = cliNode.PackageGraph.fromPackages(packages);
|
|
386
389
|
const targetNames = packageGraph.collectPackageNames(packageNames, (node) => {
|
|
@@ -437,9 +440,8 @@ async function createDistWorkspace(packageNames, options = {}) {
|
|
|
437
440
|
targetDir: pkg.dir,
|
|
438
441
|
packageJson: pkg.packageJson,
|
|
439
442
|
outputs,
|
|
440
|
-
logPrefix: `${chalk__default
|
|
441
|
-
|
|
442
|
-
minify: false
|
|
443
|
+
logPrefix: `${chalk__default.default.cyan(path.relative(index.paths.targetRoot, pkg.dir))}: `,
|
|
444
|
+
minify: options.minify
|
|
443
445
|
});
|
|
444
446
|
}
|
|
445
447
|
}
|
|
@@ -466,14 +468,14 @@ async function createDistWorkspace(packageNames, options = {}) {
|
|
|
466
468
|
for (const file of files) {
|
|
467
469
|
const src = typeof file === "string" ? file : file.src;
|
|
468
470
|
const dest = typeof file === "string" ? file : file.dest;
|
|
469
|
-
await fs__default
|
|
471
|
+
await fs__default.default.copy(index.paths.resolveTargetRoot(src), path.resolve(targetDir, dest));
|
|
470
472
|
}
|
|
471
473
|
if (options.skeleton) {
|
|
472
474
|
const skeletonFiles = targets.map((target) => {
|
|
473
475
|
const dir = path.relative(index.paths.targetRoot, target.dir);
|
|
474
476
|
return path.join(dir, "package.json");
|
|
475
477
|
}).sort();
|
|
476
|
-
await tar__default
|
|
478
|
+
await tar__default.default.create(
|
|
477
479
|
{
|
|
478
480
|
file: path.resolve(targetDir, options.skeleton),
|
|
479
481
|
cwd: targetDir,
|
|
@@ -492,7 +494,7 @@ const FAST_PACK_SCRIPTS = [
|
|
|
492
494
|
"backstage-cli package prepack"
|
|
493
495
|
];
|
|
494
496
|
async function moveToDistWorkspace(workspaceDir, localPackages, alwaysYarnPack) {
|
|
495
|
-
const [fastPackPackages, slowPackPackages] = partition__default
|
|
497
|
+
const [fastPackPackages, slowPackPackages] = partition__default.default(
|
|
496
498
|
localPackages,
|
|
497
499
|
(pkg) => {
|
|
498
500
|
var _a;
|
|
@@ -522,22 +524,22 @@ async function moveToDistWorkspace(workspaceDir, localPackages, alwaysYarnPack)
|
|
|
522
524
|
}
|
|
523
525
|
const outputDir = path.relative(index.paths.targetRoot, target.dir);
|
|
524
526
|
const absoluteOutputPath = path.resolve(workspaceDir, outputDir);
|
|
525
|
-
await fs__default
|
|
526
|
-
await tar__default
|
|
527
|
+
await fs__default.default.ensureDir(absoluteOutputPath);
|
|
528
|
+
await tar__default.default.extract({
|
|
527
529
|
file: archivePath,
|
|
528
530
|
cwd: absoluteOutputPath,
|
|
529
531
|
strip: 1
|
|
530
532
|
});
|
|
531
|
-
await fs__default
|
|
533
|
+
await fs__default.default.remove(archivePath);
|
|
532
534
|
if (target.packageJson.bundled) {
|
|
533
|
-
const pkgJson = await fs__default
|
|
535
|
+
const pkgJson = await fs__default.default.readJson(
|
|
534
536
|
path.resolve(absoluteOutputPath, "package.json")
|
|
535
537
|
);
|
|
536
538
|
delete pkgJson.dependencies;
|
|
537
539
|
delete pkgJson.devDependencies;
|
|
538
540
|
delete pkgJson.peerDependencies;
|
|
539
541
|
delete pkgJson.optionalDependencies;
|
|
540
|
-
await fs__default
|
|
542
|
+
await fs__default.default.writeJson(
|
|
541
543
|
path.resolve(absoluteOutputPath, "package.json"),
|
|
542
544
|
pkgJson,
|
|
543
545
|
{
|
|
@@ -546,16 +548,17 @@ async function moveToDistWorkspace(workspaceDir, localPackages, alwaysYarnPack)
|
|
|
546
548
|
);
|
|
547
549
|
}
|
|
548
550
|
}
|
|
549
|
-
const [unsafePackages, safePackages] = partition__default
|
|
551
|
+
const [unsafePackages, safePackages] = partition__default.default(
|
|
550
552
|
slowPackPackages,
|
|
551
553
|
(p) => UNSAFE_PACKAGES.includes(p.name)
|
|
552
554
|
);
|
|
553
555
|
for (const target of unsafePackages) {
|
|
554
556
|
await pack(target, `temp-package.tgz`);
|
|
555
557
|
}
|
|
558
|
+
const limit = pLimit__default.default(10);
|
|
556
559
|
await Promise.all(
|
|
557
560
|
safePackages.map(
|
|
558
|
-
|
|
561
|
+
(target, index) => limit(() => pack(target, `temp-package-${index}.tgz`))
|
|
559
562
|
)
|
|
560
563
|
);
|
|
561
564
|
}
|
|
@@ -565,4 +568,4 @@ exports.buildPackage = buildPackage;
|
|
|
565
568
|
exports.buildPackages = buildPackages;
|
|
566
569
|
exports.createDistWorkspace = createDistWorkspace;
|
|
567
570
|
exports.getOutputsForRole = getOutputsForRole;
|
|
568
|
-
//# sourceMappingURL=createDistWorkspace-
|
|
571
|
+
//# sourceMappingURL=createDistWorkspace-BGiN72e4.cjs.js.map
|
|
@@ -10,14 +10,14 @@ var camelCase = require('lodash/camelCase');
|
|
|
10
10
|
var upperFirst = require('lodash/upperFirst');
|
|
11
11
|
var os = require('os');
|
|
12
12
|
var errors = require('@backstage/errors');
|
|
13
|
-
var codeowners = require('./codeowners-
|
|
14
|
-
var index = require('./index-
|
|
15
|
-
var tasks = require('./tasks-
|
|
16
|
-
var Lockfile = require('./Lockfile-
|
|
13
|
+
var codeowners = require('./codeowners-D7pqDS5v.cjs.js');
|
|
14
|
+
var index = require('./index-DY45BN_5.cjs.js');
|
|
15
|
+
var tasks = require('./tasks-mGXy8WjR.cjs.js');
|
|
16
|
+
var Lockfile = require('./Lockfile-C7rtIlD6.cjs.js');
|
|
17
17
|
require('minimatch');
|
|
18
18
|
require('@manypkg/get-packages');
|
|
19
|
-
require('./yarn-
|
|
20
|
-
require('./run-
|
|
19
|
+
require('./yarn-BDZCENk5.cjs.js');
|
|
20
|
+
require('./run-DdHCwSFu.cjs.js');
|
|
21
21
|
require('commander');
|
|
22
22
|
require('semver');
|
|
23
23
|
require('@backstage/cli-common');
|
|
@@ -27,20 +27,20 @@ require('recursive-readdir');
|
|
|
27
27
|
require('@yarnpkg/parsers');
|
|
28
28
|
require('@yarnpkg/lockfile');
|
|
29
29
|
|
|
30
|
-
function
|
|
30
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
31
31
|
|
|
32
|
-
var fs__default = /*#__PURE__*/
|
|
33
|
-
var chalk__default = /*#__PURE__*/
|
|
34
|
-
var inquirer__default = /*#__PURE__*/
|
|
35
|
-
var camelCase__default = /*#__PURE__*/
|
|
36
|
-
var upperFirst__default = /*#__PURE__*/
|
|
37
|
-
var os__default = /*#__PURE__*/
|
|
32
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
33
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
34
|
+
var inquirer__default = /*#__PURE__*/_interopDefaultCompat(inquirer);
|
|
35
|
+
var camelCase__default = /*#__PURE__*/_interopDefaultCompat(camelCase);
|
|
36
|
+
var upperFirst__default = /*#__PURE__*/_interopDefaultCompat(upperFirst);
|
|
37
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
38
38
|
|
|
39
39
|
const exec = util.promisify(child_process.exec);
|
|
40
40
|
async function checkExists(destination) {
|
|
41
41
|
await tasks.Task.forItem("checking", destination, async () => {
|
|
42
|
-
if (await fs__default
|
|
43
|
-
const existing = chalk__default
|
|
42
|
+
if (await fs__default.default.pathExists(destination)) {
|
|
43
|
+
const existing = chalk__default.default.cyan(
|
|
44
44
|
destination.replace(`${index.paths.targetRoot}/`, "")
|
|
45
45
|
);
|
|
46
46
|
throw new Error(
|
|
@@ -58,14 +58,14 @@ const sortObjectByKeys = (obj) => {
|
|
|
58
58
|
};
|
|
59
59
|
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
60
60
|
const addExportStatement = async (file, exportStatement) => {
|
|
61
|
-
const newContents = fs__default
|
|
62
|
-
await fs__default
|
|
61
|
+
const newContents = fs__default.default.readFileSync(file, "utf8").split("\n").filter(Boolean).concat([exportStatement]).concat([""]).join("\n");
|
|
62
|
+
await fs__default.default.writeFile(file, newContents, "utf8");
|
|
63
63
|
};
|
|
64
64
|
async function addPluginDependencyToApp(rootDir, pluginPackage, versionStr) {
|
|
65
65
|
const packageFilePath = "packages/app/package.json";
|
|
66
66
|
const packageFile = path.resolve(rootDir, packageFilePath);
|
|
67
67
|
await tasks.Task.forItem("processing", packageFilePath, async () => {
|
|
68
|
-
const packageFileContent = await fs__default
|
|
68
|
+
const packageFileContent = await fs__default.default.readFile(packageFile, "utf-8");
|
|
69
69
|
const packageFileJson = JSON.parse(packageFileContent);
|
|
70
70
|
const dependencies = packageFileJson.dependencies;
|
|
71
71
|
if (dependencies[pluginPackage]) {
|
|
@@ -77,7 +77,7 @@ async function addPluginDependencyToApp(rootDir, pluginPackage, versionStr) {
|
|
|
77
77
|
packageFileJson.dependencies = sortObjectByKeys(dependencies);
|
|
78
78
|
const newContents = `${JSON.stringify(packageFileJson, null, 2)}
|
|
79
79
|
`;
|
|
80
|
-
await fs__default
|
|
80
|
+
await fs__default.default.writeFile(packageFile, newContents, "utf-8").catch((error) => {
|
|
81
81
|
throw new Error(
|
|
82
82
|
`Failed to add plugin as dependency to app: ${packageFile}: ${error.message}`
|
|
83
83
|
);
|
|
@@ -86,12 +86,12 @@ async function addPluginDependencyToApp(rootDir, pluginPackage, versionStr) {
|
|
|
86
86
|
}
|
|
87
87
|
async function addPluginExtensionToApp(pluginId, extensionName, pluginPackage) {
|
|
88
88
|
const pluginsFilePath = index.paths.resolveTargetRoot("packages/app/src/App.tsx");
|
|
89
|
-
if (!await fs__default
|
|
89
|
+
if (!await fs__default.default.pathExists(pluginsFilePath)) {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
await tasks.Task.forItem("processing", pluginsFilePath, async () => {
|
|
93
93
|
var _a;
|
|
94
|
-
const content = await fs__default
|
|
94
|
+
const content = await fs__default.default.readFile(pluginsFilePath, "utf8");
|
|
95
95
|
const revLines = content.split("\n").reverse();
|
|
96
96
|
const lastImportIndex = revLines.findIndex(
|
|
97
97
|
(line) => line.match(/ from ("|').*("|')/)
|
|
@@ -112,13 +112,13 @@ async function addPluginExtensionToApp(pluginId, extensionName, pluginPackage) {
|
|
|
112
112
|
`${indentation}<Route path="/${pluginId}" element={<${extensionName} />}/>`
|
|
113
113
|
);
|
|
114
114
|
const newContent = revLines.reverse().join("\n");
|
|
115
|
-
await fs__default
|
|
115
|
+
await fs__default.default.writeFile(pluginsFilePath, newContent, "utf8");
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
async function cleanUp(tempDir) {
|
|
120
120
|
await tasks.Task.forItem("remove", "temporary directory", async () => {
|
|
121
|
-
await fs__default
|
|
121
|
+
await fs__default.default.remove(tempDir);
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
async function buildPlugin(pluginFolder) {
|
|
@@ -137,7 +137,7 @@ async function buildPlugin(pluginFolder) {
|
|
|
137
137
|
process.stdout.write(error.stderr);
|
|
138
138
|
process.stdout.write(error.stdout);
|
|
139
139
|
throw new Error(
|
|
140
|
-
`Warning: Could not execute command ${chalk__default
|
|
140
|
+
`Warning: Could not execute command ${chalk__default.default.cyan(command)}`
|
|
141
141
|
);
|
|
142
142
|
});
|
|
143
143
|
} catch (error) {
|
|
@@ -149,7 +149,7 @@ async function buildPlugin(pluginFolder) {
|
|
|
149
149
|
}
|
|
150
150
|
async function movePlugin(tempDir, destination, id) {
|
|
151
151
|
await tasks.Task.forItem("moving", id, async () => {
|
|
152
|
-
await fs__default
|
|
152
|
+
await fs__default.default.move(tempDir, destination).catch((error) => {
|
|
153
153
|
throw new Error(
|
|
154
154
|
`Failed to move plugin from ${tempDir} to ${destination}: ${error.message}`
|
|
155
155
|
);
|
|
@@ -162,12 +162,12 @@ var createPlugin = async (opts) => {
|
|
|
162
162
|
{
|
|
163
163
|
type: "input",
|
|
164
164
|
name: "id",
|
|
165
|
-
message: chalk__default
|
|
165
|
+
message: chalk__default.default.blue("Enter an ID for the plugin [required]"),
|
|
166
166
|
validate: (value) => {
|
|
167
167
|
if (!value) {
|
|
168
|
-
return chalk__default
|
|
168
|
+
return chalk__default.default.red("Please enter an ID for the plugin");
|
|
169
169
|
} else if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(value)) {
|
|
170
|
-
return chalk__default
|
|
170
|
+
return chalk__default.default.red(
|
|
171
171
|
"Plugin IDs must be lowercase and contain only letters, digits, and dashes."
|
|
172
172
|
);
|
|
173
173
|
}
|
|
@@ -179,7 +179,7 @@ var createPlugin = async (opts) => {
|
|
|
179
179
|
questions.push({
|
|
180
180
|
type: "input",
|
|
181
181
|
name: "owner",
|
|
182
|
-
message: chalk__default
|
|
182
|
+
message: chalk__default.default.blue(
|
|
183
183
|
"Enter the owner(s) of the plugin. If specified, this will be added to CODEOWNERS for the plugin path. [optional]"
|
|
184
184
|
),
|
|
185
185
|
validate: (value) => {
|
|
@@ -188,7 +188,7 @@ var createPlugin = async (opts) => {
|
|
|
188
188
|
}
|
|
189
189
|
const ownerIds = codeowners.parseOwnerIds(value);
|
|
190
190
|
if (!ownerIds) {
|
|
191
|
-
return chalk__default
|
|
191
|
+
return chalk__default.default.red(
|
|
192
192
|
"The owner must be a space separated list of team names (e.g. @org/team-name), usernames (e.g. @username), or the email addresses of users (e.g. user@example.com)."
|
|
193
193
|
);
|
|
194
194
|
}
|
|
@@ -196,20 +196,20 @@ var createPlugin = async (opts) => {
|
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
|
-
const answers = await inquirer__default
|
|
199
|
+
const answers = await inquirer__default.default.prompt(questions);
|
|
200
200
|
const pluginId = opts.backend && !answers.id.endsWith("-backend") ? `${answers.id}-backend` : answers.id;
|
|
201
201
|
const name = opts.scope ? `@${opts.scope.replace(/^@/, "")}/plugin-${pluginId}` : `plugin-${pluginId}`;
|
|
202
|
-
const pluginVar = `${camelCase__default
|
|
203
|
-
const extensionName = `${upperFirst__default
|
|
202
|
+
const pluginVar = `${camelCase__default.default(answers.id)}Plugin`;
|
|
203
|
+
const extensionName = `${upperFirst__default.default(camelCase__default.default(answers.id))}Page`;
|
|
204
204
|
const npmRegistry = opts.npmRegistry && opts.scope ? opts.npmRegistry : "";
|
|
205
205
|
const privatePackage = opts.private === false ? false : true;
|
|
206
|
-
const isMonoRepo = await fs__default
|
|
206
|
+
const isMonoRepo = await fs__default.default.pathExists(index.paths.resolveTargetRoot("lerna.json"));
|
|
207
207
|
const appPackage = index.paths.resolveTargetRoot("packages/app");
|
|
208
208
|
const templateDir = index.paths.resolveOwn(
|
|
209
209
|
opts.backend ? "templates/default-backend-plugin" : "templates/default-plugin"
|
|
210
210
|
);
|
|
211
211
|
const pluginDir = isMonoRepo ? index.paths.resolveTargetRoot("plugins", pluginId) : index.paths.resolveTargetRoot(pluginId);
|
|
212
|
-
const { version: pluginVersion } = isMonoRepo ? await fs__default
|
|
212
|
+
const { version: pluginVersion } = isMonoRepo ? await fs__default.default.readJson(index.paths.resolveTargetRoot("lerna.json")) : { version: "0.1.0" };
|
|
213
213
|
let lockfile;
|
|
214
214
|
try {
|
|
215
215
|
lockfile = await Lockfile.Lockfile.load(index.paths.resolveTargetRoot("yarn.lock"));
|
|
@@ -221,8 +221,8 @@ var createPlugin = async (opts) => {
|
|
|
221
221
|
tasks.Task.section("Checking if the plugin ID is available");
|
|
222
222
|
await checkExists(pluginDir);
|
|
223
223
|
tasks.Task.section("Creating a temporary plugin directory");
|
|
224
|
-
const tempDir = await fs__default
|
|
225
|
-
path.join(os__default
|
|
224
|
+
const tempDir = await fs__default.default.mkdtemp(
|
|
225
|
+
path.join(os__default.default.tmpdir(), `backstage-plugin-${pluginId}`)
|
|
226
226
|
);
|
|
227
227
|
try {
|
|
228
228
|
tasks.Task.section("Preparing files");
|
|
@@ -245,7 +245,7 @@ var createPlugin = async (opts) => {
|
|
|
245
245
|
await movePlugin(tempDir, pluginDir, pluginId);
|
|
246
246
|
tasks.Task.section("Building the plugin");
|
|
247
247
|
await buildPlugin(pluginDir);
|
|
248
|
-
if (await fs__default
|
|
248
|
+
if (await fs__default.default.pathExists(appPackage) && !opts.backend) {
|
|
249
249
|
tasks.Task.section("Adding plugin as dependency in app");
|
|
250
250
|
await addPluginDependencyToApp(index.paths.targetRoot, name, pluginVersion);
|
|
251
251
|
tasks.Task.section("Import plugin in app");
|
|
@@ -255,7 +255,7 @@ var createPlugin = async (opts) => {
|
|
|
255
255
|
await codeowners.addCodeownersEntry(`/plugins/${pluginId}`, answers.owner);
|
|
256
256
|
}
|
|
257
257
|
tasks.Task.log();
|
|
258
|
-
tasks.Task.log(`\u{1F947} Successfully created ${chalk__default
|
|
258
|
+
tasks.Task.log(`\u{1F947} Successfully created ${chalk__default.default.cyan(`${name}`)}`);
|
|
259
259
|
tasks.Task.log();
|
|
260
260
|
tasks.Task.exit();
|
|
261
261
|
} catch (error) {
|
|
@@ -274,6 +274,6 @@ exports.addExportStatement = addExportStatement;
|
|
|
274
274
|
exports.addPluginDependencyToApp = addPluginDependencyToApp;
|
|
275
275
|
exports.addPluginExtensionToApp = addPluginExtensionToApp;
|
|
276
276
|
exports.capitalize = capitalize;
|
|
277
|
-
exports
|
|
277
|
+
exports.default = createPlugin;
|
|
278
278
|
exports.movePlugin = movePlugin;
|
|
279
|
-
//# sourceMappingURL=createPlugin-
|
|
279
|
+
//# sourceMappingURL=createPlugin-CwxnrMzx.cjs.js.map
|