@backstage/cli 0.18.0-next.3 → 0.18.1-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.
Files changed (47) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/cjs/{Lockfile-48dc675e.cjs.js → Lockfile-72b7072e.cjs.js} +25 -9
  3. package/dist/cjs/{PackageGraph-f0f67c07.cjs.js → PackageGraph-5d948874.cjs.js} +17 -9
  4. package/dist/cjs/{build-031df87c.cjs.js → build-f78dac97.cjs.js} +26 -15
  5. package/dist/cjs/{buildBackend-18e7cabd.cjs.js → buildBackend-9ad412b4.cjs.js} +61 -36
  6. package/dist/cjs/{buildWorkspace-914ae12e.cjs.js → buildWorkspace-14c5555a.cjs.js} +7 -7
  7. package/dist/cjs/{bump-1f5a64c9.cjs.js → bump-63ce7a78.cjs.js} +88 -33
  8. package/dist/cjs/{clean-b8299216.cjs.js → clean-5cf1e765.cjs.js} +2 -2
  9. package/dist/cjs/{config-71a2dcd2.cjs.js → config-c432602b.cjs.js} +15 -11
  10. package/dist/cjs/{create-a9be7b0e.cjs.js → create-e0bcf927.cjs.js} +80 -32
  11. package/dist/cjs/{createDistWorkspace-766d0058.cjs.js → createDistWorkspace-8d497122.cjs.js} +137 -65
  12. package/dist/cjs/{createPlugin-d48693e2.cjs.js → createPlugin-97b1a86c.cjs.js} +69 -30
  13. package/dist/cjs/{diff-6421f2ce.cjs.js → diff-b5e5becb.cjs.js} +68 -16
  14. package/dist/cjs/{docs-ec275117.cjs.js → docs-8febf088.cjs.js} +9 -5
  15. package/dist/cjs/{fix-7895b0b3.cjs.js → fix-59653afd.cjs.js} +17 -7
  16. package/dist/cjs/{index-6767b145.cjs.js → index-4b5ea23c.cjs.js} +10 -10
  17. package/dist/cjs/{index-af40a01a.cjs.js → index-64071683.cjs.js} +160 -59
  18. package/dist/cjs/{index-cd8c20e7.cjs.js → index-7fd003de.cjs.js} +39 -12
  19. package/dist/cjs/{index-6b0e28e8.cjs.js → index-abf50752.cjs.js} +57 -38
  20. package/dist/cjs/{info-97caf6c7.cjs.js → info-b7d05969.cjs.js} +20 -6
  21. package/dist/cjs/{install-790d0667.cjs.js → install-b17550a5.cjs.js} +44 -17
  22. package/dist/cjs/{lint-41067178.cjs.js → lint-28cd7a0c.cjs.js} +4 -4
  23. package/dist/cjs/{lint-0206085a.cjs.js → lint-9116fb03.cjs.js} +5 -3
  24. package/dist/cjs/{lint-1bc2c212.cjs.js → lint-b6a6407d.cjs.js} +37 -11
  25. package/dist/cjs/{list-deprecations-2337d838.cjs.js → list-deprecations-645ddf66.cjs.js} +3 -3
  26. package/dist/cjs/{pack-b5ba1570.cjs.js → pack-85bbaf51.cjs.js} +17 -11
  27. package/dist/cjs/packageLintConfigs-bb58088c.cjs.js +83 -0
  28. package/dist/cjs/packageRole-295689e7.cjs.js +59 -0
  29. package/dist/cjs/{packageRoles-b5e829eb.cjs.js → packageRoles-6d4c3119.cjs.js} +5 -3
  30. package/dist/cjs/packageScripts-21f60a13.cjs.js +98 -0
  31. package/dist/cjs/{packages-7ca56467.cjs.js → packages-e645702a.cjs.js} +17 -12
  32. package/dist/cjs/parallel-a8f6219c.cjs.js +187 -0
  33. package/dist/cjs/{paths-c80fe7ab.cjs.js → paths-61bae2a9.cjs.js} +102 -57
  34. package/dist/cjs/{print-adfd6764.cjs.js → print-d340f261.cjs.js} +4 -4
  35. package/dist/cjs/{run-2bb25827.cjs.js → run-25dfd657.cjs.js} +2 -2
  36. package/dist/cjs/{schema-96221fea.cjs.js → schema-cd2a13c6.cjs.js} +9 -5
  37. package/dist/cjs/{tasks-79df19e9.cjs.js → tasks-673f06be.cjs.js} +29 -12
  38. package/dist/cjs/{test-17404205.cjs.js → test-4ea05d08.cjs.js} +3 -3
  39. package/dist/cjs/{validate-ff679735.cjs.js → validate-25c75473.cjs.js} +4 -4
  40. package/dist/index.cjs.js +1 -1
  41. package/package.json +20 -20
  42. package/templates/default-backend-plugin/package.json.hbs +1 -1
  43. package/templates/default-plugin/package.json.hbs +1 -1
  44. package/dist/cjs/packageLintConfigs-41dad1e5.cjs.js +0 -74
  45. package/dist/cjs/packageRole-41000cdd.cjs.js +0 -53
  46. package/dist/cjs/packageScripts-bd563024.cjs.js +0 -96
  47. package/dist/cjs/parallel-8286d3fa.cjs.js +0 -171
@@ -6,9 +6,9 @@ var path = require('path');
6
6
  var os = require('os');
7
7
  var tar = require('tar');
8
8
  var partition = require('lodash/partition');
9
- var index = require('./index-af40a01a.cjs.js');
10
- var run = require('./run-2bb25827.cjs.js');
11
- var PackageGraph = require('./PackageGraph-f0f67c07.cjs.js');
9
+ var index = require('./index-64071683.cjs.js');
10
+ var run = require('./run-25dfd657.cjs.js');
11
+ var PackageGraph = require('./PackageGraph-5d948874.cjs.js');
12
12
  var rollup = require('rollup');
13
13
  var commonjs = require('@rollup/plugin-commonjs');
14
14
  var resolve = require('@rollup/plugin-node-resolve');
@@ -20,8 +20,8 @@ var json = require('@rollup/plugin-json');
20
20
  var yaml = require('@rollup/plugin-yaml');
21
21
  var rollupPluginutils = require('rollup-pluginutils');
22
22
  var svgrTemplate = require('./svgrTemplate-550efce6.cjs.js');
23
- var parallel = require('./parallel-8286d3fa.cjs.js');
24
- var packageRoles = require('./packageRoles-b5e829eb.cjs.js');
23
+ var parallel = require('./parallel-a8f6219c.cjs.js');
24
+ var packageRoles = require('./packageRoles-6d4c3119.cjs.js');
25
25
  var npmPackList = require('npm-packlist');
26
26
 
27
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -64,12 +64,14 @@ function forwardFileImports(options) {
64
64
  }
65
65
  generatedFor.add(dir);
66
66
  const srcRoot = path.dirname(chunk.facadeModuleId);
67
- await Promise.all(Array.from(exportedFiles).map(async (exportedFile) => {
68
- const outputPath = path.relative(srcRoot, exportedFile);
69
- const targetFile = path.resolve(dir, outputPath);
70
- await fs__default["default"].ensureDir(path.dirname(targetFile));
71
- await fs__default["default"].copyFile(exportedFile, targetFile);
72
- }));
67
+ await Promise.all(
68
+ Array.from(exportedFiles).map(async (exportedFile) => {
69
+ const outputPath = path.relative(srcRoot, exportedFile);
70
+ const targetFile = path.resolve(dir, outputPath);
71
+ await fs__default["default"].ensureDir(path.dirname(targetFile));
72
+ await fs__default["default"].copyFile(exportedFile, targetFile);
73
+ })
74
+ );
73
75
  return;
74
76
  }
75
77
  },
@@ -194,11 +196,19 @@ async function makeRollupConfigs(options) {
194
196
  });
195
197
  }
196
198
  if (options.outputs.has(Output.types) && !options.useApiExtractor) {
197
- const typesInput = index.paths.resolveTargetRoot("dist-types", path.relative(index.paths.targetRoot, targetDir), "src/index.d.ts");
199
+ const typesInput = index.paths.resolveTargetRoot(
200
+ "dist-types",
201
+ path.relative(index.paths.targetRoot, targetDir),
202
+ "src/index.d.ts"
203
+ );
198
204
  const declarationsExist = await fs__default["default"].pathExists(typesInput);
199
205
  if (!declarationsExist) {
200
206
  const path$1 = path.relative(targetDir, typesInput);
201
- throw new Error(`No declaration files found at ${path$1}, be sure to run ${chalk__default["default"].bgRed.white("yarn tsc")} to generate .d.ts files before packaging`);
207
+ throw new Error(
208
+ `No declaration files found at ${path$1}, be sure to run ${chalk__default["default"].bgRed.white(
209
+ "yarn tsc"
210
+ )} to generate .d.ts files before packaging`
211
+ );
202
212
  }
203
213
  configs.push({
204
214
  input: typesInput,
@@ -227,7 +237,9 @@ async function buildTypeDefinitionsWorker(workerData, sendMessage) {
227
237
  try {
228
238
  require("@microsoft/api-extractor");
229
239
  } catch (error) {
230
- throw new Error("Failed to resolve @microsoft/api-extractor, it must best installed as a dependency of your project in order to use experimental type builds");
240
+ throw new Error(
241
+ "Failed to resolve @microsoft/api-extractor, it must best installed as a dependency of your project in order to use experimental type builds"
242
+ );
231
243
  }
232
244
  const { dirname } = require("path");
233
245
  const { entryPoints, workerConfigs, typescriptCompilerFolder } = workerData;
@@ -263,22 +275,36 @@ async function buildTypeDefinitionsWorker(workerData, sendMessage) {
263
275
  }
264
276
  });
265
277
  if (!extractorResult.succeeded) {
266
- throw new Error(`Type definition build completed with ${extractorResult.errorCount} errors and ${extractorResult.warningCount} warnings`);
278
+ throw new Error(
279
+ `Type definition build completed with ${extractorResult.errorCount} errors and ${extractorResult.warningCount} warnings`
280
+ );
267
281
  }
268
282
  }
269
283
  }
270
284
 
271
285
  const ignoredMessages = /* @__PURE__ */ new Set(["tsdoc-undefined-tag", "ae-forgotten-export"]);
272
286
  async function buildTypeDefinitions(targetDirs = [index.paths.targetDir]) {
273
- const packageDirs = targetDirs.map((dir) => path.relative(index.paths.targetRoot, dir));
274
- const entryPoints = await Promise.all(packageDirs.map(async (dir) => {
275
- const entryPoint = index.paths.resolveTargetRoot("dist-types", dir, "src/index.d.ts");
276
- const declarationsExist = await fs__default["default"].pathExists(entryPoint);
277
- if (!declarationsExist) {
278
- throw new Error(`No declaration files found at ${entryPoint}, be sure to run ${chalk__default["default"].bgRed.white("yarn tsc")} to generate .d.ts files before packaging`);
279
- }
280
- return entryPoint;
281
- }));
287
+ const packageDirs = targetDirs.map(
288
+ (dir) => path.relative(index.paths.targetRoot, dir)
289
+ );
290
+ const entryPoints = await Promise.all(
291
+ packageDirs.map(async (dir) => {
292
+ const entryPoint = index.paths.resolveTargetRoot(
293
+ "dist-types",
294
+ dir,
295
+ "src/index.d.ts"
296
+ );
297
+ const declarationsExist = await fs__default["default"].pathExists(entryPoint);
298
+ if (!declarationsExist) {
299
+ throw new Error(
300
+ `No declaration files found at ${entryPoint}, be sure to run ${chalk__default["default"].bgRed.white(
301
+ "yarn tsc"
302
+ )} to generate .d.ts files before packaging`
303
+ );
304
+ }
305
+ return entryPoint;
306
+ })
307
+ );
282
308
  const workerConfigs = packageDirs.map((packageDir) => {
283
309
  const targetDir = index.paths.resolveTargetRoot(packageDir);
284
310
  const targetTypesDir = index.paths.resolveTargetRoot("dist-types", packageDir);
@@ -407,9 +433,15 @@ async function rollupBuild(config) {
407
433
  }
408
434
  const buildPackage = async (options) => {
409
435
  try {
410
- const { resolutions } = await fs__default["default"].readJson(index.paths.resolveTargetRoot("package.json"));
436
+ const { resolutions } = await fs__default["default"].readJson(
437
+ index.paths.resolveTargetRoot("package.json")
438
+ );
411
439
  if (resolutions == null ? void 0 : resolutions.esbuild) {
412
- console.warn(chalk__default["default"].red('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`'));
440
+ console.warn(
441
+ chalk__default["default"].red(
442
+ '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`'
443
+ )
444
+ );
413
445
  }
414
446
  } catch {
415
447
  }
@@ -426,9 +458,13 @@ const buildPackages = async (options) => {
426
458
  throw new Error("targetDir must be set for all build options");
427
459
  }
428
460
  const rollupConfigs = await Promise.all(options.map(makeRollupConfigs));
429
- await Promise.all(options.map(({ targetDir }) => fs__default["default"].remove(path.resolve(targetDir, "dist"))));
461
+ await Promise.all(
462
+ options.map(({ targetDir }) => fs__default["default"].remove(path.resolve(targetDir, "dist")))
463
+ );
430
464
  const buildTasks = rollupConfigs.flat().map((opts) => () => rollupBuild(opts));
431
- const typeDefinitionTargetDirs = options.filter(({ outputs, useApiExtractor }) => outputs.has(Output.types) && useApiExtractor).map((_) => _.targetDir);
465
+ const typeDefinitionTargetDirs = options.filter(
466
+ ({ outputs, useApiExtractor }) => outputs.has(Output.types) && useApiExtractor
467
+ ).map((_) => _.targetDir);
432
468
  if (typeDefinitionTargetDirs.length > 0) {
433
469
  buildTasks.unshift(() => buildTypeDefinitions(typeDefinitionTargetDirs));
434
470
  }
@@ -460,14 +496,18 @@ function resolveEntrypoint(pkg, name) {
460
496
  }
461
497
  async function writeReleaseStageEntrypoint(pkg, stage, targetDir) {
462
498
  await fs__default["default"].ensureDir(path.resolve(targetDir, stage));
463
- await fs__default["default"].writeJson(path.resolve(targetDir, stage, "package.json"), {
464
- name: pkg.name,
465
- version: pkg.version,
466
- main: resolveEntrypoint(pkg, "main"),
467
- module: resolveEntrypoint(pkg, "module"),
468
- browser: resolveEntrypoint(pkg, "browser"),
469
- types: path.join("..", pkg.publishConfig[`${stage}Types`])
470
- }, { encoding: "utf8", spaces: 2 });
499
+ await fs__default["default"].writeJson(
500
+ path.resolve(targetDir, stage, "package.json"),
501
+ {
502
+ name: pkg.name,
503
+ version: pkg.version,
504
+ main: resolveEntrypoint(pkg, "main"),
505
+ module: resolveEntrypoint(pkg, "module"),
506
+ browser: resolveEntrypoint(pkg, "browser"),
507
+ types: path.join("..", pkg.publishConfig[`${stage}Types`])
508
+ },
509
+ { encoding: "utf8", spaces: 2 }
510
+ );
471
511
  }
472
512
  async function copyPackageDist(packageDir, targetDir) {
473
513
  var _a;
@@ -490,7 +530,10 @@ async function copyPackageDist(packageDir, targetDir) {
490
530
  const filePaths = await npmPackList__default["default"]({ path: packageDir });
491
531
  await fs__default["default"].ensureDir(targetDir);
492
532
  for (const filePath of filePaths.sort()) {
493
- await fs__default["default"].copy(path.resolve(packageDir, filePath), path.resolve(targetDir, filePath));
533
+ await fs__default["default"].copy(
534
+ path.resolve(packageDir, filePath),
535
+ path.resolve(targetDir, filePath)
536
+ );
494
537
  }
495
538
  if (publishConfig.alphaTypes) {
496
539
  await writeReleaseStageEntrypoint(pkg, "alpha", targetDir);
@@ -519,7 +562,9 @@ async function createDistWorkspace(packageNames, options = {}) {
519
562
  const targets = Array.from(targetNames).map((name) => packageGraph.get(name));
520
563
  if (options.buildDependencies) {
521
564
  const exclude = (_b = options.buildExcludes) != null ? _b : [];
522
- const toBuild = new Set(targets.map((_) => _.name).filter((name) => !exclude.includes(name)));
565
+ const toBuild = new Set(
566
+ targets.map((_) => _.name).filter((name) => !exclude.includes(name))
567
+ );
523
568
  const standardBuilds = new Array();
524
569
  const customBuild = new Array();
525
570
  for (const pkg of packages) {
@@ -528,7 +573,9 @@ async function createDistWorkspace(packageNames, options = {}) {
528
573
  }
529
574
  const role = (_c = pkg.packageJson.backstage) == null ? void 0 : _c.role;
530
575
  if (!role) {
531
- console.warn(`Building ${pkg.packageJson.name} separately because it has no role`);
576
+ console.warn(
577
+ `Building ${pkg.packageJson.name} separately because it has no role`
578
+ );
532
579
  customBuild.push(pkg.packageJson.name);
533
580
  continue;
534
581
  }
@@ -538,12 +585,16 @@ async function createDistWorkspace(packageNames, options = {}) {
538
585
  continue;
539
586
  }
540
587
  if (!buildScript.startsWith("backstage-cli package build")) {
541
- console.warn(`Building ${pkg.packageJson.name} separately because it has a custom build script, '${buildScript}'`);
588
+ console.warn(
589
+ `Building ${pkg.packageJson.name} separately because it has a custom build script, '${buildScript}'`
590
+ );
542
591
  customBuild.push(pkg.packageJson.name);
543
592
  continue;
544
593
  }
545
594
  if (packageRoles.getRoleInfo(role).output.includes("bundle")) {
546
- console.warn(`Building ${pkg.packageJson.name} separately because it is a bundled package`);
595
+ console.warn(
596
+ `Building ${pkg.packageJson.name} separately because it is a bundled package`
597
+ );
547
598
  customBuild.push(pkg.packageJson.name);
548
599
  continue;
549
600
  }
@@ -580,13 +631,16 @@ async function createDistWorkspace(packageNames, options = {}) {
580
631
  const dir = path.relative(index.paths.targetRoot, target.dir);
581
632
  return path.join(dir, "package.json");
582
633
  });
583
- await tar__default["default"].create({
584
- file: path.resolve(targetDir, options.skeleton),
585
- cwd: targetDir,
586
- portable: true,
587
- noMtime: true,
588
- gzip: options.skeleton.endsWith(".gz")
589
- }, skeletonFiles);
634
+ await tar__default["default"].create(
635
+ {
636
+ file: path.resolve(targetDir, options.skeleton),
637
+ cwd: targetDir,
638
+ portable: true,
639
+ noMtime: true,
640
+ gzip: options.skeleton.endsWith(".gz")
641
+ },
642
+ skeletonFiles
643
+ );
590
644
  }
591
645
  return targetDir;
592
646
  }
@@ -596,16 +650,21 @@ const FAST_PACK_SCRIPTS = [
596
650
  "backstage-cli package prepack"
597
651
  ];
598
652
  async function moveToDistWorkspace(workspaceDir, localPackages) {
599
- const [fastPackPackages, slowPackPackages] = partition__default["default"](localPackages, (pkg) => {
600
- var _a;
601
- return FAST_PACK_SCRIPTS.includes((_a = pkg.packageJson.scripts) == null ? void 0 : _a.prepack);
602
- });
603
- await Promise.all(fastPackPackages.map(async (target) => {
604
- console.log(`Moving ${target.name} into dist workspace`);
605
- const outputDir = path.relative(index.paths.targetRoot, target.dir);
606
- const absoluteOutputPath = path.resolve(workspaceDir, outputDir);
607
- await copyPackageDist(target.dir, absoluteOutputPath);
608
- }));
653
+ const [fastPackPackages, slowPackPackages] = partition__default["default"](
654
+ localPackages,
655
+ (pkg) => {
656
+ var _a;
657
+ return FAST_PACK_SCRIPTS.includes((_a = pkg.packageJson.scripts) == null ? void 0 : _a.prepack);
658
+ }
659
+ );
660
+ await Promise.all(
661
+ fastPackPackages.map(async (target) => {
662
+ console.log(`Moving ${target.name} into dist workspace`);
663
+ const outputDir = path.relative(index.paths.targetRoot, target.dir);
664
+ const absoluteOutputPath = path.resolve(workspaceDir, outputDir);
665
+ await copyPackageDist(target.dir, absoluteOutputPath);
666
+ })
667
+ );
609
668
  async function pack(target, archive) {
610
669
  var _a, _b;
611
670
  console.log(`Repacking ${target.name} into dist workspace`);
@@ -626,21 +685,34 @@ async function moveToDistWorkspace(workspaceDir, localPackages) {
626
685
  });
627
686
  await fs__default["default"].remove(archivePath);
628
687
  if (target.packageJson.bundled) {
629
- const pkgJson = await fs__default["default"].readJson(path.resolve(absoluteOutputPath, "package.json"));
688
+ const pkgJson = await fs__default["default"].readJson(
689
+ path.resolve(absoluteOutputPath, "package.json")
690
+ );
630
691
  delete pkgJson.dependencies;
631
692
  delete pkgJson.devDependencies;
632
693
  delete pkgJson.peerDependencies;
633
694
  delete pkgJson.optionalDependencies;
634
- await fs__default["default"].writeJson(path.resolve(absoluteOutputPath, "package.json"), pkgJson, {
635
- spaces: 2
636
- });
695
+ await fs__default["default"].writeJson(
696
+ path.resolve(absoluteOutputPath, "package.json"),
697
+ pkgJson,
698
+ {
699
+ spaces: 2
700
+ }
701
+ );
637
702
  }
638
703
  }
639
- const [unsafePackages, safePackages] = partition__default["default"](slowPackPackages, (p) => UNSAFE_PACKAGES.includes(p.name));
704
+ const [unsafePackages, safePackages] = partition__default["default"](
705
+ slowPackPackages,
706
+ (p) => UNSAFE_PACKAGES.includes(p.name)
707
+ );
640
708
  for (const target of unsafePackages) {
641
709
  await pack(target, `temp-package.tgz`);
642
710
  }
643
- await Promise.all(safePackages.map(async (target, index) => pack(target, `temp-package-${index}.tgz`)));
711
+ await Promise.all(
712
+ safePackages.map(
713
+ async (target, index) => pack(target, `temp-package-${index}.tgz`)
714
+ )
715
+ );
644
716
  }
645
717
 
646
718
  exports.Output = Output;
@@ -648,4 +720,4 @@ exports.buildPackage = buildPackage;
648
720
  exports.buildPackages = buildPackages;
649
721
  exports.createDistWorkspace = createDistWorkspace;
650
722
  exports.getOutputsForRole = getOutputsForRole;
651
- //# sourceMappingURL=createDistWorkspace-766d0058.cjs.js.map
723
+ //# sourceMappingURL=createDistWorkspace-8d497122.cjs.js.map
@@ -10,12 +10,12 @@ 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 tasks = require('./tasks-79df19e9.cjs.js');
14
- var index = require('./index-af40a01a.cjs.js');
15
- var Lockfile = require('./Lockfile-48dc675e.cjs.js');
13
+ var tasks = require('./tasks-673f06be.cjs.js');
14
+ var index = require('./index-64071683.cjs.js');
15
+ var Lockfile = require('./Lockfile-72b7072e.cjs.js');
16
16
  require('minimatch');
17
17
  require('@manypkg/get-packages');
18
- require('./run-2bb25827.cjs.js');
18
+ require('./run-25dfd657.cjs.js');
19
19
  require('handlebars');
20
20
  require('ora');
21
21
  require('recursive-readdir');
@@ -38,9 +38,13 @@ const exec = util.promisify(child_process.exec);
38
38
  async function checkExists(destination) {
39
39
  await tasks.Task.forItem("checking", destination, async () => {
40
40
  if (await fs__default["default"].pathExists(destination)) {
41
- const existing = chalk__default["default"].cyan(destination.replace(`${index.paths.targetRoot}/`, ""));
42
- throw new Error(`A plugin with the same name already exists: ${existing}
43
- Please try again with a different plugin ID`);
41
+ const existing = chalk__default["default"].cyan(
42
+ destination.replace(`${index.paths.targetRoot}/`, "")
43
+ );
44
+ throw new Error(
45
+ `A plugin with the same name already exists: ${existing}
46
+ Please try again with a different plugin ID`
47
+ );
44
48
  }
45
49
  });
46
50
  }
@@ -63,14 +67,18 @@ async function addPluginDependencyToApp(rootDir, pluginPackage, versionStr) {
63
67
  const packageFileJson = JSON.parse(packageFileContent);
64
68
  const dependencies = packageFileJson.dependencies;
65
69
  if (dependencies[pluginPackage]) {
66
- throw new Error(`Plugin ${pluginPackage} already exists in ${packageFile}`);
70
+ throw new Error(
71
+ `Plugin ${pluginPackage} already exists in ${packageFile}`
72
+ );
67
73
  }
68
74
  dependencies[pluginPackage] = `^${versionStr}`;
69
75
  packageFileJson.dependencies = sortObjectByKeys(dependencies);
70
76
  const newContents = `${JSON.stringify(packageFileJson, null, 2)}
71
77
  `;
72
78
  await fs__default["default"].writeFile(packageFile, newContents, "utf-8").catch((error) => {
73
- throw new Error(`Failed to add plugin as dependency to app: ${packageFile}: ${error.message}`);
79
+ throw new Error(
80
+ `Failed to add plugin as dependency to app: ${packageFile}: ${error.message}`
81
+ );
74
82
  });
75
83
  });
76
84
  }
@@ -83,12 +91,24 @@ async function addPluginExtensionToApp(pluginId, extensionName, pluginPackage) {
83
91
  var _a;
84
92
  const content = await fs__default["default"].readFile(pluginsFilePath, "utf8");
85
93
  const revLines = content.split("\n").reverse();
86
- const lastImportIndex = revLines.findIndex((line) => line.match(/ from ("|').*("|')/));
87
- const lastRouteIndex = revLines.findIndex((line) => line.match(/<\/FlatRoutes/));
94
+ const lastImportIndex = revLines.findIndex(
95
+ (line) => line.match(/ from ("|').*("|')/)
96
+ );
97
+ const lastRouteIndex = revLines.findIndex(
98
+ (line) => line.match(/<\/FlatRoutes/)
99
+ );
88
100
  if (lastImportIndex !== -1 && lastRouteIndex !== -1) {
89
- revLines.splice(lastImportIndex, 0, `import { ${extensionName} } from '${pluginPackage}';`);
101
+ revLines.splice(
102
+ lastImportIndex,
103
+ 0,
104
+ `import { ${extensionName} } from '${pluginPackage}';`
105
+ );
90
106
  const [indentation] = (_a = revLines[lastRouteIndex + 1].match(/^\s*/)) != null ? _a : [];
91
- revLines.splice(lastRouteIndex + 1, 0, `${indentation}<Route path="/${pluginId}" element={<${extensionName} />}/>`);
107
+ revLines.splice(
108
+ lastRouteIndex + 1,
109
+ 0,
110
+ `${indentation}<Route path="/${pluginId}" element={<${extensionName} />}/>`
111
+ );
92
112
  const newContent = revLines.reverse().join("\n");
93
113
  await fs__default["default"].writeFile(pluginsFilePath, newContent, "utf8");
94
114
  }
@@ -114,7 +134,9 @@ async function buildPlugin(pluginFolder) {
114
134
  }).catch((error) => {
115
135
  process.stdout.write(error.stderr);
116
136
  process.stdout.write(error.stdout);
117
- throw new Error(`Warning: Could not execute command ${chalk__default["default"].cyan(command)}`);
137
+ throw new Error(
138
+ `Warning: Could not execute command ${chalk__default["default"].cyan(command)}`
139
+ );
118
140
  });
119
141
  } catch (error) {
120
142
  errors.assertError(error);
@@ -126,7 +148,9 @@ async function buildPlugin(pluginFolder) {
126
148
  async function movePlugin(tempDir, destination, id) {
127
149
  await tasks.Task.forItem("moving", id, async () => {
128
150
  await fs__default["default"].move(tempDir, destination).catch((error) => {
129
- throw new Error(`Failed to move plugin from ${tempDir} to ${destination}: ${error.message}`);
151
+ throw new Error(
152
+ `Failed to move plugin from ${tempDir} to ${destination}: ${error.message}`
153
+ );
130
154
  });
131
155
  });
132
156
  }
@@ -141,7 +165,9 @@ var createPlugin = async (opts) => {
141
165
  if (!value) {
142
166
  return chalk__default["default"].red("Please enter an ID for the plugin");
143
167
  } else if (!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(value)) {
144
- return chalk__default["default"].red("Plugin IDs must be lowercase and contain only letters, digits, and dashes.");
168
+ return chalk__default["default"].red(
169
+ "Plugin IDs must be lowercase and contain only letters, digits, and dashes."
170
+ );
145
171
  }
146
172
  return true;
147
173
  }
@@ -151,14 +177,18 @@ var createPlugin = async (opts) => {
151
177
  questions.push({
152
178
  type: "input",
153
179
  name: "owner",
154
- message: chalk__default["default"].blue("Enter the owner(s) of the plugin. If specified, this will be added to CODEOWNERS for the plugin path. [optional]"),
180
+ message: chalk__default["default"].blue(
181
+ "Enter the owner(s) of the plugin. If specified, this will be added to CODEOWNERS for the plugin path. [optional]"
182
+ ),
155
183
  validate: (value) => {
156
184
  if (!value) {
157
185
  return true;
158
186
  }
159
187
  const ownerIds = tasks.parseOwnerIds(value);
160
188
  if (!ownerIds) {
161
- return chalk__default["default"].red("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).");
189
+ return chalk__default["default"].red(
190
+ "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)."
191
+ );
162
192
  }
163
193
  return true;
164
194
  }
@@ -173,7 +203,9 @@ var createPlugin = async (opts) => {
173
203
  const privatePackage = opts.private === false ? false : true;
174
204
  const isMonoRepo = await fs__default["default"].pathExists(index.paths.resolveTargetRoot("lerna.json"));
175
205
  const appPackage = index.paths.resolveTargetRoot("packages/app");
176
- const templateDir = index.paths.resolveOwn(opts.backend ? "templates/default-backend-plugin" : "templates/default-plugin");
206
+ const templateDir = index.paths.resolveOwn(
207
+ opts.backend ? "templates/default-backend-plugin" : "templates/default-plugin"
208
+ );
177
209
  const pluginDir = isMonoRepo ? index.paths.resolveTargetRoot("plugins", pluginId) : index.paths.resolveTargetRoot(pluginId);
178
210
  const { version: pluginVersion } = isMonoRepo ? await fs__default["default"].readJson(index.paths.resolveTargetRoot("lerna.json")) : { version: "0.1.0" };
179
211
  let lockfile;
@@ -187,18 +219,25 @@ var createPlugin = async (opts) => {
187
219
  tasks.Task.section("Checking if the plugin ID is available");
188
220
  await checkExists(pluginDir);
189
221
  tasks.Task.section("Creating a temporary plugin directory");
190
- const tempDir = await fs__default["default"].mkdtemp(path.join(os__default["default"].tmpdir(), `backstage-plugin-${pluginId}`));
222
+ const tempDir = await fs__default["default"].mkdtemp(
223
+ path.join(os__default["default"].tmpdir(), `backstage-plugin-${pluginId}`)
224
+ );
191
225
  try {
192
226
  tasks.Task.section("Preparing files");
193
- await tasks.templatingTask(templateDir, tempDir, {
194
- ...answers,
195
- pluginVar,
196
- pluginVersion,
197
- extensionName,
198
- name,
199
- privatePackage,
200
- npmRegistry
201
- }, index.createPackageVersionProvider(lockfile));
227
+ await tasks.templatingTask(
228
+ templateDir,
229
+ tempDir,
230
+ {
231
+ ...answers,
232
+ pluginVar,
233
+ pluginVersion,
234
+ extensionName,
235
+ name,
236
+ privatePackage,
237
+ npmRegistry
238
+ },
239
+ index.createPackageVersionProvider(lockfile)
240
+ );
202
241
  tasks.Task.section("Moving to final location");
203
242
  await movePlugin(tempDir, pluginDir, pluginId);
204
243
  tasks.Task.section("Building the plugin");
@@ -234,4 +273,4 @@ exports.addPluginExtensionToApp = addPluginExtensionToApp;
234
273
  exports.capitalize = capitalize;
235
274
  exports["default"] = createPlugin;
236
275
  exports.movePlugin = movePlugin;
237
- //# sourceMappingURL=createPlugin-d48693e2.cjs.js.map
276
+ //# sourceMappingURL=createPlugin-97b1a86c.cjs.js.map