@backstage/cli 0.13.2-next.0 → 0.14.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 (58) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/config/eslint.js +2 -2
  3. package/config/jest.js +8 -4
  4. package/config/jestSucraseTransform.js +60 -39
  5. package/dist/cjs/{PackageGraph-96b2e6ef.cjs.js → PackageGraph-452ec2ff.cjs.js} +65 -2
  6. package/dist/cjs/{backend-fb6d6170.cjs.js → backend-f623f925.cjs.js} +2 -2
  7. package/dist/cjs/{build-b3c69eff.cjs.js → build-c6587a6a.cjs.js} +11 -9
  8. package/dist/cjs/{build-8fd28a6d.cjs.js → build-d22951cc.cjs.js} +7 -6
  9. package/dist/cjs/{build-93f627fc.cjs.js → build-d555ae41.cjs.js} +7 -6
  10. package/dist/cjs/{build-9db9aaaf.cjs.js → build-dde37a4d.cjs.js} +22 -22
  11. package/dist/cjs/{buildBackend-08cefb3c.cjs.js → buildBackend-4890a3fb.cjs.js} +20 -16
  12. package/dist/cjs/{buildWorkspace-1323bee2.cjs.js → buildWorkspace-464c5a99.cjs.js} +9 -9
  13. package/dist/cjs/{bump-a85eb7bb.cjs.js → bump-a4f9d634.cjs.js} +132 -25
  14. package/dist/cjs/{bundle-b3d9e5ab.cjs.js → bundle-102f5596.cjs.js} +11 -11
  15. package/dist/cjs/{bundle-4ce79bce.cjs.js → bundle-bcefdcef.cjs.js} +2 -2
  16. package/dist/cjs/{clean-c50d4782.cjs.js → clean-dbc9a5ef.cjs.js} +2 -2
  17. package/dist/cjs/{config-f2365900.cjs.js → config-7c2e1f5a.cjs.js} +3 -3
  18. package/dist/cjs/{create-7ad905e4.cjs.js → create-7e122e43.cjs.js} +4 -4
  19. package/dist/cjs/{createDistWorkspace-f4c0276b.cjs.js → createDistWorkspace-7dc77457.cjs.js} +15 -9
  20. package/dist/cjs/{createPlugin-ba8c6df0.cjs.js → createPlugin-98e97774.cjs.js} +4 -4
  21. package/dist/cjs/{dev-e8f4294f.cjs.js → dev-1fa4ec4d.cjs.js} +6 -6
  22. package/dist/cjs/{diff-7c3a6378.cjs.js → diff-75846872.cjs.js} +6 -2
  23. package/dist/cjs/{docs-f72a2ec8.cjs.js → docs-1d4c7d02.cjs.js} +7 -4
  24. package/dist/cjs/{index-c953b562.cjs.js → index-76945a16.cjs.js} +2 -2
  25. package/dist/cjs/{index-526e4dc9.cjs.js → index-a90b183a.cjs.js} +18 -18
  26. package/dist/cjs/{index-d7ee78c4.cjs.js → index-b314a967.cjs.js} +16 -16
  27. package/dist/cjs/{index-8b03e1f7.cjs.js → index-f4a6cd4f.cjs.js} +70 -66
  28. package/dist/cjs/{info-92d051f2.cjs.js → info-01180b4a.cjs.js} +3 -3
  29. package/dist/cjs/{install-1f10c477.cjs.js → install-6fae05de.cjs.js} +4 -4
  30. package/dist/cjs/{lint-a49b0261.cjs.js → lint-9575a50e.cjs.js} +2 -2
  31. package/dist/cjs/lint-b454be94.cjs.js +92 -0
  32. package/dist/cjs/{lint-cc10c98e.cjs.js → lint-e84f4da1.cjs.js} +3 -3
  33. package/dist/cjs/{oldBuild-e0886590.cjs.js → oldBuild-5662c63f.cjs.js} +7 -6
  34. package/dist/cjs/{pack-7da7f03b.cjs.js → pack-4a819ab8.cjs.js} +2 -2
  35. package/dist/cjs/{packageRole-7bb8a760.cjs.js → packageRole-b9f3f4c2.cjs.js} +3 -3
  36. package/dist/cjs/{packageRoles-f4b169a7.cjs.js → packageRoles-be5cc4e7.cjs.js} +12 -12
  37. package/dist/cjs/packageScripts-98e13921.cjs.js +97 -0
  38. package/dist/cjs/{packager-3bddd88f.cjs.js → packager-3c7ef6f2.cjs.js} +34 -58
  39. package/dist/cjs/{packages-08c02af1.cjs.js → packages-6d20da58.cjs.js} +5 -4
  40. package/dist/cjs/parallel-d8e5bcbf.cjs.js +171 -0
  41. package/dist/cjs/{paths-f6ca70df.cjs.js → paths-67855a60.cjs.js} +4 -4
  42. package/dist/cjs/{print-43232f19.cjs.js → print-d0729b40.cjs.js} +7 -4
  43. package/dist/cjs/{run-8da8f918.cjs.js → run-b09132d3.cjs.js} +2 -2
  44. package/dist/cjs/{schema-2c7e9598.cjs.js → schema-2f989737.cjs.js} +7 -4
  45. package/dist/cjs/{serve-9c68f54d.cjs.js → serve-474204d0.cjs.js} +8 -8
  46. package/dist/cjs/{serve-01190cc4.cjs.js → serve-9f86fead.cjs.js} +9 -9
  47. package/dist/cjs/{server-937c32b4.cjs.js → server-525b32bf.cjs.js} +2 -2
  48. package/dist/cjs/svgrTemplate-b7a4ee52.cjs.js +21 -0
  49. package/dist/cjs/{tasks-3a7eba1b.cjs.js → tasks-0ade17b2.cjs.js} +2 -2
  50. package/dist/cjs/{testCommand-5cdbf69c.cjs.js → testCommand-afcd8cac.cjs.js} +11 -4
  51. package/dist/cjs/{validate-697fd284.cjs.js → validate-2f3a3c93.cjs.js} +7 -4
  52. package/dist/index.cjs.js +1 -1
  53. package/package.json +30 -24
  54. package/templates/default-backend-plugin/package.json.hbs +1 -1
  55. package/templates/default-plugin/package.json.hbs +1 -1
  56. package/dist/cjs/packageScripts-23016b48.cjs.js +0 -61
  57. package/dist/cjs/parallel-e73a4058.cjs.js +0 -48
  58. package/dist/cjs/svgrTemplate-f19e974c.cjs.js +0 -25
package/CHANGELOG.md CHANGED
@@ -1,5 +1,85 @@
1
1
  # @backstage/cli
2
2
 
3
+ ## 0.14.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 5cc7f48400: Fixed a bug in the built-in Jest configuration that prevented it from identifying packages that had migrated to using the new package scripts to run tests.
8
+ - 49ae6c9573: chore(deps-dev): bump `@types/rollup-plugin-postcss` from 2.0.1 to 3.1.4
9
+ - d64b8d3678: chore(deps): bump `minimatch` from 3.0.4 to 5.0.0
10
+ - d2e9d2a34f: chore(deps): bump `@hot-loader/react-dom` from 16.13.0 to 17.0.2
11
+ - c2f3a548cf: Fix building of backends with `repo build --all`, where it would previously only work if the build was executed within the backend package.
12
+ - 3d7ed5377a: Ignore setupTests and the file inside ./dev folder recursively. Eslint
13
+ can not resolve relative paths as we defined in the rule import/no-extraneous-dependencies, and it does not apply this rule.
14
+
15
+ A downside to use a recursive definition would be to checking all `dev` folders, which might not be wanted. Ensure you don't use
16
+ the `dev` folder out of scope (must be used for dev. env. only)
17
+
18
+ - Updated dependencies
19
+ - @backstage/config-loader@0.9.6
20
+
21
+ ## 0.14.0
22
+
23
+ ### Minor Changes
24
+
25
+ - 1fc0cd3896: Bumped Webpack and Rollup `svgr` dependencies and updated the AST template for `.icon.svg` modules. This means that SVG icon imports are now using SVGO v2.
26
+
27
+ ### Patch Changes
28
+
29
+ - 0b74c72987: Added a new experimental and hidden `backstage-cli repo lint` command that can be used to lint all packages in the project, similar to `lerna run lint`.
30
+ - 532dae9c4c: The `versions:bump --release next` command is updated to compare the `main` and `next` release manifests and prefer the latest.
31
+ - 1ed305728b: Bump `node-fetch` to version 2.6.7 and `cross-fetch` to version 3.1.5
32
+ - c77c5c7eb6: Added `backstage.role` to `package.json`
33
+ - 22862486de: The `versions:bump` command now filters out `npm_` environment configuration when running `yarn install`. This has the effect of allowing it to consider local configuration files within the repository, which is the behavior that one would expect.
34
+ - 22862486de: The `versions:bump` command now also considers the root `package.json` when searching for updates. It has also received updates to its output, including a link the [Backstage upgrade helper](https://backstage.github.io/upgrade-helper) and silenced `yarn install` output.
35
+ - 7410e12268: Several changes were made to the new experimental package roles system. Unless you have been experimenting with using this new system, these changes have no affect on your project.
36
+
37
+ Renamed the `backstage-cli migrate package-role` command to `backstage-cli migrate package-roles`.
38
+
39
+ Updated the package role definitions by renaming `app` to `frontend`, `plugin-frontend` to `frontend-plugin`, `plugin-frontend-module` to `frontend-plugin-module`, `plugin-backend` to `backend-plugin`, and `plugin-backend-module` to `backend-plugin-module`
40
+
41
+ The `backstage-cli migrate package-scripts` received several tweaks to make it more accurate. It now tries to maintain existing script arguments, like `--config` parameters for `build` and `start` scripts.
42
+
43
+ The `script` command category has been renamed to `package`.
44
+
45
+ The `backstage-cli package build` command set an incorrect target directory for `app` and `backend` packages, which has been fixed.
46
+
47
+ The `backend:bundle` and `repo build` command for the `backend` role was previously ignoring building of bundled packages that had migrated to use package roles and the standard build script, this has now been fixed.
48
+
49
+ - c6bbafb516: Updated the default [sucrase](https://github.com/alangpierce/sucrase)-based Jest transform to include source maps if the environment variable `ENABLE_SOURCE_MAPS` is non-empty. This can be used to better support editor test debugging integrations.
50
+ - 7410e12268: The `test` command now automatically adds `--passWithNoTests` to the Jest invocation. To revert this behavior, pass `--passWithNoTests=false` or `--no-passWithNoTests`.
51
+ - Updated dependencies
52
+ - @backstage/config-loader@0.9.4
53
+ - @backstage/errors@0.2.1
54
+ - @backstage/release-manifests@0.0.2
55
+ - @backstage/cli-common@0.1.7
56
+ - @backstage/config@0.1.14
57
+ - @backstage/types@0.1.2
58
+
59
+ ## 0.13.2
60
+
61
+ ### Patch Changes
62
+
63
+ - bbbaa8ed61: The `plugin:diff` command no longer validates the existence of any of the files within `dev/` or `src/`.
64
+ - eaf67f0578: Introduced initial support for an experimental `backstage.role` field in package.json, as well as experimental and hidden `migrate` and `script` sub-commands. We do not recommend usage of any of these additions yet.
65
+ - aeb5c69abb: Introduces a new `--release` parameter to the `backstage-cli versions:bump` command.
66
+ The release can be either a specific version, for example `0.99.1`, or the latest `main` or `next` release.
67
+ The default behavior is to bump to the latest `main` release.
68
+ - d59b90852a: The experimental types build enabled by `--experimental-type-build` now runs in a separate worker thread.
69
+ - 50a19ff8dd: The file path printed by the default lint formatter is now relative to the repository root, rather than the individual package.
70
+ - 63181dee79: Tweaked frontend bundling configuration to avoid leaking declarations into global scope.
71
+ - fae2aee878: Removed the `import/no-duplicates` lint rule from the frontend and backend ESLint configurations. This rule is quite expensive to execute and only provides a purely cosmetic benefit, so we opted to remove it from the set of default rules. If you would like to keep this rule you can add it back in your local ESLint configuration:
72
+
73
+ ```js
74
+ 'import/no-duplicates': 'warn'
75
+ ```
76
+
77
+ - b906f98119: Rather than calling `yarn pack`, the `build-workspace` and `backend-bundle` commands now move files directly whenever possible. This cuts out several `yarn` invocations and speeds the packing process up by several orders of magnitude.
78
+ - d0c71e2aa4: Switched the `lint` command to invoke ESLint directly through its Node.js API rather than spawning a new process.
79
+ - d59b90852a: Introduced an experimental and hidden `repo` sub-command, that contains commands that operate on an entire monorepo rather than individual packages.
80
+ - Updated dependencies
81
+ - @backstage/release-manifests@0.0.1
82
+
3
83
  ## 0.13.2-next.0
4
84
 
5
85
  ### Patch Changes
package/config/eslint.js CHANGED
@@ -55,8 +55,8 @@ module.exports = {
55
55
  devDependencies: [
56
56
  '**/*.test.*',
57
57
  '**/*.stories.*',
58
- 'src/setupTests.*',
59
- 'dev/**',
58
+ '**/src/setupTests.*',
59
+ '**/dev/**',
60
60
  ],
61
61
  optionalDependencies: true,
62
62
  peerDependencies: true,
package/config/jest.js CHANGED
@@ -102,9 +102,10 @@ async function getProjectConfig(targetPath, displayName) {
102
102
  },
103
103
 
104
104
  transform: {
105
- '\\.(js|jsx|ts|tsx|mjs|cjs)$': require.resolve(
106
- './jestSucraseTransform.js',
107
- ),
105
+ '\\.(js|jsx|ts|tsx|mjs|cjs)$': [
106
+ require.resolve('./jestSucraseTransform.js'),
107
+ { enableSourceMaps: Boolean(process.env.ENABLE_SOURCE_MAPS) },
108
+ ],
108
109
  '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$':
109
110
  require.resolve('./jestFileTransform.js'),
110
111
  '\\.(yaml)$': require.resolve('jest-transform-yaml'),
@@ -174,7 +175,10 @@ async function getRootConfig() {
174
175
  // script to determine whether a given package should be tested
175
176
  const packageData = await fs.readJson(packagePath);
176
177
  const testScript = packageData.scripts && packageData.scripts.test;
177
- if (testScript && testScript.includes('backstage-cli test')) {
178
+ const isSupportedTestScript =
179
+ testScript?.includes('backstage-cli test') ||
180
+ testScript?.includes('backstage-cli package test');
181
+ if (testScript && isSupportedTestScript) {
178
182
  return await getProjectConfig(projectPath, packageData.name);
179
183
  }
180
184
 
@@ -21,50 +21,71 @@ const sucrasePluginPkg = require('@sucrase/jest-plugin/package.json');
21
21
 
22
22
  const ESM_REGEX = /\b(?:import|export)\b/;
23
23
 
24
- function process(source, filePath) {
25
- let transforms;
24
+ function createTransformer(config) {
25
+ const process = (source, filePath) => {
26
+ let transforms;
26
27
 
27
- if (filePath.endsWith('.esm.js')) {
28
- transforms = ['imports'];
29
- } else if (filePath.endsWith('.js')) {
30
- // This is a very rough filter to avoid transforming things that we quickly
31
- // can be sure are definitely not ESM modules.
32
- if (ESM_REGEX.test(source)) {
33
- transforms = ['imports', 'jsx']; // JSX within .js is currently allowed
28
+ if (filePath.endsWith('.esm.js')) {
29
+ transforms = ['imports'];
30
+ } else if (filePath.endsWith('.js')) {
31
+ // This is a very rough filter to avoid transforming things that we quickly
32
+ // can be sure are definitely not ESM modules.
33
+ if (ESM_REGEX.test(source)) {
34
+ transforms = ['imports', 'jsx']; // JSX within .js is currently allowed
35
+ }
36
+ } else if (filePath.endsWith('.jsx')) {
37
+ transforms = ['jsx', 'imports'];
38
+ } else if (filePath.endsWith('.ts')) {
39
+ transforms = ['typescript', 'imports'];
40
+ } else if (filePath.endsWith('.tsx')) {
41
+ transforms = ['typescript', 'jsx', 'imports'];
34
42
  }
35
- } else if (filePath.endsWith('.jsx')) {
36
- transforms = ['jsx', 'imports'];
37
- } else if (filePath.endsWith('.ts')) {
38
- transforms = ['typescript', 'imports'];
39
- } else if (filePath.endsWith('.tsx')) {
40
- transforms = ['typescript', 'jsx', 'imports'];
41
- }
42
43
 
43
- // Only apply the jest transform to the test files themselves
44
- if (transforms && filePath.includes('.test.')) {
45
- transforms.push('jest');
46
- }
44
+ // Only apply the jest transform to the test files themselves
45
+ if (transforms && filePath.includes('.test.')) {
46
+ transforms.push('jest');
47
+ }
48
+
49
+ if (transforms) {
50
+ const { code, sourceMap: map } = transform(source, {
51
+ transforms,
52
+ filePath,
53
+ disableESTransforms: true,
54
+ sourceMapOptions: {
55
+ compiledFilename: filePath,
56
+ },
57
+ });
58
+ if (config.enableSourceMaps) {
59
+ const b64 = Buffer.from(JSON.stringify(map), 'utf8').toString('base64');
60
+ const suffix = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${b64}`;
61
+ // Include both inline and object source maps, as inline source maps are
62
+ // needed for support of some editor integrations.
63
+ return { code: `${code}\n${suffix}`, map };
64
+ }
65
+ // We only return the `map` result if source maps are enabled, as they
66
+ // have a negative impact on the coverage accuracy.
67
+ return code;
68
+ }
47
69
 
48
- if (transforms) {
49
- return transform(source, {
50
- transforms,
51
- filePath,
52
- disableESTransforms: true,
53
- }).code;
54
- }
70
+ return source;
71
+ };
55
72
 
56
- return source;
57
- }
73
+ // TODO: contribute something like this to @sucrase/jest-plugin
74
+ const getCacheKey = sourceText => {
75
+ return createHash('md5')
76
+ .update(sourceText)
77
+ .update(Buffer.alloc(1))
78
+ .update(sucrasePkg.version)
79
+ .update(Buffer.alloc(1))
80
+ .update(sucrasePluginPkg.version)
81
+ .update(Buffer.alloc(1))
82
+ .update(JSON.stringify(config))
83
+ .update(Buffer.alloc(1))
84
+ .update('1') // increment whenever the transform logic in this file changes
85
+ .digest('hex');
86
+ };
58
87
 
59
- // TODO: contribute something like this to @sucrase/jest-plugin
60
- function getCacheKey(sourceText) {
61
- return createHash('md5')
62
- .update(sourceText)
63
- .update(Buffer.alloc(1))
64
- .update(sucrasePkg.version)
65
- .update(Buffer.alloc(1))
66
- .update(sucrasePluginPkg.version)
67
- .digest('hex');
88
+ return { process, getCacheKey };
68
89
  }
69
90
 
70
- module.exports = { process, getCacheKey };
91
+ module.exports = { createTransformer };
@@ -1,7 +1,44 @@
1
1
  'use strict';
2
2
 
3
+ var path = require('path');
3
4
  var getPackages = require('@manypkg/get-packages');
4
- var index = require('./index-8b03e1f7.cjs.js');
5
+ var index = require('./index-f4a6cd4f.cjs.js');
6
+ var errors = require('@backstage/errors');
7
+ var child_process = require('child_process');
8
+ var util = require('util');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
13
+
14
+ const execFile = util.promisify(child_process.execFile);
15
+ async function runGit(...args) {
16
+ var _a, _b;
17
+ try {
18
+ const { stdout } = await execFile("git", args, {
19
+ shell: true,
20
+ cwd: index.paths.targetRoot
21
+ });
22
+ return stdout.trim().split(/\r\n|\r|\n/);
23
+ } catch (error) {
24
+ errors.assertError(error);
25
+ if (error.stderr || typeof error.code === "number") {
26
+ const stderr = (_a = error.stderr) == null ? void 0 : _a.toString("utf8");
27
+ const msg = (_b = stderr == null ? void 0 : stderr.trim()) != null ? _b : `with exit code ${error.code}`;
28
+ throw new Error(`git ${args[0]} failed, ${msg}`);
29
+ }
30
+ throw new errors.ForwardedError("Unknown execution error", error);
31
+ }
32
+ }
33
+ async function listChangedFiles(ref) {
34
+ if (!ref) {
35
+ throw new Error("ref is required");
36
+ }
37
+ const [base] = await runGit("merge-base", "HEAD", ref);
38
+ const tracked = await runGit("diff", "--name-only", base);
39
+ const untracked = await runGit("ls-files", "--others", "--exclude-standard");
40
+ return Array.from(/* @__PURE__ */ new Set([...tracked, ...untracked]));
41
+ }
5
42
 
6
43
  class PackageGraph extends Map {
7
44
  static async listTargetPackages() {
@@ -74,7 +111,33 @@ class PackageGraph extends Map {
74
111
  }
75
112
  return targets;
76
113
  }
114
+ async listChangedPackages(options) {
115
+ var _a, _b;
116
+ const changedFiles = await listChangedFiles(options.ref);
117
+ const dirMap = new Map(Array.from(this.values()).map((pkg) => [
118
+ path__default["default"].relative(index.paths.targetRoot, pkg.dir).split(path__default["default"].sep).join(path__default["default"].posix.sep) + path__default["default"].posix.sep,
119
+ pkg
120
+ ]));
121
+ const packageDirs = Array.from(dirMap.keys());
122
+ const result = new Array();
123
+ let searchIndex = 0;
124
+ changedFiles.sort();
125
+ packageDirs.sort();
126
+ for (const packageDir of packageDirs) {
127
+ while (searchIndex < changedFiles.length && changedFiles[searchIndex] < packageDir) {
128
+ searchIndex += 1;
129
+ }
130
+ if ((_a = changedFiles[searchIndex]) == null ? void 0 : _a.startsWith(packageDir)) {
131
+ searchIndex += 1;
132
+ result.push(dirMap.get(packageDir));
133
+ while ((_b = changedFiles[searchIndex]) == null ? void 0 : _b.startsWith(packageDir)) {
134
+ searchIndex += 1;
135
+ }
136
+ }
137
+ }
138
+ return result;
139
+ }
77
140
  }
78
141
 
79
142
  exports.PackageGraph = PackageGraph;
80
- //# sourceMappingURL=PackageGraph-96b2e6ef.cjs.js.map
143
+ //# sourceMappingURL=PackageGraph-452ec2ff.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var webpack = require('webpack');
4
- var paths = require('./paths-f6ca70df.cjs.js');
4
+ var paths = require('./paths-67855a60.cjs.js');
5
5
 
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
@@ -33,4 +33,4 @@ async function serveBackend(options) {
33
33
  }
34
34
 
35
35
  exports.serveBackend = serveBackend;
36
- //# sourceMappingURL=backend-fb6d6170.cjs.js.map
36
+ //# sourceMappingURL=backend-f623f925.cjs.js.map
@@ -11,18 +11,18 @@ require('run-script-webpack-plugin');
11
11
  require('webpack-node-externals');
12
12
  require('@backstage/cli-common');
13
13
  require('@manypkg/get-packages');
14
- require('./paths-f6ca70df.cjs.js');
14
+ require('./paths-67855a60.cjs.js');
15
15
  require('mini-css-extract-plugin');
16
- var index = require('./index-8b03e1f7.cjs.js');
17
- require('./run-8da8f918.cjs.js');
16
+ var index = require('./index-f4a6cd4f.cjs.js');
17
+ require('./run-b09132d3.cjs.js');
18
18
  require('eslint-webpack-plugin');
19
19
  require('lodash/pickBy');
20
- var bundle = require('./bundle-4ce79bce.cjs.js');
20
+ var bundle = require('./bundle-bcefdcef.cjs.js');
21
21
  require('webpack-dev-server');
22
22
  require('react-dev-utils/openBrowser');
23
- var parallel = require('./parallel-e73a4058.cjs.js');
24
- var config = require('./config-f2365900.cjs.js');
25
- require('./svgrTemplate-f19e974c.cjs.js');
23
+ var parallel = require('./parallel-d8e5bcbf.cjs.js');
24
+ var config = require('./config-7c2e1f5a.cjs.js');
25
+ require('./svgrTemplate-b7a4ee52.cjs.js');
26
26
  require('commander');
27
27
  require('semver');
28
28
  require('@backstage/config/package.json');
@@ -32,9 +32,11 @@ require('util');
32
32
  require('yn');
33
33
  require('react-dev-utils/FileSizeReporter');
34
34
  require('react-dev-utils/formatWebpackMessages');
35
+ require('os');
36
+ require('worker_threads');
35
37
  require('@backstage/config-loader');
36
38
  require('@backstage/config');
37
- require('./PackageGraph-96b2e6ef.cjs.js');
39
+ require('./PackageGraph-452ec2ff.cjs.js');
38
40
 
39
41
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
40
42
 
@@ -54,4 +56,4 @@ var build = async (cmd) => {
54
56
  };
55
57
 
56
58
  exports["default"] = build;
57
- //# sourceMappingURL=build-b3c69eff.cjs.js.map
59
+ //# sourceMappingURL=build-c6587a6a.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-3bddd88f.cjs.js');
3
+ var packager = require('./packager-3c7ef6f2.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-8b03e1f7.cjs.js');
8
+ require('./index-f4a6cd4f.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -21,11 +21,12 @@ require('rollup-plugin-dts');
21
21
  require('@rollup/plugin-json');
22
22
  require('@rollup/plugin-yaml');
23
23
  require('rollup-pluginutils');
24
- require('./svgrTemplate-f19e974c.cjs.js');
24
+ require('./svgrTemplate-b7a4ee52.cjs.js');
25
+ require('./parallel-d8e5bcbf.cjs.js');
26
+ require('os');
25
27
  require('worker_threads');
26
- require('./packageRoles-f4b169a7.cjs.js');
28
+ require('./packageRoles-be5cc4e7.cjs.js');
27
29
  require('zod');
28
- require('./parallel-e73a4058.cjs.js');
29
30
 
30
31
  var build = async (cmd) => {
31
32
  await packager.buildPackage({
@@ -36,4 +37,4 @@ var build = async (cmd) => {
36
37
  };
37
38
 
38
39
  exports["default"] = build;
39
- //# sourceMappingURL=build-8fd28a6d.cjs.js.map
40
+ //# sourceMappingURL=build-d22951cc.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-3bddd88f.cjs.js');
3
+ var packager = require('./packager-3c7ef6f2.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-8b03e1f7.cjs.js');
8
+ require('./index-f4a6cd4f.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -21,11 +21,12 @@ require('rollup-plugin-dts');
21
21
  require('@rollup/plugin-json');
22
22
  require('@rollup/plugin-yaml');
23
23
  require('rollup-pluginutils');
24
- require('./svgrTemplate-f19e974c.cjs.js');
24
+ require('./svgrTemplate-b7a4ee52.cjs.js');
25
+ require('./parallel-d8e5bcbf.cjs.js');
26
+ require('os');
25
27
  require('worker_threads');
26
- require('./packageRoles-f4b169a7.cjs.js');
28
+ require('./packageRoles-be5cc4e7.cjs.js');
27
29
  require('zod');
28
- require('./parallel-e73a4058.cjs.js');
29
30
 
30
31
  var build = async (cmd) => {
31
32
  await packager.buildPackage({
@@ -36,4 +37,4 @@ var build = async (cmd) => {
36
37
  };
37
38
 
38
39
  exports["default"] = build;
39
- //# sourceMappingURL=build-93f627fc.cjs.js.map
40
+ //# sourceMappingURL=build-d555ae41.cjs.js.map
@@ -2,12 +2,12 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var path = require('path');
5
- var packager = require('./packager-3bddd88f.cjs.js');
6
- var PackageGraph = require('./PackageGraph-96b2e6ef.cjs.js');
7
- var parallel = require('./parallel-e73a4058.cjs.js');
8
- var index = require('./index-8b03e1f7.cjs.js');
9
- var packageRoles = require('./packageRoles-f4b169a7.cjs.js');
10
- var buildBackend = require('./buildBackend-08cefb3c.cjs.js');
5
+ var packager = require('./packager-3c7ef6f2.cjs.js');
6
+ var PackageGraph = require('./PackageGraph-452ec2ff.cjs.js');
7
+ var parallel = require('./parallel-d8e5bcbf.cjs.js');
8
+ var index = require('./index-f4a6cd4f.cjs.js');
9
+ var packageRoles = require('./packageRoles-be5cc4e7.cjs.js');
10
+ var buildBackend = require('./buildBackend-4890a3fb.cjs.js');
11
11
  require('fs-extra');
12
12
  require('rollup');
13
13
  require('rollup-plugin-peer-deps-external');
@@ -20,14 +20,17 @@ require('rollup-plugin-dts');
20
20
  require('@rollup/plugin-json');
21
21
  require('@rollup/plugin-yaml');
22
22
  require('rollup-pluginutils');
23
- require('./svgrTemplate-f19e974c.cjs.js');
24
- require('worker_threads');
23
+ require('./svgrTemplate-b7a4ee52.cjs.js');
25
24
  require('@manypkg/get-packages');
25
+ require('@backstage/errors');
26
+ require('child_process');
27
+ require('util');
28
+ require('os');
29
+ require('worker_threads');
26
30
  require('commander');
27
31
  require('semver');
28
32
  require('@backstage/cli-common');
29
33
  require('@backstage/config/package.json');
30
- require('@backstage/errors');
31
34
  require('zod');
32
35
  require('webpack');
33
36
  require('fork-ts-checker-webpack-plugin');
@@ -35,25 +38,22 @@ require('html-webpack-plugin');
35
38
  require('react-dev-utils/ModuleScopePlugin');
36
39
  require('run-script-webpack-plugin');
37
40
  require('webpack-node-externals');
38
- require('./paths-f6ca70df.cjs.js');
41
+ require('./paths-67855a60.cjs.js');
39
42
  require('mini-css-extract-plugin');
40
- require('./run-8da8f918.cjs.js');
41
- require('child_process');
42
- require('util');
43
+ require('./run-b09132d3.cjs.js');
43
44
  require('eslint-webpack-plugin');
44
45
  require('lodash/pickBy');
45
- require('./bundle-4ce79bce.cjs.js');
46
+ require('./bundle-bcefdcef.cjs.js');
46
47
  require('yn');
47
48
  require('react-dev-utils/FileSizeReporter');
48
49
  require('react-dev-utils/formatWebpackMessages');
49
50
  require('webpack-dev-server');
50
51
  require('react-dev-utils/openBrowser');
51
- require('./config-f2365900.cjs.js');
52
+ require('./config-7c2e1f5a.cjs.js');
52
53
  require('@backstage/config-loader');
53
54
  require('@backstage/config');
54
- require('os');
55
55
  require('tar');
56
- require('./createDistWorkspace-f4c0276b.cjs.js');
56
+ require('./createDistWorkspace-7dc77457.cjs.js');
57
57
  require('lodash/partition');
58
58
  require('npm-packlist');
59
59
 
@@ -71,7 +71,7 @@ function createScriptOptionsParser(anyCmd, commandPath) {
71
71
  targetCmd = targetCmd == null ? void 0 : targetCmd.commands.find((c) => c.name() === name);
72
72
  }
73
73
  if (!targetCmd) {
74
- throw new Error(`Could not find script command '${commandPath.join(" ")}'`);
74
+ throw new Error(`Could not find package command '${commandPath.join(" ")}'`);
75
75
  }
76
76
  const cmd = targetCmd;
77
77
  const expectedScript = `backstage-cli ${commandPath.join(" ")}`;
@@ -95,7 +95,7 @@ async function command(cmd) {
95
95
  const packages = await PackageGraph.PackageGraph.listTargetPackages();
96
96
  const apps = new Array();
97
97
  const backends = new Array();
98
- const parseBuildScript = createScriptOptionsParser(cmd, ["script", "build"]);
98
+ const parseBuildScript = createScriptOptionsParser(cmd, ["package", "build"]);
99
99
  const options = packages.flatMap((pkg) => {
100
100
  var _a, _b, _c;
101
101
  const role = (_b = (_a = pkg.packageJson.backstage) == null ? void 0 : _a.role) != null ? _b : packageRoles.detectRoleFromPackage(pkg.packageJson);
@@ -103,7 +103,7 @@ async function command(cmd) {
103
103
  console.warn(`Ignored ${pkg.packageJson.name} because it has no role`);
104
104
  return [];
105
105
  }
106
- if (role === "app") {
106
+ if (role === "frontend") {
107
107
  apps.push(pkg);
108
108
  return [];
109
109
  } else if (role === "backend") {
@@ -142,7 +142,7 @@ async function command(cmd) {
142
142
  console.warn(`Ignored ${pkg.packageJson.name} because it does not have a matching build script`);
143
143
  return;
144
144
  }
145
- await buildBackend.buildApp({
145
+ await buildBackend.buildFrontend({
146
146
  targetDir: pkg.dir,
147
147
  configPaths: (_b = buildOptions.config) != null ? _b : [],
148
148
  writeStats: Boolean(buildOptions.stats)
@@ -170,4 +170,4 @@ async function command(cmd) {
170
170
  }
171
171
 
172
172
  exports.command = command;
173
- //# sourceMappingURL=build-9db9aaaf.cjs.js.map
173
+ //# sourceMappingURL=build-dde37a4d.cjs.js.map
@@ -11,21 +11,21 @@ require('run-script-webpack-plugin');
11
11
  require('webpack-node-externals');
12
12
  require('@backstage/cli-common');
13
13
  require('@manypkg/get-packages');
14
- require('./paths-f6ca70df.cjs.js');
14
+ require('./paths-67855a60.cjs.js');
15
15
  require('mini-css-extract-plugin');
16
- require('./index-8b03e1f7.cjs.js');
17
- require('./run-8da8f918.cjs.js');
16
+ require('./index-f4a6cd4f.cjs.js');
17
+ require('./run-b09132d3.cjs.js');
18
18
  require('eslint-webpack-plugin');
19
19
  require('lodash/pickBy');
20
- var bundle = require('./bundle-4ce79bce.cjs.js');
20
+ var bundle = require('./bundle-bcefdcef.cjs.js');
21
21
  require('webpack-dev-server');
22
22
  require('react-dev-utils/openBrowser');
23
- var parallel = require('./parallel-e73a4058.cjs.js');
24
- var config = require('./config-f2365900.cjs.js');
23
+ var parallel = require('./parallel-d8e5bcbf.cjs.js');
24
+ var config = require('./config-7c2e1f5a.cjs.js');
25
25
  var os = require('os');
26
26
  var tar = require('tar');
27
- var createDistWorkspace = require('./createDistWorkspace-f4c0276b.cjs.js');
28
- var packager = require('./packager-3bddd88f.cjs.js');
27
+ var createDistWorkspace = require('./createDistWorkspace-7dc77457.cjs.js');
28
+ var packager = require('./packager-3c7ef6f2.cjs.js');
29
29
 
30
30
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
31
31
 
@@ -33,7 +33,7 @@ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
33
33
  var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
34
34
  var tar__default = /*#__PURE__*/_interopDefaultLegacy(tar);
35
35
 
36
- async function buildApp(options) {
36
+ async function buildFrontend(options) {
37
37
  const { targetDir, writeStats, configPaths } = options;
38
38
  const { name } = await fs__default["default"].readJson(path.resolve(targetDir, "package.json"));
39
39
  await bundle.buildBundle({
@@ -53,7 +53,10 @@ const SKELETON_FILE = "skeleton.tar.gz";
53
53
  async function buildBackend(options) {
54
54
  const { targetDir, skipBuildDependencies } = options;
55
55
  const pkg = await fs__default["default"].readJson(path.resolve(targetDir, "package.json"));
56
- await packager.buildPackage({ outputs: /* @__PURE__ */ new Set([packager.Output.cjs]) });
56
+ await packager.buildPackage({
57
+ targetDir: options.targetDir,
58
+ outputs: /* @__PURE__ */ new Set([packager.Output.cjs])
59
+ });
57
60
  const tmpDir = await fs__default["default"].mkdtemp(path.resolve(os__default["default"].tmpdir(), "backstage-bundle"));
58
61
  try {
59
62
  await createDistWorkspace.createDistWorkspace([pkg.name], {
@@ -63,11 +66,12 @@ async function buildBackend(options) {
63
66
  parallelism: parallel.getEnvironmentParallelism(),
64
67
  skeleton: SKELETON_FILE
65
68
  });
66
- await fs__default["default"].remove(targetDir);
67
- await fs__default["default"].mkdir(targetDir);
68
- await fs__default["default"].move(path.resolve(tmpDir, SKELETON_FILE), path.resolve(targetDir, SKELETON_FILE));
69
+ const distDir = path.resolve(targetDir, "dist");
70
+ await fs__default["default"].remove(distDir);
71
+ await fs__default["default"].mkdir(distDir);
72
+ await fs__default["default"].move(path.resolve(tmpDir, SKELETON_FILE), path.resolve(distDir, SKELETON_FILE));
69
73
  await tar__default["default"].create({
70
- file: path.resolve(targetDir, BUNDLE_FILE),
74
+ file: path.resolve(distDir, BUNDLE_FILE),
71
75
  cwd: tmpDir,
72
76
  portable: true,
73
77
  noMtime: true,
@@ -78,6 +82,6 @@ async function buildBackend(options) {
78
82
  }
79
83
  }
80
84
 
81
- exports.buildApp = buildApp;
82
85
  exports.buildBackend = buildBackend;
83
- //# sourceMappingURL=buildBackend-08cefb3c.cjs.js.map
86
+ exports.buildFrontend = buildFrontend;
87
+ //# sourceMappingURL=buildBackend-4890a3fb.cjs.js.map