@backstage/cli 0.7.16 → 0.9.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 (61) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/config/jest.js +42 -14
  3. package/config/jestEsmTransform.js +4 -21
  4. package/config/jestSucraseTransform.js +66 -0
  5. package/dist/cjs/{build-adad8b22.cjs.js → build-5907bd33.cjs.js} +4 -3
  6. package/dist/cjs/{build-093508d5.cjs.js → build-73b8edfc.cjs.js} +4 -3
  7. package/dist/cjs/{build-d7862d7c.cjs.js → build-7571e64b.cjs.js} +4 -3
  8. package/dist/cjs/{build-292d259f.cjs.js → build-9e812f65.cjs.js} +6 -5
  9. package/dist/cjs/{buildImage-7e3cf320.cjs.js → buildImage-7b597eb4.cjs.js} +5 -4
  10. package/dist/cjs/{buildWorkspace-cfea104f.cjs.js → buildWorkspace-779679cc.cjs.js} +5 -4
  11. package/dist/cjs/{bump-27623ef3.cjs.js → bump-67695db2.cjs.js} +31 -8
  12. package/dist/cjs/{bundle-80c7cf66.cjs.js → bundle-561463d9.cjs.js} +6 -5
  13. package/dist/cjs/{clean-f750c0dc.cjs.js → clean-1156a89f.cjs.js} +3 -2
  14. package/dist/cjs/{config-3e7b308b.cjs.js → config-10d49423.cjs.js} +21 -6
  15. package/dist/cjs/create-b0f456f9.cjs.js +483 -0
  16. package/dist/cjs/{createPlugin-a03aceea.cjs.js → createPlugin-2c95815c.cjs.js} +11 -9
  17. package/dist/cjs/{dev-f7d06c3d.cjs.js → dev-a04f9251.cjs.js} +5 -4
  18. package/dist/cjs/{diff-fd2bda97.cjs.js → diff-d009aa81.cjs.js} +3 -2
  19. package/dist/cjs/{docs-8dde3bb5.cjs.js → docs-d4bb9d0c.cjs.js} +4 -3
  20. package/dist/cjs/{index-8ece1803.cjs.js → index-25ca4442.cjs.js} +172 -51
  21. package/dist/cjs/{index-07ce0d55.cjs.js → index-351d0371.cjs.js} +3 -2
  22. package/dist/cjs/{index-39056740.cjs.js → index-af2b13e0.cjs.js} +13 -11
  23. package/dist/cjs/{info-85a45abd.cjs.js → info-05aaf204.cjs.js} +4 -3
  24. package/dist/cjs/{install-8c0b53e3.cjs.js → install-5d8e8fe5.cjs.js} +5 -4
  25. package/dist/cjs/{lint-fffadef5.cjs.js → lint-85c90960.cjs.js} +4 -3
  26. package/dist/cjs/{lint-d2e5b1ca.cjs.js → lint-d1316de9.cjs.js} +4 -3
  27. package/dist/cjs/{pack-f73a4522.cjs.js → pack-58a2ab5d.cjs.js} +3 -2
  28. package/dist/cjs/{packager-e61b2b16.cjs.js → packager-b251454c.cjs.js} +2 -2
  29. package/dist/cjs/{packages-be161005.cjs.js → packages-4a2d7110.cjs.js} +3 -3
  30. package/dist/cjs/{paths-5e0e5ffc.cjs.js → paths-034708b3.cjs.js} +20 -5
  31. package/dist/cjs/{print-5df69d1b.cjs.js → print-5d03aebd.cjs.js} +6 -4
  32. package/dist/cjs/{removePlugin-865c314e.cjs.js → removePlugin-c64823bb.cjs.js} +13 -3
  33. package/dist/cjs/{run-cc82f277.cjs.js → run-924136d8.cjs.js} +9 -4
  34. package/dist/cjs/{schema-66b2f248.cjs.js → schema-d59459da.cjs.js} +4 -3
  35. package/dist/cjs/{serve-7656d962.cjs.js → serve-0f30d0fc.cjs.js} +7 -6
  36. package/dist/cjs/{serve-b1a08c13.cjs.js → serve-28c83157.cjs.js} +8 -7
  37. package/dist/cjs/{server-4f73b8b5.cjs.js → server-652ec9a3.cjs.js} +2 -2
  38. package/dist/cjs/{tasks-4d9e9b1f.cjs.js → tasks-802f087f.cjs.js} +78 -12
  39. package/dist/cjs/{testCommand-55c14530.cjs.js → testCommand-11d07d1b.cjs.js} +4 -3
  40. package/dist/cjs/{validate-1542a59a.cjs.js → validate-3cc188fa.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 +39 -37
  44. package/templates/default-common-plugin-package/.eslintrc.js +3 -0
  45. package/templates/default-common-plugin-package/README.md.hbs +5 -0
  46. package/templates/default-common-plugin-package/package.json.hbs +34 -0
  47. package/templates/default-common-plugin-package/src/index.ts.hbs +19 -0
  48. package/templates/default-common-plugin-package/src/setupTests.ts +1 -0
  49. package/templates/default-common-plugin-package/tsconfig.json +9 -0
  50. package/templates/default-plugin/package.json.hbs +5 -3
  51. package/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +5 -2
  52. package/templates/default-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +2 -2
  53. package/templates/scaffolder-module/.eslintrc.js +3 -0
  54. package/templates/scaffolder-module/README.md.hbs +5 -0
  55. package/templates/scaffolder-module/package.json.hbs +37 -0
  56. package/templates/scaffolder-module/src/actions/example/example.test.ts +50 -0
  57. package/templates/scaffolder-module/src/actions/example/example.ts +57 -0
  58. package/templates/scaffolder-module/src/actions/example/index.ts +1 -0
  59. package/templates/scaffolder-module/src/actions/index.ts +1 -0
  60. package/templates/scaffolder-module/src/index.ts.hbs +8 -0
  61. package/templates/scaffolder-module/tsconfig.json +9 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,78 @@
1
1
  # @backstage/cli
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 25f637f39f: Tweaked style insertion logic to make sure that JSS stylesheets always receive the highest priority.
8
+
9
+ ### Patch Changes
10
+
11
+ - 677bfc2dd0: Keep backstage.json in sync
12
+
13
+ The `versions:bump` script now takes care about updating the `version` property inside `backstage.json` file. The file is created if is not present.
14
+
15
+ - 8809b6c0dd: Update the json-schema dependency version.
16
+ - fdfd2f8a62: remove double config dep
17
+ - 1e99c73c75: Update internal usage of `configLoader.loadConfig` that now returns an object instead of an array of configs.
18
+ - 6dcfe227a2: Added a scaffolder backend module template for the `create` command.
19
+ - 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.
20
+ - 867ea81d15: bump `@rollup/plugin-commonjs` from 17.1.0 to 21.0.1
21
+ - 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.
22
+ - Updated dependencies
23
+ - @backstage/config-loader@0.8.0
24
+ - @backstage/cli-common@0.1.6
25
+
26
+ ## 0.8.2
27
+
28
+ ### Patch Changes
29
+
30
+ - dd355bca46: Switched to dynamically determining the packages that are unsafe to repack when executing the CLI within the Backstage main repo.
31
+ - 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.
32
+ - 0611f3b3e2: Reading app config from a remote server
33
+ - ec64d9590c: Make `ExitCodeError` call `super` early to avoid compiler warnings
34
+ - 8af66229e7: Bumped `@spotify/eslint-config-react` from `v10` to `v12`, dropping support for Node.js v12.
35
+ - a197708da9: Bumped `@spotify/eslint-config-typescript` from `v10` to `v12`, dropping support for Node.js v12.
36
+ - Updated dependencies
37
+ - @backstage/config-loader@0.7.2
38
+
39
+ ## 0.8.1
40
+
41
+ ### Patch Changes
42
+
43
+ - f1e96dc5b1: Update usage of msw in default plugin template
44
+ - b0dc1fd241: bump `@spotify/eslint-config-base` from 9.0.2 to 12.0.0
45
+ - c5bb1df55d: Bump `msw` to `v0.35.0` to resolve [CVE-2021-32796](https://github.com/advisories/GHSA-5fg8-2547-mr8q).
46
+ - 10615525f3: Switch to use the json and observable types from `@backstage/types`
47
+ - Updated dependencies
48
+ - @backstage/config@0.1.11
49
+ - @backstage/cli-common@0.1.5
50
+ - @backstage/errors@0.1.4
51
+ - @backstage/config-loader@0.7.1
52
+
53
+ ## 0.8.0
54
+
55
+ ### Minor Changes
56
+
57
+ - b486adb8c6: The Jest configuration that's included with the Backstage CLI has received several changes.
58
+
59
+ As a part of migrating to more widespread usage of ESM modules, the default configuration now transforms all source files everywhere, including those within `node_modules`. Due to this change the existing `transformModules` option has been removed and will be ignored. There is also a list of known packages that do not require transforms in the CLI, which will evolve over time. If needed there will also be an option to add packages to this list in the future, but it is not included yet to avoid clutter.
60
+
61
+ To counteract the slowdown of the additional transforms that have been introduced, the default configuration has also been reworked to enable caching across different packages. Previously each package in a Backstage monorepo would have its own isolated Jest cache, but it is now shared between packages that have a similar enough Jest configuration.
62
+
63
+ Another change that will speed up test execution is that the transformer for `.esm.js` files has been switched. It used to be an ESM transformer based on Babel, but it is also done by sucrase now since it is significantly faster.
64
+
65
+ The changes above are not strictly breaking as all tests should still work. It may however cause excessive slowdowns in projects that have configured custom transforms in the `jest` field within `package.json` files. In this case it is either best to consider removing the custom transforms, or overriding the `transformIgnorePatterns` to instead use Jest's default `'/node_modules/'` pattern.
66
+
67
+ This change also removes the `@backstage/cli/config/jestEsmTransform.js` transform, which can be replaced by using the `@backstage/cli/config/sucraseEsmTransform.js` transform instead.
68
+
69
+ ### Patch Changes
70
+
71
+ - 36e67d2f24: Internal updates to apply more strict checks to throw errors.
72
+ - Updated dependencies
73
+ - @backstage/config-loader@0.7.0
74
+ - @backstage/errors@0.1.3
75
+
3
76
  ## 0.7.16
4
77
 
5
78
  ### Patch Changes
package/config/jest.js CHANGED
@@ -16,7 +16,25 @@
16
16
 
17
17
  const fs = require('fs-extra');
18
18
  const path = require('path');
19
+ const crypto = require('crypto');
19
20
  const glob = require('util').promisify(require('glob'));
21
+ const { version } = require('../package.json');
22
+
23
+ const transformIgnorePattern = [
24
+ '@material-ui',
25
+ '@rjsf',
26
+ 'ajv',
27
+ 'core-js',
28
+ 'jest-.*',
29
+ 'jsdom',
30
+ 'knex',
31
+ 'react',
32
+ 'react-dom',
33
+ 'highlight\\.js',
34
+ 'prismjs',
35
+ 'react-use',
36
+ 'typescript',
37
+ ].join('|');
20
38
 
21
39
  async function getProjectConfig(targetPath, displayName) {
22
40
  const configJsPath = path.resolve(targetPath, 'jest.config.js');
@@ -58,10 +76,7 @@ async function getProjectConfig(targetPath, displayName) {
58
76
  currentPath = newPath;
59
77
  }
60
78
 
61
- // We add an additional Jest config parameter only known by the Backstage CLI
62
- // called `transformModules`. It's a list of modules that we want to apply
63
- // our configured jest transformations for.
64
- // This is useful when packages are published in untranspiled ESM or TS form.
79
+ // This is an old deprecated option that is no longer used.
65
80
  const transformModules = pkgJsonConfigs
66
81
  .flatMap(conf => {
67
82
  const modules = conf.transformModules || [];
@@ -70,10 +85,14 @@ async function getProjectConfig(targetPath, displayName) {
70
85
  })
71
86
  .map(name => `${name}/`)
72
87
  .join('|');
73
- const transformModulePattern = transformModules && `(?!${transformModules})`;
88
+ if (transformModules.length > 0) {
89
+ console.warn(
90
+ 'The Backstage CLI jest transformModules option is no longer used and will be ignored. All modules are now always transformed.',
91
+ );
92
+ }
74
93
 
75
94
  const options = {
76
- displayName,
95
+ ...(displayName && { displayName }),
77
96
  rootDir: path.resolve(targetPath, 'src'),
78
97
  coverageDirectory: path.resolve(targetPath, 'coverage'),
79
98
  collectCoverageFrom: ['**/*.{js,jsx,ts,tsx}', '!**/*.d.ts'],
@@ -82,8 +101,7 @@ async function getProjectConfig(targetPath, displayName) {
82
101
  },
83
102
 
84
103
  transform: {
85
- '\\.esm\\.js$': require.resolve('./jestEsmTransform.js'), // See jestEsmTransform.js
86
- '\\.(js|jsx|ts|tsx)$': require.resolve('@sucrase/jest-plugin'),
104
+ '\\.(js|jsx|ts|tsx)$': require.resolve('./jestSucraseTransform.js'),
87
105
  '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$':
88
106
  require.resolve('./jestFileTransform.js'),
89
107
  '\\.(yaml)$': require.resolve('jest-transform-yaml'),
@@ -92,11 +110,7 @@ async function getProjectConfig(targetPath, displayName) {
92
110
  // A bit more opinionated
93
111
  testMatch: ['**/?(*.)test.{js,jsx,mjs,ts,tsx}'],
94
112
 
95
- // Default behaviour is to not apply transforms for node_modules, but we still want
96
- // to apply the esm-transformer to .esm.js files, since that's what we use in backstage packages.
97
- transformIgnorePatterns: [
98
- `/node_modules/${transformModulePattern}.*\\.(?:(?<!esm\\.)js|json)$`,
99
- ],
113
+ transformIgnorePatterns: [`/node_modules/(?:${transformIgnorePattern})/`],
100
114
  };
101
115
 
102
116
  // Use src/setupTests.ts as the default location for configuring test env
@@ -104,7 +118,21 @@ async function getProjectConfig(targetPath, displayName) {
104
118
  options.setupFilesAfterEnv = ['<rootDir>/setupTests.ts'];
105
119
  }
106
120
 
107
- return Object.assign(options, ...pkgJsonConfigs);
121
+ const config = Object.assign(options, ...pkgJsonConfigs);
122
+
123
+ // The config name is a cache key that lets us share the jest cache across projects.
124
+ // If no explicit name was configured, generated one based on the configuration.
125
+ if (!config.name) {
126
+ const configHash = crypto
127
+ .createHash('md5')
128
+ .update(version)
129
+ .update(Buffer.alloc(1))
130
+ .update(JSON.stringify(config.transform))
131
+ .digest('hex');
132
+ config.name = `backstage_cli_${configHash}`;
133
+ }
134
+
135
+ return config;
108
136
  }
109
137
 
110
138
  // This loads the root jest config, which in turn will either refer to a single
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2020 The Backstage Authors
2
+ * Copyright 2021 The Backstage Authors
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -14,23 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- const babel = require('@babel/core');
18
-
19
- // We build .esm.js files with plugin:build, so to be able to load these in tests they need to be transformed
20
- // TODO: jest is working on module support, it's possible that we can remove this in the future
21
- module.exports = {
22
- process(src) {
23
- const result = babel.transform(src, {
24
- babelrc: false,
25
- compact: false,
26
- plugins: [
27
- // This transforms the regular ESM syntax, import and export statements
28
- require.resolve('@babel/plugin-transform-modules-commonjs'),
29
- // This transforms dynamic `import()`, which is not supported yet in the Node.js VM API
30
- require.resolve('babel-plugin-dynamic-import-node'),
31
- ],
32
- });
33
-
34
- return result.code;
35
- },
36
- };
17
+ throw new Error(
18
+ 'The ./jestEsmTransform.js transform has been removed, switch to using ./jestSucraseTransform.js instead',
19
+ );
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Copyright 2021 The Backstage Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ const { createHash } = require('crypto');
18
+ const { transform } = require('sucrase');
19
+ const sucrasePkg = require('sucrase/package.json');
20
+ const sucrasePluginPkg = require('@sucrase/jest-plugin/package.json');
21
+
22
+ const ESM_REGEX = /\b(?:import|export)\b/;
23
+
24
+ function process(source, filePath) {
25
+ let transforms;
26
+
27
+ if (filePath.endsWith('.esm.js')) {
28
+ transforms = ['imports'];
29
+ } else if (filePath.endsWith('.js')) {
30
+ // This is a very rough filter to avoid transforming things that we quickly
31
+ // can be sure are definitely not ESM modules.
32
+ if (ESM_REGEX.test(source)) {
33
+ transforms = ['imports', 'jsx']; // JSX within .js is currently allowed
34
+ }
35
+ } else if (filePath.endsWith('.jsx')) {
36
+ transforms = ['jsx', 'imports'];
37
+ } else if (filePath.endsWith('.ts')) {
38
+ transforms = ['typescript', 'imports'];
39
+ } else if (filePath.endsWith('.tsx')) {
40
+ transforms = ['typescript', 'jsx', 'imports'];
41
+ }
42
+
43
+ // Only apply the jest transform to the test files themselves
44
+ if (transforms && filePath.includes('.test.')) {
45
+ transforms.push('jest');
46
+ }
47
+
48
+ if (transforms) {
49
+ return transform(source, { transforms, filePath }).code;
50
+ }
51
+
52
+ return source;
53
+ }
54
+
55
+ // TODO: contribute something like this to @sucrase/jest-plugin
56
+ function getCacheKey(sourceText) {
57
+ return createHash('md5')
58
+ .update(sourceText)
59
+ .update(Buffer.alloc(1))
60
+ .update(sucrasePkg.version)
61
+ .update(Buffer.alloc(1))
62
+ .update(sucrasePluginPkg.version)
63
+ .digest('hex');
64
+ }
65
+
66
+ module.exports = { process, getCacheKey };
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-e61b2b16.cjs.js');
3
+ var packager = require('./packager-b251454c.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-8ece1803.cjs.js');
8
+ require('./index-25ca4442.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
12
12
  require('@backstage/config/package.json');
13
+ require('@backstage/errors');
13
14
  require('rollup-plugin-peer-deps-external');
14
15
  require('@rollup/plugin-commonjs');
15
16
  require('@rollup/plugin-node-resolve');
@@ -29,4 +30,4 @@ var build = async () => {
29
30
  };
30
31
 
31
32
  exports.default = build;
32
- //# sourceMappingURL=build-adad8b22.cjs.js.map
33
+ //# sourceMappingURL=build-5907bd33.cjs.js.map
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-e61b2b16.cjs.js');
3
+ var packager = require('./packager-b251454c.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-8ece1803.cjs.js');
8
+ require('./index-25ca4442.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
12
12
  require('@backstage/config/package.json');
13
+ require('@backstage/errors');
13
14
  require('rollup-plugin-peer-deps-external');
14
15
  require('@rollup/plugin-commonjs');
15
16
  require('@rollup/plugin-node-resolve');
@@ -40,4 +41,4 @@ var build = async (cmd) => {
40
41
  };
41
42
 
42
43
  exports.default = build;
43
- //# sourceMappingURL=build-093508d5.cjs.js.map
44
+ //# sourceMappingURL=build-73b8edfc.cjs.js.map
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var packager = require('./packager-e61b2b16.cjs.js');
3
+ var packager = require('./packager-b251454c.cjs.js');
4
4
  require('fs-extra');
5
5
  require('rollup');
6
6
  require('chalk');
7
7
  require('path');
8
- require('./index-8ece1803.cjs.js');
8
+ require('./index-25ca4442.cjs.js');
9
9
  require('commander');
10
10
  require('semver');
11
11
  require('@backstage/cli-common');
12
12
  require('@backstage/config/package.json');
13
+ require('@backstage/errors');
13
14
  require('rollup-plugin-peer-deps-external');
14
15
  require('@rollup/plugin-commonjs');
15
16
  require('@rollup/plugin-node-resolve');
@@ -29,4 +30,4 @@ var build = async () => {
29
30
  };
30
31
 
31
32
  exports.default = build;
32
- //# sourceMappingURL=build-d7862d7c.cjs.js.map
33
+ //# sourceMappingURL=build-7571e64b.cjs.js.map
@@ -12,20 +12,21 @@ 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-8ece1803.cjs.js');
16
- require('./run-cc82f277.cjs.js');
15
+ var index = require('./index-25ca4442.cjs.js');
16
+ require('./run-924136d8.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-5e0e5ffc.cjs.js');
21
+ var paths = require('./paths-034708b3.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-3e7b308b.cjs.js');
25
+ var config = require('./config-10d49423.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('./svgrTemplate-2d0d15cf.cjs.js');
@@ -135,4 +136,4 @@ var build = async (cmd) => {
135
136
  };
136
137
 
137
138
  exports.default = build;
138
- //# sourceMappingURL=build-292d259f.cjs.js.map
139
+ //# sourceMappingURL=build-9e812f65.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-39056740.cjs.js');
7
- var index = require('./index-8ece1803.cjs.js');
8
- var run = require('./run-cc82f277.cjs.js');
6
+ var index$1 = require('./index-af2b13e0.cjs.js');
7
+ var index = require('./index-25ca4442.cjs.js');
8
+ var run = require('./run-924136d8.cjs.js');
9
9
  var parallel = require('./parallel-a4714c72.cjs.js');
10
10
  require('os');
11
11
  require('tar');
@@ -13,6 +13,7 @@ require('commander');
13
13
  require('semver');
14
14
  require('@backstage/cli-common');
15
15
  require('@backstage/config/package.json');
16
+ require('@backstage/errors');
16
17
  require('child_process');
17
18
  require('util');
18
19
 
@@ -73,4 +74,4 @@ async function findAppConfigs() {
73
74
  }
74
75
 
75
76
  exports.default = buildImage;
76
- //# sourceMappingURL=buildImage-7e3cf320.cjs.js.map
77
+ //# sourceMappingURL=buildImage-7b597eb4.cjs.js.map
@@ -1,17 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-39056740.cjs.js');
4
+ var index = require('./index-af2b13e0.cjs.js');
5
5
  require('path');
6
6
  require('os');
7
7
  require('tar');
8
- require('./index-8ece1803.cjs.js');
8
+ require('./index-25ca4442.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-cc82f277.cjs.js');
14
+ require('@backstage/errors');
15
+ require('./run-924136d8.cjs.js');
15
16
  require('child_process');
16
17
  require('util');
17
18
 
@@ -29,4 +30,4 @@ var buildWorkspace = async (dir, _cmd, packages) => {
29
30
  };
30
31
 
31
32
  exports.default = buildWorkspace;
32
- //# sourceMappingURL=buildWorkspace-cfea104f.cjs.js.map
33
+ //# sourceMappingURL=buildWorkspace-779679cc.cjs.js.map
@@ -3,16 +3,17 @@
3
3
  var fs = require('fs-extra');
4
4
  var chalk = require('chalk');
5
5
  var semver = require('semver');
6
+ var errors = require('@backstage/errors');
6
7
  var path = require('path');
7
- var run = require('./run-cc82f277.cjs.js');
8
- var index = require('./index-8ece1803.cjs.js');
8
+ var run = require('./run-924136d8.cjs.js');
9
+ var index = require('./index-25ca4442.cjs.js');
9
10
  var Lockfile = require('./Lockfile-80f0eec4.cjs.js');
10
- var packages = require('./packages-be161005.cjs.js');
11
- var lint = require('./lint-d2e5b1ca.cjs.js');
11
+ var packages = require('./packages-4a2d7110.cjs.js');
12
+ var lint = require('./lint-d1316de9.cjs.js');
13
+ var cliCommon = require('@backstage/cli-common');
12
14
  require('child_process');
13
15
  require('util');
14
16
  require('commander');
15
- require('@backstage/cli-common');
16
17
  require('@backstage/config/package.json');
17
18
  require('@yarnpkg/lockfile');
18
19
  require('lodash/partition');
@@ -43,7 +44,7 @@ var bump = async () => {
43
44
  try {
44
45
  target = await findTargetVersion(name);
45
46
  } catch (error) {
46
- if (error.name === "NotFoundError") {
47
+ if (errors.isError(error) && error.name === "NotFoundError") {
47
48
  console.log(`Package info not found, ignoring package ${name}`);
48
49
  return;
49
50
  }
@@ -73,7 +74,7 @@ var bump = async () => {
73
74
  try {
74
75
  target = await findTargetVersion(name);
75
76
  } catch (error) {
76
- if (error.name === "NotFoundError") {
77
+ if (errors.isError(error) && error.name === "NotFoundError") {
77
78
  console.log(`Package info not found, ignoring package ${name}`);
78
79
  return;
79
80
  }
@@ -133,6 +134,8 @@ var bump = async () => {
133
134
  await fs__default['default'].writeJson(pkgPath, pkgJson, {spaces: 2});
134
135
  });
135
136
  console.log();
137
+ await bumpBackstageJsonVersion();
138
+ console.log();
136
139
  console.log(`Running ${chalk__default['default'].blue("yarn install")} to install new versions`);
137
140
  console.log();
138
141
  await run.run("yarn", ["install"]);
@@ -188,6 +191,25 @@ function createVersionFinder() {
188
191
  return latest;
189
192
  };
190
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
+ }
191
213
  async function workerThreads(count, items, fn) {
192
214
  const queue = Array.from(items);
193
215
  async function pop() {
@@ -201,5 +223,6 @@ async function workerThreads(count, items, fn) {
201
223
  return Promise.all(Array(count).fill(0).map(() => pop()));
202
224
  }
203
225
 
226
+ exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
204
227
  exports.default = bump;
205
- //# sourceMappingURL=bump-27623ef3.cjs.js.map
228
+ //# sourceMappingURL=bump-67695db2.cjs.js.map
@@ -4,13 +4,14 @@ 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-39056740.cjs.js');
8
- var index = require('./index-8ece1803.cjs.js');
7
+ var index$1 = require('./index-af2b13e0.cjs.js');
8
+ var index = require('./index-25ca4442.cjs.js');
9
9
  var parallel = require('./parallel-a4714c72.cjs.js');
10
- var packager = require('./packager-e61b2b16.cjs.js');
11
- require('./run-cc82f277.cjs.js');
10
+ var packager = require('./packager-b251454c.cjs.js');
11
+ require('./run-924136d8.cjs.js');
12
12
  require('child_process');
13
13
  require('util');
14
+ require('@backstage/errors');
14
15
  require('commander');
15
16
  require('chalk');
16
17
  require('semver');
@@ -66,4 +67,4 @@ var bundle = async (cmd) => {
66
67
  };
67
68
 
68
69
  exports.default = bundle;
69
- //# sourceMappingURL=bundle-80c7cf66.cjs.js.map
70
+ //# sourceMappingURL=bundle-561463d9.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-8ece1803.cjs.js');
4
+ var index = require('./index-25ca4442.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
 
@@ -19,4 +20,4 @@ async function clean() {
19
20
  }
20
21
 
21
22
  exports.default = clean;
22
- //# sourceMappingURL=clean-f750c0dc.cjs.js.map
23
+ //# sourceMappingURL=clean-1156a89f.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-8ece1803.cjs.js');
5
+ var index = require('./index-25ca4442.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-3e7b308b.cjs.js.map
85
+ //# sourceMappingURL=config-10d49423.cjs.js.map