@backstage/cli 0.34.6-next.1 → 0.34.6
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.
- package/CHANGELOG.md +2 -22
- package/dist/lib/errors.cjs.js +10 -0
- package/dist/lib/run.cjs.js +82 -0
- package/dist/lib/versioning/packages.cjs.js +7 -3
- package/dist/lib/versioning/yarn.cjs.js +8 -2
- package/dist/modules/build/commands/package/start/startFrontend.cjs.js +1 -1
- package/dist/modules/build/lib/buildBackend.cjs.js +20 -2
- package/dist/modules/build/lib/buildFrontend.cjs.js +1 -1
- package/dist/modules/build/lib/bundler/config.cjs.js +3 -3
- package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +28 -10
- package/dist/modules/info/commands/info.cjs.js +3 -2
- package/dist/modules/maintenance/commands/repo/clean.cjs.js +9 -4
- package/dist/modules/migrate/commands/packageLintConfigs.cjs.js +2 -2
- package/dist/modules/migrate/commands/versions/bump.cjs.js +22 -10
- package/dist/modules/migrate/lib/utils.cjs.js +5 -5
- package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +2 -1
- package/dist/modules/new/lib/execution/executePortableTemplate.cjs.js +8 -20
- package/dist/modules/new/lib/tasks.cjs.js +26 -0
- package/dist/modules/test/commands/package/test.cjs.js +3 -3
- package/dist/modules/test/commands/repo/test.cjs.js +6 -5
- package/dist/packages/backend-defaults/package.json.cjs.js +1 -1
- package/dist/packages/backend-plugin-api/package.json.cjs.js +1 -1
- package/dist/packages/backend-test-utils/package.json.cjs.js +1 -1
- package/dist/packages/cli/package.json.cjs.js +2 -2
- package/dist/packages/core-app-api/package.json.cjs.js +1 -1
- package/dist/packages/core-components/package.json.cjs.js +1 -1
- package/dist/packages/core-plugin-api/package.json.cjs.js +1 -1
- package/dist/packages/dev-utils/package.json.cjs.js +1 -1
- package/dist/packages/frontend-defaults/package.json.cjs.js +1 -1
- package/dist/packages/frontend-plugin-api/package.json.cjs.js +1 -1
- package/dist/packages/frontend-test-utils/package.json.cjs.js +1 -1
- package/dist/packages/test-utils/package.json.cjs.js +1 -1
- package/dist/packages/theme/package.json.cjs.js +1 -1
- package/dist/plugins/auth-backend/package.json.cjs.js +1 -1
- package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +1 -1
- package/dist/plugins/catalog-node/package.json.cjs.js +1 -1
- package/dist/plugins/scaffolder-node/package.json.cjs.js +1 -1
- package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +1 -1
- package/package.json +28 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,30 +1,10 @@
|
|
|
1
1
|
# @backstage/cli
|
|
2
2
|
|
|
3
|
-
## 0.34.6
|
|
3
|
+
## 0.34.6
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- Updated dependencies
|
|
9
|
-
- @backstage/cli-node@0.2.16-next.1
|
|
10
|
-
- @backstage/cli-common@0.1.16-next.1
|
|
11
|
-
|
|
12
|
-
## 0.34.6-next.0
|
|
13
|
-
|
|
14
|
-
### Patch Changes
|
|
15
|
-
|
|
16
|
-
- c8c2329: Add proxy configuration from env-vars to create-app tasks
|
|
17
|
-
- Updated dependencies
|
|
18
|
-
- @backstage/integration@1.18.3-next.0
|
|
19
|
-
- @backstage/cli-common@0.1.16-next.0
|
|
20
|
-
- @backstage/cli-node@0.2.16-next.0
|
|
21
|
-
- @backstage/config@1.3.6
|
|
22
|
-
- @backstage/release-manifests@0.0.13
|
|
23
|
-
- @backstage/config-loader@1.10.7-next.0
|
|
24
|
-
- @backstage/catalog-model@1.7.6
|
|
25
|
-
- @backstage/errors@1.2.7
|
|
26
|
-
- @backstage/eslint-plugin@0.2.0
|
|
27
|
-
- @backstage/types@1.2.2
|
|
7
|
+
- Upgraded `tar` dependency to v7.
|
|
28
8
|
|
|
29
9
|
## 0.34.5
|
|
30
10
|
|
package/dist/lib/errors.cjs.js
CHANGED
|
@@ -7,6 +7,15 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
7
7
|
|
|
8
8
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
9
9
|
|
|
10
|
+
class ExitCodeError extends errors.CustomErrorBase {
|
|
11
|
+
code;
|
|
12
|
+
constructor(code, command) {
|
|
13
|
+
super(
|
|
14
|
+
command ? `Command '${command}' exited with code ${code}` : `Child exited with code ${code}`
|
|
15
|
+
);
|
|
16
|
+
this.code = code;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
10
19
|
function exit(message, code = 1) {
|
|
11
20
|
process.stderr.write(`
|
|
12
21
|
${chalk__default.default.red(message)}
|
|
@@ -58,5 +67,6 @@ ${chalk__default.default.red(errors.stringifyError(error))}
|
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
|
|
70
|
+
exports.ExitCodeError = ExitCodeError;
|
|
61
71
|
exports.exitWithError = exitWithError;
|
|
62
72
|
//# sourceMappingURL=errors.cjs.js.map
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var child_process = require('child_process');
|
|
4
|
+
var errors = require('./errors.cjs.js');
|
|
5
|
+
var util = require('util');
|
|
6
|
+
var errors$1 = require('@backstage/errors');
|
|
7
|
+
|
|
8
|
+
const execFile = util.promisify(child_process.execFile);
|
|
9
|
+
async function run(name, args = [], options = {}) {
|
|
10
|
+
const { stdoutLogFunc, stderrLogFunc } = options;
|
|
11
|
+
const env = {
|
|
12
|
+
...process.env,
|
|
13
|
+
FORCE_COLOR: "true",
|
|
14
|
+
...options.env ?? {}
|
|
15
|
+
};
|
|
16
|
+
const stdio = [
|
|
17
|
+
"inherit",
|
|
18
|
+
stdoutLogFunc ? "pipe" : "inherit",
|
|
19
|
+
stderrLogFunc ? "pipe" : "inherit"
|
|
20
|
+
];
|
|
21
|
+
const child = child_process.spawn(name, args, {
|
|
22
|
+
stdio,
|
|
23
|
+
shell: true,
|
|
24
|
+
...options,
|
|
25
|
+
env
|
|
26
|
+
});
|
|
27
|
+
if (stdoutLogFunc && child.stdout) {
|
|
28
|
+
child.stdout.on("data", stdoutLogFunc);
|
|
29
|
+
}
|
|
30
|
+
if (stderrLogFunc && child.stderr) {
|
|
31
|
+
child.stderr.on("data", stderrLogFunc);
|
|
32
|
+
}
|
|
33
|
+
await waitForExit(child, name);
|
|
34
|
+
}
|
|
35
|
+
async function runPlain(cmd, ...args) {
|
|
36
|
+
try {
|
|
37
|
+
const { stdout } = await execFile(cmd, args, { shell: true });
|
|
38
|
+
return stdout.trim();
|
|
39
|
+
} catch (error) {
|
|
40
|
+
errors$1.assertError(error);
|
|
41
|
+
if ("stderr" in error) {
|
|
42
|
+
process.stderr.write(error.stderr);
|
|
43
|
+
}
|
|
44
|
+
if (typeof error.code === "number") {
|
|
45
|
+
throw new errors.ExitCodeError(error.code, [cmd, ...args].join(" "));
|
|
46
|
+
}
|
|
47
|
+
throw new errors$1.ForwardedError("Unknown execution error", error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function runCheck(cmd, ...args) {
|
|
51
|
+
try {
|
|
52
|
+
await execFile(cmd, args, { shell: true });
|
|
53
|
+
return true;
|
|
54
|
+
} catch (error) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function waitForExit(child, name) {
|
|
59
|
+
if (typeof child.exitCode === "number") {
|
|
60
|
+
if (child.exitCode) {
|
|
61
|
+
throw new errors.ExitCodeError(child.exitCode, name);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
await new Promise((resolve, reject) => {
|
|
66
|
+
child.once("error", (error) => reject(error));
|
|
67
|
+
child.once("exit", (code) => {
|
|
68
|
+
if (code) {
|
|
69
|
+
reject(new errors.ExitCodeError(code, name));
|
|
70
|
+
} else {
|
|
71
|
+
resolve();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
exports.execFile = execFile;
|
|
78
|
+
exports.run = run;
|
|
79
|
+
exports.runCheck = runCheck;
|
|
80
|
+
exports.runPlain = runPlain;
|
|
81
|
+
exports.waitForExit = waitForExit;
|
|
82
|
+
//# sourceMappingURL=run.cjs.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var minimatch = require('minimatch');
|
|
4
4
|
var getPackages = require('@manypkg/get-packages');
|
|
5
5
|
var yarn = require('./yarn.cjs.js');
|
|
6
|
-
var
|
|
6
|
+
var run = require('../run.cjs.js');
|
|
7
7
|
var errors = require('@backstage/errors');
|
|
8
8
|
|
|
9
9
|
const DEP_TYPES = [
|
|
@@ -16,7 +16,11 @@ async function fetchPackageInfo(name) {
|
|
|
16
16
|
const yarnVersion = await yarn.detectYarnVersion();
|
|
17
17
|
const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
|
|
18
18
|
try {
|
|
19
|
-
const output = await
|
|
19
|
+
const { stdout: output } = await run.execFile(
|
|
20
|
+
"yarn",
|
|
21
|
+
[...cmd, "--json", name],
|
|
22
|
+
{ shell: true }
|
|
23
|
+
);
|
|
20
24
|
if (!output) {
|
|
21
25
|
throw new errors.NotFoundError(
|
|
22
26
|
`No package information found for package ${name}`
|
|
@@ -34,7 +38,7 @@ async function fetchPackageInfo(name) {
|
|
|
34
38
|
if (yarnVersion === "classic") {
|
|
35
39
|
throw error;
|
|
36
40
|
}
|
|
37
|
-
if (error
|
|
41
|
+
if (error?.stdout.includes("Response Code: 404")) {
|
|
38
42
|
throw new errors.NotFoundError(
|
|
39
43
|
`No package information found for package ${name}`
|
|
40
44
|
);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var errors = require('@backstage/errors');
|
|
4
|
-
var
|
|
4
|
+
var child_process = require('child_process');
|
|
5
|
+
var util = require('util');
|
|
5
6
|
|
|
7
|
+
const execFile = util.promisify(child_process.execFile);
|
|
6
8
|
const versions = /* @__PURE__ */ new Map();
|
|
7
9
|
function detectYarnVersion(dir) {
|
|
8
10
|
const cwd = process.cwd();
|
|
@@ -11,12 +13,16 @@ function detectYarnVersion(dir) {
|
|
|
11
13
|
}
|
|
12
14
|
const promise = Promise.resolve().then(async () => {
|
|
13
15
|
try {
|
|
14
|
-
const stdout = await
|
|
16
|
+
const { stdout } = await execFile("yarn", ["--version"], {
|
|
17
|
+
shell: true,
|
|
15
18
|
cwd
|
|
16
19
|
});
|
|
17
20
|
return stdout.trim().startsWith("1.") ? "classic" : "berry";
|
|
18
21
|
} catch (error) {
|
|
19
22
|
errors.assertError(error);
|
|
23
|
+
if ("stderr" in error) {
|
|
24
|
+
process.stderr.write(error.stderr);
|
|
25
|
+
}
|
|
20
26
|
throw new errors.ForwardedError("Failed to determine yarn version", error);
|
|
21
27
|
}
|
|
22
28
|
});
|
|
@@ -13,7 +13,7 @@ require('react-dev-utils/ModuleScopePlugin');
|
|
|
13
13
|
require('@module-federation/enhanced/rspack');
|
|
14
14
|
var paths = require('../../../../../lib/paths.cjs.js');
|
|
15
15
|
require('lodash/pickBy');
|
|
16
|
-
require('
|
|
16
|
+
require('../../../../../lib/run.cjs.js');
|
|
17
17
|
require('../../../../../lib/version.cjs.js');
|
|
18
18
|
var hasReactDomClient = require('../../../lib/bundler/hasReactDomClient.cjs.js');
|
|
19
19
|
require('@manypkg/get-packages');
|
|
@@ -12,9 +12,27 @@ var cliNode = require('@backstage/cli-node');
|
|
|
12
12
|
|
|
13
13
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
14
|
|
|
15
|
+
function _interopNamespaceCompat(e) {
|
|
16
|
+
if (e && typeof e === 'object' && 'default' in e) return e;
|
|
17
|
+
var n = Object.create(null);
|
|
18
|
+
if (e) {
|
|
19
|
+
Object.keys(e).forEach(function (k) {
|
|
20
|
+
if (k !== 'default') {
|
|
21
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
22
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function () { return e[k]; }
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
n.default = e;
|
|
30
|
+
return Object.freeze(n);
|
|
31
|
+
}
|
|
32
|
+
|
|
15
33
|
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
16
34
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
17
|
-
var
|
|
35
|
+
var tar__namespace = /*#__PURE__*/_interopNamespaceCompat(tar);
|
|
18
36
|
|
|
19
37
|
const BUNDLE_FILE = "bundle.tar.gz";
|
|
20
38
|
const SKELETON_FILE = "skeleton.tar.gz";
|
|
@@ -46,7 +64,7 @@ async function buildBackend(options) {
|
|
|
46
64
|
path.resolve(tmpDir, SKELETON_FILE),
|
|
47
65
|
path.resolve(distDir, SKELETON_FILE)
|
|
48
66
|
);
|
|
49
|
-
await
|
|
67
|
+
await tar__namespace.create(
|
|
50
68
|
{
|
|
51
69
|
file: path.resolve(distDir, BUNDLE_FILE),
|
|
52
70
|
cwd: tmpDir,
|
|
@@ -16,7 +16,7 @@ require('html-webpack-plugin');
|
|
|
16
16
|
require('react-dev-utils/ModuleScopePlugin');
|
|
17
17
|
require('@module-federation/enhanced/rspack');
|
|
18
18
|
require('lodash/pickBy');
|
|
19
|
-
require('
|
|
19
|
+
require('../../../lib/run.cjs.js');
|
|
20
20
|
require('../../../lib/version.cjs.js');
|
|
21
21
|
require('yn');
|
|
22
22
|
require('@manypkg/get-packages');
|
|
@@ -11,7 +11,7 @@ var paths = require('../../../../lib/paths.cjs.js');
|
|
|
11
11
|
var fs = require('fs-extra');
|
|
12
12
|
var optimization = require('./optimization.cjs.js');
|
|
13
13
|
var pickBy = require('lodash/pickBy');
|
|
14
|
-
var
|
|
14
|
+
var run = require('../../../../lib/run.cjs.js');
|
|
15
15
|
var transforms = require('./transforms.cjs.js');
|
|
16
16
|
var version = require('../../../../lib/version.cjs.js');
|
|
17
17
|
var yn = require('yn');
|
|
@@ -48,12 +48,12 @@ async function readBuildInfo() {
|
|
|
48
48
|
const timestamp = Date.now();
|
|
49
49
|
let commit;
|
|
50
50
|
try {
|
|
51
|
-
commit = await
|
|
51
|
+
commit = await run.runPlain("git", "rev-parse", "HEAD");
|
|
52
52
|
} catch (error) {
|
|
53
53
|
}
|
|
54
54
|
let gitVersion;
|
|
55
55
|
try {
|
|
56
|
-
gitVersion = await
|
|
56
|
+
gitVersion = await run.runPlain("git", "describe", "--always");
|
|
57
57
|
} catch (error) {
|
|
58
58
|
}
|
|
59
59
|
if (commit === void 0 || gitVersion === void 0) {
|
|
@@ -7,7 +7,7 @@ var os = require('os');
|
|
|
7
7
|
var tar = require('tar');
|
|
8
8
|
var partition = require('lodash/partition');
|
|
9
9
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
10
|
-
var
|
|
10
|
+
var run = require('../../../../lib/run.cjs.js');
|
|
11
11
|
var _package = require('../../../../packages/cli/package.json.cjs.js');
|
|
12
12
|
var packager = require('../builder/packager.cjs.js');
|
|
13
13
|
var types = require('../builder/types.cjs.js');
|
|
@@ -18,9 +18,27 @@ var typeDistProject = require('../../../../lib/typeDistProject.cjs.js');
|
|
|
18
18
|
|
|
19
19
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
20
20
|
|
|
21
|
+
function _interopNamespaceCompat(e) {
|
|
22
|
+
if (e && typeof e === 'object' && 'default' in e) return e;
|
|
23
|
+
var n = Object.create(null);
|
|
24
|
+
if (e) {
|
|
25
|
+
Object.keys(e).forEach(function (k) {
|
|
26
|
+
if (k !== 'default') {
|
|
27
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
28
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return e[k]; }
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
n.default = e;
|
|
36
|
+
return Object.freeze(n);
|
|
37
|
+
}
|
|
38
|
+
|
|
21
39
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
22
40
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
23
|
-
var
|
|
41
|
+
var tar__namespace = /*#__PURE__*/_interopNamespaceCompat(tar);
|
|
24
42
|
var partition__default = /*#__PURE__*/_interopDefaultCompat(partition);
|
|
25
43
|
|
|
26
44
|
const UNSAFE_PACKAGES = [
|
|
@@ -104,11 +122,11 @@ async function createDistWorkspace(packageNames, options = {}) {
|
|
|
104
122
|
await parallel.runParallelWorkers({
|
|
105
123
|
items: customBuild,
|
|
106
124
|
worker: async ({ name, dir, args }) => {
|
|
107
|
-
await
|
|
125
|
+
await run.run("yarn", ["run", "build", ...args || []], {
|
|
108
126
|
cwd: dir,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
})
|
|
127
|
+
stdoutLogFunc: prefixLogFunc(`${name}: `, "stdout"),
|
|
128
|
+
stderrLogFunc: prefixLogFunc(`${name}: `, "stderr")
|
|
129
|
+
});
|
|
112
130
|
}
|
|
113
131
|
});
|
|
114
132
|
}
|
|
@@ -130,7 +148,7 @@ async function createDistWorkspace(packageNames, options = {}) {
|
|
|
130
148
|
const dir = path.relative(paths.paths.targetRoot, target.dir);
|
|
131
149
|
return path.join(dir, "package.json");
|
|
132
150
|
}).sort();
|
|
133
|
-
await
|
|
151
|
+
await tar__namespace.create(
|
|
134
152
|
{
|
|
135
153
|
file: path.resolve(targetDir, options.skeleton),
|
|
136
154
|
cwd: targetDir,
|
|
@@ -169,13 +187,13 @@ async function moveToDistWorkspace(workspaceDir, localPackages, alwaysPack, enab
|
|
|
169
187
|
async function pack(target, archive) {
|
|
170
188
|
console.log(`Repacking ${target.name} into dist workspace`);
|
|
171
189
|
const archivePath = path.resolve(workspaceDir, archive);
|
|
172
|
-
await
|
|
190
|
+
await run.run("yarn", ["pack", "--filename", archivePath], {
|
|
173
191
|
cwd: target.dir
|
|
174
|
-
})
|
|
192
|
+
});
|
|
175
193
|
const outputDir = path.relative(paths.paths.targetRoot, target.dir);
|
|
176
194
|
const absoluteOutputPath = path.resolve(workspaceDir, outputDir);
|
|
177
195
|
await fs__default.default.ensureDir(absoluteOutputPath);
|
|
178
|
-
await
|
|
196
|
+
await tar__namespace.extract({
|
|
179
197
|
file: archivePath,
|
|
180
198
|
cwd: absoluteOutputPath,
|
|
181
199
|
strip: 1
|
|
@@ -4,11 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _package = require('../../../packages/cli/package.json.cjs.js');
|
|
6
6
|
var os = require('os');
|
|
7
|
-
var
|
|
7
|
+
var run = require('../../../lib/run.cjs.js');
|
|
8
8
|
var paths = require('../../../lib/paths.cjs.js');
|
|
9
9
|
var Lockfile = require('../../../lib/versioning/Lockfile.cjs.js');
|
|
10
10
|
require('minimatch');
|
|
11
11
|
require('@manypkg/get-packages');
|
|
12
|
+
require('../../../lib/versioning/yarn.cjs.js');
|
|
12
13
|
require('@backstage/errors');
|
|
13
14
|
var fs = require('fs-extra');
|
|
14
15
|
|
|
@@ -19,7 +20,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
19
20
|
|
|
20
21
|
var info = async () => {
|
|
21
22
|
await new Promise(async () => {
|
|
22
|
-
const yarnVersion = await
|
|
23
|
+
const yarnVersion = await run.runPlain("yarn --version");
|
|
23
24
|
const isLocal = fs__default.default.existsSync(paths.paths.resolveOwn("./src"));
|
|
24
25
|
const backstageFile = paths.paths.resolveTargetRoot("backstage.json");
|
|
25
26
|
let backstageVersion = "N/A";
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var child_process = require('child_process');
|
|
3
4
|
var fs = require('fs-extra');
|
|
4
5
|
var path = require('path');
|
|
6
|
+
var util = require('util');
|
|
5
7
|
var cliNode = require('@backstage/cli-node');
|
|
6
8
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
7
|
-
var cliCommon = require('@backstage/cli-common');
|
|
8
9
|
|
|
9
10
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
11
|
|
|
11
12
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
12
13
|
|
|
14
|
+
const execFile = util.promisify(child_process.execFile);
|
|
13
15
|
async function command() {
|
|
14
16
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
15
17
|
await fs__default.default.remove(paths.paths.resolveTargetRoot("dist"));
|
|
@@ -25,9 +27,12 @@ async function command() {
|
|
|
25
27
|
await fs__default.default.remove(path.resolve(pkg.dir, "dist-types"));
|
|
26
28
|
await fs__default.default.remove(path.resolve(pkg.dir, "coverage"));
|
|
27
29
|
} else if (cleanScript) {
|
|
28
|
-
await
|
|
29
|
-
cwd: pkg.dir
|
|
30
|
-
|
|
30
|
+
const result = await execFile("yarn", ["run", "clean"], {
|
|
31
|
+
cwd: pkg.dir,
|
|
32
|
+
shell: true
|
|
33
|
+
});
|
|
34
|
+
process.stdout.write(result.stdout);
|
|
35
|
+
process.stderr.write(result.stderr);
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
})
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var cliNode = require('@backstage/cli-node');
|
|
6
|
-
var
|
|
6
|
+
var run = require('../../../lib/run.cjs.js');
|
|
7
7
|
|
|
8
8
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
9
9
|
|
|
@@ -65,7 +65,7 @@ async function command() {
|
|
|
65
65
|
} catch {
|
|
66
66
|
}
|
|
67
67
|
if (hasPrettier) {
|
|
68
|
-
await
|
|
68
|
+
await run.runPlain("prettier", "--write", ...configPaths);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
var process = require('process');
|
|
5
|
+
var process$1 = require('process');
|
|
7
6
|
var fs = require('fs-extra');
|
|
8
7
|
var chalk = require('chalk');
|
|
9
8
|
var minimatch = require('minimatch');
|
|
@@ -14,10 +13,12 @@ var paths = require('../../../../lib/paths.cjs.js');
|
|
|
14
13
|
var yarnPlugin = require('../../../../lib/yarnPlugin.cjs.js');
|
|
15
14
|
var Lockfile = require('../../../../lib/versioning/Lockfile.cjs.js');
|
|
16
15
|
var packages = require('../../../../lib/versioning/packages.cjs.js');
|
|
16
|
+
var cliCommon = require('@backstage/cli-common');
|
|
17
17
|
var parallel = require('../../../../lib/parallel.cjs.js');
|
|
18
18
|
var releaseManifests = require('@backstage/release-manifests');
|
|
19
19
|
var migrate = require('./migrate.cjs.js');
|
|
20
20
|
var utils = require('../../lib/utils.cjs.js');
|
|
21
|
+
var run = require('../../../../lib/run.cjs.js');
|
|
21
22
|
|
|
22
23
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
23
24
|
|
|
@@ -25,7 +26,18 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
25
26
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
26
27
|
var semver__default = /*#__PURE__*/_interopDefaultCompat(semver);
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
maybeBootstrapProxy();
|
|
30
|
+
function maybeBootstrapProxy() {
|
|
31
|
+
const globalAgentNamespace = process.env.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE ?? "GLOBAL_AGENT_";
|
|
32
|
+
if (process.env[`${globalAgentNamespace}HTTP_PROXY`] || process.env[`${globalAgentNamespace}HTTPS_PROXY`]) {
|
|
33
|
+
const globalAgent = require("global-agent");
|
|
34
|
+
globalAgent.bootstrap();
|
|
35
|
+
}
|
|
36
|
+
if (process.env.HTTP_PROXY || process.env.HTTPS_PROXY) {
|
|
37
|
+
const { setGlobalDispatcher, EnvHttpProxyAgent } = require("undici");
|
|
38
|
+
setGlobalDispatcher(new EnvHttpProxyAgent());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
29
41
|
const DEP_TYPES = [
|
|
30
42
|
"dependencies",
|
|
31
43
|
"devDependencies",
|
|
@@ -54,8 +66,8 @@ var bump = async (opts) => {
|
|
|
54
66
|
}
|
|
55
67
|
let findTargetVersion;
|
|
56
68
|
let releaseManifest;
|
|
57
|
-
if (process.env.BACKSTAGE_MANIFEST_FILE) {
|
|
58
|
-
releaseManifest = await fs__default.default.readJson(process.env.BACKSTAGE_MANIFEST_FILE);
|
|
69
|
+
if (process$1.env.BACKSTAGE_MANIFEST_FILE) {
|
|
70
|
+
releaseManifest = await fs__default.default.readJson(process$1.env.BACKSTAGE_MANIFEST_FILE);
|
|
59
71
|
findTargetVersion = createStrictVersionFinder({
|
|
60
72
|
releaseManifest
|
|
61
73
|
});
|
|
@@ -68,17 +80,17 @@ var bump = async (opts) => {
|
|
|
68
80
|
if (opts.release === "next") {
|
|
69
81
|
const next = await releaseManifests.getManifestByReleaseLine({
|
|
70
82
|
releaseLine: "next",
|
|
71
|
-
versionsBaseUrl: process.env.BACKSTAGE_VERSIONS_BASE_URL
|
|
83
|
+
versionsBaseUrl: process$1.env.BACKSTAGE_VERSIONS_BASE_URL
|
|
72
84
|
});
|
|
73
85
|
const main = await releaseManifests.getManifestByReleaseLine({
|
|
74
86
|
releaseLine: "main",
|
|
75
|
-
versionsBaseUrl: process.env.BACKSTAGE_VERSIONS_BASE_URL
|
|
87
|
+
versionsBaseUrl: process$1.env.BACKSTAGE_VERSIONS_BASE_URL
|
|
76
88
|
});
|
|
77
89
|
releaseManifest = semver__default.default.gt(next.releaseVersion, main.releaseVersion) ? next : main;
|
|
78
90
|
} else {
|
|
79
91
|
releaseManifest = await releaseManifests.getManifestByReleaseLine({
|
|
80
92
|
releaseLine: opts.release,
|
|
81
|
-
versionsBaseUrl: process.env.BACKSTAGE_VERSIONS_BASE_URL
|
|
93
|
+
versionsBaseUrl: process$1.env.BACKSTAGE_VERSIONS_BASE_URL
|
|
82
94
|
});
|
|
83
95
|
}
|
|
84
96
|
findTargetVersion = createVersionFinder({
|
|
@@ -92,8 +104,8 @@ var bump = async (opts) => {
|
|
|
92
104
|
`Updating yarn plugin to v${releaseManifest.releaseVersion}...`
|
|
93
105
|
);
|
|
94
106
|
console.log();
|
|
95
|
-
const yarnPluginUrl = process.env.BACKSTAGE_VERSIONS_BASE_URL ? `${process.env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin` : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;
|
|
96
|
-
await
|
|
107
|
+
const yarnPluginUrl = process$1.env.BACKSTAGE_VERSIONS_BASE_URL ? `${process$1.env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin` : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;
|
|
108
|
+
await run.run("yarn", ["plugin", "import", yarnPluginUrl]);
|
|
97
109
|
console.log();
|
|
98
110
|
}
|
|
99
111
|
const dependencyMap = await packages.mapDependencies(paths.paths.targetDir, pattern);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var ora = require('ora');
|
|
4
4
|
var chalk = require('chalk');
|
|
5
|
-
var
|
|
5
|
+
var run = require('../../../lib/run.cjs.js');
|
|
6
6
|
|
|
7
7
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
8
|
|
|
@@ -17,7 +17,7 @@ async function runYarnInstall() {
|
|
|
17
17
|
}).start();
|
|
18
18
|
const installOutput = new Array();
|
|
19
19
|
try {
|
|
20
|
-
await
|
|
20
|
+
await run.run("yarn", ["install"], {
|
|
21
21
|
env: {
|
|
22
22
|
FORCE_COLOR: "true",
|
|
23
23
|
// We filter out all of the npm_* environment variables that are added when
|
|
@@ -29,9 +29,9 @@ async function runYarnInstall() {
|
|
|
29
29
|
)
|
|
30
30
|
)
|
|
31
31
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
})
|
|
32
|
+
stdoutLogFunc: (data) => installOutput.push(data),
|
|
33
|
+
stderrLogFunc: (data) => installOutput.push(data)
|
|
34
|
+
});
|
|
35
35
|
spinner.succeed();
|
|
36
36
|
} catch (error) {
|
|
37
37
|
spinner.fail();
|
|
@@ -12,8 +12,9 @@ var lowerFirst = require('lodash/lowerFirst');
|
|
|
12
12
|
var Lockfile = require('../../../../lib/versioning/Lockfile.cjs.js');
|
|
13
13
|
require('minimatch');
|
|
14
14
|
require('@manypkg/get-packages');
|
|
15
|
+
require('../../../../lib/versioning/yarn.cjs.js');
|
|
16
|
+
require('../../../../lib/run.cjs.js');
|
|
15
17
|
require('@backstage/errors');
|
|
16
|
-
require('@backstage/cli-common');
|
|
17
18
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
18
19
|
var version = require('../../../../lib/version.cjs.js');
|
|
19
20
|
var yarnPlugin = require('../../../../lib/yarnPlugin.cjs.js');
|
|
@@ -5,7 +5,6 @@ var codeowners = require('../codeowners/codeowners.cjs.js');
|
|
|
5
5
|
var tasks = require('../tasks.cjs.js');
|
|
6
6
|
var installNewPackage = require('./installNewPackage.cjs.js');
|
|
7
7
|
var writeTemplateContents = require('./writeTemplateContents.cjs.js');
|
|
8
|
-
var cliCommon = require('@backstage/cli-common');
|
|
9
8
|
|
|
10
9
|
async function executePortableTemplate(options) {
|
|
11
10
|
const { template, input } = options;
|
|
@@ -22,25 +21,14 @@ async function executePortableTemplate(options) {
|
|
|
22
21
|
await codeowners.addCodeownersEntry(targetDir, input.owner);
|
|
23
22
|
}
|
|
24
23
|
if (!options.skipInstall) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
cwd: targetDir,
|
|
34
|
-
stdio: "ignore"
|
|
35
|
-
}).waitForExit();
|
|
36
|
-
});
|
|
37
|
-
} catch (error) {
|
|
38
|
-
errors.assertError(error);
|
|
39
|
-
tasks.Task.error(
|
|
40
|
-
`Warning: Failed to execute command '${commandStr}', ${error}`
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
24
|
+
await tasks.Task.forCommand("yarn install", {
|
|
25
|
+
cwd: targetDir,
|
|
26
|
+
optional: true
|
|
27
|
+
});
|
|
28
|
+
await tasks.Task.forCommand("yarn lint --fix", {
|
|
29
|
+
cwd: targetDir,
|
|
30
|
+
optional: true
|
|
31
|
+
});
|
|
44
32
|
}
|
|
45
33
|
tasks.Task.log();
|
|
46
34
|
tasks.Task.log(`\u{1F389} Successfully created ${template.name}`);
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var ora = require('ora');
|
|
5
|
+
var util = require('util');
|
|
6
|
+
var child_process = require('child_process');
|
|
7
|
+
var errors = require('@backstage/errors');
|
|
5
8
|
|
|
6
9
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
7
10
|
|
|
8
11
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
9
12
|
var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
|
|
10
13
|
|
|
14
|
+
const exec = util.promisify(child_process.exec);
|
|
11
15
|
const TASK_NAME_MAX_LENGTH = 14;
|
|
12
16
|
class Task {
|
|
13
17
|
static log(name = "") {
|
|
@@ -45,6 +49,28 @@ ${chalk__default.default.red(message)}
|
|
|
45
49
|
throw error;
|
|
46
50
|
}
|
|
47
51
|
}
|
|
52
|
+
static async forCommand(command, options) {
|
|
53
|
+
try {
|
|
54
|
+
await Task.forItem("executing", command, async () => {
|
|
55
|
+
await exec(command, { cwd: options?.cwd });
|
|
56
|
+
});
|
|
57
|
+
} catch (error) {
|
|
58
|
+
errors.assertError(error);
|
|
59
|
+
if (error.stderr) {
|
|
60
|
+
process.stderr.write(error.stderr);
|
|
61
|
+
}
|
|
62
|
+
if (error.stdout) {
|
|
63
|
+
process.stdout.write(error.stdout);
|
|
64
|
+
}
|
|
65
|
+
if (options?.optional) {
|
|
66
|
+
Task.error(`Warning: Failed to execute command ${chalk__default.default.cyan(command)}`);
|
|
67
|
+
} else {
|
|
68
|
+
throw new Error(
|
|
69
|
+
`Failed to execute command '${chalk__default.default.cyan(command)}', ${error}`
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
48
74
|
}
|
|
49
75
|
|
|
50
76
|
exports.Task = Task;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
6
|
-
var
|
|
6
|
+
var run = require('../../../../lib/run.cjs.js');
|
|
7
7
|
|
|
8
8
|
function includesAnyOf(hayStack, ...needles) {
|
|
9
9
|
for (const needle of needles) {
|
|
@@ -29,8 +29,8 @@ var test = async (_opts, cmd) => {
|
|
|
29
29
|
if (!process.env.CI && !args.includes("--coverage") && // explicitly no watching
|
|
30
30
|
!includesAnyOf(args, "--no-watch", "--watch=false", "--watchAll=false") && // already watching
|
|
31
31
|
!includesAnyOf(args, "--watch", "--watchAll")) {
|
|
32
|
-
const isGitRepo = () =>
|
|
33
|
-
const isMercurialRepo = () =>
|
|
32
|
+
const isGitRepo = () => run.runCheck("git", "rev-parse", "--is-inside-work-tree");
|
|
33
|
+
const isMercurialRepo = () => run.runCheck("hg", "--cwd", ".", "root");
|
|
34
34
|
if (await isGitRepo() || await isMercurialRepo()) {
|
|
35
35
|
args.push("--watch");
|
|
36
36
|
} else {
|
|
@@ -7,6 +7,7 @@ var jestCli = require('jest-cli');
|
|
|
7
7
|
var path = require('path');
|
|
8
8
|
var cliNode = require('@backstage/cli-node');
|
|
9
9
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
10
|
+
var run = require('../../../../lib/run.cjs.js');
|
|
10
11
|
var cliCommon = require('@backstage/cli-common');
|
|
11
12
|
var SuccessCache = require('../../../../lib/cache/SuccessCache.cjs.js');
|
|
12
13
|
|
|
@@ -21,14 +22,14 @@ async function readPackageTreeHashes(graph) {
|
|
|
21
22
|
...pkg,
|
|
22
23
|
path: path.relative(paths.paths.targetRoot, pkg.dir)
|
|
23
24
|
}));
|
|
24
|
-
const output = await
|
|
25
|
+
const output = await run.runPlain(
|
|
25
26
|
"git",
|
|
26
27
|
"ls-tree",
|
|
27
|
-
|
|
28
|
+
'--format="%(objectname)=%(path)"',
|
|
28
29
|
"HEAD",
|
|
29
30
|
"--",
|
|
30
31
|
...pkgs.map((pkg) => pkg.path)
|
|
31
|
-
|
|
32
|
+
);
|
|
32
33
|
const map = new Map(
|
|
33
34
|
output.trim().split(/\r?\n/).map((line) => {
|
|
34
35
|
const [itemSha, ...itemPathParts] = line.split("=");
|
|
@@ -107,8 +108,8 @@ async function command(opts, cmd) {
|
|
|
107
108
|
}
|
|
108
109
|
let isSingleWatchMode = args.includes("--watch");
|
|
109
110
|
if (!opts.since && !process.env.CI && !hasFlags("--coverage", "--watch", "--watchAll")) {
|
|
110
|
-
const isGitRepo = () =>
|
|
111
|
-
const isMercurialRepo = () =>
|
|
111
|
+
const isGitRepo = () => run.runCheck("git", "rev-parse", "--is-inside-work-tree");
|
|
112
|
+
const isMercurialRepo = () => run.runCheck("hg", "--cwd", ".", "root");
|
|
112
113
|
if (await isGitRepo() || await isMercurialRepo()) {
|
|
113
114
|
isSingleWatchMode = true;
|
|
114
115
|
args.push("--watch");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var version = "0.34.6
|
|
3
|
+
var version = "0.34.6";
|
|
4
4
|
var dependencies = {
|
|
5
5
|
"@backstage/catalog-model": "workspace:^",
|
|
6
6
|
"@backstage/cli-common": "workspace:^",
|
|
@@ -93,7 +93,7 @@ var dependencies = {
|
|
|
93
93
|
"style-loader": "^3.3.1",
|
|
94
94
|
sucrase: "^3.20.2",
|
|
95
95
|
"swc-loader": "^0.2.3",
|
|
96
|
-
tar: "^
|
|
96
|
+
tar: "^7.4.3",
|
|
97
97
|
"ts-checker-rspack-plugin": "^1.1.5",
|
|
98
98
|
"ts-morph": "^24.0.0",
|
|
99
99
|
undici: "^7.2.3",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/cli",
|
|
3
|
-
"version": "0.34.6
|
|
3
|
+
"version": "0.34.6",
|
|
4
4
|
"description": "CLI for developing Backstage plugins and apps",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli"
|
|
@@ -47,16 +47,16 @@
|
|
|
47
47
|
]
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@backstage/catalog-model": "1.7.6",
|
|
51
|
-
"@backstage/cli-common": "0.1.
|
|
52
|
-
"@backstage/cli-node": "0.2.
|
|
53
|
-
"@backstage/config": "1.3.6",
|
|
54
|
-
"@backstage/config-loader": "1.10.
|
|
55
|
-
"@backstage/errors": "1.2.7",
|
|
56
|
-
"@backstage/eslint-plugin": "0.2.0",
|
|
57
|
-
"@backstage/integration": "1.18.
|
|
58
|
-
"@backstage/release-manifests": "0.0.13",
|
|
59
|
-
"@backstage/types": "1.2.2",
|
|
50
|
+
"@backstage/catalog-model": "^1.7.6",
|
|
51
|
+
"@backstage/cli-common": "^0.1.15",
|
|
52
|
+
"@backstage/cli-node": "^0.2.15",
|
|
53
|
+
"@backstage/config": "^1.3.6",
|
|
54
|
+
"@backstage/config-loader": "^1.10.6",
|
|
55
|
+
"@backstage/errors": "^1.2.7",
|
|
56
|
+
"@backstage/eslint-plugin": "^0.2.0",
|
|
57
|
+
"@backstage/integration": "^1.18.2",
|
|
58
|
+
"@backstage/release-manifests": "^0.0.13",
|
|
59
|
+
"@backstage/types": "^1.2.2",
|
|
60
60
|
"@manypkg/get-packages": "^1.1.3",
|
|
61
61
|
"@module-federation/enhanced": "^0.9.0",
|
|
62
62
|
"@octokit/request": "^8.0.0",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"style-loader": "^3.3.1",
|
|
139
139
|
"sucrase": "^3.20.2",
|
|
140
140
|
"swc-loader": "^0.2.3",
|
|
141
|
-
"tar": "^
|
|
141
|
+
"tar": "^7.4.3",
|
|
142
142
|
"ts-checker-rspack-plugin": "^1.1.5",
|
|
143
143
|
"ts-morph": "^24.0.0",
|
|
144
144
|
"undici": "^7.2.3",
|
|
@@ -151,22 +151,22 @@
|
|
|
151
151
|
"zod-validation-error": "^3.4.0"
|
|
152
152
|
},
|
|
153
153
|
"devDependencies": {
|
|
154
|
-
"@backstage/backend-plugin-api": "1.5.
|
|
155
|
-
"@backstage/backend-test-utils": "1.10.1
|
|
156
|
-
"@backstage/catalog-client": "1.12.1",
|
|
157
|
-
"@backstage/config": "1.3.6",
|
|
158
|
-
"@backstage/core-app-api": "1.19.
|
|
159
|
-
"@backstage/core-components": "0.18.
|
|
160
|
-
"@backstage/core-plugin-api": "1.12.
|
|
161
|
-
"@backstage/dev-utils": "1.1.
|
|
162
|
-
"@backstage/errors": "1.2.7",
|
|
163
|
-
"@backstage/plugin-auth-backend": "0.25.
|
|
164
|
-
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.
|
|
165
|
-
"@backstage/plugin-catalog-node": "1.20.
|
|
166
|
-
"@backstage/plugin-scaffolder-node": "0.12.
|
|
167
|
-
"@backstage/plugin-scaffolder-node-test-utils": "0.3.
|
|
168
|
-
"@backstage/test-utils": "1.7.
|
|
169
|
-
"@backstage/theme": "0.7.
|
|
154
|
+
"@backstage/backend-plugin-api": "^1.5.0",
|
|
155
|
+
"@backstage/backend-test-utils": "^1.10.1",
|
|
156
|
+
"@backstage/catalog-client": "^1.12.1",
|
|
157
|
+
"@backstage/config": "^1.3.6",
|
|
158
|
+
"@backstage/core-app-api": "^1.19.2",
|
|
159
|
+
"@backstage/core-components": "^0.18.3",
|
|
160
|
+
"@backstage/core-plugin-api": "^1.12.0",
|
|
161
|
+
"@backstage/dev-utils": "^1.1.17",
|
|
162
|
+
"@backstage/errors": "^1.2.7",
|
|
163
|
+
"@backstage/plugin-auth-backend": "^0.25.6",
|
|
164
|
+
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.14",
|
|
165
|
+
"@backstage/plugin-catalog-node": "^1.20.0",
|
|
166
|
+
"@backstage/plugin-scaffolder-node": "^0.12.1",
|
|
167
|
+
"@backstage/plugin-scaffolder-node-test-utils": "^0.3.5",
|
|
168
|
+
"@backstage/test-utils": "^1.7.13",
|
|
169
|
+
"@backstage/theme": "^0.7.0",
|
|
170
170
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
|
|
171
171
|
"@types/cross-spawn": "^6.0.2",
|
|
172
172
|
"@types/ejs": "^3.1.3",
|