@backstage/cli 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/config/jest.js +1 -0
  3. package/config/jestSucraseTransform.js +5 -1
  4. package/dist/cjs/{build-32289a53.cjs.js → build-555a7349.cjs.js} +3 -3
  5. package/dist/cjs/{build-7357e33b.cjs.js → build-8652aa69.cjs.js} +3 -3
  6. package/dist/cjs/{build-036a2109.cjs.js → build-b5fb2b35.cjs.js} +3 -3
  7. package/dist/cjs/{build-3192edeb.cjs.js → build-be463597.cjs.js} +8 -5
  8. package/dist/cjs/{buildWorkspace-794159d5.cjs.js → buildWorkspace-79c93924.cjs.js} +4 -4
  9. package/dist/cjs/{bump-ab142f88.cjs.js → bump-53a961f8.cjs.js} +28 -6
  10. package/dist/cjs/{bundle-faf5ad1e.cjs.js → bundle-64a797f5.cjs.js} +5 -5
  11. package/dist/cjs/{clean-e96f4b94.cjs.js → clean-a28705b5.cjs.js} +2 -2
  12. package/dist/cjs/{config-dab34362.cjs.js → config-3816244a.cjs.js} +21 -6
  13. package/dist/cjs/create-d5e65154.cjs.js +483 -0
  14. package/dist/cjs/{createPlugin-3c802c14.cjs.js → createPlugin-77a95bbd.cjs.js} +8 -9
  15. package/dist/cjs/{dev-5750e5cb.cjs.js → dev-3b68b882.cjs.js} +4 -4
  16. package/dist/cjs/{diff-86e1188b.cjs.js → diff-7238cc6c.cjs.js} +2 -2
  17. package/dist/cjs/{docs-34d3c7fe.cjs.js → docs-f46d6945.cjs.js} +3 -3
  18. package/dist/cjs/{index-69ec4ee3.cjs.js → index-05328067.cjs.js} +13 -11
  19. package/dist/cjs/{index-1db5f8d6.cjs.js → index-8a512334.cjs.js} +169 -51
  20. package/dist/cjs/{index-dc92c8f4.cjs.js → index-c8a3517a.cjs.js} +2 -2
  21. package/dist/cjs/{info-f1a293c8.cjs.js → info-a069f3b4.cjs.js} +3 -3
  22. package/dist/cjs/{install-40b1f07e.cjs.js → install-43a8076b.cjs.js} +4 -4
  23. package/dist/cjs/{lint-95a1066a.cjs.js → lint-0053aded.cjs.js} +3 -3
  24. package/dist/cjs/{lint-73e3cf0a.cjs.js → lint-60658813.cjs.js} +3 -3
  25. package/dist/cjs/{pack-a254b380.cjs.js → pack-a4246579.cjs.js} +2 -2
  26. package/dist/cjs/{packager-679f1af5.cjs.js → packager-b1a183ad.cjs.js} +2 -2
  27. package/dist/cjs/{packages-4fe3897c.cjs.js → packages-562fcd14.cjs.js} +3 -3
  28. package/dist/cjs/{paths-9f678df9.cjs.js → paths-f77bdf66.cjs.js} +20 -5
  29. package/dist/cjs/{print-b972c130.cjs.js → print-db876002.cjs.js} +5 -4
  30. package/dist/cjs/{removePlugin-dc596b42.cjs.js → removePlugin-1379b63a.cjs.js} +6 -3
  31. package/dist/cjs/{run-a312f9a6.cjs.js → run-bacdaaf1.cjs.js} +2 -2
  32. package/dist/cjs/{schema-463ba3bd.cjs.js → schema-3fe57ce7.cjs.js} +3 -3
  33. package/dist/cjs/{serve-7b531df5.cjs.js → serve-a9cf4184.cjs.js} +6 -6
  34. package/dist/cjs/{serve-3d293027.cjs.js → serve-e89d4ea4.cjs.js} +7 -7
  35. package/dist/cjs/{server-5582cec8.cjs.js → server-4f0e40d3.cjs.js} +2 -2
  36. package/dist/cjs/{tasks-d6b72c3c.cjs.js → tasks-29b7d09e.cjs.js} +78 -12
  37. package/dist/cjs/{testCommand-42b484a8.cjs.js → testCommand-5602a58f.cjs.js} +3 -3
  38. package/dist/cjs/{validate-4b57eb89.cjs.js → validate-9b1a5456.cjs.js} +5 -4
  39. package/dist/index.cjs.js +1 -1
  40. package/package.json +18 -18
  41. package/templates/default-backend-plugin/package.json.hbs +39 -37
  42. package/templates/default-backend-plugin/src/run.ts.hbs +1 -1
  43. package/templates/default-common-plugin-package/.eslintrc.js +3 -0
  44. package/templates/default-common-plugin-package/README.md.hbs +5 -0
  45. package/templates/default-common-plugin-package/package.json.hbs +34 -0
  46. package/templates/default-common-plugin-package/src/index.ts.hbs +19 -0
  47. package/templates/default-common-plugin-package/src/setupTests.ts +1 -0
  48. package/templates/default-common-plugin-package/tsconfig.json +9 -0
  49. package/templates/default-plugin/package.json.hbs +4 -2
  50. package/templates/default-plugin/src/routes.ts.hbs +1 -1
  51. package/templates/scaffolder-module/.eslintrc.js +3 -0
  52. package/templates/scaffolder-module/README.md.hbs +5 -0
  53. package/templates/scaffolder-module/package.json.hbs +37 -0
  54. package/templates/scaffolder-module/src/actions/example/example.test.ts +50 -0
  55. package/templates/scaffolder-module/src/actions/example/example.ts +57 -0
  56. package/templates/scaffolder-module/src/actions/example/index.ts +1 -0
  57. package/templates/scaffolder-module/src/actions/index.ts +1 -0
  58. package/templates/scaffolder-module/src/index.ts.hbs +8 -0
  59. package/templates/scaffolder-module/tsconfig.json +9 -0
  60. package/dist/cjs/buildImage-62344040.cjs.js +0 -77
package/CHANGELOG.md CHANGED
@@ -1,5 +1,78 @@
1
1
  # @backstage/cli
2
2
 
3
+ ## 0.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ea99ef5198: Remove the `backend:build-image` command from the CLI and added more deprecation warnings to other deprecated fields like `--lax` and `remove-plugin`
8
+
9
+ ### Patch Changes
10
+
11
+ - e7230ef814: Bump react-dev-utils to v12
12
+ - 416b68675d: build(dependencies): bump `style-loader` from 1.2.1 to 3.3.1
13
+ - Updated dependencies
14
+ - @backstage/config-loader@0.8.1
15
+
16
+ ## 0.9.1
17
+
18
+ ### Patch Changes
19
+
20
+ - dde216acf4: Switch the default test coverage provider from the jest default one to `'v8'`, which provides much better coverage information when using the default Backstage test setup. This is considered a bug fix as the current coverage information is often very inaccurate.
21
+ - 719cc87d2f: Disable ES transforms in tests transformed by the `jestSucraseTransform.js`. This is not considered a breaking change since all code is already transpiled this way in the development setup.
22
+ - bab752e2b3: Change default port of backend from 7000 to 7007.
23
+
24
+ This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
25
+
26
+ You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
27
+
28
+ ```
29
+ backend:
30
+ listen: 0.0.0.0:7123
31
+ baseUrl: http://localhost:7123
32
+ ```
33
+
34
+ More information can be found here: https://backstage.io/docs/conf/writing
35
+
36
+ - ee055cf6db: Update the default routes to use id instead of title
37
+ - Updated dependencies
38
+ - @backstage/errors@0.1.5
39
+
40
+ ## 0.9.0
41
+
42
+ ### Minor Changes
43
+
44
+ - 25f637f39f: Tweaked style insertion logic to make sure that JSS stylesheets always receive the highest priority.
45
+
46
+ ### Patch Changes
47
+
48
+ - 677bfc2dd0: Keep backstage.json in sync
49
+
50
+ The `versions:bump` script now takes care about updating the `version` property inside `backstage.json` file. The file is created if is not present.
51
+
52
+ - 8809b6c0dd: Update the json-schema dependency version.
53
+ - fdfd2f8a62: remove double config dep
54
+ - 1e99c73c75: Update internal usage of `configLoader.loadConfig` that now returns an object instead of an array of configs.
55
+ - 6dcfe227a2: Added a scaffolder backend module template for the `create` command.
56
+ - 4ca3542fdd: Fixed a bug where calling `backstage-cli backend:bundle --build-dependencies` with no dependencies to be built would cause all monorepo packages to be built instead.
57
+ - 867ea81d15: bump `@rollup/plugin-commonjs` from 17.1.0 to 21.0.1
58
+ - 16d06f6ac3: Introduces new `backstage-cli create` command to replace `create-plugin` and make space for creating a wider array of things. The create command also adds a new template for creating isomorphic common plugin packages.
59
+ - Updated dependencies
60
+ - @backstage/config-loader@0.8.0
61
+ - @backstage/cli-common@0.1.6
62
+
63
+ ## 0.8.2
64
+
65
+ ### Patch Changes
66
+
67
+ - dd355bca46: Switched to dynamically determining the packages that are unsafe to repack when executing the CLI within the Backstage main repo.
68
+ - b393c4d4be: Fixed the `config:check` command that was incorrectly only validating frontend configuration. Also added a `--frontend` flag to the command which maintains that behavior.
69
+ - 0611f3b3e2: Reading app config from a remote server
70
+ - ec64d9590c: Make `ExitCodeError` call `super` early to avoid compiler warnings
71
+ - 8af66229e7: Bumped `@spotify/eslint-config-react` from `v10` to `v12`, dropping support for Node.js v12.
72
+ - a197708da9: Bumped `@spotify/eslint-config-typescript` from `v10` to `v12`, dropping support for Node.js v12.
73
+ - Updated dependencies
74
+ - @backstage/config-loader@0.7.2
75
+
3
76
  ## 0.8.1
4
77
 
5
78
  ### Patch Changes
package/config/jest.js CHANGED
@@ -95,6 +95,7 @@ async function getProjectConfig(targetPath, displayName) {
95
95
  ...(displayName && { displayName }),
96
96
  rootDir: path.resolve(targetPath, 'src'),
97
97
  coverageDirectory: path.resolve(targetPath, 'coverage'),
98
+ coverageProvider: 'v8',
98
99
  collectCoverageFrom: ['**/*.{js,jsx,ts,tsx}', '!**/*.d.ts'],
99
100
  moduleNameMapper: {
100
101
  '\\.(css|less|scss|sss|styl)$': require.resolve('jest-css-modules'),
@@ -46,7 +46,11 @@ function process(source, filePath) {
46
46
  }
47
47
 
48
48
  if (transforms) {
49
- return transform(source, { transforms, filePath }).code;
49
+ return transform(source, {
50
+ transforms,
51
+ filePath,
52
+ disableESTransforms: true,
53
+ }).code;
50
54
  }
51
55
 
52
56
  return source;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-679f1af5.cjs.js');
3
+ var packager = require('./packager-b1a183ad.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-1db5f8d6.cjs.js');
8
+ require('./index-8a512334.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -41,4 +41,4 @@ var build = async (cmd) => {
41
41
  };
42
42
 
43
43
  exports.default = build;
44
- //# sourceMappingURL=build-32289a53.cjs.js.map
44
+ //# sourceMappingURL=build-555a7349.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-679f1af5.cjs.js');
3
+ var packager = require('./packager-b1a183ad.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-1db5f8d6.cjs.js');
8
+ require('./index-8a512334.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -30,4 +30,4 @@ var build = async () => {
30
30
  };
31
31
 
32
32
  exports.default = build;
33
- //# sourceMappingURL=build-7357e33b.cjs.js.map
33
+ //# sourceMappingURL=build-8652aa69.cjs.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-679f1af5.cjs.js');
3
+ var packager = require('./packager-b1a183ad.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-1db5f8d6.cjs.js');
8
+ require('./index-8a512334.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
@@ -30,4 +30,4 @@ var build = async () => {
30
30
  };
31
31
 
32
32
  exports.default = build;
33
- //# sourceMappingURL=build-036a2109.cjs.js.map
33
+ //# sourceMappingURL=build-b5fb2b35.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-1db5f8d6.cjs.js');
16
- require('./run-a312f9a6.cjs.js');
15
+ var index = require('./index-8a512334.cjs.js');
16
+ require('./run-bacdaaf1.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-9f678df9.cjs.js');
21
+ var paths = require('./paths-f77bdf66.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-dab34362.cjs.js');
25
+ var config = require('./config-3816244a.cjs.js');
26
26
  require('commander');
27
27
  require('semver');
28
28
  require('@backstage/config/package.json');
@@ -122,6 +122,9 @@ async function build$1(compiler, isCi) {
122
122
  }
123
123
 
124
124
  var build = async (cmd) => {
125
+ if (cmd.lax) {
126
+ console.warn(chalk__default['default'].yellow(`[DEPRECATED] - The --lax option is deprecated and will be removed in the future. Please open an issue towards https://github.com/backstage/backstage that describes your use-case if you need the flag to stay around.`));
127
+ }
125
128
  const {name} = await fs__default['default'].readJson(index.paths.resolveTarget("package.json"));
126
129
  await buildBundle({
127
130
  entry: "src/index",
@@ -136,4 +139,4 @@ var build = async (cmd) => {
136
139
  };
137
140
 
138
141
  exports.default = build;
139
- //# sourceMappingURL=build-3192edeb.cjs.js.map
142
+ //# sourceMappingURL=build-be463597.cjs.js.map
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-69ec4ee3.cjs.js');
4
+ var index = require('./index-05328067.cjs.js');
5
5
  require('path');
6
6
  require('os');
7
7
  require('tar');
8
- require('./index-1db5f8d6.cjs.js');
8
+ require('./index-8a512334.cjs.js');
9
9
  require('commander');
10
10
  require('chalk');
11
11
  require('semver');
12
12
  require('@backstage/cli-common');
13
13
  require('@backstage/config/package.json');
14
14
  require('@backstage/errors');
15
- require('./run-a312f9a6.cjs.js');
15
+ require('./run-bacdaaf1.cjs.js');
16
16
  require('child_process');
17
17
  require('util');
18
18
 
@@ -30,4 +30,4 @@ var buildWorkspace = async (dir, _cmd, packages) => {
30
30
  };
31
31
 
32
32
  exports.default = buildWorkspace;
33
- //# sourceMappingURL=buildWorkspace-794159d5.cjs.js.map
33
+ //# sourceMappingURL=buildWorkspace-79c93924.cjs.js.map
@@ -5,15 +5,15 @@ var chalk = require('chalk');
5
5
  var semver = require('semver');
6
6
  var errors = require('@backstage/errors');
7
7
  var path = require('path');
8
- var run = require('./run-a312f9a6.cjs.js');
9
- var index = require('./index-1db5f8d6.cjs.js');
8
+ var run = require('./run-bacdaaf1.cjs.js');
9
+ var index = require('./index-8a512334.cjs.js');
10
10
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
11
- var packages = require('./packages-4fe3897c.cjs.js');
12
- var lint = require('./lint-95a1066a.cjs.js');
11
+ var packages = require('./packages-562fcd14.cjs.js');
12
+ var lint = require('./lint-0053aded.cjs.js');
13
+ var cliCommon = require('@backstage/cli-common');
13
14
  require('child_process');
14
15
  require('util');
15
16
  require('commander');
16
- require('@backstage/cli-common');
17
17
  require('@backstage/config/package.json');
18
18
  require('@yarnpkg/lockfile');
19
19
  require('lodash/partition');
@@ -134,6 +134,8 @@ var bump = async () => {
134
134
  await fs__default['default'].writeJson(pkgPath, pkgJson, {spaces: 2});
135
135
  });
136
136
  console.log();
137
+ await bumpBackstageJsonVersion();
138
+ console.log();
137
139
  console.log(`Running ${chalk__default['default'].blue("yarn install")} to install new versions`);
138
140
  console.log();
139
141
  await run.run("yarn", ["install"]);
@@ -189,6 +191,25 @@ function createVersionFinder() {
189
191
  return latest;
190
192
  };
191
193
  }
194
+ async function bumpBackstageJsonVersion() {
195
+ const backstageJsonPath = index.paths.resolveTargetRoot(cliCommon.BACKSTAGE_JSON);
196
+ const backstageJson = await fs__default['default'].readJSON(backstageJsonPath).catch((e) => {
197
+ if (e.code === "ENOENT") {
198
+ return;
199
+ }
200
+ throw e;
201
+ });
202
+ const info = await packages.fetchPackageInfo("@backstage/create-app");
203
+ const {latest} = info["dist-tags"];
204
+ if ((backstageJson == null ? void 0 : backstageJson.version) === latest) {
205
+ return;
206
+ }
207
+ console.log(chalk__default['default'].yellow(typeof backstageJson === "undefined" ? `Creating ${cliCommon.BACKSTAGE_JSON}` : `Bumping version in ${cliCommon.BACKSTAGE_JSON}`));
208
+ await fs__default['default'].writeJson(backstageJsonPath, {...backstageJson, version: latest}, {
209
+ spaces: 2,
210
+ encoding: "utf8"
211
+ });
212
+ }
192
213
  async function workerThreads(count, items, fn) {
193
214
  const queue = Array.from(items);
194
215
  async function pop() {
@@ -202,5 +223,6 @@ async function workerThreads(count, items, fn) {
202
223
  return Promise.all(Array(count).fill(0).map(() => pop()));
203
224
  }
204
225
 
226
+ exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
205
227
  exports.default = bump;
206
- //# sourceMappingURL=bump-ab142f88.cjs.js.map
228
+ //# sourceMappingURL=bump-53a961f8.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-69ec4ee3.cjs.js');
8
- var index = require('./index-1db5f8d6.cjs.js');
7
+ var index$1 = require('./index-05328067.cjs.js');
8
+ var index = require('./index-8a512334.cjs.js');
9
9
  var parallel = require('./parallel-a4714c72.cjs.js');
10
- var packager = require('./packager-679f1af5.cjs.js');
11
- require('./run-a312f9a6.cjs.js');
10
+ var packager = require('./packager-b1a183ad.cjs.js');
11
+ require('./run-bacdaaf1.cjs.js');
12
12
  require('child_process');
13
13
  require('util');
14
14
  require('@backstage/errors');
@@ -67,4 +67,4 @@ var bundle = async (cmd) => {
67
67
  };
68
68
 
69
69
  exports.default = bundle;
70
- //# sourceMappingURL=bundle-faf5ad1e.cjs.js.map
70
+ //# sourceMappingURL=bundle-64a797f5.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-1db5f8d6.cjs.js');
4
+ var index = require('./index-8a512334.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('semver');
@@ -20,4 +20,4 @@ async function clean() {
20
20
  }
21
21
 
22
22
  exports.default = clean;
23
- //# sourceMappingURL=clean-e96f4b94.cjs.js.map
23
+ //# sourceMappingURL=clean-a28705b5.cjs.js.map
@@ -2,10 +2,24 @@
2
2
 
3
3
  var configLoader = require('@backstage/config-loader');
4
4
  var config = require('@backstage/config');
5
- var index = require('./index-1db5f8d6.cjs.js');
5
+ var index = require('./index-8a512334.cjs.js');
6
+
7
+ function isValidUrl(url) {
8
+ try {
9
+ new URL(url);
10
+ return true;
11
+ } catch {
12
+ return false;
13
+ }
14
+ }
6
15
 
7
16
  async function loadCliConfig(options) {
8
- const configPaths = options.args.map((arg) => index.paths.resolveTarget(arg));
17
+ const configTargets = [];
18
+ options.args.forEach((arg) => {
19
+ if (!isValidUrl(arg)) {
20
+ configTargets.push({path: index.paths.resolveTarget(arg)});
21
+ }
22
+ });
9
23
  const {Project} = require("@lerna/project");
10
24
  const project = new Project(index.paths.targetDir);
11
25
  const packages = await project.getPackages();
@@ -14,16 +28,17 @@ async function loadCliConfig(options) {
14
28
  dependencies: localPackageNames,
15
29
  packagePaths: [index.paths.resolveTargetRoot("package.json")]
16
30
  });
17
- const appConfigs = await configLoader.loadConfig({
31
+ const {appConfigs} = await configLoader.loadConfig({
18
32
  experimentalEnvFunc: options.mockEnv ? async (name) => process.env[name] || "x" : void 0,
19
33
  configRoot: index.paths.targetRoot,
20
- configPaths
34
+ configPaths: [],
35
+ configTargets
21
36
  });
22
37
  process.stderr.write(`Loaded config from ${appConfigs.map((c) => c.context).join(", ")}
23
38
  `);
24
39
  try {
25
40
  const frontendAppConfigs = schema.process(appConfigs, {
26
- visibility: ["frontend"],
41
+ visibility: options.fullVisibility ? ["frontend", "backend", "secret"] : ["frontend"],
27
42
  withFilteredKeys: options.withFilteredKeys
28
43
  });
29
44
  const frontendConfig = config.ConfigReader.fromConfigs(frontendAppConfigs);
@@ -67,4 +82,4 @@ function findPackages(packages, fromPackage) {
67
82
  }
68
83
 
69
84
  exports.loadCliConfig = loadCliConfig;
70
- //# sourceMappingURL=config-dab34362.cjs.js.map
85
+ //# sourceMappingURL=config-3816244a.cjs.js.map