@backstage/cli 0.9.0 → 0.10.2

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 (46) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/config/jest.js +6 -3
  3. package/config/jestSucraseTransform.js +5 -1
  4. package/dist/cjs/{Lockfile-80f0eec4.cjs.js → Lockfile-35661afa.cjs.js} +18 -18
  5. package/dist/cjs/{build-73b8edfc.cjs.js → build-88dedfeb.cjs.js} +9 -9
  6. package/dist/cjs/{build-5907bd33.cjs.js → build-bdcd371f.cjs.js} +8 -7
  7. package/dist/cjs/{build-7571e64b.cjs.js → build-cff6118b.cjs.js} +8 -7
  8. package/dist/cjs/{build-9e812f65.cjs.js → build-f7391d28.cjs.js} +23 -20
  9. package/dist/cjs/{buildWorkspace-779679cc.cjs.js → buildWorkspace-9b87177e.cjs.js} +6 -6
  10. package/dist/cjs/{bump-67695db2.cjs.js → bump-b25927fc.cjs.js} +36 -36
  11. package/dist/cjs/{bundle-561463d9.cjs.js → bundle-55979dfa.cjs.js} +15 -15
  12. package/dist/cjs/{clean-1156a89f.cjs.js → clean-0f54cc14.cjs.js} +6 -6
  13. package/dist/cjs/{config-10d49423.cjs.js → config-5ba91797.cjs.js} +7 -7
  14. package/dist/cjs/{create-b0f456f9.cjs.js → create-6d641d14.cjs.js} +41 -41
  15. package/dist/cjs/{createPlugin-2c95815c.cjs.js → createPlugin-6ac2d312.cjs.js} +31 -31
  16. package/dist/cjs/{dev-a04f9251.cjs.js → dev-cd429ce6.cjs.js} +8 -8
  17. package/dist/cjs/{diff-d009aa81.cjs.js → diff-1d56d594.cjs.js} +39 -32
  18. package/dist/cjs/{docs-d4bb9d0c.cjs.js → docs-e4d44819.cjs.js} +6 -6
  19. package/dist/cjs/{index-af2b13e0.cjs.js → index-3c84ba54.cjs.js} +15 -15
  20. package/dist/cjs/{index-25ca4442.cjs.js → index-6d614e80.cjs.js} +69 -71
  21. package/dist/cjs/{index-351d0371.cjs.js → index-fedaf3ca.cjs.js} +14 -14
  22. package/dist/cjs/{info-05aaf204.cjs.js → info-8f94b247.cjs.js} +6 -6
  23. package/dist/cjs/{install-5d8e8fe5.cjs.js → install-ca0d283c.cjs.js} +23 -23
  24. package/dist/cjs/{lint-85c90960.cjs.js → lint-011ecb5e.cjs.js} +5 -5
  25. package/dist/cjs/{lint-d1316de9.cjs.js → lint-95e6683a.cjs.js} +7 -7
  26. package/dist/cjs/{pack-58a2ab5d.cjs.js → pack-e560ac5d.cjs.js} +6 -6
  27. package/dist/cjs/{packager-b251454c.cjs.js → packager-ce66e788.cjs.js} +37 -35
  28. package/dist/cjs/{packages-4a2d7110.cjs.js → packages-9eb07d25.cjs.js} +5 -5
  29. package/dist/cjs/{paths-034708b3.cjs.js → paths-21a11756.cjs.js} +37 -37
  30. package/dist/cjs/{print-5d03aebd.cjs.js → print-f804a5cf.cjs.js} +5 -5
  31. package/dist/cjs/{removePlugin-c64823bb.cjs.js → removePlugin-706b2785.cjs.js} +30 -29
  32. package/dist/cjs/{run-924136d8.cjs.js → run-d553c76f.cjs.js} +5 -5
  33. package/dist/cjs/{schema-d59459da.cjs.js → schema-96e87e90.cjs.js} +5 -5
  34. package/dist/cjs/{serve-0f30d0fc.cjs.js → serve-58628236.cjs.js} +9 -9
  35. package/dist/cjs/{serve-28c83157.cjs.js → serve-7d0a208f.cjs.js} +15 -15
  36. package/dist/cjs/{server-652ec9a3.cjs.js → server-3261a34f.cjs.js} +6 -6
  37. package/dist/cjs/{svgrTemplate-2d0d15cf.cjs.js → svgrTemplate-f19e974c.cjs.js} +3 -3
  38. package/dist/cjs/{tasks-802f087f.cjs.js → tasks-0a4f957e.cjs.js} +29 -29
  39. package/dist/cjs/{testCommand-11d07d1b.cjs.js → testCommand-ee69f817.cjs.js} +4 -4
  40. package/dist/cjs/{validate-3cc188fa.cjs.js → validate-095aa31b.cjs.js} +4 -4
  41. package/dist/index.cjs.js +1 -1
  42. package/package.json +21 -22
  43. package/templates/default-backend-plugin/src/run.ts.hbs +1 -1
  44. package/templates/default-plugin/package.json.hbs +3 -2
  45. package/templates/default-plugin/src/routes.ts.hbs +1 -1
  46. package/dist/cjs/buildImage-7b597eb4.cjs.js +0 -77
package/CHANGELOG.md CHANGED
@@ -1,5 +1,61 @@
1
1
  # @backstage/cli
2
2
 
3
+ ## 0.10.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 25dfc2d483: Add support for `.cjs` and `.mjs` extensions in local and dependency modules.
8
+
9
+ ## 0.10.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 0ebb05eee2: Add cli option to minify the generated code of a plugin or backend package
14
+
15
+ ```
16
+ backstage-cli plugin:build --minify
17
+ backstage-cli backend:build --minify
18
+ ```
19
+
20
+ - cd450844f6: Updated the frontend plugin template to put React dependencies in `peerDependencies` by default, as well as allowing both React v16 and v17. This change can be applied to existing plugins by running `yarn backstage-cli plugin:diff` within the plugin package directory.
21
+
22
+ ## 0.10.0
23
+
24
+ ### Minor Changes
25
+
26
+ - ea99ef5198: Remove the `backend:build-image` command from the CLI and added more deprecation warnings to other deprecated fields like `--lax` and `remove-plugin`
27
+
28
+ ### Patch Changes
29
+
30
+ - e7230ef814: Bump react-dev-utils to v12
31
+ - 416b68675d: build(dependencies): bump `style-loader` from 1.2.1 to 3.3.1
32
+ - Updated dependencies
33
+ - @backstage/config-loader@0.8.1
34
+
35
+ ## 0.9.1
36
+
37
+ ### Patch Changes
38
+
39
+ - dde216acf4: Switch the default test coverage provider from the jest default one to `'v8'`, which provides much better coverage information when using the default Backstage test setup. This is considered a bug fix as the current coverage information is often very inaccurate.
40
+ - 719cc87d2f: Disable ES transforms in tests transformed by the `jestSucraseTransform.js`. This is not considered a breaking change since all code is already transpiled this way in the development setup.
41
+ - bab752e2b3: Change default port of backend from 7000 to 7007.
42
+
43
+ This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
44
+
45
+ You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
46
+
47
+ ```
48
+ backend:
49
+ listen: 0.0.0.0:7123
50
+ baseUrl: http://localhost:7123
51
+ ```
52
+
53
+ More information can be found here: https://backstage.io/docs/conf/writing
54
+
55
+ - ee055cf6db: Update the default routes to use id instead of title
56
+ - Updated dependencies
57
+ - @backstage/errors@0.1.5
58
+
3
59
  ## 0.9.0
4
60
 
5
61
  ### Minor Changes
package/config/jest.js CHANGED
@@ -95,20 +95,23 @@ async function getProjectConfig(targetPath, displayName) {
95
95
  ...(displayName && { displayName }),
96
96
  rootDir: path.resolve(targetPath, 'src'),
97
97
  coverageDirectory: path.resolve(targetPath, 'coverage'),
98
- collectCoverageFrom: ['**/*.{js,jsx,ts,tsx}', '!**/*.d.ts'],
98
+ coverageProvider: 'v8',
99
+ collectCoverageFrom: ['**/*.{js,jsx,ts,tsx,mjs,cjs}', '!**/*.d.ts'],
99
100
  moduleNameMapper: {
100
101
  '\\.(css|less|scss|sss|styl)$': require.resolve('jest-css-modules'),
101
102
  },
102
103
 
103
104
  transform: {
104
- '\\.(js|jsx|ts|tsx)$': require.resolve('./jestSucraseTransform.js'),
105
+ '\\.(js|jsx|ts|tsx|mjs|cjs)$': require.resolve(
106
+ './jestSucraseTransform.js',
107
+ ),
105
108
  '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$':
106
109
  require.resolve('./jestFileTransform.js'),
107
110
  '\\.(yaml)$': require.resolve('jest-transform-yaml'),
108
111
  },
109
112
 
110
113
  // A bit more opinionated
111
- testMatch: ['**/?(*.)test.{js,jsx,mjs,ts,tsx}'],
114
+ testMatch: ['**/?(*.)test.{js,jsx,ts,tsx,mjs,cjs}'],
112
115
 
113
116
  transformIgnorePatterns: [`/node_modules/(?:${transformIgnorePattern})/`],
114
117
  };
@@ -46,7 +46,11 @@ function process(source, filePath) {
46
46
  }
47
47
 
48
48
  if (transforms) {
49
- return transform(source, { transforms, filePath }).code;
49
+ return transform(source, {
50
+ transforms,
51
+ filePath,
52
+ disableESTransforms: true,
53
+ }).code;
50
54
  }
51
55
 
52
56
  return source;
@@ -18,13 +18,13 @@ class Lockfile {
18
18
  }
19
19
  static async load(path) {
20
20
  var _a;
21
- const lockfileContents = await fs__default['default'].readFile(path, "utf8");
21
+ const lockfileContents = await fs__default["default"].readFile(path, "utf8");
22
22
  const lockfile$1 = lockfile.parse(lockfileContents);
23
23
  if (lockfile$1.type !== "success") {
24
24
  throw new Error(`Failed yarn.lock parse with ${lockfile$1.type}`);
25
25
  }
26
26
  const data = lockfile$1.object;
27
- const packages = new Map();
27
+ const packages = /* @__PURE__ */ new Map();
28
28
  for (const [key, value] of Object.entries(data)) {
29
29
  const [, name, range] = (_a = ENTRY_PATTERN.exec(key)) != null ? _a : [];
30
30
  if (!name) {
@@ -35,7 +35,7 @@ class Lockfile {
35
35
  queries = [];
36
36
  packages.set(name, queries);
37
37
  }
38
- queries.push({range, version: value.version});
38
+ queries.push({ range, version: value.version });
39
39
  }
40
40
  return new Lockfile(path, packages, data);
41
41
  }
@@ -47,7 +47,7 @@ class Lockfile {
47
47
  }
48
48
  analyze(options) {
49
49
  var _a;
50
- const {filter} = options != null ? options : {};
50
+ const { filter } = options != null ? options : {};
51
51
  const result = {
52
52
  invalidRanges: [],
53
53
  newVersions: [],
@@ -57,19 +57,19 @@ class Lockfile {
57
57
  if (filter && !filter(name)) {
58
58
  continue;
59
59
  }
60
- const invalid = allEntries.filter((e) => !semver__default['default'].validRange(e.range));
61
- result.invalidRanges.push(...invalid.map(({range}) => ({name, range})));
62
- const entries = allEntries.filter((e) => semver__default['default'].validRange(e.range));
60
+ const invalid = allEntries.filter((e) => !semver__default["default"].validRange(e.range));
61
+ result.invalidRanges.push(...invalid.map(({ range }) => ({ name, range })));
62
+ const entries = allEntries.filter((e) => semver__default["default"].validRange(e.range));
63
63
  if (entries.length < 2) {
64
64
  continue;
65
65
  }
66
- const versions = Array.from(new Set(entries.map((e) => e.version))).sort((v1, v2) => semver__default['default'].rcompare(v1, v2));
66
+ const versions = Array.from(new Set(entries.map((e) => e.version))).sort((v1, v2) => semver__default["default"].rcompare(v1, v2));
67
67
  if (versions.length < 2) {
68
68
  continue;
69
69
  }
70
- const acceptedVersions = new Set();
71
- for (const {version, range} of entries) {
72
- const acceptedVersion = versions.find((v) => semver__default['default'].satisfies(v, range));
70
+ const acceptedVersions = /* @__PURE__ */ new Set();
71
+ for (const { version, range } of entries) {
72
+ const acceptedVersion = versions.find((v) => semver__default["default"].satisfies(v, range));
73
73
  if (!acceptedVersion) {
74
74
  throw new Error(`No existing version was accepted for range ${range}, searching through ${versions}, for package ${name}`);
75
75
  }
@@ -86,13 +86,13 @@ class Lockfile {
86
86
  if (acceptedVersions.size === 1) {
87
87
  continue;
88
88
  }
89
- const maxVersion = Array.from(acceptedVersions).sort(semver__default['default'].rcompare)[0];
90
- const maxEntry = (_a = entries.filter((e) => semver__default['default'].satisfies(maxVersion, e.range)).map((e) => ({e, min: semver__default['default'].minVersion(e.range)})).filter((p) => p.min).sort((a, b) => semver__default['default'].rcompare(a.min, b.min))[0]) == null ? void 0 : _a.e;
89
+ const maxVersion = Array.from(acceptedVersions).sort(semver__default["default"].rcompare)[0];
90
+ const maxEntry = (_a = entries.filter((e) => semver__default["default"].satisfies(maxVersion, e.range)).map((e) => ({ e, min: semver__default["default"].minVersion(e.range) })).filter((p) => p.min).sort((a, b) => semver__default["default"].rcompare(a.min, b.min))[0]) == null ? void 0 : _a.e;
91
91
  if (!maxEntry) {
92
92
  throw new Error(`No entry found that satisfies max version '${maxVersion}'`);
93
93
  }
94
- for (const {version, range} of entries) {
95
- if (semver__default['default'].satisfies(maxVersion, range)) {
94
+ for (const { version, range } of entries) {
95
+ if (semver__default["default"].satisfies(maxVersion, range)) {
96
96
  continue;
97
97
  }
98
98
  result.newRanges.push({
@@ -119,7 +119,7 @@ class Lockfile {
119
119
  }
120
120
  replaceVersions(results) {
121
121
  var _a;
122
- for (const {name, range, oldVersion, newVersion} of results) {
122
+ for (const { name, range, oldVersion, newVersion } of results) {
123
123
  const query = `${name}@${range}`;
124
124
  const entryData = this.data[query];
125
125
  if (!entryData) {
@@ -144,7 +144,7 @@ class Lockfile {
144
144
  }
145
145
  }
146
146
  async save() {
147
- await fs__default['default'].writeFile(this.path, this.toString(), "utf8");
147
+ await fs__default["default"].writeFile(this.path, this.toString(), "utf8");
148
148
  }
149
149
  toString() {
150
150
  return lockfile.stringify(this.data);
@@ -152,4 +152,4 @@ class Lockfile {
152
152
  }
153
153
 
154
154
  exports.Lockfile = Lockfile;
155
- //# sourceMappingURL=Lockfile-80f0eec4.cjs.js.map
155
+ //# sourceMappingURL=Lockfile-35661afa.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-b251454c.cjs.js');
3
+ var packager = require('./packager-ce66e788.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-25ca4442.cjs.js');
8
+ require('./index-6d614e80.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -21,11 +21,11 @@ require('rollup-plugin-dts');
21
21
  require('@rollup/plugin-json');
22
22
  require('@rollup/plugin-yaml');
23
23
  require('rollup-pluginutils');
24
- require('./svgrTemplate-2d0d15cf.cjs.js');
24
+ require('./svgrTemplate-f19e974c.cjs.js');
25
25
 
26
26
  var build = async (cmd) => {
27
- let outputs = new Set();
28
- const {outputs: outputsStr} = cmd;
27
+ let outputs = /* @__PURE__ */ new Set();
28
+ const { outputs: outputsStr } = cmd;
29
29
  if (outputsStr) {
30
30
  for (const output of outputsStr.split(",")) {
31
31
  if (output in packager.Output) {
@@ -35,10 +35,10 @@ var build = async (cmd) => {
35
35
  }
36
36
  }
37
37
  } else {
38
- outputs = new Set([packager.Output.types, packager.Output.esm, packager.Output.cjs]);
38
+ outputs = /* @__PURE__ */ new Set([packager.Output.types, packager.Output.esm, packager.Output.cjs]);
39
39
  }
40
- await packager.buildPackage({outputs});
40
+ await packager.buildPackage({ outputs });
41
41
  };
42
42
 
43
- exports.default = build;
44
- //# sourceMappingURL=build-73b8edfc.cjs.js.map
43
+ exports["default"] = build;
44
+ //# sourceMappingURL=build-88dedfeb.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-b251454c.cjs.js');
3
+ var packager = require('./packager-ce66e788.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-25ca4442.cjs.js');
8
+ require('./index-6d614e80.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -21,13 +21,14 @@ require('rollup-plugin-dts');
21
21
  require('@rollup/plugin-json');
22
22
  require('@rollup/plugin-yaml');
23
23
  require('rollup-pluginutils');
24
- require('./svgrTemplate-2d0d15cf.cjs.js');
24
+ require('./svgrTemplate-f19e974c.cjs.js');
25
25
 
26
- var build = async () => {
26
+ var build = async (cmd) => {
27
27
  await packager.buildPackage({
28
- outputs: new Set([packager.Output.esm, packager.Output.types])
28
+ outputs: /* @__PURE__ */ new Set([packager.Output.cjs, packager.Output.types]),
29
+ minify: cmd.minify
29
30
  });
30
31
  };
31
32
 
32
- exports.default = build;
33
- //# sourceMappingURL=build-5907bd33.cjs.js.map
33
+ exports["default"] = build;
34
+ //# sourceMappingURL=build-bdcd371f.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-b251454c.cjs.js');
3
+ var packager = require('./packager-ce66e788.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-25ca4442.cjs.js');
8
+ require('./index-6d614e80.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -21,13 +21,14 @@ require('rollup-plugin-dts');
21
21
  require('@rollup/plugin-json');
22
22
  require('@rollup/plugin-yaml');
23
23
  require('rollup-pluginutils');
24
- require('./svgrTemplate-2d0d15cf.cjs.js');
24
+ require('./svgrTemplate-f19e974c.cjs.js');
25
25
 
26
- var build = async () => {
26
+ var build = async (cmd) => {
27
27
  await packager.buildPackage({
28
- outputs: new Set([packager.Output.cjs, packager.Output.types])
28
+ outputs: /* @__PURE__ */ new Set([packager.Output.esm, packager.Output.types]),
29
+ minify: cmd.minify
29
30
  });
30
31
  };
31
32
 
32
- exports.default = build;
33
- //# sourceMappingURL=build-7571e64b.cjs.js.map
33
+ exports["default"] = build;
34
+ //# sourceMappingURL=build-cff6118b.cjs.js.map
@@ -12,24 +12,24 @@ require('@backstage/cli-common');
12
12
  require('terser-webpack-plugin');
13
13
  var parallel = require('./parallel-a4714c72.cjs.js');
14
14
  require('mini-css-extract-plugin');
15
- var index = require('./index-25ca4442.cjs.js');
16
- require('./run-924136d8.cjs.js');
15
+ var index = require('./index-6d614e80.cjs.js');
16
+ require('./run-d553c76f.cjs.js');
17
17
  require('lodash/pickBy');
18
18
  var yn = require('yn');
19
19
  var FileSizeReporter = require('react-dev-utils/FileSizeReporter');
20
20
  var formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
21
- var paths = require('./paths-034708b3.cjs.js');
21
+ var paths = require('./paths-21a11756.cjs.js');
22
22
  var chalk = require('chalk');
23
23
  require('webpack-dev-server');
24
24
  require('react-dev-utils/openBrowser');
25
- var config = require('./config-10d49423.cjs.js');
25
+ var config = require('./config-5ba91797.cjs.js');
26
26
  require('commander');
27
27
  require('semver');
28
28
  require('@backstage/config/package.json');
29
29
  require('@backstage/errors');
30
30
  require('child_process');
31
31
  require('util');
32
- require('./svgrTemplate-2d0d15cf.cjs.js');
32
+ require('./svgrTemplate-f19e974c.cjs.js');
33
33
  require('@backstage/config-loader');
34
34
  require('@backstage/config');
35
35
 
@@ -44,7 +44,7 @@ var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
44
44
  const WARN_AFTER_BUNDLE_GZIP_SIZE = 512 * 1024;
45
45
  const WARN_AFTER_CHUNK_GZIP_SIZE = 1024 * 1024;
46
46
  async function buildBundle(options) {
47
- const {statsJsonEnabled, schema: configSchema} = options;
47
+ const { statsJsonEnabled, schema: configSchema } = options;
48
48
  const paths$1 = paths.resolveBundlingPaths(options);
49
49
  const config = await paths.createConfig(paths$1, {
50
50
  ...options,
@@ -52,21 +52,21 @@ async function buildBundle(options) {
52
52
  isDev: false,
53
53
  baseUrl: paths.resolveBaseUrl(options.frontendConfig)
54
54
  });
55
- const compiler = webpack__default['default'](config);
56
- const isCi = yn__default['default'](process.env.CI, {default: false});
55
+ const compiler = webpack__default["default"](config);
56
+ const isCi = yn__default["default"](process.env.CI, { default: false });
57
57
  const previousFileSizes = await FileSizeReporter.measureFileSizesBeforeBuild(paths$1.targetDist);
58
- await fs__default['default'].emptyDir(paths$1.targetDist);
58
+ await fs__default["default"].emptyDir(paths$1.targetDist);
59
59
  if (paths$1.targetPublic) {
60
- await fs__default['default'].copy(paths$1.targetPublic, paths$1.targetDist, {
60
+ await fs__default["default"].copy(paths$1.targetPublic, paths$1.targetDist, {
61
61
  dereference: true,
62
62
  filter: (file) => file !== paths$1.targetHtml
63
63
  });
64
64
  }
65
65
  if (configSchema) {
66
- await fs__default['default'].writeJson(path.resolve(paths$1.targetDist, ".config-schema.json"), configSchema.serialize(), {spaces: 2});
66
+ await fs__default["default"].writeJson(path.resolve(paths$1.targetDist, ".config-schema.json"), configSchema.serialize(), { spaces: 2 });
67
67
  }
68
- const {stats} = await build$1(compiler, isCi).catch((error) => {
69
- console.log(chalk__default['default'].red("Failed to compile.\n"));
68
+ const { stats } = await build$1(compiler, isCi).catch((error) => {
69
+ console.log(chalk__default["default"].red("Failed to compile.\n"));
70
70
  throw new Error(`Failed to compile.
71
71
  ${error.message || error}`);
72
72
  });
@@ -84,7 +84,7 @@ async function build$1(compiler, isCi) {
84
84
  compiler.run((err, buildStats) => {
85
85
  if (err) {
86
86
  if (err.message) {
87
- const {errors: errors2} = formatWebpackMessages__default['default']({
87
+ const { errors: errors2 } = formatWebpackMessages__default["default"]({
88
88
  errors: [err.message],
89
89
  warnings: new Array(),
90
90
  _showErrors: true,
@@ -107,7 +107,7 @@ async function build$1(compiler, isCi) {
107
107
  warnings: true,
108
108
  errors: true
109
109
  });
110
- const {errors, warnings} = formatWebpackMessages__default['default']({
110
+ const { errors, warnings } = formatWebpackMessages__default["default"]({
111
111
  errors: (_a = serializedStats.errors) == null ? void 0 : _a.map((e) => e.message ? e.message : e),
112
112
  warnings: (_b = serializedStats.warnings) == null ? void 0 : _b.map((e) => e.message ? e.message : e)
113
113
  });
@@ -115,14 +115,17 @@ async function build$1(compiler, isCi) {
115
115
  throw new Error(errors[0]);
116
116
  }
117
117
  if (isCi && warnings.length) {
118
- console.log(chalk__default['default'].yellow("\nTreating warnings as errors because process.env.CI = true.\n"));
118
+ console.log(chalk__default["default"].yellow("\nTreating warnings as errors because process.env.CI = true.\n"));
119
119
  throw new Error(warnings.join("\n\n"));
120
120
  }
121
- return {stats};
121
+ return { stats };
122
122
  }
123
123
 
124
124
  var build = async (cmd) => {
125
- const {name} = await fs__default['default'].readJson(index.paths.resolveTarget("package.json"));
125
+ if (cmd.lax) {
126
+ console.warn(chalk__default["default"].yellow(`[DEPRECATED] - The --lax option is deprecated and will be removed in the future. Please open an issue towards https://github.com/backstage/backstage that describes your use-case if you need the flag to stay around.`));
127
+ }
128
+ const { name } = await fs__default["default"].readJson(index.paths.resolveTarget("package.json"));
126
129
  await buildBundle({
127
130
  entry: "src/index",
128
131
  parallel: parallel.parseParallel(process.env[parallel.PARALLEL_ENV_VAR]),
@@ -135,5 +138,5 @@ var build = async (cmd) => {
135
138
  });
136
139
  };
137
140
 
138
- exports.default = build;
139
- //# sourceMappingURL=build-9e812f65.cjs.js.map
141
+ exports["default"] = build;
142
+ //# sourceMappingURL=build-f7391d28.cjs.js.map
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-af2b13e0.cjs.js');
4
+ var index = require('./index-3c84ba54.cjs.js');
5
5
  require('path');
6
6
  require('os');
7
7
  require('tar');
8
- require('./index-25ca4442.cjs.js');
8
+ require('./index-6d614e80.cjs.js');
9
9
  require('commander');
10
10
  require('chalk');
11
11
  require('semver');
12
12
  require('@backstage/cli-common');
13
13
  require('@backstage/config/package.json');
14
14
  require('@backstage/errors');
15
- require('./run-924136d8.cjs.js');
15
+ require('./run-d553c76f.cjs.js');
16
16
  require('child_process');
17
17
  require('util');
18
18
 
@@ -21,7 +21,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
21
21
  var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
22
22
 
23
23
  var buildWorkspace = async (dir, _cmd, packages) => {
24
- if (!await fs__default['default'].pathExists(dir)) {
24
+ if (!await fs__default["default"].pathExists(dir)) {
25
25
  throw new Error(`Target workspace directory doesn't exist, '${dir}'`);
26
26
  }
27
27
  await index.createDistWorkspace(packages, {
@@ -29,5 +29,5 @@ var buildWorkspace = async (dir, _cmd, packages) => {
29
29
  });
30
30
  };
31
31
 
32
- exports.default = buildWorkspace;
33
- //# sourceMappingURL=buildWorkspace-779679cc.cjs.js.map
32
+ exports["default"] = buildWorkspace;
33
+ //# sourceMappingURL=buildWorkspace-9b87177e.cjs.js.map
@@ -5,11 +5,11 @@ var chalk = require('chalk');
5
5
  var semver = require('semver');
6
6
  var errors = require('@backstage/errors');
7
7
  var path = require('path');
8
- var run = require('./run-924136d8.cjs.js');
9
- var index = require('./index-25ca4442.cjs.js');
10
- var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
11
- var packages = require('./packages-4a2d7110.cjs.js');
12
- var lint = require('./lint-d1316de9.cjs.js');
8
+ var run = require('./run-d553c76f.cjs.js');
9
+ var index = require('./index-6d614e80.cjs.js');
10
+ var Lockfile = require('./Lockfile-35661afa.cjs.js');
11
+ var packages = require('./packages-9eb07d25.cjs.js');
12
+ var lint = require('./lint-95e6683a.cjs.js');
13
13
  var cliCommon = require('@backstage/cli-common');
14
14
  require('child_process');
15
15
  require('util');
@@ -36,7 +36,7 @@ var bump = async () => {
36
36
  const lockfile = await Lockfile.Lockfile.load(lockfilePath);
37
37
  const findTargetVersion = createVersionFinder();
38
38
  const dependencyMap = await packages.mapDependencies(index.paths.targetDir);
39
- const versionBumps = new Map();
39
+ const versionBumps = /* @__PURE__ */ new Map();
40
40
  const unlocked = Array();
41
41
  await workerThreads(16, dependencyMap.entries(), async ([name, pkgs]) => {
42
42
  var _a2, _b;
@@ -51,9 +51,9 @@ var bump = async () => {
51
51
  throw error;
52
52
  }
53
53
  for (const pkg of pkgs) {
54
- if (semver__default['default'].satisfies(target, pkg.range)) {
55
- if (((_a2 = semver__default['default'].minVersion(pkg.range)) == null ? void 0 : _a2.version) !== target) {
56
- unlocked.push({name, range: pkg.range, target});
54
+ if (semver__default["default"].satisfies(target, pkg.range)) {
55
+ if (((_a2 = semver__default["default"].minVersion(pkg.range)) == null ? void 0 : _a2.version) !== target) {
56
+ unlocked.push({ name, range: pkg.range, target });
57
57
  }
58
58
  continue;
59
59
  }
@@ -81,41 +81,41 @@ var bump = async () => {
81
81
  throw error;
82
82
  }
83
83
  for (const entry of (_a2 = lockfile.get(name)) != null ? _a2 : []) {
84
- if (!semver__default['default'].satisfies(target, entry.range)) {
84
+ if (!semver__default["default"].satisfies(target, entry.range)) {
85
85
  continue;
86
86
  }
87
- unlocked.push({name, range: entry.range, target});
87
+ unlocked.push({ name, range: entry.range, target });
88
88
  }
89
89
  });
90
90
  console.log();
91
91
  if (versionBumps.size === 0 && unlocked.length === 0) {
92
- console.log(chalk__default['default'].green("All Backstage packages are up to date!"));
92
+ console.log(chalk__default["default"].green("All Backstage packages are up to date!"));
93
93
  } else {
94
- console.log(chalk__default['default'].yellow("Some packages are outdated, updating"));
94
+ console.log(chalk__default["default"].yellow("Some packages are outdated, updating"));
95
95
  console.log();
96
96
  if (unlocked.length > 0) {
97
- const removed = new Set();
98
- for (const {name, range, target} of unlocked) {
97
+ const removed = /* @__PURE__ */ new Set();
98
+ for (const { name, range, target } of unlocked) {
99
99
  const existingEntry = (_a = lockfile.get(name)) == null ? void 0 : _a.find((e) => e.range === range);
100
100
  if ((existingEntry == null ? void 0 : existingEntry.version) === target) {
101
101
  continue;
102
102
  }
103
- const key = JSON.stringify({name, range});
103
+ const key = JSON.stringify({ name, range });
104
104
  if (!removed.has(key)) {
105
105
  removed.add(key);
106
- console.log(`${chalk__default['default'].magenta("unlocking")} ${name}@${chalk__default['default'].yellow(range)} ~> ${chalk__default['default'].yellow(target)}`);
106
+ console.log(`${chalk__default["default"].magenta("unlocking")} ${name}@${chalk__default["default"].yellow(range)} ~> ${chalk__default["default"].yellow(target)}`);
107
107
  lockfile.remove(name, range);
108
108
  }
109
109
  }
110
110
  await lockfile.save();
111
111
  }
112
- const breakingUpdates = new Map();
112
+ const breakingUpdates = /* @__PURE__ */ new Map();
113
113
  await workerThreads(16, versionBumps.entries(), async ([name, deps]) => {
114
114
  var _a2;
115
115
  const pkgPath = path.resolve(deps[0].location, "package.json");
116
- const pkgJson = await fs__default['default'].readJson(pkgPath);
116
+ const pkgJson = await fs__default["default"].readJson(pkgPath);
117
117
  for (const dep of deps) {
118
- console.log(`${chalk__default['default'].cyan("bumping")} ${dep.name} in ${chalk__default['default'].cyan(name)} to ${chalk__default['default'].yellow(dep.range)}`);
118
+ console.log(`${chalk__default["default"].cyan("bumping")} ${dep.name} in ${chalk__default["default"].cyan(name)} to ${chalk__default["default"].yellow(dep.range)}`);
119
119
  for (const depType of DEP_TYPES) {
120
120
  if (depType in pkgJson && dep.name in pkgJson[depType]) {
121
121
  const oldRange = pkgJson[depType][dep.name];
@@ -124,27 +124,27 @@ var bump = async () => {
124
124
  if (lockfileEntry) {
125
125
  const from = lockfileEntry.version;
126
126
  const to = dep.target;
127
- if (!semver__default['default'].satisfies(to, `^${from}`)) {
128
- breakingUpdates.set(dep.name, {from, to});
127
+ if (!semver__default["default"].satisfies(to, `^${from}`)) {
128
+ breakingUpdates.set(dep.name, { from, to });
129
129
  }
130
130
  }
131
131
  }
132
132
  }
133
133
  }
134
- await fs__default['default'].writeJson(pkgPath, pkgJson, {spaces: 2});
134
+ await fs__default["default"].writeJson(pkgPath, pkgJson, { spaces: 2 });
135
135
  });
136
136
  console.log();
137
137
  await bumpBackstageJsonVersion();
138
138
  console.log();
139
- console.log(`Running ${chalk__default['default'].blue("yarn install")} to install new versions`);
139
+ console.log(`Running ${chalk__default["default"].blue("yarn install")} to install new versions`);
140
140
  console.log();
141
141
  await run.run("yarn", ["install"]);
142
142
  if (breakingUpdates.size > 0) {
143
143
  console.log();
144
- console.log(chalk__default['default'].yellow("\u26A0\uFE0F The following packages may have breaking changes:"));
144
+ console.log(chalk__default["default"].yellow("\u26A0\uFE0F The following packages may have breaking changes:"));
145
145
  console.log();
146
- for (const [name, {from, to}] of Array.from(breakingUpdates.entries()).sort()) {
147
- console.log(` ${chalk__default['default'].yellow(name)} : ${chalk__default['default'].yellow(from)} ~> ${chalk__default['default'].yellow(to)}`);
146
+ for (const [name, { from, to }] of Array.from(breakingUpdates.entries()).sort()) {
147
+ console.log(` ${chalk__default["default"].yellow(name)} : ${chalk__default["default"].yellow(from)} ~> ${chalk__default["default"].yellow(to)}`);
148
148
  let path;
149
149
  if (name.startsWith("@backstage/plugin-")) {
150
150
  path = `plugins/${name.replace("@backstage/plugin-", "")}`;
@@ -159,7 +159,7 @@ var bump = async () => {
159
159
  } else {
160
160
  console.log();
161
161
  }
162
- console.log(chalk__default['default'].green("Version bump complete!"));
162
+ console.log(chalk__default["default"].green("Version bump complete!"));
163
163
  }
164
164
  console.log();
165
165
  const dedupLockfile = await Lockfile.Lockfile.load(lockfilePath);
@@ -169,13 +169,13 @@ var bump = async () => {
169
169
  if (result.newVersions.length > 0) {
170
170
  throw new Error("Duplicate versions present after package bump");
171
171
  }
172
- const forbiddenNewRanges = result.newRanges.filter(({name}) => lint.forbiddenDuplicatesFilter(name));
172
+ const forbiddenNewRanges = result.newRanges.filter(({ name }) => lint.forbiddenDuplicatesFilter(name));
173
173
  if (forbiddenNewRanges.length > 0) {
174
174
  throw new Error(`Version bump failed for ${forbiddenNewRanges.map((i) => i.name).join(", ")}`);
175
175
  }
176
176
  };
177
177
  function createVersionFinder() {
178
- const found = new Map();
178
+ const found = /* @__PURE__ */ new Map();
179
179
  return async function findTargetVersion(name) {
180
180
  const existing = found.get(name);
181
181
  if (existing) {
@@ -193,19 +193,19 @@ function createVersionFinder() {
193
193
  }
194
194
  async function bumpBackstageJsonVersion() {
195
195
  const backstageJsonPath = index.paths.resolveTargetRoot(cliCommon.BACKSTAGE_JSON);
196
- const backstageJson = await fs__default['default'].readJSON(backstageJsonPath).catch((e) => {
196
+ const backstageJson = await fs__default["default"].readJSON(backstageJsonPath).catch((e) => {
197
197
  if (e.code === "ENOENT") {
198
198
  return;
199
199
  }
200
200
  throw e;
201
201
  });
202
202
  const info = await packages.fetchPackageInfo("@backstage/create-app");
203
- const {latest} = info["dist-tags"];
203
+ const { latest } = info["dist-tags"];
204
204
  if ((backstageJson == null ? void 0 : backstageJson.version) === latest) {
205
205
  return;
206
206
  }
207
- console.log(chalk__default['default'].yellow(typeof backstageJson === "undefined" ? `Creating ${cliCommon.BACKSTAGE_JSON}` : `Bumping version in ${cliCommon.BACKSTAGE_JSON}`));
208
- await fs__default['default'].writeJson(backstageJsonPath, {...backstageJson, version: latest}, {
207
+ console.log(chalk__default["default"].yellow(typeof backstageJson === "undefined" ? `Creating ${cliCommon.BACKSTAGE_JSON}` : `Bumping version in ${cliCommon.BACKSTAGE_JSON}`));
208
+ await fs__default["default"].writeJson(backstageJsonPath, { ...backstageJson, version: latest }, {
209
209
  spaces: 2,
210
210
  encoding: "utf8"
211
211
  });
@@ -224,5 +224,5 @@ async function workerThreads(count, items, fn) {
224
224
  }
225
225
 
226
226
  exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
227
- exports.default = bump;
228
- //# sourceMappingURL=bump-67695db2.cjs.js.map
227
+ exports["default"] = bump;
228
+ //# sourceMappingURL=bump-b25927fc.cjs.js.map