@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.
Files changed (62) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/bin/backstage-cli +1 -9
  3. package/config/jest.js +1 -1
  4. package/config/nodeTransform.cjs +45 -0
  5. package/dist/cjs/{Lockfile-eced6070.cjs.js → Lockfile-C7rtIlD6.cjs.js} +13 -13
  6. package/dist/cjs/{build-8382b8d8.cjs.js → build-CwpT6bF2.cjs.js} +18 -16
  7. package/dist/cjs/{buildBackend-8dad4184.cjs.js → buildBackend-DA1sPj38.cjs.js} +39 -37
  8. package/dist/cjs/{buildWorkspace-65108f13.cjs.js → buildWorkspace-C1SYLOri.cjs.js} +13 -12
  9. package/dist/cjs/{bump-7eb29899.cjs.js → bump-CeCdrJTX.cjs.js} +38 -38
  10. package/dist/cjs/{clean-da51bc11.cjs.js → clean-Cv8IvozP.cjs.js} +10 -10
  11. package/dist/cjs/clean-DM4n37HU.cjs.js +22 -0
  12. package/dist/cjs/{codeowners-20b953b3.cjs.js → codeowners-D7pqDS5v.cjs.js} +12 -12
  13. package/dist/cjs/{config-56e0de04.cjs.js → config-30A1doGp.cjs.js} +2 -2
  14. package/dist/cjs/{createDistWorkspace-030a024c.cjs.js → createDistWorkspace-BGiN72e4.cjs.js} +57 -54
  15. package/dist/cjs/{createPlugin-204e49d9.cjs.js → createPlugin-CwxnrMzx.cjs.js} +41 -41
  16. package/dist/cjs/{diff-7d8597da.cjs.js → diff-D3wUBD1R.cjs.js} +27 -27
  17. package/dist/cjs/{docs-f78c80fc.cjs.js → docs-Cvi9d_ZX.cjs.js} +7 -7
  18. package/dist/cjs/{entryPoints-0cc55995.cjs.js → entryPoints-CoHH4lBA.cjs.js} +1 -1
  19. package/dist/cjs/{fix-d22e0b11.cjs.js → fix-Bea3_Noa.cjs.js} +5 -5
  20. package/dist/cjs/{index-09d2153b.cjs.js → index-D3oMtC-Y.cjs.js} +16 -14
  21. package/dist/cjs/{index-e1de5c59.cjs.js → index-DY45BN_5.cjs.js} +94 -81
  22. package/dist/cjs/{index-9544d932.cjs.js → index-DvRrNqwO.cjs.js} +56 -57
  23. package/dist/cjs/{index-edd730f9.cjs.js → index-nDVbtUZr.cjs.js} +27 -27
  24. package/dist/cjs/{index-9063098c.cjs.js → index-sM4O9JuD.cjs.js} +64 -72
  25. package/dist/cjs/{info-1f294f45.cjs.js → info-RFihkADz.cjs.js} +13 -13
  26. package/dist/cjs/{install-673dc92b.cjs.js → install-DoqtVqrm.cjs.js} +19 -19
  27. package/dist/cjs/{lint-8300340a.cjs.js → lint-BR_vl9_l.cjs.js} +6 -6
  28. package/dist/cjs/{lint-ba008767.cjs.js → lint-C7Wrrowb.cjs.js} +10 -10
  29. package/dist/cjs/{lint-b802a7cd.cjs.js → lint-YPKovWFd.cjs.js} +3 -3
  30. package/dist/cjs/{list-deprecations-e2ee5969.cjs.js → list-deprecations-BSHe0Jb3.cjs.js} +5 -5
  31. package/dist/cjs/{new-c58b4036.cjs.js → new-C_MIBxr7.cjs.js} +54 -54
  32. package/dist/cjs/{pack-50caa243.cjs.js → pack-CsV2iPfV.cjs.js} +4 -4
  33. package/dist/cjs/{packageDetection-4743318d.cjs.js → packageDetection-pUH1daGF.cjs.js} +48 -45
  34. package/dist/cjs/{packageExports-a1441001.cjs.js → packageExports-B8ow9_g8.cjs.js} +3 -3
  35. package/dist/cjs/{packageLintConfigs-d64c7abd.cjs.js → packageLintConfigs-DU8CUxDG.cjs.js} +8 -8
  36. package/dist/cjs/{packageRole-dac636ac.cjs.js → packageRole-BPygF5yd.cjs.js} +6 -6
  37. package/dist/cjs/{packageScripts-bb7b6de2.cjs.js → packageScripts-CPnlPBBs.cjs.js} +4 -4
  38. package/dist/cjs/{packages-6d977cf6.cjs.js → packages-BlHOrEEW.cjs.js} +4 -4
  39. package/dist/cjs/{parallel-2d9d247e.cjs.js → parallel-BszNaKyc.cjs.js} +4 -4
  40. package/dist/cjs/{print-6b92e96e.cjs.js → print-DoEMvoPB.cjs.js} +4 -4
  41. package/dist/cjs/{productionPack-8b9ac9b7.cjs.js → productionPack-DotlEIE2.cjs.js} +19 -19
  42. package/dist/cjs/{reactRouterDeps-a2bb1d62.cjs.js → reactRouterDeps-BBKc6o07.cjs.js} +4 -4
  43. package/dist/cjs/{role-a4d0fea7.cjs.js → role-C2mHZAQE.cjs.js} +5 -5
  44. package/dist/cjs/{run-d7eebc11.cjs.js → run-DdHCwSFu.cjs.js} +2 -2
  45. package/dist/cjs/{schema-4835d534.cjs.js → schema-BC3xv-Rs.cjs.js} +4 -4
  46. package/dist/cjs/{svgrTemplate-3549ea1c.cjs.js → svgrTemplate-BTjBQ3by.cjs.js} +1 -1
  47. package/dist/cjs/{tasks-84de240c.cjs.js → tasks-mGXy8WjR.cjs.js} +23 -23
  48. package/dist/cjs/{test-5db6618e.cjs.js → test-CE3ZjSss.cjs.js} +6 -6
  49. package/dist/cjs/{test-7743a73f.cjs.js → test-dJeJGdt8.cjs.js} +4 -4
  50. package/dist/cjs/{validate-beb5d30e.cjs.js → validate-BsyK7u74.cjs.js} +4 -4
  51. package/dist/cjs/{yarn-6cd89e16.cjs.js → yarn-BDZCENk5.cjs.js} +1 -1
  52. package/dist/index.cjs.js +1 -1
  53. package/package.json +30 -26
  54. package/templates/default-backend-plugin/dev/index.ts +9 -0
  55. package/templates/default-backend-plugin/package.json.hbs +4 -0
  56. package/templates/default-backend-plugin/src/index.ts.hbs +2 -0
  57. package/templates/default-backend-plugin/src/plugin.ts.hbs +32 -0
  58. package/templates/default-backend-plugin/src/service/router.ts +3 -2
  59. package/dist/cjs/clean-5afc7d48.cjs.js +0 -22
  60. package/templates/default-backend-plugin/src/index.ts +0 -1
  61. package/templates/default-backend-plugin/src/run.ts.hbs +0 -17
  62. package/templates/default-backend-plugin/src/service/standaloneServer.ts.hbs +0 -34
@@ -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-e1de5c59.cjs.js');
10
- var run = require('./run-d7eebc11.cjs.js');
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-3549ea1c.cjs.js');
22
- var entryPoints = require('./entryPoints-0cc55995.cjs.js');
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-2d9d247e.cjs.js');
25
- var productionPack = require('./productionPack-8b9ac9b7.cjs.js');
25
+ var parallel = require('./parallel-BszNaKyc.cjs.js');
26
+ var productionPack = require('./productionPack-DotlEIE2.cjs.js');
26
27
 
27
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
28
29
 
29
- var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
30
- var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
31
- var tar__default = /*#__PURE__*/_interopDefaultLegacy(tar);
32
- var partition__default = /*#__PURE__*/_interopDefaultLegacy(partition);
33
- var commonjs__default = /*#__PURE__*/_interopDefaultLegacy(commonjs);
34
- var resolve__default = /*#__PURE__*/_interopDefaultLegacy(resolve);
35
- var postcss__default = /*#__PURE__*/_interopDefaultLegacy(postcss);
36
- var esbuild__default = /*#__PURE__*/_interopDefaultLegacy(esbuild);
37
- var svgr__default = /*#__PURE__*/_interopDefaultLegacy(svgr);
38
- var dts__default = /*#__PURE__*/_interopDefaultLegacy(dts);
39
- var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
40
- var yaml__default = /*#__PURE__*/_interopDefaultLegacy(yaml);
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["default"].ensureDir(path.dirname(targetFile));
71
- await fs__default["default"].copyFile(exportedFile, targetFile);
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["default"].readJson(packagePath);
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["default"]({ mainFields }),
179
- commonjs__default["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["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["default"](),
200
- yaml__default["default"](),
201
- svgr__default["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["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["default"].pathExists(path$1);
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["default"].bgRed.white(
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["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["default"].cyan(`${path$1}:${line}:${column}`);
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["default"].cyan(error.url)}
300
+ msg += `${chalk__default.default.cyan(error.url)}
298
301
  `;
299
302
  }
300
303
  if (error.frame) {
301
- msg += `${chalk__default["default"].dim(error.frame)}
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["default"].readJson(
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["default"].red(
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["default"].remove(index.paths.resolveTarget("dist"));
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["default"].remove(path.resolve(targetDir, "dist")))
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["default"].mkdtemp(path.resolve(os.tmpdir(), "dist-workspace"));
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["default"].cyan(path.relative(index.paths.targetRoot, pkg.dir))}: `,
441
- // No need to detect these for the backend builds, we assume no minification or types
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["default"].copy(index.paths.resolveTargetRoot(src), path.resolve(targetDir, dest));
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["default"].create(
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["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["default"].ensureDir(absoluteOutputPath);
526
- await tar__default["default"].extract({
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["default"].remove(archivePath);
533
+ await fs__default.default.remove(archivePath);
532
534
  if (target.packageJson.bundled) {
533
- const pkgJson = await fs__default["default"].readJson(
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["default"].writeJson(
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["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
- async (target, index) => pack(target, `temp-package-${index}.tgz`)
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-030a024c.cjs.js.map
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-20b953b3.cjs.js');
14
- var index = require('./index-e1de5c59.cjs.js');
15
- var tasks = require('./tasks-84de240c.cjs.js');
16
- var Lockfile = require('./Lockfile-eced6070.cjs.js');
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-6cd89e16.cjs.js');
20
- require('./run-d7eebc11.cjs.js');
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 _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
31
31
 
32
- var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
33
- var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
34
- var inquirer__default = /*#__PURE__*/_interopDefaultLegacy(inquirer);
35
- var camelCase__default = /*#__PURE__*/_interopDefaultLegacy(camelCase);
36
- var upperFirst__default = /*#__PURE__*/_interopDefaultLegacy(upperFirst);
37
- var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
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["default"].pathExists(destination)) {
43
- const existing = chalk__default["default"].cyan(
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["default"].readFileSync(file, "utf8").split("\n").filter(Boolean).concat([exportStatement]).concat([""]).join("\n");
62
- await fs__default["default"].writeFile(file, newContents, "utf8");
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["default"].readFile(packageFile, "utf-8");
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["default"].writeFile(packageFile, newContents, "utf-8").catch((error) => {
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["default"].pathExists(pluginsFilePath)) {
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["default"].readFile(pluginsFilePath, "utf8");
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["default"].writeFile(pluginsFilePath, newContent, "utf8");
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["default"].remove(tempDir);
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["default"].cyan(command)}`
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["default"].move(tempDir, destination).catch((error) => {
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["default"].blue("Enter an ID for the plugin [required]"),
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["default"].red("Please enter an ID for the plugin");
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["default"].red(
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["default"].blue(
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["default"].red(
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["default"].prompt(questions);
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["default"](answers.id)}Plugin`;
203
- const extensionName = `${upperFirst__default["default"](camelCase__default["default"](answers.id))}Page`;
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["default"].pathExists(index.paths.resolveTargetRoot("lerna.json"));
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["default"].readJson(index.paths.resolveTargetRoot("lerna.json")) : { version: "0.1.0" };
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["default"].mkdtemp(
225
- path.join(os__default["default"].tmpdir(), `backstage-plugin-${pluginId}`)
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["default"].pathExists(appPackage) && !opts.backend) {
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["default"].cyan(`${name}`)}`);
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["default"] = createPlugin;
277
+ exports.default = createPlugin;
278
278
  exports.movePlugin = movePlugin;
279
- //# sourceMappingURL=createPlugin-204e49d9.cjs.js.map
279
+ //# sourceMappingURL=createPlugin-CwxnrMzx.cjs.js.map