@backstage/cli 0.0.0-nightly-20219522135 → 0.0.0-nightly-20219102203

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 (38) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/dist/cjs/{build-b61079aa.cjs.js → build-0bf2333c.cjs.js} +3 -3
  3. package/dist/cjs/{build-b73c8aec.cjs.js → build-4d23c32c.cjs.js} +5 -5
  4. package/dist/cjs/{build-71c737ac.cjs.js → build-5faf8eab.cjs.js} +3 -3
  5. package/dist/cjs/{build-61ca5bd1.cjs.js → build-c66663e0.cjs.js} +3 -3
  6. package/dist/cjs/{buildImage-66df0236.cjs.js → buildImage-a0aadb1d.cjs.js} +4 -4
  7. package/dist/cjs/{buildWorkspace-a669db03.cjs.js → buildWorkspace-76d10a14.cjs.js} +4 -4
  8. package/dist/cjs/{bump-2c638ffb.cjs.js → bump-e5775c44.cjs.js} +7 -48
  9. package/dist/cjs/{bundle-11249412.cjs.js → bundle-c070e1d0.cjs.js} +5 -5
  10. package/dist/cjs/{clean-d2c13478.cjs.js → clean-ed8ab0b8.cjs.js} +2 -2
  11. package/dist/cjs/{config-f0ca8800.cjs.js → config-c4bab0a4.cjs.js} +2 -2
  12. package/dist/cjs/{createPlugin-3e4b2655.cjs.js → createPlugin-4f5580cf.cjs.js} +5 -5
  13. package/dist/cjs/{dev-42d0b115.cjs.js → dev-b9087e35.cjs.js} +6 -5
  14. package/dist/cjs/{diff-b3b15773.cjs.js → diff-18c84c66.cjs.js} +2 -2
  15. package/dist/cjs/{docs-75bdaacf.cjs.js → docs-502f1aa8.cjs.js} +3 -3
  16. package/dist/cjs/{index-639c9015.cjs.js → index-0890107d.cjs.js} +3 -3
  17. package/dist/cjs/{index-b0d38feb.cjs.js → index-93747048.cjs.js} +34 -33
  18. package/dist/cjs/{index-a8bb12f8.cjs.js → index-eaf30dd1.cjs.js} +2 -2
  19. package/dist/cjs/{info-35e4ffe5.cjs.js → info-c2d551c7.cjs.js} +3 -3
  20. package/dist/cjs/install-eecff7b6.cjs.js +213 -0
  21. package/dist/cjs/{lint-a5758aab.cjs.js → lint-557d0761.cjs.js} +3 -3
  22. package/dist/cjs/{lint-bda30147.cjs.js → lint-bbfe6f75.cjs.js} +3 -3
  23. package/dist/cjs/{pack-08aaeb74.cjs.js → pack-fa56665a.cjs.js} +2 -2
  24. package/dist/cjs/{packager-a538a0d7.cjs.js → packager-aa2d50f0.cjs.js} +2 -2
  25. package/dist/cjs/packages-0b0b08c0.cjs.js +50 -0
  26. package/dist/cjs/{paths-38b204ca.cjs.js → paths-47004d9d.cjs.js} +10 -4
  27. package/dist/cjs/{print-38e80be2.cjs.js → print-02e7ee9a.cjs.js} +3 -3
  28. package/dist/cjs/{removePlugin-eb1ad78f.cjs.js → removePlugin-c77c6d6e.cjs.js} +3 -3
  29. package/dist/cjs/{run-e50c9fbb.cjs.js → run-24fb7653.cjs.js} +2 -2
  30. package/dist/cjs/{schema-c9b6362b.cjs.js → schema-f0dbdc35.cjs.js} +3 -3
  31. package/dist/cjs/{serve-956c01c6.cjs.js → serve-487cdbe9.cjs.js} +6 -6
  32. package/dist/cjs/{serve-7edb404b.cjs.js → serve-b53e4cce.cjs.js} +7 -7
  33. package/dist/cjs/{server-7a3f6d5a.cjs.js → server-bf4580a1.cjs.js} +2 -2
  34. package/dist/cjs/{tasks-cfde6de5.cjs.js → tasks-a248ef13.cjs.js} +2 -2
  35. package/dist/cjs/{testCommand-635a6e22.cjs.js → testCommand-7b6062c3.cjs.js} +3 -3
  36. package/dist/cjs/{validate-08241b93.cjs.js → validate-e01a94da.cjs.js} +3 -3
  37. package/dist/index.cjs.js +1 -1
  38. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -1,15 +1,27 @@
1
1
  # @backstage/cli
2
2
 
3
- ## 0.0.0-nightly-20219522135
3
+ ## 0.0.0-nightly-20219102203
4
+
5
+ ### Patch Changes
6
+
7
+ - 53bdc66623: add a --from <location> option to the plugin install command
8
+ - 84e24fcdaf: Bump sucrase to version 3.20.2
9
+ - 1ef9e64901: Add an experimental `install <plugin>` command.
10
+
11
+ Given a `pluginId`, the command looks for NPM packages matching `@backstage/plugin-{pluginId}` or `backstage-plugin-{pluginId}` or `{pluginId}`. It looks for the `experimentalInstallationRecipe` in their `package.json` for the steps of installation. Detailed documentation and API Spec to follow (and to be decided as well).
12
+
13
+ ## 0.7.15
4
14
 
5
15
  ### Patch Changes
6
16
 
7
17
  - ae4680b88d: The `create-plugin` command now passes the extension name via the `name` key
8
18
  in `createRoutableExtension()` calls in newly created plugins.
19
+ - df1242ffe4: Adding `--inspect-brk` as an option when debugging backend for development
20
+ - c7f2a2307d: When creating a backend plugin with `--backend` flag, don't add `-backend` if it's already suffixed
9
21
  - 185fec5c0c: The default jest configuration used by the `test` command now supports yarn workspaces. By running `backstage-cli test` in the root of a monorepo, all packages will now automatically be included in the test suite and it will run just like it does within a package. Each package in the monorepo will still use its own local jest configuration, and only packages that have `backstage-cli test` in the `test` script within `package.json` will be included.
10
22
  - Updated dependencies
11
- - @backstage/config-loader@0.0.0-nightly-20219522135
12
- - @backstage/cli-common@0.0.0-nightly-20219522135
23
+ - @backstage/config-loader@0.6.10
24
+ - @backstage/cli-common@0.1.4
13
25
 
14
26
  ## 0.7.14
15
27
 
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-a538a0d7.cjs.js');
3
+ var packager = require('./packager-aa2d50f0.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-b0d38feb.cjs.js');
8
+ require('./index-93747048.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -29,4 +29,4 @@ var build = async () => {
29
29
  };
30
30
 
31
31
  exports.default = build;
32
- //# sourceMappingURL=build-b61079aa.cjs.js.map
32
+ //# sourceMappingURL=build-0bf2333c.cjs.js.map
@@ -12,17 +12,17 @@ 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-b0d38feb.cjs.js');
16
- require('./run-e50c9fbb.cjs.js');
15
+ var index = require('./index-93747048.cjs.js');
16
+ require('./run-24fb7653.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-38b204ca.cjs.js');
21
+ var paths = require('./paths-47004d9d.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-f0ca8800.cjs.js');
25
+ var config = require('./config-c4bab0a4.cjs.js');
26
26
  require('commander');
27
27
  require('semver');
28
28
  require('@backstage/config/package.json');
@@ -135,4 +135,4 @@ var build = async (cmd) => {
135
135
  };
136
136
 
137
137
  exports.default = build;
138
- //# sourceMappingURL=build-b73c8aec.cjs.js.map
138
+ //# sourceMappingURL=build-4d23c32c.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-a538a0d7.cjs.js');
3
+ var packager = require('./packager-aa2d50f0.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-b0d38feb.cjs.js');
8
+ require('./index-93747048.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -29,4 +29,4 @@ var build = async () => {
29
29
  };
30
30
 
31
31
  exports.default = build;
32
- //# sourceMappingURL=build-71c737ac.cjs.js.map
32
+ //# sourceMappingURL=build-5faf8eab.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-a538a0d7.cjs.js');
3
+ var packager = require('./packager-aa2d50f0.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-b0d38feb.cjs.js');
8
+ require('./index-93747048.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -40,4 +40,4 @@ var build = async (cmd) => {
40
40
  };
41
41
 
42
42
  exports.default = build;
43
- //# sourceMappingURL=build-61ca5bd1.cjs.js.map
43
+ //# sourceMappingURL=build-c66663e0.cjs.js.map
@@ -3,9 +3,9 @@
3
3
  var chalk = require('chalk');
4
4
  var fs = require('fs-extra');
5
5
  var path = require('path');
6
- var index$1 = require('./index-639c9015.cjs.js');
7
- var index = require('./index-b0d38feb.cjs.js');
8
- var run = require('./run-e50c9fbb.cjs.js');
6
+ var index$1 = require('./index-0890107d.cjs.js');
7
+ var index = require('./index-93747048.cjs.js');
8
+ var run = require('./run-24fb7653.cjs.js');
9
9
  var parallel = require('./parallel-a4714c72.cjs.js');
10
10
  require('os');
11
11
  require('tar');
@@ -73,4 +73,4 @@ async function findAppConfigs() {
73
73
  }
74
74
 
75
75
  exports.default = buildImage;
76
- //# sourceMappingURL=buildImage-66df0236.cjs.js.map
76
+ //# sourceMappingURL=buildImage-a0aadb1d.cjs.js.map
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-639c9015.cjs.js');
4
+ var index = require('./index-0890107d.cjs.js');
5
5
  require('path');
6
6
  require('os');
7
7
  require('tar');
8
- require('./index-b0d38feb.cjs.js');
8
+ require('./index-93747048.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
- require('./run-e50c9fbb.cjs.js');
14
+ require('./run-24fb7653.cjs.js');
15
15
  require('child_process');
16
16
  require('util');
17
17
 
@@ -29,4 +29,4 @@ var buildWorkspace = async (dir, _cmd, packages) => {
29
29
  };
30
30
 
31
31
  exports.default = buildWorkspace;
32
- //# sourceMappingURL=buildWorkspace-a669db03.cjs.js.map
32
+ //# sourceMappingURL=buildWorkspace-76d10a14.cjs.js.map
@@ -4,10 +4,11 @@ var fs = require('fs-extra');
4
4
  var chalk = require('chalk');
5
5
  var semver = require('semver');
6
6
  var path = require('path');
7
- var run = require('./run-e50c9fbb.cjs.js');
8
- var index = require('./index-b0d38feb.cjs.js');
7
+ var run = require('./run-24fb7653.cjs.js');
8
+ var index = require('./index-93747048.cjs.js');
9
9
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
10
- var lint = require('./lint-a5758aab.cjs.js');
10
+ var packages = require('./packages-0b0b08c0.cjs.js');
11
+ var lint = require('./lint-557d0761.cjs.js');
11
12
  require('child_process');
12
13
  require('util');
13
14
  require('commander');
@@ -22,48 +23,6 @@ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
22
23
  var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
23
24
  var semver__default = /*#__PURE__*/_interopDefaultLegacy(semver);
24
25
 
25
- const PREFIX = "@backstage";
26
- const DEP_TYPES$1 = [
27
- "dependencies",
28
- "devDependencies",
29
- "peerDependencies",
30
- "optionalDependencies"
31
- ];
32
- async function fetchPackageInfo(name) {
33
- const output = await run.runPlain("yarn", "info", "--json", name);
34
- if (!output) {
35
- throw new index.NotFoundError(`No package information found for package ${name}`);
36
- }
37
- const info = JSON.parse(output);
38
- if (info.type !== "inspect") {
39
- throw new Error(`Received unknown yarn info for ${name}, ${output}`);
40
- }
41
- return info.data;
42
- }
43
- async function mapDependencies(targetDir) {
44
- var _a;
45
- const {Project} = require("@lerna/project");
46
- const project = new Project(targetDir);
47
- const packages = await project.getPackages();
48
- const dependencyMap = new Map();
49
- for (const pkg of packages) {
50
- const deps = DEP_TYPES$1.flatMap((t) => {
51
- var _a2;
52
- return Object.entries((_a2 = pkg.get(t)) != null ? _a2 : {});
53
- });
54
- for (const [name, range] of deps) {
55
- if (name.startsWith(PREFIX)) {
56
- dependencyMap.set(name, ((_a = dependencyMap.get(name)) != null ? _a : []).concat({
57
- range,
58
- name: pkg.name,
59
- location: pkg.location
60
- }));
61
- }
62
- }
63
- }
64
- return dependencyMap;
65
- }
66
-
67
26
  const DEP_TYPES = [
68
27
  "dependencies",
69
28
  "devDependencies",
@@ -75,7 +34,7 @@ var bump = async () => {
75
34
  const lockfilePath = index.paths.resolveTargetRoot("yarn.lock");
76
35
  const lockfile = await Lockfile.Lockfile.load(lockfilePath);
77
36
  const findTargetVersion = createVersionFinder();
78
- const dependencyMap = await mapDependencies(index.paths.targetDir);
37
+ const dependencyMap = await packages.mapDependencies(index.paths.targetDir);
79
38
  const versionBumps = new Map();
80
39
  const unlocked = Array();
81
40
  await workerThreads(16, dependencyMap.entries(), async ([name, pkgs]) => {
@@ -220,7 +179,7 @@ function createVersionFinder() {
220
179
  return existing;
221
180
  }
222
181
  console.log(`Checking for updates of ${name}`);
223
- const info = await fetchPackageInfo(name);
182
+ const info = await packages.fetchPackageInfo(name);
224
183
  const latest = info["dist-tags"].latest;
225
184
  if (!latest) {
226
185
  throw new Error(`No latest version found for ${name}`);
@@ -243,4 +202,4 @@ async function workerThreads(count, items, fn) {
243
202
  }
244
203
 
245
204
  exports.default = bump;
246
- //# sourceMappingURL=bump-2c638ffb.cjs.js.map
205
+ //# sourceMappingURL=bump-e5775c44.cjs.js.map
@@ -4,11 +4,11 @@ var os = require('os');
4
4
  var fs = require('fs-extra');
5
5
  var path = require('path');
6
6
  var tar = require('tar');
7
- var index$1 = require('./index-639c9015.cjs.js');
8
- var index = require('./index-b0d38feb.cjs.js');
7
+ var index$1 = require('./index-0890107d.cjs.js');
8
+ var index = require('./index-93747048.cjs.js');
9
9
  var parallel = require('./parallel-a4714c72.cjs.js');
10
- var packager = require('./packager-a538a0d7.cjs.js');
11
- require('./run-e50c9fbb.cjs.js');
10
+ var packager = require('./packager-aa2d50f0.cjs.js');
11
+ require('./run-24fb7653.cjs.js');
12
12
  require('child_process');
13
13
  require('util');
14
14
  require('commander');
@@ -66,4 +66,4 @@ var bundle = async (cmd) => {
66
66
  };
67
67
 
68
68
  exports.default = bundle;
69
- //# sourceMappingURL=bundle-11249412.cjs.js.map
69
+ //# sourceMappingURL=bundle-c070e1d0.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-b0d38feb.cjs.js');
4
+ var index = require('./index-93747048.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('semver');
@@ -19,4 +19,4 @@ async function clean() {
19
19
  }
20
20
 
21
21
  exports.default = clean;
22
- //# sourceMappingURL=clean-d2c13478.cjs.js.map
22
+ //# sourceMappingURL=clean-ed8ab0b8.cjs.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  var configLoader = require('@backstage/config-loader');
4
4
  var config = require('@backstage/config');
5
- var index = require('./index-b0d38feb.cjs.js');
5
+ var index = require('./index-93747048.cjs.js');
6
6
 
7
7
  async function loadCliConfig(options) {
8
8
  const configPaths = options.args.map((arg) => index.paths.resolveTarget(arg));
@@ -67,4 +67,4 @@ function findPackages(packages, fromPackage) {
67
67
  }
68
68
 
69
69
  exports.loadCliConfig = loadCliConfig;
70
- //# sourceMappingURL=config-f0ca8800.cjs.js.map
70
+ //# sourceMappingURL=config-c4bab0a4.cjs.js.map
@@ -9,10 +9,10 @@ var path = require('path');
9
9
  var camelCase = require('lodash/camelCase');
10
10
  var upperFirst = require('lodash/upperFirst');
11
11
  var os = require('os');
12
- var tasks = require('./tasks-cfde6de5.cjs.js');
13
- var index = require('./index-b0d38feb.cjs.js');
12
+ var tasks = require('./tasks-a248ef13.cjs.js');
13
+ var index = require('./index-93747048.cjs.js');
14
14
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
15
- require('./run-e50c9fbb.cjs.js');
15
+ require('./run-24fb7653.cjs.js');
16
16
  require('handlebars');
17
17
  require('ora');
18
18
  require('recursive-readdir');
@@ -161,7 +161,7 @@ var createPlugin = async (cmd) => {
161
161
  });
162
162
  }
163
163
  const answers = await inquirer__default['default'].prompt(questions);
164
- const pluginId = cmd.backend ? `${answers.id}-backend` : answers.id;
164
+ const pluginId = cmd.backend && !answers.id.endsWith("-backend") ? `${answers.id}-backend` : answers.id;
165
165
  const name = cmd.scope ? `@${cmd.scope.replace(/^@/, "")}/plugin-${pluginId}` : `plugin-${pluginId}`;
166
166
  const pluginVar = `${camelCase__default['default'](answers.id)}Plugin`;
167
167
  const extensionName = `${upperFirst__default['default'](camelCase__default['default'](answers.id))}Page`;
@@ -230,4 +230,4 @@ exports.addPluginExtensionToApp = addPluginExtensionToApp;
230
230
  exports.capitalize = capitalize;
231
231
  exports.default = createPlugin;
232
232
  exports.movePlugin = movePlugin;
233
- //# sourceMappingURL=createPlugin-3e4b2655.cjs.js.map
233
+ //# sourceMappingURL=createPlugin-4f5580cf.cjs.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-b0d38feb.cjs.js');
4
+ var index = require('./index-93747048.cjs.js');
5
5
  var webpack = require('webpack');
6
- var paths = require('./paths-38b204ca.cjs.js');
6
+ var paths = require('./paths-47004d9d.cjs.js');
7
7
  require('commander');
8
8
  require('chalk');
9
9
  require('semver');
@@ -19,7 +19,7 @@ require('terser-webpack-plugin');
19
19
  require('./parallel-a4714c72.cjs.js');
20
20
  require('mini-css-extract-plugin');
21
21
  require('./svgrTemplate-2d0d15cf.cjs.js');
22
- require('./run-e50c9fbb.cjs.js');
22
+ require('./run-24fb7653.cjs.js');
23
23
  require('child_process');
24
24
  require('util');
25
25
  require('lodash/pickBy');
@@ -59,10 +59,11 @@ var dev = async (cmd) => {
59
59
  const waitForExit = await serveBackend({
60
60
  entry: "src/index",
61
61
  checksEnabled: cmd.check,
62
- inspectEnabled: cmd.inspect
62
+ inspectEnabled: cmd.inspect,
63
+ inspectBrkEnabled: cmd.inspectBrk
63
64
  });
64
65
  await waitForExit();
65
66
  };
66
67
 
67
68
  exports.default = dev;
68
- //# sourceMappingURL=dev-42d0b115.cjs.js.map
69
+ //# sourceMappingURL=dev-b9087e35.cjs.js.map
@@ -7,7 +7,7 @@ var path = require('path');
7
7
  var inquirer = require('inquirer');
8
8
  var handlebars = require('handlebars');
9
9
  var recursive = require('recursive-readdir');
10
- var index = require('./index-b0d38feb.cjs.js');
10
+ var index = require('./index-93747048.cjs.js');
11
11
  require('commander');
12
12
  require('semver');
13
13
  require('@backstage/cli-common');
@@ -373,4 +373,4 @@ async function readPluginData() {
373
373
  }
374
374
 
375
375
  exports.default = diff;
376
- //# sourceMappingURL=diff-b3b15773.cjs.js.map
376
+ //# sourceMappingURL=diff-18c84c66.cjs.js.map
@@ -2,9 +2,9 @@
2
2
 
3
3
  var configLoader = require('@backstage/config-loader');
4
4
  var openBrowser = require('react-dev-utils/openBrowser');
5
- var config = require('./config-f0ca8800.cjs.js');
5
+ var config = require('./config-c4bab0a4.cjs.js');
6
6
  require('@backstage/config');
7
- require('./index-b0d38feb.cjs.js');
7
+ require('./index-93747048.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
@@ -28,4 +28,4 @@ var docs = async (cmd) => {
28
28
  };
29
29
 
30
30
  exports.default = docs;
31
- //# sourceMappingURL=docs-75bdaacf.cjs.js.map
31
+ //# sourceMappingURL=docs-502f1aa8.cjs.js.map
@@ -4,8 +4,8 @@ var fs = require('fs-extra');
4
4
  var path = require('path');
5
5
  var os = require('os');
6
6
  var tar = require('tar');
7
- var index = require('./index-b0d38feb.cjs.js');
8
- var run = require('./run-e50c9fbb.cjs.js');
7
+ var index = require('./index-93747048.cjs.js');
8
+ var run = require('./run-24fb7653.cjs.js');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
11
 
@@ -118,4 +118,4 @@ async function findTargetPackages(pkgNames) {
118
118
  }
119
119
 
120
120
  exports.createDistWorkspace = createDistWorkspace;
121
- //# sourceMappingURL=index-639c9015.cjs.js.map
121
+ //# sourceMappingURL=index-0890107d.cjs.js.map
@@ -49,19 +49,19 @@ class NotFoundError extends CustomError {
49
49
 
50
50
  const paths = cliCommon.findPaths(__dirname);
51
51
 
52
- var version$8 = "0.9.5";
52
+ var version$8 = "0.9.6";
53
53
 
54
- var version$7 = "0.7.14";
54
+ var version$7 = "0.7.15";
55
55
 
56
- var version$6 = "0.1.15";
56
+ var version$6 = "0.1.16";
57
57
 
58
- var version$5 = "0.6.0";
58
+ var version$5 = "0.6.1";
59
59
 
60
- var version$4 = "0.1.9";
60
+ var version$4 = "0.1.10";
61
61
 
62
62
  var version$3 = "0.2.11";
63
63
 
64
- var version$2 = "0.1.17";
64
+ var version$2 = "0.1.18";
65
65
 
66
66
  var version$1 = "0.2.10";
67
67
 
@@ -116,32 +116,33 @@ function registerCommands(program) {
116
116
  (opt, opts) => [...opts, opt],
117
117
  Array()
118
118
  ];
119
- program.command("app:build").description("Build an app for a production release").option("--stats", "Write bundle stats to output directory").option("--lax", "Do not require environment variables to be set").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./build-b73c8aec.cjs.js'); }).then((m) => m.default)));
120
- program.command("app:serve").description("Serve an app for local development").option("--check", "Enable type checking and linting").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./serve-7edb404b.cjs.js'); }).then((m) => m.default)));
121
- program.command("backend:build").description("Build a backend plugin").action(lazy(() => Promise.resolve().then(function () { return require('./build-b61079aa.cjs.js'); }).then((m) => m.default)));
122
- program.command("backend:bundle").description("Bundle the backend into a deployment archive").option("--build-dependencies", "Build all local package dependencies before bundling the backend").action(lazy(() => Promise.resolve().then(function () { return require('./bundle-11249412.cjs.js'); }).then((m) => m.default)));
123
- program.command("backend:build-image").allowUnknownOption(true).helpOption(", --backstage-cli-help").option("--build", "Build packages before packing them into the image").description("Bundles the package into a docker image. This command is deprecated and will be removed.").action(lazy(() => Promise.resolve().then(function () { return require('./buildImage-66df0236.cjs.js'); }).then((m) => m.default)));
124
- program.command("backend:dev").description("Start local development server with HMR for the backend").option("--check", "Enable type checking and linting").option("--inspect", "Enable debugger").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./dev-42d0b115.cjs.js'); }).then((m) => m.default)));
125
- program.command("create-plugin").option("--backend", "Create plugin with the backend dependencies as default").description("Creates a new plugin in the current repository").option("--scope <scope>", "npm scope").option("--npm-registry <URL>", "npm registry URL").option("--no-private", "Public npm package").action(lazy(() => Promise.resolve().then(function () { return require('./createPlugin-3e4b2655.cjs.js'); }).then((m) => m.default)));
126
- program.command("remove-plugin").description("Removes plugin in the current repository").action(lazy(() => Promise.resolve().then(function () { return require('./removePlugin-eb1ad78f.cjs.js'); }).then((m) => m.default)));
127
- program.command("plugin:build").description("Build a plugin").action(lazy(() => Promise.resolve().then(function () { return require('./build-71c737ac.cjs.js'); }).then((m) => m.default)));
128
- program.command("plugin:serve").description("Serves the dev/ folder of a plugin").option("--check", "Enable type checking and linting").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./serve-956c01c6.cjs.js'); }).then((m) => m.default)));
129
- program.command("plugin:diff").option("--check", "Fail if changes are required").option("--yes", "Apply all changes").description("Diff an existing plugin with the creation template").action(lazy(() => Promise.resolve().then(function () { return require('./diff-b3b15773.cjs.js'); }).then((m) => m.default)));
130
- program.command("build").description("Build a package for publishing").option("--outputs <formats>", "List of formats to output [types,cjs,esm]").action(lazy(() => Promise.resolve().then(function () { return require('./build-61ca5bd1.cjs.js'); }).then((m) => m.default)));
131
- program.command("lint").option("--format <format>", "Lint report output format", "eslint-formatter-friendly").option("--fix", "Attempt to automatically fix violations").description("Lint a package").action(lazy(() => Promise.resolve().then(function () { return require('./lint-bda30147.cjs.js'); }).then((m) => m.default)));
132
- program.command("test").allowUnknownOption(true).helpOption(", --backstage-cli-help").description("Run tests, forwarding args to Jest, defaulting to watch mode").action(lazy(() => Promise.resolve().then(function () { return require('./testCommand-635a6e22.cjs.js'); }).then((m) => m.default)));
133
- program.command("config:docs").option("--package <name>", "Only include the schema that applies to the given package").description("Browse the configuration reference documentation").action(lazy(() => Promise.resolve().then(function () { return require('./docs-75bdaacf.cjs.js'); }).then((m) => m.default)));
134
- program.command("config:print").option("--package <name>", "Only load config schema that applies to the given package").option("--lax", "Do not require environment variables to be set").option("--frontend", "Print only the frontend configuration").option("--with-secrets", "Include secrets in the printed configuration").option("--format <format>", "Format to print the configuration in, either json or yaml [yaml]").option(...configOption).description("Print the app configuration for the current package").action(lazy(() => Promise.resolve().then(function () { return require('./print-38e80be2.cjs.js'); }).then((m) => m.default)));
135
- program.command("config:check").option("--package <name>", "Only load config schema that applies to the given package").option("--lax", "Do not require environment variables to be set").option(...configOption).description("Validate that the given configuration loads and matches schema").action(lazy(() => Promise.resolve().then(function () { return require('./validate-08241b93.cjs.js'); }).then((m) => m.default)));
136
- program.command("config:schema").option("--package <name>", "Only output config schema that applies to the given package").option("--format <format>", "Format to print the schema in, either json or yaml [yaml]").description("Print configuration schema").action(lazy(() => Promise.resolve().then(function () { return require('./schema-c9b6362b.cjs.js'); }).then((m) => m.default)));
137
- program.command("versions:bump").description("Bump Backstage packages to the latest versions").action(lazy(() => Promise.resolve().then(function () { return require('./bump-2c638ffb.cjs.js'); }).then((m) => m.default)));
138
- program.command("versions:check").option("--fix", "Fix any auto-fixable versioning problems").description("Check Backstage package versioning").action(lazy(() => Promise.resolve().then(function () { return require('./lint-a5758aab.cjs.js'); }).then((m) => m.default)));
139
- program.command("prepack").description("Prepares a package for packaging before publishing").action(lazy(() => Promise.resolve().then(function () { return require('./pack-08aaeb74.cjs.js'); }).then((m) => m.pre)));
140
- program.command("postpack").description("Restores the changes made by the prepack command").action(lazy(() => Promise.resolve().then(function () { return require('./pack-08aaeb74.cjs.js'); }).then((m) => m.post)));
141
- program.command("clean").description("Delete cache directories").action(lazy(() => Promise.resolve().then(function () { return require('./clean-d2c13478.cjs.js'); }).then((m) => m.default)));
142
- program.command("build-workspace <workspace-dir> ...<packages>").description("Builds a temporary dist workspace from the provided packages").action(lazy(() => Promise.resolve().then(function () { return require('./buildWorkspace-a669db03.cjs.js'); }).then((m) => m.default)));
143
- program.command("create-github-app <github-org>").description("Create new GitHub App in your organization.").action(lazy(() => Promise.resolve().then(function () { return require('./index-a8bb12f8.cjs.js'); }).then((m) => m.default)));
144
- program.command("info").description("Show helpful information for debugging and reporting bugs").action(lazy(() => Promise.resolve().then(function () { return require('./info-35e4ffe5.cjs.js'); }).then((m) => m.default)));
119
+ program.command("app:build").description("Build an app for a production release").option("--stats", "Write bundle stats to output directory").option("--lax", "Do not require environment variables to be set").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./build-4d23c32c.cjs.js'); }).then((m) => m.default)));
120
+ program.command("app:serve").description("Serve an app for local development").option("--check", "Enable type checking and linting").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./serve-b53e4cce.cjs.js'); }).then((m) => m.default)));
121
+ program.command("backend:build").description("Build a backend plugin").action(lazy(() => Promise.resolve().then(function () { return require('./build-0bf2333c.cjs.js'); }).then((m) => m.default)));
122
+ program.command("backend:bundle").description("Bundle the backend into a deployment archive").option("--build-dependencies", "Build all local package dependencies before bundling the backend").action(lazy(() => Promise.resolve().then(function () { return require('./bundle-c070e1d0.cjs.js'); }).then((m) => m.default)));
123
+ program.command("backend:build-image").allowUnknownOption(true).helpOption(", --backstage-cli-help").option("--build", "Build packages before packing them into the image").description("Bundles the package into a docker image. This command is deprecated and will be removed.").action(lazy(() => Promise.resolve().then(function () { return require('./buildImage-a0aadb1d.cjs.js'); }).then((m) => m.default)));
124
+ program.command("backend:dev").description("Start local development server with HMR for the backend").option("--check", "Enable type checking and linting").option("--inspect", "Enable debugger").option("--inspect-brk", "Enable debugger with await to attach debugger").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./dev-b9087e35.cjs.js'); }).then((m) => m.default)));
125
+ program.command("create-plugin").option("--backend", "Create plugin with the backend dependencies as default").description("Creates a new plugin in the current repository").option("--scope <scope>", "npm scope").option("--npm-registry <URL>", "npm registry URL").option("--no-private", "Public npm package").action(lazy(() => Promise.resolve().then(function () { return require('./createPlugin-4f5580cf.cjs.js'); }).then((m) => m.default)));
126
+ program.command("remove-plugin").description("Removes plugin in the current repository").action(lazy(() => Promise.resolve().then(function () { return require('./removePlugin-c77c6d6e.cjs.js'); }).then((m) => m.default)));
127
+ program.command("plugin:build").description("Build a plugin").action(lazy(() => Promise.resolve().then(function () { return require('./build-5faf8eab.cjs.js'); }).then((m) => m.default)));
128
+ program.command("plugin:serve").description("Serves the dev/ folder of a plugin").option("--check", "Enable type checking and linting").option(...configOption).action(lazy(() => Promise.resolve().then(function () { return require('./serve-487cdbe9.cjs.js'); }).then((m) => m.default)));
129
+ program.command("plugin:diff").option("--check", "Fail if changes are required").option("--yes", "Apply all changes").description("Diff an existing plugin with the creation template").action(lazy(() => Promise.resolve().then(function () { return require('./diff-18c84c66.cjs.js'); }).then((m) => m.default)));
130
+ program.command("build").description("Build a package for publishing").option("--outputs <formats>", "List of formats to output [types,cjs,esm]").action(lazy(() => Promise.resolve().then(function () { return require('./build-c66663e0.cjs.js'); }).then((m) => m.default)));
131
+ program.command("lint").option("--format <format>", "Lint report output format", "eslint-formatter-friendly").option("--fix", "Attempt to automatically fix violations").description("Lint a package").action(lazy(() => Promise.resolve().then(function () { return require('./lint-bbfe6f75.cjs.js'); }).then((m) => m.default)));
132
+ program.command("test").allowUnknownOption(true).helpOption(", --backstage-cli-help").description("Run tests, forwarding args to Jest, defaulting to watch mode").action(lazy(() => Promise.resolve().then(function () { return require('./testCommand-7b6062c3.cjs.js'); }).then((m) => m.default)));
133
+ program.command("config:docs").option("--package <name>", "Only include the schema that applies to the given package").description("Browse the configuration reference documentation").action(lazy(() => Promise.resolve().then(function () { return require('./docs-502f1aa8.cjs.js'); }).then((m) => m.default)));
134
+ program.command("config:print").option("--package <name>", "Only load config schema that applies to the given package").option("--lax", "Do not require environment variables to be set").option("--frontend", "Print only the frontend configuration").option("--with-secrets", "Include secrets in the printed configuration").option("--format <format>", "Format to print the configuration in, either json or yaml [yaml]").option(...configOption).description("Print the app configuration for the current package").action(lazy(() => Promise.resolve().then(function () { return require('./print-02e7ee9a.cjs.js'); }).then((m) => m.default)));
135
+ program.command("config:check").option("--package <name>", "Only load config schema that applies to the given package").option("--lax", "Do not require environment variables to be set").option(...configOption).description("Validate that the given configuration loads and matches schema").action(lazy(() => Promise.resolve().then(function () { return require('./validate-e01a94da.cjs.js'); }).then((m) => m.default)));
136
+ program.command("config:schema").option("--package <name>", "Only output config schema that applies to the given package").option("--format <format>", "Format to print the schema in, either json or yaml [yaml]").description("Print configuration schema").action(lazy(() => Promise.resolve().then(function () { return require('./schema-f0dbdc35.cjs.js'); }).then((m) => m.default)));
137
+ program.command("versions:bump").description("Bump Backstage packages to the latest versions").action(lazy(() => Promise.resolve().then(function () { return require('./bump-e5775c44.cjs.js'); }).then((m) => m.default)));
138
+ program.command("versions:check").option("--fix", "Fix any auto-fixable versioning problems").description("Check Backstage package versioning").action(lazy(() => Promise.resolve().then(function () { return require('./lint-557d0761.cjs.js'); }).then((m) => m.default)));
139
+ program.command("prepack").description("Prepares a package for packaging before publishing").action(lazy(() => Promise.resolve().then(function () { return require('./pack-fa56665a.cjs.js'); }).then((m) => m.pre)));
140
+ program.command("postpack").description("Restores the changes made by the prepack command").action(lazy(() => Promise.resolve().then(function () { return require('./pack-fa56665a.cjs.js'); }).then((m) => m.post)));
141
+ program.command("clean").description("Delete cache directories").action(lazy(() => Promise.resolve().then(function () { return require('./clean-ed8ab0b8.cjs.js'); }).then((m) => m.default)));
142
+ program.command("build-workspace <workspace-dir> ...<packages>").description("Builds a temporary dist workspace from the provided packages").action(lazy(() => Promise.resolve().then(function () { return require('./buildWorkspace-76d10a14.cjs.js'); }).then((m) => m.default)));
143
+ program.command("create-github-app <github-org>").description("Create new GitHub App in your organization.").action(lazy(() => Promise.resolve().then(function () { return require('./index-eaf30dd1.cjs.js'); }).then((m) => m.default)));
144
+ program.command("info").description("Show helpful information for debugging and reporting bugs").action(lazy(() => Promise.resolve().then(function () { return require('./info-c2d551c7.cjs.js'); }).then((m) => m.default)));
145
+ program.command("install [plugin-id]", {hidden: true}).option("--from <packageJsonFilePath>", "Install from a local package.json containing the installation recipe").description("Install a Backstage plugin [EXPERIMENTAL]").action(lazy(() => Promise.resolve().then(function () { return require('./install-eecff7b6.cjs.js'); }).then((m) => m.default)));
145
146
  }
146
147
  function lazy(getActionFunc) {
147
148
  return async (...args) => {
@@ -183,4 +184,4 @@ exports.packageVersions = packageVersions;
183
184
  exports.paths = paths;
184
185
  exports.version = version;
185
186
  exports.version$1 = version$7;
186
- //# sourceMappingURL=index-b0d38feb.cjs.js.map
187
+ //# sourceMappingURL=index-93747048.cjs.js.map
@@ -3,7 +3,7 @@
3
3
  var fs = require('fs-extra');
4
4
  var chalk = require('chalk');
5
5
  var yaml = require('yaml');
6
- var index$1 = require('./index-b0d38feb.cjs.js');
6
+ var index$1 = require('./index-93747048.cjs.js');
7
7
  var crypto = require('crypto');
8
8
  var openBrowser = require('react-dev-utils/openBrowser');
9
9
  var request = require('@octokit/request');
@@ -127,4 +127,4 @@ ${yaml.stringify(config)}`;
127
127
  };
128
128
 
129
129
  exports.default = index;
130
- //# sourceMappingURL=index-a8bb12f8.cjs.js.map
130
+ //# sourceMappingURL=index-eaf30dd1.cjs.js.map
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-b0d38feb.cjs.js');
3
+ var index = require('./index-93747048.cjs.js');
4
4
  var os = require('os');
5
- var run = require('./run-e50c9fbb.cjs.js');
5
+ var run = require('./run-24fb7653.cjs.js');
6
6
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
7
7
  require('chalk');
8
8
  require('commander');
@@ -40,4 +40,4 @@ var info = async () => {
40
40
  };
41
41
 
42
42
  exports.default = info;
43
- //# sourceMappingURL=info-35e4ffe5.cjs.js.map
43
+ //# sourceMappingURL=info-c2d551c7.cjs.js.map
@@ -0,0 +1,213 @@
1
+ 'use strict';
2
+
3
+ var fs = require('fs-extra');
4
+ require('semver');
5
+ require('@yarnpkg/lockfile');
6
+ var packages = require('./packages-0b0b08c0.cjs.js');
7
+ var index = require('./index-93747048.cjs.js');
8
+ var chalk = require('chalk');
9
+ var sortBy = require('lodash/sortBy');
10
+ var groupBy = require('lodash/groupBy');
11
+ var run = require('./run-24fb7653.cjs.js');
12
+ require('commander');
13
+ require('@backstage/cli-common');
14
+ require('@backstage/config/package.json');
15
+ require('child_process');
16
+ require('util');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
21
+ var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
22
+ var sortBy__default = /*#__PURE__*/_interopDefaultLegacy(sortBy);
23
+ var groupBy__default = /*#__PURE__*/_interopDefaultLegacy(groupBy);
24
+
25
+ function createStepDefinition(config) {
26
+ return config;
27
+ }
28
+
29
+ class AppRouteStep {
30
+ constructor(data) {
31
+ this.data = data;
32
+ }
33
+ async run() {
34
+ var _a;
35
+ const {path, element, packageName} = this.data;
36
+ const appTsxPath = index.paths.resolveTargetRoot("packages/app/src/App.tsx");
37
+ const contents = await fs__default['default'].readFile(appTsxPath, "utf-8");
38
+ let failed = false;
39
+ const contentsWithRoute = contents.replace(/(\s*)<\/FlatRoutes>/, `$1 <Route path="${path}" element={${element}} />$1</FlatRoutes>`);
40
+ if (contentsWithRoute === contents) {
41
+ failed = true;
42
+ }
43
+ const componentName = (_a = element.match(/[A-Za-z0-9]+/)) == null ? void 0 : _a[0];
44
+ if (!componentName) {
45
+ throw new Error(`Could not find component name in ${element}`);
46
+ }
47
+ const contentsWithImport = contentsWithRoute.replace(/^import /m, `import { ${componentName} } from '${packageName}';
48
+ import `);
49
+ if (contentsWithImport === contentsWithRoute) {
50
+ failed = true;
51
+ }
52
+ if (failed) {
53
+ console.log("Failed to automatically add a route to package/app/src/App.tsx");
54
+ console.log(`Action needed, add the following:`);
55
+ console.log(`1. import { ${componentName} } from '${packageName}';`);
56
+ console.log(`2. <Route path="${path}" element={${element}} />`);
57
+ } else {
58
+ await fs__default['default'].writeFile(appTsxPath, contentsWithImport);
59
+ }
60
+ }
61
+ }
62
+ const appRoute = createStepDefinition({
63
+ type: "app-route",
64
+ deserialize(obj, pkg) {
65
+ const {path, element} = obj;
66
+ if (!path || typeof path !== "string") {
67
+ throw new Error("Invalid install step, 'path' must be a string");
68
+ }
69
+ if (!element || typeof element !== "string") {
70
+ throw new Error("Invalid install step, 'element' must be a string");
71
+ }
72
+ return new AppRouteStep({path, element, packageName: pkg.name});
73
+ },
74
+ create(data) {
75
+ return new AppRouteStep(data);
76
+ }
77
+ });
78
+
79
+ class DependenciesStep {
80
+ constructor(data) {
81
+ this.data = data;
82
+ }
83
+ async run() {
84
+ const {dependencies: dependencies2} = this.data;
85
+ const byTarget = groupBy__default['default'](dependencies2, "target");
86
+ for (const [target, deps] of Object.entries(byTarget)) {
87
+ const pkgPath = index.paths.resolveTargetRoot(target, "package.json");
88
+ const pkgJson = await fs__default['default'].readJson(pkgPath);
89
+ const depTypes = new Set();
90
+ for (const dep of deps) {
91
+ depTypes.add(dep.type);
92
+ pkgJson[dep.type][dep.name] = dep.query;
93
+ }
94
+ for (const depType of depTypes) {
95
+ pkgJson[depType] = Object.fromEntries(sortBy__default['default'](Object.entries(pkgJson[depType]), ([key]) => key));
96
+ }
97
+ await fs__default['default'].writeJson(pkgPath, pkgJson, {spaces: 2});
98
+ }
99
+ console.log();
100
+ console.log(`Running ${chalk__default['default'].blue("yarn install")} to install new versions`);
101
+ console.log();
102
+ await run.run("yarn", ["install"]);
103
+ }
104
+ }
105
+ const dependencies = createStepDefinition({
106
+ type: "dependencies",
107
+ deserialize() {
108
+ throw new Error("The dependency step may not be defined in JSON");
109
+ },
110
+ create(data) {
111
+ return new DependenciesStep(data);
112
+ }
113
+ });
114
+
115
+ class MessageStep {
116
+ constructor(data) {
117
+ this.data = data;
118
+ }
119
+ async run() {
120
+ console.log(this.data.message);
121
+ }
122
+ }
123
+ const message = createStepDefinition({
124
+ type: "message",
125
+ deserialize(obj) {
126
+ const {message: msg} = obj;
127
+ if (!msg || typeof msg !== "string" && !Array.isArray(msg)) {
128
+ throw new Error("Invalid install step, 'message' must be a string or array");
129
+ }
130
+ return new MessageStep({message: [msg].flat().join("")});
131
+ },
132
+ create(data) {
133
+ return new MessageStep(data);
134
+ }
135
+ });
136
+
137
+ var stepDefinitionMap = /*#__PURE__*/Object.freeze({
138
+ __proto__: null,
139
+ appRoute: appRoute,
140
+ dependencies: dependencies,
141
+ message: message
142
+ });
143
+
144
+ const stepDefinitions = Object.values(stepDefinitionMap);
145
+ async function fetchPluginPackage(id) {
146
+ const searchNames = [`@backstage/plugin-${id}`, `backstage-plugin-${id}`, id];
147
+ for (const name of searchNames) {
148
+ try {
149
+ const packageInfo = await packages.fetchPackageInfo(name);
150
+ return packageInfo;
151
+ } catch (error) {
152
+ if (error.name !== "NotFoundError") {
153
+ throw error;
154
+ }
155
+ }
156
+ }
157
+ throw new index.NotFoundError(`No matching package found for '${id}', tried ${searchNames.join(", ")}`);
158
+ }
159
+ class PluginInstaller {
160
+ constructor(steps) {
161
+ this.steps = steps;
162
+ }
163
+ static async resolveSteps(pkg) {
164
+ var _a, _b;
165
+ const steps = [];
166
+ const dependencies$1 = [];
167
+ dependencies$1.push({
168
+ target: "packages/app",
169
+ type: "dependencies",
170
+ name: pkg.name,
171
+ query: `^${pkg.version}`
172
+ });
173
+ steps.push({
174
+ type: "dependencies",
175
+ step: dependencies.create({dependencies: dependencies$1})
176
+ });
177
+ for (const step of (_b = (_a = pkg.experimentalInstallationRecipe) == null ? void 0 : _a.steps) != null ? _b : []) {
178
+ const {type} = step;
179
+ const definition = stepDefinitions.find((d) => d.type === type);
180
+ if (definition) {
181
+ steps.push({
182
+ type,
183
+ step: definition.deserialize(step, pkg)
184
+ });
185
+ } else {
186
+ throw new Error(`Unsupported step type: ${type}`);
187
+ }
188
+ }
189
+ return steps;
190
+ }
191
+ async run() {
192
+ for (const {type, step} of this.steps) {
193
+ console.log(`Running step ${type}`);
194
+ await step.run();
195
+ }
196
+ }
197
+ }
198
+ var install = async (pluginId, cmd) => {
199
+ let pkg;
200
+ if (pluginId) {
201
+ pkg = await fetchPluginPackage(pluginId);
202
+ } else if (cmd == null ? void 0 : cmd.from) {
203
+ pkg = await fs__default['default'].readJson(cmd.from);
204
+ } else {
205
+ throw new Error("Missing both <plugin-id> or a package.json file path in the --from flag.");
206
+ }
207
+ const steps = await PluginInstaller.resolveSteps(pkg);
208
+ const installer = new PluginInstaller(steps);
209
+ await installer.run();
210
+ };
211
+
212
+ exports.default = install;
213
+ //# sourceMappingURL=install-eecff7b6.cjs.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
4
- require('./run-e50c9fbb.cjs.js');
4
+ require('./run-24fb7653.cjs.js');
5
5
  require('chalk');
6
- var index = require('./index-b0d38feb.cjs.js');
6
+ var index = require('./index-93747048.cjs.js');
7
7
  var partition = require('lodash/partition');
8
8
  require('fs-extra');
9
9
  require('semver');
@@ -73,4 +73,4 @@ function logArray(arr, header, each) {
73
73
  exports.default = lint;
74
74
  exports.forbiddenDuplicatesFilter = forbiddenDuplicatesFilter;
75
75
  exports.includedFilter = includedFilter;
76
- //# sourceMappingURL=lint-a5758aab.cjs.js.map
76
+ //# sourceMappingURL=lint-557d0761.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var run = require('./run-e50c9fbb.cjs.js');
4
- var index = require('./index-b0d38feb.cjs.js');
3
+ var run = require('./run-24fb7653.cjs.js');
4
+ var index = require('./index-93747048.cjs.js');
5
5
  require('child_process');
6
6
  require('util');
7
7
  require('commander');
@@ -25,4 +25,4 @@ var lint = async (cmd, cmdArgs) => {
25
25
  };
26
26
 
27
27
  exports.default = lint;
28
- //# sourceMappingURL=lint-bda30147.cjs.js.map
28
+ //# sourceMappingURL=lint-bbfe6f75.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-b0d38feb.cjs.js');
4
+ var index = require('./index-93747048.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('semver');
@@ -38,4 +38,4 @@ const post = async () => {
38
38
 
39
39
  exports.post = post;
40
40
  exports.pre = pre;
41
- //# sourceMappingURL=pack-08aaeb74.cjs.js.map
41
+ //# sourceMappingURL=pack-fa56665a.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-b0d38feb.cjs.js');
7
+ var index = require('./index-93747048.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-a538a0d7.cjs.js.map
257
+ //# sourceMappingURL=packager-aa2d50f0.cjs.js.map
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var run = require('./run-24fb7653.cjs.js');
4
+ var index = require('./index-93747048.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-0b0b08c0.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-b0d38feb.cjs.js');
17
- var run = require('./run-e50c9fbb.cjs.js');
16
+ var index = require('./index-93747048.cjs.js');
17
+ var run = require('./run-24fb7653.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 }; }
@@ -348,6 +348,12 @@ async function createBackendConfig(paths, options) {
348
348
  const moduleDirs = packages.map((p) => path.resolve(p.location, "node_modules"));
349
349
  const externalPkgs = packages.filter((p) => !cliCommon.isChildPath(paths.root, p.location));
350
350
  const {loaders} = transforms(options);
351
+ const runScriptNodeArgs = new Array();
352
+ if (options.inspectEnabled) {
353
+ runScriptNodeArgs.push("--inspect");
354
+ } else if (options.inspectBrkEnabled) {
355
+ runScriptNodeArgs.push("--inspect-brk");
356
+ }
351
357
  return {
352
358
  mode: isDev ? "development" : "production",
353
359
  profile: false,
@@ -406,7 +412,7 @@ async function createBackendConfig(paths, options) {
406
412
  plugins: [
407
413
  new runScriptWebpackPlugin.RunScriptWebpackPlugin({
408
414
  name: "main.js",
409
- nodeArgs: options.inspectEnabled ? ["--inspect"] : void 0,
415
+ nodeArgs: runScriptNodeArgs.length > 0 ? runScriptNodeArgs : void 0,
410
416
  args: process.argv.slice(3)
411
417
  }),
412
418
  new webpack__default['default'].HotModuleReplacementPlugin(),
@@ -489,4 +495,4 @@ exports.createBackendConfig = createBackendConfig;
489
495
  exports.createConfig = createConfig;
490
496
  exports.resolveBaseUrl = resolveBaseUrl;
491
497
  exports.resolveBundlingPaths = resolveBundlingPaths;
492
- //# sourceMappingURL=paths-38b204ca.cjs.js.map
498
+ //# sourceMappingURL=paths-47004d9d.cjs.js.map
@@ -2,9 +2,9 @@
2
2
 
3
3
  var yaml = require('yaml');
4
4
  var config$1 = require('@backstage/config');
5
- var config = require('./config-f0ca8800.cjs.js');
5
+ var config = require('./config-c4bab0a4.cjs.js');
6
6
  require('@backstage/config-loader');
7
- require('./index-b0d38feb.cjs.js');
7
+ require('./index-93747048.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
@@ -55,4 +55,4 @@ function serializeConfigData(appConfigs, schema, visibility) {
55
55
  }
56
56
 
57
57
  exports.default = print;
58
- //# sourceMappingURL=print-38e80be2.cjs.js.map
58
+ //# sourceMappingURL=print-02e7ee9a.cjs.js.map
@@ -4,8 +4,8 @@ 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-cfde6de5.cjs.js');
8
- var index = require('./index-b0d38feb.cjs.js');
7
+ var tasks = require('./tasks-a248ef13.cjs.js');
8
+ var index = require('./index-93747048.cjs.js');
9
9
  require('handlebars');
10
10
  require('ora');
11
11
  require('recursive-readdir');
@@ -161,4 +161,4 @@ exports.removePluginFromCodeOwners = removePluginFromCodeOwners;
161
161
  exports.removeReferencesFromAppPackage = removeReferencesFromAppPackage;
162
162
  exports.removeReferencesFromPluginsFile = removeReferencesFromPluginsFile;
163
163
  exports.removeSymLink = removeSymLink;
164
- //# sourceMappingURL=removePlugin-eb1ad78f.cjs.js.map
164
+ //# sourceMappingURL=removePlugin-c77c6d6e.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var child_process = require('child_process');
4
- var index = require('./index-b0d38feb.cjs.js');
4
+ var index = require('./index-93747048.cjs.js');
5
5
  var util = require('util');
6
6
 
7
7
  const execFile = util.promisify(child_process.execFile);
@@ -73,4 +73,4 @@ async function waitForExit(child, name) {
73
73
  exports.run = run;
74
74
  exports.runCheck = runCheck;
75
75
  exports.runPlain = runPlain;
76
- //# sourceMappingURL=run-e50c9fbb.cjs.js.map
76
+ //# sourceMappingURL=run-24fb7653.cjs.js.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var yaml = require('yaml');
4
- var config = require('./config-f0ca8800.cjs.js');
4
+ var config = require('./config-c4bab0a4.cjs.js');
5
5
  var configLoader = require('@backstage/config-loader');
6
6
  require('@backstage/config');
7
- require('./index-b0d38feb.cjs.js');
7
+ require('./index-93747048.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
@@ -31,4 +31,4 @@ var schema = async (cmd) => {
31
31
  };
32
32
 
33
33
  exports.default = schema;
34
- //# sourceMappingURL=schema-c9b6362b.cjs.js.map
34
+ //# sourceMappingURL=schema-f0dbdc35.cjs.js.map
@@ -11,15 +11,15 @@ 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-b0d38feb.cjs.js');
15
- require('./run-e50c9fbb.cjs.js');
14
+ var index = require('./index-93747048.cjs.js');
15
+ require('./run-24fb7653.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-7a3f6d5a.cjs.js');
22
- var config = require('./config-f0ca8800.cjs.js');
21
+ var server = require('./server-bf4580a1.cjs.js');
22
+ var config = require('./config-c4bab0a4.cjs.js');
23
23
  require('commander');
24
24
  require('semver');
25
25
  require('@backstage/config/package.json');
@@ -27,7 +27,7 @@ require('child_process');
27
27
  require('util');
28
28
  require('webpack-dev-server');
29
29
  require('react-dev-utils/openBrowser');
30
- require('./paths-38b204ca.cjs.js');
30
+ require('./paths-47004d9d.cjs.js');
31
31
  require('./parallel-a4714c72.cjs.js');
32
32
  require('./svgrTemplate-2d0d15cf.cjs.js');
33
33
  require('@backstage/config-loader');
@@ -52,4 +52,4 @@ var serve = async (cmd) => {
52
52
  };
53
53
 
54
54
  exports.default = serve;
55
- //# sourceMappingURL=serve-956c01c6.cjs.js.map
55
+ //# sourceMappingURL=serve-487cdbe9.cjs.js.map
@@ -13,16 +13,16 @@ 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-b0d38feb.cjs.js');
17
- require('./run-e50c9fbb.cjs.js');
16
+ var index = require('./index-93747048.cjs.js');
17
+ require('./run-24fb7653.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-7a3f6d5a.cjs.js');
23
- var config = require('./config-f0ca8800.cjs.js');
22
+ var server = require('./server-bf4580a1.cjs.js');
23
+ var config = require('./config-c4bab0a4.cjs.js');
24
24
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
25
- var lint = require('./lint-a5758aab.cjs.js');
25
+ var lint = require('./lint-557d0761.cjs.js');
26
26
  require('commander');
27
27
  require('semver');
28
28
  require('@backstage/config/package.json');
@@ -30,7 +30,7 @@ require('child_process');
30
30
  require('util');
31
31
  require('webpack-dev-server');
32
32
  require('react-dev-utils/openBrowser');
33
- require('./paths-38b204ca.cjs.js');
33
+ require('./paths-47004d9d.cjs.js');
34
34
  require('./parallel-a4714c72.cjs.js');
35
35
  require('./svgrTemplate-2d0d15cf.cjs.js');
36
36
  require('@backstage/config-loader');
@@ -74,4 +74,4 @@ var serve = async (cmd) => {
74
74
  };
75
75
 
76
76
  exports.default = serve;
77
- //# sourceMappingURL=serve-7edb404b.cjs.js.map
77
+ //# sourceMappingURL=serve-b53e4cce.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-38b204ca.cjs.js');
7
+ var paths = require('./paths-47004d9d.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-7a3f6d5a.cjs.js.map
73
+ //# sourceMappingURL=server-bf4580a1.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-b0d38feb.cjs.js');
9
+ var index = require('./index-93747048.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-cfde6de5.cjs.js.map
161
+ //# sourceMappingURL=tasks-a248ef13.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-b0d38feb.cjs.js');
4
- var run = require('./run-e50c9fbb.cjs.js');
3
+ var index = require('./index-93747048.cjs.js');
4
+ var run = require('./run-24fb7653.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('fs-extra');
@@ -44,4 +44,4 @@ var testCommand = async (cmd) => {
44
44
  };
45
45
 
46
46
  exports.default = testCommand;
47
- //# sourceMappingURL=testCommand-635a6e22.cjs.js.map
47
+ //# sourceMappingURL=testCommand-7b6062c3.cjs.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var config = require('./config-f0ca8800.cjs.js');
3
+ var config = require('./config-c4bab0a4.cjs.js');
4
4
  require('@backstage/config-loader');
5
5
  require('@backstage/config');
6
- require('./index-b0d38feb.cjs.js');
6
+ require('./index-93747048.cjs.js');
7
7
  require('commander');
8
8
  require('chalk');
9
9
  require('fs-extra');
@@ -20,4 +20,4 @@ var validate = async (cmd) => {
20
20
  };
21
21
 
22
22
  exports.default = validate;
23
- //# sourceMappingURL=validate-08241b93.cjs.js.map
23
+ //# sourceMappingURL=validate-e01a94da.cjs.js.map
package/dist/index.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('commander');
4
4
  require('chalk');
5
- require('./cjs/index-b0d38feb.cjs.js');
5
+ require('./cjs/index-93747048.cjs.js');
6
6
  require('fs-extra');
7
7
  require('semver');
8
8
  require('@backstage/cli-common');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@backstage/cli",
3
3
  "description": "CLI for developing Backstage plugins and apps",
4
- "version": "0.0.0-nightly-20219522135",
4
+ "version": "0.0.0-nightly-20219102203",
5
5
  "private": false,
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -30,9 +30,9 @@
30
30
  "dependencies": {
31
31
  "@babel/core": "^7.4.4",
32
32
  "@babel/plugin-transform-modules-commonjs": "^7.4.4",
33
- "@backstage/cli-common": "^0.0.0-nightly-20219522135",
33
+ "@backstage/cli-common": "^0.1.4",
34
34
  "@backstage/config": "^0.1.10",
35
- "@backstage/config-loader": "^0.0.0-nightly-20219522135",
35
+ "@backstage/config-loader": "^0.6.10",
36
36
  "@hot-loader/react-dom": "^16.13.0",
37
37
  "@lerna/package-graph": "^4.0.0",
38
38
  "@lerna/project": "^4.0.0",
@@ -104,7 +104,7 @@
104
104
  "run-script-webpack-plugin": "^0.0.11",
105
105
  "semver": "^7.3.2",
106
106
  "style-loader": "^1.2.1",
107
- "sucrase": "^3.20.1",
107
+ "sucrase": "^3.20.2",
108
108
  "tar": "^6.1.2",
109
109
  "terser-webpack-plugin": "^5.1.3",
110
110
  "ts-loader": "^8.0.17",
@@ -118,13 +118,13 @@
118
118
  "yn": "^4.0.0"
119
119
  },
120
120
  "devDependencies": {
121
- "@backstage/backend-common": "^0.9.5",
121
+ "@backstage/backend-common": "^0.9.6",
122
122
  "@backstage/config": "^0.1.10",
123
- "@backstage/core-components": "^0.0.0-nightly-20219522135",
124
- "@backstage/core-plugin-api": "^0.0.0-nightly-20219522135",
125
- "@backstage/core-app-api": "^0.0.0-nightly-20219522135",
123
+ "@backstage/core-components": "^0.0.0-nightly-20219102203",
124
+ "@backstage/core-plugin-api": "^0.1.10",
125
+ "@backstage/core-app-api": "^0.1.16",
126
126
  "@backstage/dev-utils": "^0.2.11",
127
- "@backstage/test-utils": "^0.0.0-nightly-20219522135",
127
+ "@backstage/test-utils": "^0.1.18",
128
128
  "@backstage/theme": "^0.2.10",
129
129
  "@types/diff": "^5.0.0",
130
130
  "@types/express": "^4.17.6",