@backstage/cli 0.7.15 → 0.8.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 (47) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/config/eslint.backend.js +11 -6
  3. package/config/jest.js +45 -16
  4. package/config/jestEsmTransform.js +4 -21
  5. package/config/jestSucraseTransform.js +66 -0
  6. package/dist/cjs/{build-6991f114.cjs.js → build-1cbb9e7d.cjs.js} +6 -5
  7. package/dist/cjs/{build-e9d00839.cjs.js → build-70dd213a.cjs.js} +4 -3
  8. package/dist/cjs/{build-584089b4.cjs.js → build-b25b29ed.cjs.js} +4 -3
  9. package/dist/cjs/{build-6303ed2c.cjs.js → build-bae5a019.cjs.js} +4 -3
  10. package/dist/cjs/{buildImage-40785c7b.cjs.js → buildImage-6b35526c.cjs.js} +5 -4
  11. package/dist/cjs/{buildWorkspace-54f31886.cjs.js → buildWorkspace-424d4929.cjs.js} +5 -4
  12. package/dist/cjs/{bump-f1bd882f.cjs.js → bump-bce7f9c2.cjs.js} +10 -50
  13. package/dist/cjs/{bundle-82c252ba.cjs.js → bundle-cc6870fb.cjs.js} +6 -5
  14. package/dist/cjs/{clean-d37f05f1.cjs.js → clean-7a981ea7.cjs.js} +3 -2
  15. package/dist/cjs/{config-25f9b58b.cjs.js → config-24fce3c1.cjs.js} +20 -5
  16. package/dist/cjs/{createPlugin-066b2211.cjs.js → createPlugin-2c2b30fc.cjs.js} +7 -4
  17. package/dist/cjs/{dev-267f8c50.cjs.js → dev-efe399b8.cjs.js} +5 -4
  18. package/dist/cjs/{diff-23290f53.cjs.js → diff-e3661054.cjs.js} +3 -2
  19. package/dist/cjs/{docs-16e1a114.cjs.js → docs-ceb404a3.cjs.js} +4 -3
  20. package/dist/cjs/{index-595dd01c.cjs.js → index-26bec8ac.cjs.js} +5 -6
  21. package/dist/cjs/{index-74ba6239.cjs.js → index-6fee1c9a.cjs.js} +159 -41
  22. package/dist/cjs/{index-06502eb1.cjs.js → index-fbff7b78.cjs.js} +3 -2
  23. package/dist/cjs/{info-60e7921f.cjs.js → info-5e7c2679.cjs.js} +4 -3
  24. package/dist/cjs/install-5920b5df.cjs.js +214 -0
  25. package/dist/cjs/{lint-30f44ea5.cjs.js → lint-306bb8fe.cjs.js} +4 -3
  26. package/dist/cjs/{lint-a76f6ca5.cjs.js → lint-6175d471.cjs.js} +4 -3
  27. package/dist/cjs/{pack-cd0b0812.cjs.js → pack-32228ad6.cjs.js} +3 -2
  28. package/dist/cjs/{packager-c2a87e1f.cjs.js → packager-1ad7272f.cjs.js} +2 -2
  29. package/dist/cjs/packages-a5b6a3df.cjs.js +50 -0
  30. package/dist/cjs/{paths-a0eb9f40.cjs.js → paths-09202a46.cjs.js} +8 -5
  31. package/dist/cjs/{print-81bff161.cjs.js → print-806676fe.cjs.js} +6 -4
  32. package/dist/cjs/{removePlugin-3ad49c8c.cjs.js → removePlugin-f82ac16a.cjs.js} +11 -3
  33. package/dist/cjs/{run-7e2d4777.cjs.js → run-59c4395e.cjs.js} +9 -4
  34. package/dist/cjs/{schema-48dd9498.cjs.js → schema-398d8593.cjs.js} +4 -3
  35. package/dist/cjs/{serve-7f18ef8d.cjs.js → serve-708fbf98.cjs.js} +8 -7
  36. package/dist/cjs/{serve-4d9dbf1e.cjs.js → serve-f4bb3cb0.cjs.js} +7 -6
  37. package/dist/cjs/{server-433545bf.cjs.js → server-107d9cc0.cjs.js} +2 -2
  38. package/dist/cjs/{tasks-fbc2dd76.cjs.js → tasks-9bd3e946.cjs.js} +2 -2
  39. package/dist/cjs/{testCommand-749220a2.cjs.js → testCommand-e32fbd45.cjs.js} +4 -3
  40. package/dist/cjs/{validate-5a9fa99d.cjs.js → validate-9523a11e.cjs.js} +6 -4
  41. package/dist/index.cjs.js +2 -1
  42. package/package.json +21 -22
  43. package/templates/default-backend-plugin/package.json.hbs +1 -1
  44. package/templates/default-plugin/package.json.hbs +1 -1
  45. package/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +5 -2
  46. package/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +2 -2
  47. package/templates/default-plugin/src/setupTests.ts +1 -1
@@ -0,0 +1,214 @@
1
+ 'use strict';
2
+
3
+ var fs = require('fs-extra');
4
+ require('semver');
5
+ require('@yarnpkg/lockfile');
6
+ var packages = require('./packages-a5b6a3df.cjs.js');
7
+ var index = require('./index-6fee1c9a.cjs.js');
8
+ var chalk = require('chalk');
9
+ var sortBy = require('lodash/sortBy');
10
+ var groupBy = require('lodash/groupBy');
11
+ var run = require('./run-59c4395e.cjs.js');
12
+ require('commander');
13
+ require('@backstage/cli-common');
14
+ require('@backstage/config/package.json');
15
+ require('@backstage/errors');
16
+ require('child_process');
17
+ require('util');
18
+
19
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
+
21
+ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
22
+ var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
23
+ var sortBy__default = /*#__PURE__*/_interopDefaultLegacy(sortBy);
24
+ var groupBy__default = /*#__PURE__*/_interopDefaultLegacy(groupBy);
25
+
26
+ function createStepDefinition(config) {
27
+ return config;
28
+ }
29
+
30
+ class AppRouteStep {
31
+ constructor(data) {
32
+ this.data = data;
33
+ }
34
+ async run() {
35
+ var _a;
36
+ const {path, element, packageName} = this.data;
37
+ const appTsxPath = index.paths.resolveTargetRoot("packages/app/src/App.tsx");
38
+ const contents = await fs__default['default'].readFile(appTsxPath, "utf-8");
39
+ let failed = false;
40
+ const contentsWithRoute = contents.replace(/(\s*)<\/FlatRoutes>/, `$1 <Route path="${path}" element={${element}} />$1</FlatRoutes>`);
41
+ if (contentsWithRoute === contents) {
42
+ failed = true;
43
+ }
44
+ const componentName = (_a = element.match(/[A-Za-z0-9]+/)) == null ? void 0 : _a[0];
45
+ if (!componentName) {
46
+ throw new Error(`Could not find component name in ${element}`);
47
+ }
48
+ const contentsWithImport = contentsWithRoute.replace(/^import /m, `import { ${componentName} } from '${packageName}';
49
+ import `);
50
+ if (contentsWithImport === contentsWithRoute) {
51
+ failed = true;
52
+ }
53
+ if (failed) {
54
+ console.log("Failed to automatically add a route to package/app/src/App.tsx");
55
+ console.log(`Action needed, add the following:`);
56
+ console.log(`1. import { ${componentName} } from '${packageName}';`);
57
+ console.log(`2. <Route path="${path}" element={${element}} />`);
58
+ } else {
59
+ await fs__default['default'].writeFile(appTsxPath, contentsWithImport);
60
+ }
61
+ }
62
+ }
63
+ const appRoute = createStepDefinition({
64
+ type: "app-route",
65
+ deserialize(obj, pkg) {
66
+ const {path, element} = obj;
67
+ if (!path || typeof path !== "string") {
68
+ throw new Error("Invalid install step, 'path' must be a string");
69
+ }
70
+ if (!element || typeof element !== "string") {
71
+ throw new Error("Invalid install step, 'element' must be a string");
72
+ }
73
+ return new AppRouteStep({path, element, packageName: pkg.name});
74
+ },
75
+ create(data) {
76
+ return new AppRouteStep(data);
77
+ }
78
+ });
79
+
80
+ class DependenciesStep {
81
+ constructor(data) {
82
+ this.data = data;
83
+ }
84
+ async run() {
85
+ const {dependencies: dependencies2} = this.data;
86
+ const byTarget = groupBy__default['default'](dependencies2, "target");
87
+ for (const [target, deps] of Object.entries(byTarget)) {
88
+ const pkgPath = index.paths.resolveTargetRoot(target, "package.json");
89
+ const pkgJson = await fs__default['default'].readJson(pkgPath);
90
+ const depTypes = new Set();
91
+ for (const dep of deps) {
92
+ depTypes.add(dep.type);
93
+ pkgJson[dep.type][dep.name] = dep.query;
94
+ }
95
+ for (const depType of depTypes) {
96
+ pkgJson[depType] = Object.fromEntries(sortBy__default['default'](Object.entries(pkgJson[depType]), ([key]) => key));
97
+ }
98
+ await fs__default['default'].writeJson(pkgPath, pkgJson, {spaces: 2});
99
+ }
100
+ console.log();
101
+ console.log(`Running ${chalk__default['default'].blue("yarn install")} to install new versions`);
102
+ console.log();
103
+ await run.run("yarn", ["install"]);
104
+ }
105
+ }
106
+ const dependencies = createStepDefinition({
107
+ type: "dependencies",
108
+ deserialize() {
109
+ throw new Error("The dependency step may not be defined in JSON");
110
+ },
111
+ create(data) {
112
+ return new DependenciesStep(data);
113
+ }
114
+ });
115
+
116
+ class MessageStep {
117
+ constructor(data) {
118
+ this.data = data;
119
+ }
120
+ async run() {
121
+ console.log(this.data.message);
122
+ }
123
+ }
124
+ const message = createStepDefinition({
125
+ type: "message",
126
+ deserialize(obj) {
127
+ const {message: msg} = obj;
128
+ if (!msg || typeof msg !== "string" && !Array.isArray(msg)) {
129
+ throw new Error("Invalid install step, 'message' must be a string or array");
130
+ }
131
+ return new MessageStep({message: [msg].flat().join("")});
132
+ },
133
+ create(data) {
134
+ return new MessageStep(data);
135
+ }
136
+ });
137
+
138
+ var stepDefinitionMap = /*#__PURE__*/Object.freeze({
139
+ __proto__: null,
140
+ appRoute: appRoute,
141
+ dependencies: dependencies,
142
+ message: message
143
+ });
144
+
145
+ const stepDefinitions = Object.values(stepDefinitionMap);
146
+ async function fetchPluginPackage(id) {
147
+ const searchNames = [`@backstage/plugin-${id}`, `backstage-plugin-${id}`, id];
148
+ for (const name of searchNames) {
149
+ try {
150
+ const packageInfo = await packages.fetchPackageInfo(name);
151
+ return packageInfo;
152
+ } catch (error) {
153
+ if (error.name !== "NotFoundError") {
154
+ throw error;
155
+ }
156
+ }
157
+ }
158
+ throw new index.NotFoundError(`No matching package found for '${id}', tried ${searchNames.join(", ")}`);
159
+ }
160
+ class PluginInstaller {
161
+ constructor(steps) {
162
+ this.steps = steps;
163
+ }
164
+ static async resolveSteps(pkg) {
165
+ var _a, _b;
166
+ const steps = [];
167
+ const dependencies$1 = [];
168
+ dependencies$1.push({
169
+ target: "packages/app",
170
+ type: "dependencies",
171
+ name: pkg.name,
172
+ query: `^${pkg.version}`
173
+ });
174
+ steps.push({
175
+ type: "dependencies",
176
+ step: dependencies.create({dependencies: dependencies$1})
177
+ });
178
+ for (const step of (_b = (_a = pkg.experimentalInstallationRecipe) == null ? void 0 : _a.steps) != null ? _b : []) {
179
+ const {type} = step;
180
+ const definition = stepDefinitions.find((d) => d.type === type);
181
+ if (definition) {
182
+ steps.push({
183
+ type,
184
+ step: definition.deserialize(step, pkg)
185
+ });
186
+ } else {
187
+ throw new Error(`Unsupported step type: ${type}`);
188
+ }
189
+ }
190
+ return steps;
191
+ }
192
+ async run() {
193
+ for (const {type, step} of this.steps) {
194
+ console.log(`Running step ${type}`);
195
+ await step.run();
196
+ }
197
+ }
198
+ }
199
+ var install = async (pluginId, cmd) => {
200
+ let pkg;
201
+ if (pluginId) {
202
+ pkg = await fetchPluginPackage(pluginId);
203
+ } else if (cmd == null ? void 0 : cmd.from) {
204
+ pkg = await fs__default['default'].readJson(cmd.from);
205
+ } else {
206
+ throw new Error("Missing both <plugin-id> or a package.json file path in the --from flag.");
207
+ }
208
+ const steps = await PluginInstaller.resolveSteps(pkg);
209
+ const installer = new PluginInstaller(steps);
210
+ await installer.run();
211
+ };
212
+
213
+ exports.default = install;
214
+ //# sourceMappingURL=install-5920b5df.cjs.js.map
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var run = require('./run-7e2d4777.cjs.js');
4
- var index = require('./index-74ba6239.cjs.js');
3
+ var run = require('./run-59c4395e.cjs.js');
4
+ var index = require('./index-6fee1c9a.cjs.js');
5
5
  require('child_process');
6
6
  require('util');
7
+ require('@backstage/errors');
7
8
  require('commander');
8
9
  require('chalk');
9
10
  require('fs-extra');
@@ -25,4 +26,4 @@ var lint = async (cmd, cmdArgs) => {
25
26
  };
26
27
 
27
28
  exports.default = lint;
28
- //# sourceMappingURL=lint-30f44ea5.cjs.js.map
29
+ //# sourceMappingURL=lint-306bb8fe.cjs.js.map
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
4
- require('./run-7e2d4777.cjs.js');
4
+ require('./run-59c4395e.cjs.js');
5
5
  require('chalk');
6
- var index = require('./index-74ba6239.cjs.js');
6
+ var index = require('./index-6fee1c9a.cjs.js');
7
7
  var partition = require('lodash/partition');
8
8
  require('fs-extra');
9
9
  require('semver');
10
10
  require('@yarnpkg/lockfile');
11
11
  require('child_process');
12
12
  require('util');
13
+ require('@backstage/errors');
13
14
  require('commander');
14
15
  require('@backstage/cli-common');
15
16
  require('@backstage/config/package.json');
@@ -73,4 +74,4 @@ function logArray(arr, header, each) {
73
74
  exports.default = lint;
74
75
  exports.forbiddenDuplicatesFilter = forbiddenDuplicatesFilter;
75
76
  exports.includedFilter = includedFilter;
76
- //# sourceMappingURL=lint-a76f6ca5.cjs.js.map
77
+ //# sourceMappingURL=lint-6175d471.cjs.js.map
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-74ba6239.cjs.js');
4
+ var index = require('./index-6fee1c9a.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('semver');
8
8
  require('@backstage/cli-common');
9
9
  require('@backstage/config/package.json');
10
+ require('@backstage/errors');
10
11
 
11
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
13
 
@@ -38,4 +39,4 @@ const post = async () => {
38
39
 
39
40
  exports.post = post;
40
41
  exports.pre = pre;
41
- //# sourceMappingURL=pack-cd0b0812.cjs.js.map
42
+ //# sourceMappingURL=pack-32228ad6.cjs.js.map
@@ -4,7 +4,7 @@ var fs = require('fs-extra');
4
4
  var rollup = require('rollup');
5
5
  var chalk = require('chalk');
6
6
  var path = require('path');
7
- var index = require('./index-74ba6239.cjs.js');
7
+ var index = require('./index-6fee1c9a.cjs.js');
8
8
  var peerDepsExternal = require('rollup-plugin-peer-deps-external');
9
9
  var commonjs = require('@rollup/plugin-commonjs');
10
10
  var resolve = require('@rollup/plugin-node-resolve');
@@ -254,4 +254,4 @@ const buildPackage = async (options) => {
254
254
  };
255
255
 
256
256
  exports.buildPackage = buildPackage;
257
- //# sourceMappingURL=packager-c2a87e1f.cjs.js.map
257
+ //# sourceMappingURL=packager-1ad7272f.cjs.js.map
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var run = require('./run-59c4395e.cjs.js');
4
+ var index = require('./index-6fee1c9a.cjs.js');
5
+
6
+ const PREFIX = "@backstage";
7
+ const DEP_TYPES = [
8
+ "dependencies",
9
+ "devDependencies",
10
+ "peerDependencies",
11
+ "optionalDependencies"
12
+ ];
13
+ async function fetchPackageInfo(name) {
14
+ const output = await run.runPlain("yarn", "info", "--json", name);
15
+ if (!output) {
16
+ throw new index.NotFoundError(`No package information found for package ${name}`);
17
+ }
18
+ const info = JSON.parse(output);
19
+ if (info.type !== "inspect") {
20
+ throw new Error(`Received unknown yarn info for ${name}, ${output}`);
21
+ }
22
+ return info.data;
23
+ }
24
+ async function mapDependencies(targetDir) {
25
+ var _a;
26
+ const {Project} = require("@lerna/project");
27
+ const project = new Project(targetDir);
28
+ const packages = await project.getPackages();
29
+ const dependencyMap = new Map();
30
+ for (const pkg of packages) {
31
+ const deps = DEP_TYPES.flatMap((t) => {
32
+ var _a2;
33
+ return Object.entries((_a2 = pkg.get(t)) != null ? _a2 : {});
34
+ });
35
+ for (const [name, range] of deps) {
36
+ if (name.startsWith(PREFIX)) {
37
+ dependencyMap.set(name, ((_a = dependencyMap.get(name)) != null ? _a : []).concat({
38
+ range,
39
+ name: pkg.name,
40
+ location: pkg.location
41
+ }));
42
+ }
43
+ }
44
+ }
45
+ return dependencyMap;
46
+ }
47
+
48
+ exports.fetchPackageInfo = fetchPackageInfo;
49
+ exports.mapDependencies = mapDependencies;
50
+ //# sourceMappingURL=packages-a5b6a3df.cjs.js.map
@@ -13,8 +13,8 @@ var TerserPlugin = require('terser-webpack-plugin');
13
13
  var parallel = require('./parallel-a4714c72.cjs.js');
14
14
  var MiniCssExtractPlugin = require('mini-css-extract-plugin');
15
15
  var svgrTemplate = require('./svgrTemplate-2d0d15cf.cjs.js');
16
- var index = require('./index-74ba6239.cjs.js');
17
- var run = require('./run-7e2d4777.cjs.js');
16
+ var index = require('./index-6fee1c9a.cjs.js');
17
+ var run = require('./run-59c4395e.cjs.js');
18
18
  var pickBy = require('lodash/pickBy');
19
19
 
20
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -47,9 +47,12 @@ const optimization = (options) => {
47
47
  default: false,
48
48
  packages: {
49
49
  chunks: "initial",
50
- test: /[\\/]node_modules[\\/]/,
50
+ test(module) {
51
+ var _a;
52
+ return Boolean((_a = module == null ? void 0 : module.resource) == null ? void 0 : _a.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/));
53
+ },
51
54
  name(module) {
52
- const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
55
+ const packageName = module.resource.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
53
56
  return packageName.replace("@", "");
54
57
  },
55
58
  filename: isDev ? "module-[name].js" : "static/module-[name].[chunkhash:8].js",
@@ -495,4 +498,4 @@ exports.createBackendConfig = createBackendConfig;
495
498
  exports.createConfig = createConfig;
496
499
  exports.resolveBaseUrl = resolveBaseUrl;
497
500
  exports.resolveBundlingPaths = resolveBundlingPaths;
498
- //# sourceMappingURL=paths-a0eb9f40.cjs.js.map
501
+ //# sourceMappingURL=paths-09202a46.cjs.js.map
@@ -2,21 +2,23 @@
2
2
 
3
3
  var yaml = require('yaml');
4
4
  var config$1 = require('@backstage/config');
5
- var config = require('./config-25f9b58b.cjs.js');
5
+ var config = require('./config-24fce3c1.cjs.js');
6
6
  require('@backstage/config-loader');
7
- require('./index-74ba6239.cjs.js');
7
+ require('./index-6fee1c9a.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
11
11
  require('semver');
12
12
  require('@backstage/cli-common');
13
13
  require('@backstage/config/package.json');
14
+ require('@backstage/errors');
14
15
 
15
16
  var print = async (cmd) => {
16
17
  const {schema, appConfigs} = await config.loadCliConfig({
17
18
  args: cmd.config,
18
19
  fromPackage: cmd.package,
19
- mockEnv: cmd.lax
20
+ mockEnv: cmd.lax,
21
+ fullVisibility: !cmd.frontend
20
22
  });
21
23
  const visibility = getVisibilityOption(cmd);
22
24
  const data = serializeConfigData(appConfigs, schema, visibility);
@@ -55,4 +57,4 @@ function serializeConfigData(appConfigs, schema, visibility) {
55
57
  }
56
58
 
57
59
  exports.default = print;
58
- //# sourceMappingURL=print-81bff161.cjs.js.map
60
+ //# sourceMappingURL=print-806676fe.cjs.js.map
@@ -4,8 +4,9 @@ var fs = require('fs-extra');
4
4
  var path = require('path');
5
5
  var chalk = require('chalk');
6
6
  var inquirer = require('inquirer');
7
- var tasks = require('./tasks-fbc2dd76.cjs.js');
8
- var index = require('./index-74ba6239.cjs.js');
7
+ var tasks = require('./tasks-9bd3e946.cjs.js');
8
+ var index = require('./index-6fee1c9a.cjs.js');
9
+ var errors = require('@backstage/errors');
9
10
  require('handlebars');
10
11
  require('ora');
11
12
  require('recursive-readdir');
@@ -31,6 +32,7 @@ const checkExists = async (rootDir, pluginName) => {
31
32
  throw new Error(chalk__default['default'].red(` Plugin ${chalk__default['default'].cyan(pluginName)} does not exist!`));
32
33
  }
33
34
  } catch (e) {
35
+ errors.assertError(e);
34
36
  throw new Error(chalk__default['default'].red(` There was an error removing plugin ${chalk__default['default'].cyan(pluginName)}: ${e.message}`));
35
37
  }
36
38
  });
@@ -40,6 +42,7 @@ const removePluginDirectory = async (destination) => {
40
42
  try {
41
43
  await fs__default['default'].remove(destination);
42
44
  } catch (e) {
45
+ errors.assertError(e);
43
46
  throw Error(chalk__default['default'].red(` There was a problem removing the plugin directory: ${e.message}`));
44
47
  }
45
48
  });
@@ -51,6 +54,7 @@ const removeSymLink = async (destination) => {
51
54
  try {
52
55
  await fs__default['default'].remove(destination);
53
56
  } catch (e) {
57
+ errors.assertError(e);
54
58
  throw Error(chalk__default['default'].red(` Could not remove symbolic link ${chalk__default['default'].cyan(destination)}: ${e.message}`));
55
59
  }
56
60
  }
@@ -70,6 +74,7 @@ const removeReferencesFromPluginsFile = async (pluginsFile, pluginName) => {
70
74
  try {
71
75
  await removeAllStatementsContainingID(pluginsFile, pluginNameCapitalized);
72
76
  } catch (e) {
77
+ errors.assertError(e);
73
78
  throw new Error(chalk__default['default'].red(` There was an error removing export statement for plugin ${chalk__default['default'].cyan(pluginNameCapitalized)}: ${e.message}`));
74
79
  }
75
80
  });
@@ -79,6 +84,7 @@ const removePluginFromCodeOwners = async (codeOwnersFile, pluginName) => {
79
84
  try {
80
85
  await removeAllStatementsContainingID(codeOwnersFile, pluginName);
81
86
  } catch (e) {
87
+ errors.assertError(e);
82
88
  throw new Error(chalk__default['default'].red(` There was an error removing code owners statement for plugin ${chalk__default['default'].cyan(pluginName)}: ${e.message}`));
83
89
  }
84
90
  });
@@ -97,6 +103,7 @@ const removeReferencesFromAppPackage = async (appPackageFile, pluginName) => {
97
103
  await fs__default['default'].writeFile(appPackageFile, `${JSON.stringify(appPackageFileContentJSON, null, 2)}
98
104
  `, "utf-8");
99
105
  } catch (e) {
106
+ errors.assertError(e);
100
107
  throw new Error(chalk__default['default'].red(` Failed to remove plugin as dependency in app: ${chalk__default['default'].cyan(appPackageFile)}: ${e.message}`));
101
108
  }
102
109
  });
@@ -149,6 +156,7 @@ var removePlugin = async () => {
149
156
  tasks.Task.log(`\u{1F947} Successfully removed ${chalk__default['default'].cyan(`@backstage/plugin-${answers.id}`)}`);
150
157
  tasks.Task.log();
151
158
  } catch (error) {
159
+ errors.assertError(error);
152
160
  tasks.Task.error(error.message);
153
161
  tasks.Task.log("It seems that something went wrong when removing the plugin \u{1F914}");
154
162
  }
@@ -161,4 +169,4 @@ exports.removePluginFromCodeOwners = removePluginFromCodeOwners;
161
169
  exports.removeReferencesFromAppPackage = removeReferencesFromAppPackage;
162
170
  exports.removeReferencesFromPluginsFile = removeReferencesFromPluginsFile;
163
171
  exports.removeSymLink = removeSymLink;
164
- //# sourceMappingURL=removePlugin-3ad49c8c.cjs.js.map
172
+ //# sourceMappingURL=removePlugin-f82ac16a.cjs.js.map
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var child_process = require('child_process');
4
- var index = require('./index-74ba6239.cjs.js');
4
+ var index = require('./index-6fee1c9a.cjs.js');
5
5
  var util = require('util');
6
+ var errors = require('@backstage/errors');
6
7
 
7
8
  const execFile = util.promisify(child_process.execFile);
8
9
  async function run(name, args = [], options = {}) {
@@ -37,10 +38,14 @@ async function runPlain(cmd, ...args) {
37
38
  const {stdout} = await execFile(cmd, args, {shell: true});
38
39
  return stdout.trim();
39
40
  } catch (error) {
40
- if (error.stderr) {
41
+ errors.assertError(error);
42
+ if ("stderr" in error) {
41
43
  process.stderr.write(error.stderr);
42
44
  }
43
- throw new index.ExitCodeError(error.code, [cmd, ...args].join(" "));
45
+ if (typeof error.code === "number") {
46
+ throw new index.ExitCodeError(error.code, [cmd, ...args].join(" "));
47
+ }
48
+ throw new errors.ForwardedError("Unknown execution error", error);
44
49
  }
45
50
  }
46
51
  async function runCheck(cmd, ...args) {
@@ -73,4 +78,4 @@ async function waitForExit(child, name) {
73
78
  exports.run = run;
74
79
  exports.runCheck = runCheck;
75
80
  exports.runPlain = runPlain;
76
- //# sourceMappingURL=run-7e2d4777.cjs.js.map
81
+ //# sourceMappingURL=run-59c4395e.cjs.js.map
@@ -1,16 +1,17 @@
1
1
  'use strict';
2
2
 
3
3
  var yaml = require('yaml');
4
- var config = require('./config-25f9b58b.cjs.js');
4
+ var config = require('./config-24fce3c1.cjs.js');
5
5
  var configLoader = require('@backstage/config-loader');
6
6
  require('@backstage/config');
7
- require('./index-74ba6239.cjs.js');
7
+ require('./index-6fee1c9a.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
11
11
  require('semver');
12
12
  require('@backstage/cli-common');
13
13
  require('@backstage/config/package.json');
14
+ require('@backstage/errors');
14
15
 
15
16
  var schema = async (cmd) => {
16
17
  const {schema} = await config.loadCliConfig({
@@ -31,4 +32,4 @@ var schema = async (cmd) => {
31
32
  };
32
33
 
33
34
  exports.default = schema;
34
- //# sourceMappingURL=schema-48dd9498.cjs.js.map
35
+ //# sourceMappingURL=schema-398d8593.cjs.js.map
@@ -13,24 +13,25 @@ require('webpack-node-externals');
13
13
  require('@backstage/cli-common');
14
14
  require('terser-webpack-plugin');
15
15
  require('mini-css-extract-plugin');
16
- var index = require('./index-74ba6239.cjs.js');
17
- require('./run-7e2d4777.cjs.js');
16
+ var index = require('./index-6fee1c9a.cjs.js');
17
+ require('./run-59c4395e.cjs.js');
18
18
  require('lodash/pickBy');
19
19
  require('yn');
20
20
  require('react-dev-utils/FileSizeReporter');
21
21
  require('react-dev-utils/formatWebpackMessages');
22
- var server = require('./server-433545bf.cjs.js');
23
- var config = require('./config-25f9b58b.cjs.js');
22
+ var server = require('./server-107d9cc0.cjs.js');
23
+ var config = require('./config-24fce3c1.cjs.js');
24
24
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
25
- var lint = require('./lint-a76f6ca5.cjs.js');
25
+ var lint = require('./lint-6175d471.cjs.js');
26
26
  require('commander');
27
27
  require('semver');
28
28
  require('@backstage/config/package.json');
29
+ require('@backstage/errors');
29
30
  require('child_process');
30
31
  require('util');
31
32
  require('webpack-dev-server');
32
33
  require('react-dev-utils/openBrowser');
33
- require('./paths-a0eb9f40.cjs.js');
34
+ require('./paths-09202a46.cjs.js');
34
35
  require('./parallel-a4714c72.cjs.js');
35
36
  require('./svgrTemplate-2d0d15cf.cjs.js');
36
37
  require('@backstage/config-loader');
@@ -74,4 +75,4 @@ var serve = async (cmd) => {
74
75
  };
75
76
 
76
77
  exports.default = serve;
77
- //# sourceMappingURL=serve-7f18ef8d.cjs.js.map
78
+ //# sourceMappingURL=serve-708fbf98.cjs.js.map
@@ -11,23 +11,24 @@ require('webpack-node-externals');
11
11
  require('@backstage/cli-common');
12
12
  require('terser-webpack-plugin');
13
13
  require('mini-css-extract-plugin');
14
- var index = require('./index-74ba6239.cjs.js');
15
- require('./run-7e2d4777.cjs.js');
14
+ var index = require('./index-6fee1c9a.cjs.js');
15
+ require('./run-59c4395e.cjs.js');
16
16
  require('lodash/pickBy');
17
17
  require('yn');
18
18
  require('react-dev-utils/FileSizeReporter');
19
19
  require('react-dev-utils/formatWebpackMessages');
20
20
  require('chalk');
21
- var server = require('./server-433545bf.cjs.js');
22
- var config = require('./config-25f9b58b.cjs.js');
21
+ var server = require('./server-107d9cc0.cjs.js');
22
+ var config = require('./config-24fce3c1.cjs.js');
23
23
  require('commander');
24
24
  require('semver');
25
25
  require('@backstage/config/package.json');
26
+ require('@backstage/errors');
26
27
  require('child_process');
27
28
  require('util');
28
29
  require('webpack-dev-server');
29
30
  require('react-dev-utils/openBrowser');
30
- require('./paths-a0eb9f40.cjs.js');
31
+ require('./paths-09202a46.cjs.js');
31
32
  require('./parallel-a4714c72.cjs.js');
32
33
  require('./svgrTemplate-2d0d15cf.cjs.js');
33
34
  require('@backstage/config-loader');
@@ -52,4 +53,4 @@ var serve = async (cmd) => {
52
53
  };
53
54
 
54
55
  exports.default = serve;
55
- //# sourceMappingURL=serve-4d9dbf1e.cjs.js.map
56
+ //# sourceMappingURL=serve-f4bb3cb0.cjs.js.map
@@ -4,7 +4,7 @@ var fs = require('fs-extra');
4
4
  var webpack = require('webpack');
5
5
  var WebpackDevServer = require('webpack-dev-server');
6
6
  var openBrowser = require('react-dev-utils/openBrowser');
7
- var paths = require('./paths-a0eb9f40.cjs.js');
7
+ var paths = require('./paths-09202a46.cjs.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
@@ -70,4 +70,4 @@ async function serveBundle(options) {
70
70
  }
71
71
 
72
72
  exports.serveBundle = serveBundle;
73
- //# sourceMappingURL=server-433545bf.cjs.js.map
73
+ //# sourceMappingURL=server-107d9cc0.cjs.js.map
@@ -6,7 +6,7 @@ var chalk = require('chalk');
6
6
  var handlebars = require('handlebars');
7
7
  var ora = require('ora');
8
8
  var recursive = require('recursive-readdir');
9
- var index = require('./index-74ba6239.cjs.js');
9
+ var index = require('./index-6fee1c9a.cjs.js');
10
10
 
11
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
12
 
@@ -158,4 +158,4 @@ exports.addCodeownersEntry = addCodeownersEntry;
158
158
  exports.getCodeownersFilePath = getCodeownersFilePath;
159
159
  exports.parseOwnerIds = parseOwnerIds;
160
160
  exports.templatingTask = templatingTask;
161
- //# sourceMappingURL=tasks-fbc2dd76.cjs.js.map
161
+ //# sourceMappingURL=tasks-9bd3e946.cjs.js.map
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-74ba6239.cjs.js');
4
- var run = require('./run-7e2d4777.cjs.js');
3
+ var index = require('./index-6fee1c9a.cjs.js');
4
+ var run = require('./run-59c4395e.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('fs-extra');
8
8
  require('semver');
9
9
  require('@backstage/cli-common');
10
10
  require('@backstage/config/package.json');
11
+ require('@backstage/errors');
11
12
  require('child_process');
12
13
  require('util');
13
14
 
@@ -44,4 +45,4 @@ var testCommand = async (cmd) => {
44
45
  };
45
46
 
46
47
  exports.default = testCommand;
47
- //# sourceMappingURL=testCommand-749220a2.cjs.js.map
48
+ //# sourceMappingURL=testCommand-e32fbd45.cjs.js.map