@backstage/cli 0.35.4-next.2 → 0.35.5-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/index.cjs.js +1 -0
  3. package/dist/lib/cache/SuccessCache.cjs.js +2 -2
  4. package/dist/lib/typeDistProject.cjs.js +2 -2
  5. package/dist/lib/version.cjs.js +4 -3
  6. package/dist/lib/yarnPlugin.cjs.js +2 -2
  7. package/dist/modules/build/commands/package/build/command.cjs.js +16 -8
  8. package/dist/modules/build/commands/package/start/command.cjs.js +3 -3
  9. package/dist/modules/build/commands/package/start/startBackend.cjs.js +2 -2
  10. package/dist/modules/build/commands/package/start/startFrontend.cjs.js +5 -7
  11. package/dist/modules/build/commands/repo/build.cjs.js +6 -7
  12. package/dist/modules/build/commands/repo/start.cjs.js +3 -3
  13. package/dist/modules/build/index.cjs.js +6 -0
  14. package/dist/modules/build/lib/buildBackend.cjs.js +0 -2
  15. package/dist/modules/build/lib/buildFrontend.cjs.js +4 -8
  16. package/dist/modules/build/lib/builder/config.cjs.js +5 -5
  17. package/dist/modules/build/lib/builder/packager.cjs.js +7 -8
  18. package/dist/modules/build/lib/bundler/bundle.cjs.js +9 -2
  19. package/dist/modules/build/lib/bundler/config.cjs.js +20 -78
  20. package/dist/modules/build/lib/bundler/hasReactDomClient.cjs.js +2 -2
  21. package/dist/modules/build/lib/bundler/linkWorkspaces.cjs.js +2 -2
  22. package/dist/modules/build/lib/bundler/moduleFederation.cjs.js +99 -16
  23. package/dist/modules/build/lib/bundler/packageDetection.cjs.js +2 -2
  24. package/dist/modules/build/lib/bundler/paths.cjs.js +8 -6
  25. package/dist/modules/build/lib/bundler/server.cjs.js +24 -14
  26. package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +9 -9
  27. package/dist/modules/build/lib/packager/productionPack.cjs.js +1 -1
  28. package/dist/{lib → modules/build/lib}/role.cjs.js +2 -2
  29. package/dist/modules/build/lib/runner/runBackend.cjs.js +2 -2
  30. package/dist/modules/config/lib/config.cjs.js +4 -4
  31. package/dist/modules/create-github-app/commands/create-github-app/index.cjs.js +2 -2
  32. package/dist/modules/info/commands/info.cjs.js +4 -5
  33. package/dist/modules/lint/commands/package/lint.cjs.js +4 -4
  34. package/dist/modules/lint/commands/repo/lint.cjs.js +8 -9
  35. package/dist/modules/maintenance/commands/package/clean.cjs.js +4 -4
  36. package/dist/modules/maintenance/commands/package/pack.cjs.js +5 -5
  37. package/dist/modules/maintenance/commands/repo/clean.cjs.js +3 -4
  38. package/dist/modules/maintenance/commands/repo/fix.cjs.js +7 -7
  39. package/dist/modules/maintenance/commands/repo/list-deprecations.cjs.js +4 -4
  40. package/dist/modules/migrate/commands/packageRole.cjs.js +2 -2
  41. package/dist/modules/migrate/commands/versions/bump.cjs.js +8 -9
  42. package/dist/modules/new/lib/codeowners/codeowners.cjs.js +2 -2
  43. package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +2 -3
  44. package/dist/modules/new/lib/execution/installNewPackage.cjs.js +4 -4
  45. package/dist/modules/new/lib/execution/writeTemplateContents.cjs.js +1 -2
  46. package/dist/modules/new/lib/preparation/collectPortableTemplateInput.cjs.js +2 -2
  47. package/dist/modules/new/lib/preparation/loadPortableTemplate.cjs.js +2 -2
  48. package/dist/modules/new/lib/preparation/loadPortableTemplateConfig.cjs.js +2 -2
  49. package/dist/modules/test/commands/package/test.cjs.js +1 -2
  50. package/dist/modules/test/commands/repo/test.cjs.js +3 -4
  51. package/dist/modules/test/index.cjs.js +3 -1
  52. package/dist/modules/translations/commands/export.cjs.js +104 -0
  53. package/dist/modules/translations/commands/import.cjs.js +141 -0
  54. package/dist/modules/translations/index.cjs.js +59 -0
  55. package/dist/modules/translations/lib/discoverPackages.cjs.js +121 -0
  56. package/dist/modules/translations/lib/extractTranslations.cjs.js +71 -0
  57. package/dist/modules/translations/lib/messageFilePath.cjs.js +43 -0
  58. package/dist/packages/backend-defaults/package.json.cjs.js +1 -1
  59. package/dist/packages/backend-plugin-api/package.json.cjs.js +1 -1
  60. package/dist/packages/backend-test-utils/package.json.cjs.js +1 -1
  61. package/dist/packages/catalog-client/package.json.cjs.js +1 -1
  62. package/dist/packages/cli/package.json.cjs.js +7 -6
  63. package/dist/packages/core-app-api/package.json.cjs.js +1 -1
  64. package/dist/packages/core-components/package.json.cjs.js +1 -1
  65. package/dist/packages/core-plugin-api/package.json.cjs.js +1 -1
  66. package/dist/packages/dev-utils/package.json.cjs.js +1 -1
  67. package/dist/packages/frontend-defaults/package.json.cjs.js +1 -1
  68. package/dist/packages/frontend-plugin-api/package.json.cjs.js +1 -1
  69. package/dist/packages/frontend-test-utils/package.json.cjs.js +1 -1
  70. package/dist/packages/test-utils/package.json.cjs.js +1 -1
  71. package/dist/packages/theme/package.json.cjs.js +1 -1
  72. package/dist/plugins/auth-backend/package.json.cjs.js +1 -1
  73. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +1 -1
  74. package/dist/plugins/catalog-node/package.json.cjs.js +1 -1
  75. package/dist/plugins/scaffolder-node/package.json.cjs.js +1 -1
  76. package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +1 -1
  77. package/package.json +28 -27
  78. package/dist/lib/parallel.cjs.js +0 -141
  79. package/dist/lib/paths.cjs.js +0 -8
  80. /package/dist/{lib → modules/build/lib}/entryPoints.cjs.js +0 -0
@@ -6,7 +6,7 @@ var fs = require('fs-extra');
6
6
  var chalk = require('chalk');
7
7
  var yaml = require('yaml');
8
8
  var inquirer = require('inquirer');
9
- var paths = require('../../../../lib/paths.cjs.js');
9
+ var cliCommon = require('@backstage/cli-common');
10
10
  var GithubCreateAppServer = require('./GithubCreateAppServer.cjs.js');
11
11
  var openBrowser = require('react-dev-utils/openBrowser');
12
12
 
@@ -51,7 +51,7 @@ var index = async (org) => {
51
51
  const fileName = `github-app-${slug}-credentials.yaml`;
52
52
  const content = `# Name: ${name}
53
53
  ${yaml.stringify(config)}`;
54
- await fs__default.default.writeFile(paths.paths.resolveTargetRoot(fileName), content);
54
+ await fs__default.default.writeFile(cliCommon.targetPaths.resolveRoot(fileName), content);
55
55
  console.log(`GitHub App configuration written to ${chalk__default.default.cyan(fileName)}`);
56
56
  console.log(
57
57
  chalk__default.default.yellow(
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var _package = require('../../../packages/cli/package.json.cjs.js');
6
6
  var os = require('node:os');
7
7
  var cliCommon = require('@backstage/cli-common');
8
- var paths = require('../../../lib/paths.cjs.js');
9
8
  var Lockfile = require('../../../lib/versioning/Lockfile.cjs.js');
10
9
  var minimatch = require('minimatch');
11
10
  require('@manypkg/get-packages');
@@ -34,8 +33,8 @@ function hasBackstageField(packageName, targetPath) {
34
33
  var info = async (options) => {
35
34
  await new Promise(async () => {
36
35
  const yarnVersion = await cliCommon.runOutput(["yarn", "--version"]);
37
- const isLocal = fs__default.default.existsSync(paths.paths.resolveOwn("./src"));
38
- const backstageFile = paths.paths.resolveTargetRoot("backstage.json");
36
+ const isLocal = fs__default.default.existsSync(cliCommon.findOwnPaths(__dirname).resolve("./src"));
37
+ const backstageFile = cliCommon.targetPaths.resolveRoot("backstage.json");
39
38
  let backstageVersion = "N/A";
40
39
  if (fs__default.default.existsSync(backstageFile)) {
41
40
  try {
@@ -57,9 +56,9 @@ var info = async (options) => {
57
56
  cli: { version: _package.version, local: isLocal },
58
57
  backstage: backstageVersion
59
58
  };
60
- const lockfilePath = paths.paths.resolveTargetRoot("yarn.lock");
59
+ const lockfilePath = cliCommon.targetPaths.resolveRoot("yarn.lock");
61
60
  const lockfile = await Lockfile.Lockfile.load(lockfilePath);
62
- const targetPath = paths.paths.targetRoot;
61
+ const targetPath = cliCommon.targetPaths.rootDir;
63
62
  const workspacePackages = /* @__PURE__ */ new Map();
64
63
  try {
65
64
  const packages = await cliNode.PackageGraph.listTargetPackages();
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var fs = require('fs-extra');
6
- var paths = require('../../../../lib/paths.cjs.js');
6
+ var cliCommon = require('@backstage/cli-common');
7
7
  var eslint = require('eslint');
8
8
 
9
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -12,7 +12,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
12
12
 
13
13
  var lint = async (directories, opts) => {
14
14
  const eslint$1 = new eslint.ESLint({
15
- cwd: paths.paths.targetDir,
15
+ cwd: cliCommon.targetPaths.dir,
16
16
  fix: opts.fix,
17
17
  extensions: ["js", "jsx", "ts", "tsx", "mjs", "cjs"]
18
18
  });
@@ -27,12 +27,12 @@ var lint = async (directories, opts) => {
27
27
  }
28
28
  const formatter = await eslint$1.loadFormatter(opts.format);
29
29
  if (opts.format === "eslint-formatter-friendly") {
30
- process.chdir(paths.paths.targetRoot);
30
+ process.chdir(cliCommon.targetPaths.rootDir);
31
31
  }
32
32
  const resultText = await formatter.format(results);
33
33
  if (resultText) {
34
34
  if (opts.outputFile) {
35
- await fs__default.default.writeFile(paths.paths.resolveTarget(opts.outputFile), resultText);
35
+ await fs__default.default.writeFile(cliCommon.targetPaths.resolve(opts.outputFile), resultText);
36
36
  } else {
37
37
  console.log(resultText);
38
38
  }
@@ -5,8 +5,7 @@ var fs = require('fs-extra');
5
5
  var crypto = require('node:crypto');
6
6
  var path = require('node:path');
7
7
  var cliNode = require('@backstage/cli-node');
8
- var paths = require('../../../../lib/paths.cjs.js');
9
- var parallel = require('../../../../lib/parallel.cjs.js');
8
+ var cliCommon = require('@backstage/cli-common');
10
9
  var optionsParser = require('../../../../lib/optionsParser.cjs.js');
11
10
  var SuccessCache = require('../../../../lib/cache/SuccessCache.cjs.js');
12
11
 
@@ -25,7 +24,7 @@ async function command(opts, cmd) {
25
24
  const cache = new SuccessCache.SuccessCache("lint", opts.successCacheDir);
26
25
  const cacheContext = opts.successCache ? {
27
26
  entries: await cache.read(),
28
- lockfile: await cliNode.Lockfile.load(paths.paths.resolveTargetRoot("yarn.lock"))
27
+ lockfile: await cliNode.Lockfile.load(cliCommon.targetPaths.resolveRoot("yarn.lock"))
29
28
  } : void 0;
30
29
  if (opts.since) {
31
30
  const graph = cliNode.PackageGraph.fromPackages(packages);
@@ -36,7 +35,7 @@ async function command(opts, cmd) {
36
35
  }
37
36
  packages.sort((a, b) => depCount(b.packageJson) - depCount(a.packageJson));
38
37
  if (opts.format === "eslint-formatter-friendly") {
39
- process.chdir(paths.paths.targetRoot);
38
+ process.chdir(cliCommon.targetPaths.rootDir);
40
39
  }
41
40
  if (!process.env.FORCE_COLOR) {
42
41
  process.env.FORCE_COLOR = "1";
@@ -47,7 +46,7 @@ async function command(opts, cmd) {
47
46
  const lintOptions = parseLintScript(pkg.packageJson.scripts?.lint);
48
47
  const base = {
49
48
  fullDir: pkg.dir,
50
- relativeDir: path.relative(paths.paths.targetRoot, pkg.dir),
49
+ relativeDir: path.relative(cliCommon.targetPaths.rootDir, pkg.dir),
51
50
  lintOptions,
52
51
  parentHash: void 0
53
52
  };
@@ -70,16 +69,16 @@ async function command(opts, cmd) {
70
69
  };
71
70
  })
72
71
  );
73
- const resultsList = await parallel.runWorkerQueueThreads({
72
+ const { results: resultsList } = await cliNode.runWorkerQueueThreads({
74
73
  items: items.filter((item) => item.lintOptions),
75
74
  // Filter out packages without lint script
76
- workerData: {
75
+ context: {
77
76
  fix: Boolean(opts.fix),
78
77
  format: opts.format,
79
78
  shouldCache: Boolean(cacheContext),
80
79
  maxWarnings: opts.maxWarnings ?? -1,
81
80
  successCache: cacheContext?.entries,
82
- rootDir: paths.paths.targetRoot
81
+ rootDir: cliCommon.targetPaths.rootDir
83
82
  },
84
83
  workerFactory: async ({
85
84
  fix,
@@ -197,7 +196,7 @@ async function command(opts, cmd) {
197
196
  errorOutput = JSON.stringify(mergedJsonResults, null, 2);
198
197
  }
199
198
  if (opts.outputFile && errorOutput) {
200
- await fs__default.default.writeFile(paths.paths.resolveTargetRoot(opts.outputFile), errorOutput);
199
+ await fs__default.default.writeFile(cliCommon.targetPaths.resolveRoot(opts.outputFile), errorOutput);
201
200
  }
202
201
  if (cacheContext) {
203
202
  await cache.write(outputSuccessCache);
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var fs = require('fs-extra');
6
- var paths = require('../../../../lib/paths.cjs.js');
6
+ var cliCommon = require('@backstage/cli-common');
7
7
 
8
8
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
9
9
 
10
10
  var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
11
11
 
12
12
  async function clean() {
13
- await fs__default.default.remove(paths.paths.resolveTarget("dist"));
14
- await fs__default.default.remove(paths.paths.resolveTarget("dist-types"));
15
- await fs__default.default.remove(paths.paths.resolveTarget("coverage"));
13
+ await fs__default.default.remove(cliCommon.targetPaths.resolve("dist"));
14
+ await fs__default.default.remove(cliCommon.targetPaths.resolve("dist-types"));
15
+ await fs__default.default.remove(cliCommon.targetPaths.resolve("coverage"));
16
16
  }
17
17
 
18
18
  exports.default = clean;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var productionPack = require('../../../build/lib/packager/productionPack.cjs.js');
4
- var paths = require('../../../../lib/paths.cjs.js');
4
+ var cliCommon = require('@backstage/cli-common');
5
5
  var fs = require('fs-extra');
6
6
  var publishing = require('../../lib/publishing.cjs.js');
7
7
  var typeDistProject = require('../../../../lib/typeDistProject.cjs.js');
@@ -12,16 +12,16 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
12
12
 
13
13
  const pre = async () => {
14
14
  publishing.publishPreflightCheck({
15
- dir: paths.paths.targetDir,
16
- packageJson: await fs__default.default.readJson(paths.paths.resolveTarget("package.json"))
15
+ dir: cliCommon.targetPaths.dir,
16
+ packageJson: await fs__default.default.readJson(cliCommon.targetPaths.resolve("package.json"))
17
17
  });
18
18
  await productionPack.productionPack({
19
- packageDir: paths.paths.targetDir,
19
+ packageDir: cliCommon.targetPaths.dir,
20
20
  featureDetectionProject: await typeDistProject.createTypeDistProject()
21
21
  });
22
22
  };
23
23
  const post = async () => {
24
- await productionPack.revertProductionPack(paths.paths.targetDir);
24
+ await productionPack.revertProductionPack(cliCommon.targetPaths.dir);
25
25
  };
26
26
 
27
27
  exports.post = post;
@@ -3,7 +3,6 @@
3
3
  var fs = require('fs-extra');
4
4
  var path = require('node:path');
5
5
  var cliNode = require('@backstage/cli-node');
6
- var paths = require('../../../../lib/paths.cjs.js');
7
6
  var cliCommon = require('@backstage/cli-common');
8
7
 
9
8
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -12,9 +11,9 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
12
11
 
13
12
  async function command() {
14
13
  const packages = await cliNode.PackageGraph.listTargetPackages();
15
- await fs__default.default.remove(paths.paths.resolveTargetRoot("dist"));
16
- await fs__default.default.remove(paths.paths.resolveTargetRoot("dist-types"));
17
- await fs__default.default.remove(paths.paths.resolveTargetRoot("coverage"));
14
+ await fs__default.default.remove(cliCommon.targetPaths.resolveRoot("dist"));
15
+ await fs__default.default.remove(cliCommon.targetPaths.resolveRoot("dist-types"));
16
+ await fs__default.default.remove(cliCommon.targetPaths.resolveRoot("coverage"));
18
17
  await Promise.all(
19
18
  Array.from(Array(10), async () => {
20
19
  while (packages.length > 0) {
@@ -3,7 +3,7 @@
3
3
  var cliNode = require('@backstage/cli-node');
4
4
  var fs = require('fs-extra');
5
5
  var path = require('node:path');
6
- var paths = require('../../../../lib/paths.cjs.js');
6
+ var cliCommon = require('@backstage/cli-common');
7
7
  var publishing = require('../../lib/publishing.cjs.js');
8
8
 
9
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -18,7 +18,7 @@ async function readFixablePackages() {
18
18
  function printPackageFixHint(packages) {
19
19
  const changed = packages.filter((pkg) => pkg.changed);
20
20
  if (changed.length > 0) {
21
- const rootPkg = require(paths.paths.resolveTargetRoot("package.json"));
21
+ const rootPkg = require(cliCommon.targetPaths.resolveRoot("package.json"));
22
22
  const fixCmd = rootPkg.scripts?.fix === "backstage-cli repo fix" ? "fix" : "backstage-cli repo fix";
23
23
  console.log(
24
24
  `The following packages are out of sync, run 'yarn ${fixCmd}' to fix them:`
@@ -148,7 +148,7 @@ function fixSideEffects(pkg) {
148
148
  pkg.changed = true;
149
149
  }
150
150
  function createRepositoryFieldFixer() {
151
- const rootPkg = require(paths.paths.resolveTargetRoot("package.json"));
151
+ const rootPkg = require(cliCommon.targetPaths.resolveRoot("package.json"));
152
152
  const rootRepoField = rootPkg.repository;
153
153
  if (!rootRepoField) {
154
154
  return () => {
@@ -160,7 +160,7 @@ function createRepositoryFieldFixer() {
160
160
  return (pkg) => {
161
161
  const expectedPath = path.posix.join(
162
162
  rootDir,
163
- path.relative(paths.paths.targetRoot, pkg.dir)
163
+ path.relative(cliCommon.targetPaths.rootDir, pkg.dir)
164
164
  );
165
165
  const repoField = pkg.packageJson.repository;
166
166
  if (!repoField || typeof repoField === "string") {
@@ -234,7 +234,7 @@ function fixPluginId(pkg) {
234
234
  const guessedPluginId = guessPluginId(role, pkg.packageJson.name);
235
235
  if (!guessedPluginId && (role === "frontend-plugin" || role === "frontend-plugin-module" || role === "backend-plugin" || role === "backend-plugin-module")) {
236
236
  const path$1 = path.relative(
237
- paths.paths.targetRoot,
237
+ cliCommon.targetPaths.rootDir,
238
238
  path.resolve(pkg.dir, "package.json")
239
239
  );
240
240
  const msg = `Failed to guess plugin ID for "${pkg.packageJson.name}", please set the 'backstage.pluginId' field manually in "${path$1}"`;
@@ -305,7 +305,7 @@ function fixPluginPackages(pkg, repoPackages) {
305
305
  return;
306
306
  }
307
307
  const path$1 = path.relative(
308
- paths.paths.targetRoot,
308
+ cliCommon.targetPaths.rootDir,
309
309
  path.resolve(pkg.dir, "package.json")
310
310
  );
311
311
  const suggestedRole = role === "frontend-plugin-module" ? "web-library" : "node-library";
@@ -341,7 +341,7 @@ function fixPeerModules(pkg) {
341
341
  return;
342
342
  }
343
343
  const packagePath = path.relative(
344
- paths.paths.targetRoot,
344
+ cliCommon.targetPaths.rootDir,
345
345
  path.resolve(pkg.dir, "package.json")
346
346
  );
347
347
  if (role !== "backend-plugin" && role !== "frontend-plugin") {
@@ -4,7 +4,7 @@ var chalk = require('chalk');
4
4
  var eslint = require('eslint');
5
5
  var path = require('node:path');
6
6
  var cliNode = require('@backstage/cli-node');
7
- var paths = require('../../../../lib/paths.cjs.js');
7
+ var cliCommon = require('@backstage/cli-common');
8
8
 
9
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
10
10
 
@@ -13,14 +13,14 @@ var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
13
13
  async function command(opts) {
14
14
  const packages = await cliNode.PackageGraph.listTargetPackages();
15
15
  const eslint$1 = new eslint.ESLint({
16
- cwd: paths.paths.targetDir,
16
+ cwd: cliCommon.targetPaths.dir,
17
17
  overrideConfig: {
18
18
  plugins: ["deprecation"],
19
19
  rules: {
20
20
  "deprecation/deprecation": "error"
21
21
  },
22
22
  parserOptions: {
23
- project: [paths.paths.resolveTargetRoot("tsconfig.json")]
23
+ project: [cliCommon.targetPaths.resolveRoot("tsconfig.json")]
24
24
  }
25
25
  },
26
26
  extensions: ["jsx", "ts", "tsx", "mjs", "cjs"]
@@ -37,7 +37,7 @@ async function command(opts) {
37
37
  if (message.ruleId !== "deprecation/deprecation") {
38
38
  continue;
39
39
  }
40
- const path$1 = path.relative(paths.paths.targetRoot, result.filePath);
40
+ const path$1 = path.relative(cliCommon.targetPaths.rootDir, result.filePath);
41
41
  deprecations.push({
42
42
  path: path$1,
43
43
  message: message.message,
@@ -6,14 +6,14 @@ var fs = require('fs-extra');
6
6
  var path = require('node:path');
7
7
  var getPackages = require('@manypkg/get-packages');
8
8
  var cliNode = require('@backstage/cli-node');
9
- var paths = require('../../../lib/paths.cjs.js');
9
+ var cliCommon = require('@backstage/cli-common');
10
10
 
11
11
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
12
 
13
13
  var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
14
14
 
15
15
  var packageRole = async () => {
16
- const { packages } = await getPackages.getPackages(paths.paths.targetDir);
16
+ const { packages } = await getPackages.getPackages(cliCommon.targetPaths.dir);
17
17
  await Promise.all(
18
18
  packages.map(async ({ dir, packageJson: pkg }) => {
19
19
  const { name } = pkg;
@@ -10,11 +10,10 @@ var minimatch = require('minimatch');
10
10
  var semver = require('semver');
11
11
  var errors = require('@backstage/errors');
12
12
  var path = require('node:path');
13
- var paths = require('../../../../lib/paths.cjs.js');
14
13
  var yarnPlugin = require('../../../../lib/yarnPlugin.cjs.js');
15
14
  var Lockfile = require('../../../../lib/versioning/Lockfile.cjs.js');
16
15
  var packages = require('../../../../lib/versioning/packages.cjs.js');
17
- var parallel = require('../../../../lib/parallel.cjs.js');
16
+ var cliNode = require('@backstage/cli-node');
18
17
  var releaseManifests = require('@backstage/release-manifests');
19
18
  var migrate = require('./migrate.cjs.js');
20
19
  var utils = require('../../lib/utils.cjs.js');
@@ -40,7 +39,7 @@ function extendsDefaultPattern(pattern) {
40
39
  return minimatch.minimatch("@backstage/", pattern.slice(0, -1));
41
40
  }
42
41
  var bump = async (opts) => {
43
- const lockfilePath = paths.paths.resolveTargetRoot("yarn.lock");
42
+ const lockfilePath = cliCommon.targetPaths.resolveRoot("yarn.lock");
44
43
  const lockfile = await Lockfile.Lockfile.load(lockfilePath);
45
44
  const hasYarnPlugin = await yarnPlugin.getHasYarnPlugin();
46
45
  let pattern = opts.pattern;
@@ -96,10 +95,10 @@ var bump = async (opts) => {
96
95
  await cliCommon.run(["yarn", "plugin", "import", yarnPluginUrl]).waitForExit();
97
96
  console.log();
98
97
  }
99
- const dependencyMap = await packages.mapDependencies(paths.paths.targetDir, pattern);
98
+ const dependencyMap = await packages.mapDependencies(cliCommon.targetPaths.dir, pattern);
100
99
  const versionBumps = /* @__PURE__ */ new Map();
101
- await parallel.runParallelWorkers({
102
- parallelismFactor: 4,
100
+ await cliNode.runConcurrentTasks({
101
+ concurrencyFactor: 4,
103
102
  items: dependencyMap.entries(),
104
103
  async worker([name, pkgs]) {
105
104
  let target;
@@ -132,8 +131,8 @@ var bump = async (opts) => {
132
131
  console.log(chalk__default.default.yellow("Some packages are outdated, updating"));
133
132
  console.log();
134
133
  const breakingUpdates = /* @__PURE__ */ new Map();
135
- await parallel.runParallelWorkers({
136
- parallelismFactor: 4,
134
+ await cliNode.runConcurrentTasks({
135
+ concurrencyFactor: 4,
137
136
  items: versionBumps.entries(),
138
137
  async worker([name, deps]) {
139
138
  const pkgPath = path.resolve(deps[0].location, "package.json");
@@ -311,7 +310,7 @@ function createVersionFinder(options) {
311
310
  };
312
311
  }
313
312
  function getBackstageJsonPath() {
314
- return paths.paths.resolveTargetRoot(cliCommon.BACKSTAGE_JSON);
313
+ return cliCommon.targetPaths.resolveRoot(cliCommon.BACKSTAGE_JSON);
315
314
  }
316
315
  async function getBackstageJson() {
317
316
  const backstageJsonPath = getBackstageJsonPath();
@@ -2,7 +2,7 @@
2
2
 
3
3
  var fs = require('fs-extra');
4
4
  var path = require('node:path');
5
- var paths = require('../../../../lib/paths.cjs.js');
5
+ var cliCommon = require('@backstage/cli-common');
6
6
 
7
7
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
8
 
@@ -50,7 +50,7 @@ async function addCodeownersEntry(ownedPath, ownerStr, codeownersFilePath) {
50
50
  }
51
51
  let filePath = codeownersFilePath;
52
52
  if (!filePath) {
53
- filePath = await getCodeownersFilePath(paths.paths.targetRoot);
53
+ filePath = await getCodeownersFilePath(cliCommon.targetPaths.rootDir);
54
54
  if (!filePath) {
55
55
  return false;
56
56
  }
@@ -13,8 +13,7 @@ var Lockfile = require('../../../../lib/versioning/Lockfile.cjs.js');
13
13
  require('minimatch');
14
14
  require('@manypkg/get-packages');
15
15
  require('@backstage/errors');
16
- require('@backstage/cli-common');
17
- var paths = require('../../../../lib/paths.cjs.js');
16
+ var cliCommon = require('@backstage/cli-common');
18
17
  var version = require('../../../../lib/version.cjs.js');
19
18
  var yarnPlugin = require('../../../../lib/yarnPlugin.cjs.js');
20
19
 
@@ -44,7 +43,7 @@ class PortableTemplater {
44
43
  static async create(options = {}) {
45
44
  let lockfile;
46
45
  try {
47
- lockfile = await Lockfile.Lockfile.load(paths.paths.resolveTargetRoot("yarn.lock"));
46
+ lockfile = await Lockfile.Lockfile.load(cliCommon.targetPaths.resolveRoot("yarn.lock"));
48
47
  } catch {
49
48
  }
50
49
  const hasYarnPlugin = await yarnPlugin.getHasYarnPlugin();
@@ -3,7 +3,7 @@
3
3
  var fs = require('fs-extra');
4
4
  var upperFirst = require('lodash/upperFirst');
5
5
  var camelCase = require('lodash/camelCase');
6
- var paths = require('../../../../lib/paths.cjs.js');
6
+ var cliCommon = require('@backstage/cli-common');
7
7
  var tasks = require('../tasks.cjs.js');
8
8
 
9
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -44,7 +44,7 @@ async function installNewPackage(input) {
44
44
  }
45
45
  }
46
46
  async function addDependency(input, path) {
47
- const pkgJsonPath = paths.paths.resolveTargetRoot(path);
47
+ const pkgJsonPath = cliCommon.targetPaths.resolveRoot(path);
48
48
  const pkgJson = await fs__default.default.readJson(pkgJsonPath).catch((error) => {
49
49
  if (error.code === "ENOENT") {
50
50
  return void 0;
@@ -71,7 +71,7 @@ async function tryAddFrontendLegacy(input) {
71
71
  "add-frontend-legacy can only be used for frontend plugins"
72
72
  );
73
73
  }
74
- const appDefinitionPath = paths.paths.resolveTargetRoot("packages/app/src/App.tsx");
74
+ const appDefinitionPath = cliCommon.targetPaths.resolveRoot("packages/app/src/App.tsx");
75
75
  if (!await fs__default.default.pathExists(appDefinitionPath)) {
76
76
  return;
77
77
  }
@@ -101,7 +101,7 @@ async function tryAddFrontendLegacy(input) {
101
101
  });
102
102
  }
103
103
  async function tryAddBackend(input) {
104
- const backendIndexPath = paths.paths.resolveTargetRoot(
104
+ const backendIndexPath = cliCommon.targetPaths.resolveRoot(
105
105
  "packages/backend/src/index.ts"
106
106
  );
107
107
  if (!await fs__default.default.pathExists(backendIndexPath)) {
@@ -2,7 +2,6 @@
2
2
 
3
3
  var fs = require('fs-extra');
4
4
  var path = require('node:path');
5
- var paths = require('../../../../lib/paths.cjs.js');
6
5
  var errors = require('@backstage/errors');
7
6
  var cliNode = require('@backstage/cli-node');
8
7
  var PortableTemplater = require('./PortableTemplater.cjs.js');
@@ -13,7 +12,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
13
12
  var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
14
13
 
15
14
  async function writeTemplateContents(template, input) {
16
- const targetDir = paths.paths.resolveTargetRoot(input.packagePath);
15
+ const targetDir = cliCommon.targetPaths.resolveRoot(input.packagePath);
17
16
  if (await fs__default.default.pathExists(targetDir)) {
18
17
  throw new errors.InputError(`Package '${input.packagePath}' already exists`);
19
18
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  var inquirer = require('inquirer');
4
4
  var codeowners = require('../codeowners/codeowners.cjs.js');
5
- var paths = require('../../../../lib/paths.cjs.js');
5
+ var cliCommon = require('@backstage/cli-common');
6
6
  var resolvePackageParams = require('./resolvePackageParams.cjs.js');
7
7
 
8
8
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -11,7 +11,7 @@ var inquirer__default = /*#__PURE__*/_interopDefaultCompat(inquirer);
11
11
 
12
12
  async function collectPortableTemplateInput(options) {
13
13
  const { config, template, prefilledParams } = options;
14
- const codeOwnersFilePath = await codeowners.getCodeownersFilePath(paths.paths.targetRoot);
14
+ const codeOwnersFilePath = await codeowners.getCodeownersFilePath(cliCommon.targetPaths.rootDir);
15
15
  const prompts = getPromptsForRole(template.role);
16
16
  if (codeOwnersFilePath) {
17
17
  prompts.push(ownerPrompt());
@@ -5,7 +5,7 @@ var fs = require('fs-extra');
5
5
  var recursiveReaddir = require('recursive-readdir');
6
6
  var path = require('node:path');
7
7
  var yaml = require('yaml');
8
- var paths = require('../../../../lib/paths.cjs.js');
8
+ var cliCommon = require('@backstage/cli-common');
9
9
  var types = require('../types.cjs.js');
10
10
  var errors = require('@backstage/errors');
11
11
  var v3 = require('zod-validation-error/v3');
@@ -25,7 +25,7 @@ async function loadPortableTemplate(pointer) {
25
25
  if (pointer.target.match(/https?:\/\//)) {
26
26
  throw new Error("Remote templates are not supported yet");
27
27
  }
28
- const templateContent = await fs__default.default.readFile(paths.paths.resolveTargetRoot(pointer.target), "utf-8").catch((error) => {
28
+ const templateContent = await fs__default.default.readFile(cliCommon.targetPaths.resolveRoot(pointer.target), "utf-8").catch((error) => {
29
29
  throw new errors.ForwardedError(
30
30
  `Failed to load template definition from '${pointer.target}'`,
31
31
  error
@@ -2,7 +2,7 @@
2
2
 
3
3
  var fs = require('fs-extra');
4
4
  var path = require('node:path');
5
- var paths = require('../../../../lib/paths.cjs.js');
5
+ var cliCommon = require('@backstage/cli-common');
6
6
  var defaultTemplates = require('../defaultTemplates.cjs.js');
7
7
  var types = require('../types.cjs.js');
8
8
  var yaml = require('yaml');
@@ -48,7 +48,7 @@ function computePackageNamePluginInfix(packageNamePrefix, namePluginInfix) {
48
48
  }
49
49
  async function loadPortableTemplateConfig(options = {}) {
50
50
  const { overrides = {} } = options;
51
- const pkgPath = options.packagePath ?? paths.paths.resolveTargetRoot("package.json");
51
+ const pkgPath = options.packagePath ?? cliCommon.targetPaths.resolveRoot("package.json");
52
52
  const pkgJson = await fs__default.default.readJson(pkgPath);
53
53
  const parsed = pkgJsonWithNewConfigSchema.safeParse(pkgJson);
54
54
  if (!parsed.success) {
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var paths = require('../../../../lib/paths.cjs.js');
6
5
  var cliCommon = require('@backstage/cli-common');
7
6
 
8
7
  function includesAnyOf(hayStack, ...needles) {
@@ -21,7 +20,7 @@ var test = async (_opts, cmd) => {
21
20
  const allArgs = parent.args;
22
21
  const args = allArgs.slice(allArgs.indexOf("test") + 1);
23
22
  if (!includesAnyOf(args, "-c", "--config")) {
24
- args.push("--config", paths.paths.resolveOwn("config/jest.js"));
23
+ args.push("--config", cliCommon.findOwnPaths(__dirname).resolve("config/jest.js"));
25
24
  }
26
25
  if (!includesAnyOf(args, "--no-passWithNoTests", "--passWithNoTests=false")) {
27
26
  args.push("--passWithNoTests");
@@ -6,7 +6,6 @@ var yargs = require('yargs');
6
6
  var jestCli = require('jest-cli');
7
7
  var path = require('node:path');
8
8
  var cliNode = require('@backstage/cli-node');
9
- var paths = require('../../../../lib/paths.cjs.js');
10
9
  var cliCommon = require('@backstage/cli-common');
11
10
  var SuccessCache = require('../../../../lib/cache/SuccessCache.cjs.js');
12
11
 
@@ -19,7 +18,7 @@ var yargs__default = /*#__PURE__*/_interopDefaultCompat(yargs);
19
18
  async function readPackageTreeHashes(graph) {
20
19
  const pkgs = Array.from(graph.values()).map((pkg) => ({
21
20
  ...pkg,
22
- path: path.relative(paths.paths.targetRoot, pkg.dir)
21
+ path: path.relative(cliCommon.targetPaths.rootDir, pkg.dir)
23
22
  }));
24
23
  const output = await cliCommon.runOutput([
25
24
  "git",
@@ -100,7 +99,7 @@ async function command(opts, cmd) {
100
99
  const hasFlags = createFlagFinder(args);
101
100
  const { _: parsedArgs } = await yargs__default.default(args).options(jestCli.yargsOptions).argv;
102
101
  if (!hasFlags("-c", "--config")) {
103
- args.push("--config", paths.paths.resolveOwn("config/jest.js"));
102
+ args.push("--config", cliCommon.findOwnPaths(__dirname).resolve("config/jest.js"));
104
103
  }
105
104
  if (!hasFlags("--passWithNoTests")) {
106
105
  args.push("--passWithNoTests");
@@ -211,7 +210,7 @@ async function command(opts, cmd) {
211
210
  async filterConfigs(projectConfigs, globalRootConfig) {
212
211
  const cacheEntries = await cache.read();
213
212
  const lockfile = await cliNode.Lockfile.load(
214
- paths.paths.resolveTargetRoot("yarn.lock")
213
+ cliCommon.targetPaths.resolveRoot("yarn.lock")
215
214
  );
216
215
  const getPackageTreeHash = await readPackageTreeHashes(graph);
217
216
  const baseHash = crypto__default.default.createHash("sha1");
@@ -15,6 +15,7 @@ var index = factory.createCliPlugin({
15
15
  execute: async ({ args }) => {
16
16
  const command = new commander.Command();
17
17
  command.allowUnknownOption(true);
18
+ command.allowExcessArguments(true);
18
19
  command.option(
19
20
  "--since <ref>",
20
21
  "Only test packages that changed since the specified ref"
@@ -38,7 +39,8 @@ var index = factory.createCliPlugin({
38
39
  execute: async ({ args }) => {
39
40
  const command = new commander.Command();
40
41
  command.allowUnknownOption(true);
41
- command.helpOption(", --backstage-cli-help");
42
+ command.allowExcessArguments(true);
43
+ command.helpOption("--backstage-cli-help");
42
44
  command.action(
43
45
  lazy.lazy(() => import('./commands/package/test.cjs.js'), "default")
44
46
  );