@backstage/cli 0.0.0-nightly-20260119025541 → 0.0.0-nightly-20260123025240
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 +18 -6
- package/dist/modules/build/lib/buildBackend.cjs.js +20 -2
- package/dist/modules/build/lib/builder/config.cjs.js +10 -1
- package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +21 -3
- package/dist/modules/info/commands/info.cjs.js +123 -14
- package/dist/modules/info/index.cjs.js +15 -2
- 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/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 +16 -16
- package/templates/node-library/package.json.hbs +1 -0
- package/templates/plugin-node-library/package.json.hbs +1 -0
- package/templates/scaffolder-backend-module/package.json.hbs +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,24 +1,36 @@
|
|
|
1
1
|
# @backstage/cli
|
|
2
2
|
|
|
3
|
-
## 0.0.0-nightly-
|
|
3
|
+
## 0.0.0-nightly-20260123025240
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- 4eeba9e: Upgrade `zod-validation-error` to version 4
|
|
9
|
-
- 9ee5996: Bump minimum required `@swc/core` to avoid transpilation bug
|
|
7
|
+
- 4fc7bf0: Bump to tar v7
|
|
10
8
|
- Updated dependencies
|
|
11
|
-
- @backstage/integration@0.0.0-nightly-20260119025541
|
|
12
9
|
- @backstage/catalog-model@1.7.6
|
|
13
|
-
- @backstage/cli-common@0.1.
|
|
10
|
+
- @backstage/cli-common@0.1.17
|
|
14
11
|
- @backstage/cli-node@0.2.16
|
|
15
12
|
- @backstage/config@1.3.6
|
|
16
13
|
- @backstage/config-loader@1.10.7
|
|
17
14
|
- @backstage/errors@1.2.7
|
|
18
15
|
- @backstage/eslint-plugin@0.2.0
|
|
16
|
+
- @backstage/integration@1.19.2
|
|
19
17
|
- @backstage/release-manifests@0.0.13
|
|
20
18
|
- @backstage/types@1.2.2
|
|
21
19
|
|
|
20
|
+
## 0.35.2
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- 320c6a9: Bump `@swc/core` to support `ES2023` and `ES2024`
|
|
25
|
+
- c0d7bf6: Added `--include` and `--format` options to `backstage-cli info` command for including additional packages via glob patterns and outputting as JSON or Text.
|
|
26
|
+
- f6a5d2f: Fixed CSS module class name collisions when running multiple versions of packages simultaneously by using content-based hashing for class name generation.
|
|
27
|
+
- 140cbc2: Added `@backstage/backend-test-utils` to backend package templates.
|
|
28
|
+
- 4eeba9e: Upgrade `zod-validation-error` to version 4
|
|
29
|
+
- 9ee5996: Bump minimum required `@swc/core` to avoid transpilation bug
|
|
30
|
+
- Updated dependencies
|
|
31
|
+
- @backstage/cli-common@0.1.17
|
|
32
|
+
- @backstage/integration@1.19.2
|
|
33
|
+
|
|
22
34
|
## 0.35.2-next.1
|
|
23
35
|
|
|
24
36
|
### Patch Changes
|
|
@@ -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,
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var fs = require('fs-extra');
|
|
5
|
+
var crypto = require('crypto');
|
|
5
6
|
var path = require('path');
|
|
6
7
|
var commonjs = require('@rollup/plugin-commonjs');
|
|
7
8
|
var resolve = require('@rollup/plugin-node-resolve');
|
|
@@ -179,7 +180,15 @@ async function makeRollupConfigs(options) {
|
|
|
179
180
|
include: /node_modules/,
|
|
180
181
|
exclude: [/\/[^/]+\.(?:stories|test)\.[^/]+$/]
|
|
181
182
|
}),
|
|
182
|
-
postcss__default.default(
|
|
183
|
+
postcss__default.default({
|
|
184
|
+
modules: {
|
|
185
|
+
generateScopedName(name, filename, css) {
|
|
186
|
+
const hash = crypto.createHash("md5").update(css).digest("hex").slice(0, 10);
|
|
187
|
+
const file = path.basename(filename, ".module.css");
|
|
188
|
+
return `${file}_${name}__${hash}`;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}),
|
|
183
192
|
plugins.forwardFileImports({
|
|
184
193
|
exclude: /\.icon\.svg$/,
|
|
185
194
|
include: [
|
|
@@ -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 = [
|
|
@@ -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,
|
|
@@ -175,7 +193,7 @@ async function moveToDistWorkspace(workspaceDir, localPackages, alwaysPack, enab
|
|
|
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
|
|
@@ -7,9 +7,10 @@ var os = require('os');
|
|
|
7
7
|
var cliCommon = require('@backstage/cli-common');
|
|
8
8
|
var paths = require('../../../lib/paths.cjs.js');
|
|
9
9
|
var Lockfile = require('../../../lib/versioning/Lockfile.cjs.js');
|
|
10
|
-
require('minimatch');
|
|
10
|
+
var minimatch = require('minimatch');
|
|
11
11
|
require('@manypkg/get-packages');
|
|
12
12
|
require('@backstage/errors');
|
|
13
|
+
var cliNode = require('@backstage/cli-node');
|
|
13
14
|
var fs = require('fs-extra');
|
|
14
15
|
|
|
15
16
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
@@ -17,7 +18,20 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
17
18
|
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
18
19
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
function tryReadPackageJson(packageName, targetPath) {
|
|
22
|
+
try {
|
|
23
|
+
return require(require.resolve(`${packageName}/package.json`, {
|
|
24
|
+
paths: [targetPath]
|
|
25
|
+
}));
|
|
26
|
+
} catch {
|
|
27
|
+
return void 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function hasBackstageField(packageName, targetPath) {
|
|
31
|
+
const pkg = tryReadPackageJson(packageName, targetPath);
|
|
32
|
+
return pkg?.backstage !== void 0;
|
|
33
|
+
}
|
|
34
|
+
var info = async (options) => {
|
|
21
35
|
await new Promise(async () => {
|
|
22
36
|
const yarnVersion = await cliCommon.runOutput(["yarn", "--version"]);
|
|
23
37
|
const isLocal = fs__default.default.existsSync(paths.paths.resolveOwn("./src"));
|
|
@@ -28,24 +42,119 @@ var info = async () => {
|
|
|
28
42
|
const backstageJson = await fs__default.default.readJSON(backstageFile);
|
|
29
43
|
backstageVersion = backstageJson.version ?? "N/A";
|
|
30
44
|
} catch (error) {
|
|
31
|
-
|
|
32
|
-
|
|
45
|
+
if (options.format !== "json") {
|
|
46
|
+
console.warn(
|
|
47
|
+
'The "backstage.json" file is not in the expected format'
|
|
48
|
+
);
|
|
49
|
+
console.log();
|
|
50
|
+
}
|
|
33
51
|
}
|
|
34
52
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
53
|
+
const systemInfo = {
|
|
54
|
+
os: `${os__default.default.type} ${os__default.default.release} - ${os__default.default.platform}/${os__default.default.arch}`,
|
|
55
|
+
node: process.version,
|
|
56
|
+
yarn: yarnVersion,
|
|
57
|
+
cli: { version: _package.version, local: isLocal },
|
|
58
|
+
backstage: backstageVersion
|
|
59
|
+
};
|
|
60
|
+
const lockfilePath = paths.paths.resolveTargetRoot("yarn.lock");
|
|
61
|
+
const lockfile = await Lockfile.Lockfile.load(lockfilePath);
|
|
62
|
+
const targetPath = paths.paths.targetRoot;
|
|
63
|
+
const workspacePackages = /* @__PURE__ */ new Map();
|
|
64
|
+
try {
|
|
65
|
+
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
66
|
+
for (const pkg of packages) {
|
|
67
|
+
workspacePackages.set(pkg.packageJson.name, pkg.packageJson.version);
|
|
68
|
+
}
|
|
69
|
+
} catch {
|
|
70
|
+
}
|
|
71
|
+
const allPackages = [...lockfile.keys()];
|
|
72
|
+
const includePatterns = options.include || [];
|
|
73
|
+
const installedDeps = /* @__PURE__ */ new Set();
|
|
74
|
+
const localDeps = /* @__PURE__ */ new Set();
|
|
75
|
+
for (const pkg of allPackages) {
|
|
76
|
+
if (pkg.startsWith("@backstage/")) {
|
|
77
|
+
if (workspacePackages.has(pkg)) {
|
|
78
|
+
localDeps.add(pkg);
|
|
79
|
+
} else {
|
|
80
|
+
installedDeps.add(pkg);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
for (const pattern of includePatterns) {
|
|
85
|
+
for (const pkg of allPackages) {
|
|
86
|
+
if (minimatch.minimatch(pkg, pattern)) {
|
|
87
|
+
if (workspacePackages.has(pkg)) {
|
|
88
|
+
localDeps.add(pkg);
|
|
89
|
+
} else {
|
|
90
|
+
installedDeps.add(pkg);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
for (const pkg of allPackages) {
|
|
96
|
+
if (pkg.startsWith("@backstage/")) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (workspacePackages.has(pkg)) {
|
|
100
|
+
if (hasBackstageField(pkg, targetPath)) {
|
|
101
|
+
localDeps.add(pkg);
|
|
102
|
+
}
|
|
103
|
+
} else if (hasBackstageField(pkg, targetPath)) {
|
|
104
|
+
installedDeps.add(pkg);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const getVersions = (dep) => {
|
|
108
|
+
const entries = lockfile.get(dep);
|
|
109
|
+
if (!entries) {
|
|
110
|
+
return [{ version: "unknown" }];
|
|
111
|
+
}
|
|
112
|
+
const versions = [...new Set(entries.map((i) => i.version))];
|
|
113
|
+
return versions.map((v) => ({ version: v }));
|
|
114
|
+
};
|
|
115
|
+
const sortedInstalled = [...installedDeps].sort();
|
|
116
|
+
const sortedLocal = [...localDeps].sort();
|
|
117
|
+
if (options.format === "json") {
|
|
118
|
+
const output = {
|
|
119
|
+
system: systemInfo,
|
|
120
|
+
dependencies: Object.fromEntries(
|
|
121
|
+
sortedInstalled.map((dep) => [dep, getVersions(dep)])
|
|
122
|
+
),
|
|
123
|
+
local: Object.fromEntries(
|
|
124
|
+
sortedLocal.map((dep) => [
|
|
125
|
+
dep,
|
|
126
|
+
[{ version: workspacePackages.get(dep) ?? "unknown" }]
|
|
127
|
+
])
|
|
128
|
+
)
|
|
129
|
+
};
|
|
130
|
+
process.stdout.write(`${JSON.stringify(output, null, 2)}
|
|
131
|
+
`);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
console.log(`OS: ${systemInfo.os}`);
|
|
135
|
+
console.log(`node: ${systemInfo.node}`);
|
|
136
|
+
console.log(`yarn: ${systemInfo.yarn}`);
|
|
38
137
|
console.log(`cli: ${_package.version} (${isLocal ? "local" : "installed"})`);
|
|
39
138
|
console.log(`backstage: ${backstageVersion}`);
|
|
40
139
|
console.log();
|
|
41
140
|
console.log("Dependencies:");
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
141
|
+
if (sortedInstalled.length > 0) {
|
|
142
|
+
const maxLength = Math.max(...sortedInstalled.map((d) => d.length));
|
|
143
|
+
for (const dep of sortedInstalled) {
|
|
144
|
+
const versions = getVersions(dep).map((v) => v.version).join(", ");
|
|
145
|
+
console.log(` ${dep.padEnd(maxLength)} ${versions}`);
|
|
146
|
+
}
|
|
147
|
+
} else {
|
|
148
|
+
console.log(" (no installed Backstage packages found)");
|
|
149
|
+
}
|
|
150
|
+
if (localDeps.size > 0) {
|
|
151
|
+
console.log();
|
|
152
|
+
console.log("Local:");
|
|
153
|
+
const maxLength = Math.max(...sortedLocal.map((d) => d.length));
|
|
154
|
+
for (const dep of sortedLocal) {
|
|
155
|
+
const version = workspacePackages.get(dep) ?? "unknown";
|
|
156
|
+
console.log(` ${dep.padEnd(maxLength)} ${version}`);
|
|
157
|
+
}
|
|
49
158
|
}
|
|
50
159
|
});
|
|
51
160
|
};
|
|
@@ -17,8 +17,21 @@ var index = factory.createCliPlugin({
|
|
|
17
17
|
path: ["info"],
|
|
18
18
|
description: "Show helpful information for debugging and reporting bugs",
|
|
19
19
|
execute: async ({ args }) => {
|
|
20
|
-
yargs__default.default().
|
|
21
|
-
|
|
20
|
+
const argv = await yargs__default.default().options({
|
|
21
|
+
include: {
|
|
22
|
+
type: "string",
|
|
23
|
+
array: true,
|
|
24
|
+
default: [],
|
|
25
|
+
description: "Glob patterns for additional packages to include (e.g., @spotify/backstage*)"
|
|
26
|
+
},
|
|
27
|
+
format: {
|
|
28
|
+
type: "string",
|
|
29
|
+
choices: ["text", "json"],
|
|
30
|
+
default: "text",
|
|
31
|
+
description: "Output format (text or json)"
|
|
32
|
+
}
|
|
33
|
+
}).help().parse(args);
|
|
34
|
+
await lazy.lazy(() => import('./commands/info.cjs.js'), "default")(argv);
|
|
22
35
|
}
|
|
23
36
|
});
|
|
24
37
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var version = "0.0.0-nightly-
|
|
3
|
+
var version = "0.0.0-nightly-20260123025240";
|
|
4
4
|
var dependencies = {
|
|
5
5
|
"@backstage/catalog-model": "workspace:*",
|
|
6
6
|
"@backstage/cli-common": "workspace:*",
|
|
@@ -88,7 +88,7 @@ var dependencies = {
|
|
|
88
88
|
"style-loader": "^3.3.1",
|
|
89
89
|
sucrase: "^3.20.2",
|
|
90
90
|
"swc-loader": "^0.2.3",
|
|
91
|
-
tar: "^
|
|
91
|
+
tar: "^7.5.6",
|
|
92
92
|
"ts-checker-rspack-plugin": "^1.1.5",
|
|
93
93
|
"ts-morph": "^24.0.0",
|
|
94
94
|
undici: "^7.2.3",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/cli",
|
|
3
|
-
"version": "0.0.0-nightly-
|
|
3
|
+
"version": "0.0.0-nightly-20260123025240",
|
|
4
4
|
"description": "CLI for developing Backstage plugins and apps",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli"
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@backstage/catalog-model": "1.7.6",
|
|
51
|
-
"@backstage/cli-common": "0.1.
|
|
51
|
+
"@backstage/cli-common": "0.1.17",
|
|
52
52
|
"@backstage/cli-node": "0.2.16",
|
|
53
53
|
"@backstage/config": "1.3.6",
|
|
54
54
|
"@backstage/config-loader": "1.10.7",
|
|
55
55
|
"@backstage/errors": "1.2.7",
|
|
56
56
|
"@backstage/eslint-plugin": "0.2.0",
|
|
57
|
-
"@backstage/integration": "
|
|
57
|
+
"@backstage/integration": "1.19.2",
|
|
58
58
|
"@backstage/release-manifests": "0.0.13",
|
|
59
59
|
"@backstage/types": "1.2.2",
|
|
60
60
|
"@manypkg/get-packages": "^1.1.3",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
"style-loader": "^3.3.1",
|
|
134
134
|
"sucrase": "^3.20.2",
|
|
135
135
|
"swc-loader": "^0.2.3",
|
|
136
|
-
"tar": "^
|
|
136
|
+
"tar": "^7.5.6",
|
|
137
137
|
"ts-checker-rspack-plugin": "^1.1.5",
|
|
138
138
|
"ts-morph": "^24.0.0",
|
|
139
139
|
"undici": "^7.2.3",
|
|
@@ -146,21 +146,21 @@
|
|
|
146
146
|
"zod-validation-error": "^4.0.2"
|
|
147
147
|
},
|
|
148
148
|
"devDependencies": {
|
|
149
|
-
"@backstage/backend-plugin-api": "
|
|
150
|
-
"@backstage/backend-test-utils": "0.0.0-nightly-
|
|
149
|
+
"@backstage/backend-plugin-api": "1.6.1",
|
|
150
|
+
"@backstage/backend-test-utils": "0.0.0-nightly-20260123025240",
|
|
151
151
|
"@backstage/catalog-client": "1.12.1",
|
|
152
152
|
"@backstage/config": "1.3.6",
|
|
153
|
-
"@backstage/core-app-api": "
|
|
154
|
-
"@backstage/core-components": "0.
|
|
155
|
-
"@backstage/core-plugin-api": "
|
|
156
|
-
"@backstage/dev-utils": "0.0.0-nightly-
|
|
153
|
+
"@backstage/core-app-api": "1.19.3",
|
|
154
|
+
"@backstage/core-components": "0.18.5",
|
|
155
|
+
"@backstage/core-plugin-api": "1.12.1",
|
|
156
|
+
"@backstage/dev-utils": "0.0.0-nightly-20260123025240",
|
|
157
157
|
"@backstage/errors": "1.2.7",
|
|
158
|
-
"@backstage/plugin-auth-backend": "0.
|
|
159
|
-
"@backstage/plugin-auth-backend-module-guest-provider": "0.
|
|
160
|
-
"@backstage/plugin-catalog-node": "
|
|
161
|
-
"@backstage/plugin-scaffolder-node": "0.0.0-nightly-
|
|
162
|
-
"@backstage/plugin-scaffolder-node-test-utils": "0.0.0-nightly-
|
|
163
|
-
"@backstage/test-utils": "
|
|
158
|
+
"@backstage/plugin-auth-backend": "0.26.0",
|
|
159
|
+
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.15",
|
|
160
|
+
"@backstage/plugin-catalog-node": "1.20.1",
|
|
161
|
+
"@backstage/plugin-scaffolder-node": "0.0.0-nightly-20260123025240",
|
|
162
|
+
"@backstage/plugin-scaffolder-node-test-utils": "0.0.0-nightly-20260123025240",
|
|
163
|
+
"@backstage/test-utils": "1.7.14",
|
|
164
164
|
"@backstage/theme": "0.7.1",
|
|
165
165
|
"@jest/environment-jsdom-abstract": "^30.0.0",
|
|
166
166
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"@backstage/plugin-scaffolder-node": "{{versionQuery '@backstage/plugin-scaffolder-node'}}"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
+
"@backstage/backend-test-utils": "{{versionQuery '@backstage/backend-test-utils'}}",
|
|
29
30
|
"@backstage/cli": "{{versionQuery '@backstage/cli'}}",
|
|
30
31
|
"@backstage/plugin-scaffolder-node-test-utils": "{{versionQuery '@backstage/plugin-scaffolder-node-test-utils'}}"
|
|
31
32
|
},
|