@backstage/cli-module-info 0.0.0-nightly-20260317031259
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 +13 -0
- package/README.md +14 -0
- package/bin/backstage-cli-module-info +32 -0
- package/dist/commands/info.cjs.js +193 -0
- package/dist/commands/info.cjs.js.map +1 -0
- package/dist/index.cjs.js +20 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/package.json.cjs.js +83 -0
- package/dist/package.json.cjs.js.map +1 -0
- package/package.json +53 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# @backstage/cli-module-info
|
|
2
|
+
|
|
3
|
+
## 0.0.0-nightly-20260317031259
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 329f394: Initial release of the CLI module packages. Each module provides a set of commands that can be discovered automatically by `@backstage/cli` or executed standalone.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @backstage/cli-node@0.0.0-nightly-20260317031259
|
|
13
|
+
- @backstage/cli-common@0.0.0-nightly-20260317031259
|
package/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# @backstage/cli-module-info
|
|
2
|
+
|
|
3
|
+
CLI module that provides the `info` command for the Backstage CLI, displaying environment and dependency information useful for debugging and bug reports.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
| :------ | :-------------------------------------------------------- |
|
|
9
|
+
| `info` | Show helpful information for debugging and reporting bugs |
|
|
10
|
+
|
|
11
|
+
## Documentation
|
|
12
|
+
|
|
13
|
+
- [Backstage Readme](https://github.com/backstage/backstage/blob/master/README.md)
|
|
14
|
+
- [Backstage Documentation](https://backstage.io/docs)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024 The Backstage Authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const path = require('node:path');
|
|
19
|
+
|
|
20
|
+
/* eslint-disable-next-line no-restricted-syntax */
|
|
21
|
+
const isLocal = require('node:fs').existsSync(
|
|
22
|
+
path.resolve(__dirname, '../src'),
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
if (isLocal) {
|
|
26
|
+
require('@backstage/cli-node/config/nodeTransform.cjs');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const { runCliModule } = require('@backstage/cli-node');
|
|
30
|
+
const cliModule = require(isLocal ? '../src/index' : '..').default;
|
|
31
|
+
const pkg = require('../package.json');
|
|
32
|
+
runCliModule({ module: cliModule, name: pkg.name, version: pkg.version });
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var cleye = require('cleye');
|
|
6
|
+
var _package = require('../package.json.cjs.js');
|
|
7
|
+
var os = require('node:os');
|
|
8
|
+
var cliCommon = require('@backstage/cli-common');
|
|
9
|
+
var cliNode = require('@backstage/cli-node');
|
|
10
|
+
var minimatch = require('minimatch');
|
|
11
|
+
var fs = require('fs-extra');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
16
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
17
|
+
|
|
18
|
+
function tryReadPackageJson(packageName, targetPath) {
|
|
19
|
+
try {
|
|
20
|
+
return require(require.resolve(`${packageName}/package.json`, {
|
|
21
|
+
paths: [targetPath]
|
|
22
|
+
}));
|
|
23
|
+
} catch {
|
|
24
|
+
return void 0;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function hasBackstageField(packageName, targetPath) {
|
|
28
|
+
const pkg = tryReadPackageJson(packageName, targetPath);
|
|
29
|
+
return pkg?.backstage !== void 0;
|
|
30
|
+
}
|
|
31
|
+
var info = async ({ args, info }) => {
|
|
32
|
+
const {
|
|
33
|
+
flags: { include, format }
|
|
34
|
+
} = cleye.cli(
|
|
35
|
+
{
|
|
36
|
+
help: info,
|
|
37
|
+
booleanFlagNegation: true,
|
|
38
|
+
flags: {
|
|
39
|
+
include: {
|
|
40
|
+
type: [String],
|
|
41
|
+
description: "Glob patterns for additional packages to include (e.g., @spotify/backstage*)"
|
|
42
|
+
},
|
|
43
|
+
format: {
|
|
44
|
+
type: String,
|
|
45
|
+
description: "Output format (text or json)",
|
|
46
|
+
default: "text"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
void 0,
|
|
51
|
+
args
|
|
52
|
+
);
|
|
53
|
+
const options = { include, format };
|
|
54
|
+
await new Promise(async () => {
|
|
55
|
+
const yarnVersion = await cliCommon.runOutput(["yarn", "--version"]);
|
|
56
|
+
const isLocal = fs__default.default.existsSync(cliCommon.findOwnPaths(__dirname).resolve("./src"));
|
|
57
|
+
const backstageFile = cliCommon.targetPaths.resolveRoot("backstage.json");
|
|
58
|
+
let backstageVersion = "N/A";
|
|
59
|
+
if (fs__default.default.existsSync(backstageFile)) {
|
|
60
|
+
try {
|
|
61
|
+
const backstageJson = await fs__default.default.readJSON(backstageFile);
|
|
62
|
+
backstageVersion = backstageJson.version ?? "N/A";
|
|
63
|
+
} catch (error) {
|
|
64
|
+
if (options.format !== "json") {
|
|
65
|
+
console.warn(
|
|
66
|
+
'The "backstage.json" file is not in the expected format'
|
|
67
|
+
);
|
|
68
|
+
console.log();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
let cliVersion;
|
|
73
|
+
try {
|
|
74
|
+
cliVersion = require(require.resolve("@backstage/cli/package.json", {
|
|
75
|
+
paths: [process.cwd()]
|
|
76
|
+
})).version;
|
|
77
|
+
} catch {
|
|
78
|
+
}
|
|
79
|
+
const systemInfo = {
|
|
80
|
+
os: `${os__default.default.type} ${os__default.default.release} - ${os__default.default.platform}/${os__default.default.arch}`,
|
|
81
|
+
node: process.version,
|
|
82
|
+
yarn: yarnVersion,
|
|
83
|
+
...cliVersion ? { cli: { version: cliVersion, local: isLocal } } : void 0,
|
|
84
|
+
infoModuleVersion: _package.version,
|
|
85
|
+
backstage: backstageVersion
|
|
86
|
+
};
|
|
87
|
+
const lockfilePath = cliCommon.targetPaths.resolveRoot("yarn.lock");
|
|
88
|
+
const lockfile = await cliNode.Lockfile.load(lockfilePath);
|
|
89
|
+
const targetPath = cliCommon.targetPaths.rootDir;
|
|
90
|
+
const workspacePackages = /* @__PURE__ */ new Map();
|
|
91
|
+
try {
|
|
92
|
+
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
93
|
+
for (const pkg of packages) {
|
|
94
|
+
workspacePackages.set(pkg.packageJson.name, pkg.packageJson.version);
|
|
95
|
+
}
|
|
96
|
+
} catch {
|
|
97
|
+
}
|
|
98
|
+
const allPackages = [...lockfile.keys()];
|
|
99
|
+
const includePatterns = options.include || [];
|
|
100
|
+
const installedDeps = /* @__PURE__ */ new Set();
|
|
101
|
+
const localDeps = /* @__PURE__ */ new Set();
|
|
102
|
+
for (const pkg of allPackages) {
|
|
103
|
+
if (pkg.startsWith("@backstage/")) {
|
|
104
|
+
if (workspacePackages.has(pkg)) {
|
|
105
|
+
localDeps.add(pkg);
|
|
106
|
+
} else {
|
|
107
|
+
installedDeps.add(pkg);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const pattern of includePatterns) {
|
|
112
|
+
for (const pkg of allPackages) {
|
|
113
|
+
if (minimatch.minimatch(pkg, pattern)) {
|
|
114
|
+
if (workspacePackages.has(pkg)) {
|
|
115
|
+
localDeps.add(pkg);
|
|
116
|
+
} else {
|
|
117
|
+
installedDeps.add(pkg);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const pkg of allPackages) {
|
|
123
|
+
if (pkg.startsWith("@backstage/")) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (workspacePackages.has(pkg)) {
|
|
127
|
+
if (hasBackstageField(pkg, targetPath)) {
|
|
128
|
+
localDeps.add(pkg);
|
|
129
|
+
}
|
|
130
|
+
} else if (hasBackstageField(pkg, targetPath)) {
|
|
131
|
+
installedDeps.add(pkg);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const getVersions = (dep) => {
|
|
135
|
+
const entries = lockfile.get(dep);
|
|
136
|
+
if (!entries) {
|
|
137
|
+
return [{ version: "unknown" }];
|
|
138
|
+
}
|
|
139
|
+
const versions = [...new Set(entries.map((i) => i.version))];
|
|
140
|
+
return versions.map((v) => ({ version: v }));
|
|
141
|
+
};
|
|
142
|
+
const sortedInstalled = [...installedDeps].sort();
|
|
143
|
+
const sortedLocal = [...localDeps].sort();
|
|
144
|
+
if (options.format === "json") {
|
|
145
|
+
const output = {
|
|
146
|
+
system: systemInfo,
|
|
147
|
+
dependencies: Object.fromEntries(
|
|
148
|
+
sortedInstalled.map((dep) => [dep, getVersions(dep)])
|
|
149
|
+
),
|
|
150
|
+
local: Object.fromEntries(
|
|
151
|
+
sortedLocal.map((dep) => [
|
|
152
|
+
dep,
|
|
153
|
+
[{ version: workspacePackages.get(dep) ?? "unknown" }]
|
|
154
|
+
])
|
|
155
|
+
)
|
|
156
|
+
};
|
|
157
|
+
process.stdout.write(`${JSON.stringify(output, null, 2)}
|
|
158
|
+
`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
console.log(`OS: ${systemInfo.os}`);
|
|
162
|
+
console.log(`node: ${systemInfo.node}`);
|
|
163
|
+
console.log(`yarn: ${systemInfo.yarn}`);
|
|
164
|
+
if (cliVersion) {
|
|
165
|
+
console.log(`cli: ${cliVersion} (${isLocal ? "local" : "installed"})`);
|
|
166
|
+
}
|
|
167
|
+
console.log(`info module: ${_package.version}`);
|
|
168
|
+
console.log(`backstage: ${backstageVersion}`);
|
|
169
|
+
console.log();
|
|
170
|
+
console.log("Dependencies:");
|
|
171
|
+
if (sortedInstalled.length > 0) {
|
|
172
|
+
const maxLength = Math.max(...sortedInstalled.map((d) => d.length));
|
|
173
|
+
for (const dep of sortedInstalled) {
|
|
174
|
+
const versions = getVersions(dep).map((v) => v.version).join(", ");
|
|
175
|
+
console.log(` ${dep.padEnd(maxLength)} ${versions}`);
|
|
176
|
+
}
|
|
177
|
+
} else {
|
|
178
|
+
console.log(" (no installed Backstage packages found)");
|
|
179
|
+
}
|
|
180
|
+
if (localDeps.size > 0) {
|
|
181
|
+
console.log();
|
|
182
|
+
console.log("Local:");
|
|
183
|
+
const maxLength = Math.max(...sortedLocal.map((d) => d.length));
|
|
184
|
+
for (const dep of sortedLocal) {
|
|
185
|
+
const version = workspacePackages.get(dep) ?? "unknown";
|
|
186
|
+
console.log(` ${dep.padEnd(maxLength)} ${version}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
exports.default = info;
|
|
193
|
+
//# sourceMappingURL=info.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.cjs.js","sources":["../../src/commands/info.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { cli } from 'cleye';\nimport { version as infoModuleVersion } from '../../package.json';\nimport os from 'node:os';\nimport { runOutput, targetPaths, findOwnPaths } from '@backstage/cli-common';\nimport {\n BackstagePackageJson,\n Lockfile,\n PackageGraph,\n} from '@backstage/cli-node';\nimport { minimatch } from 'minimatch';\nimport fs from 'fs-extra';\nimport type { CliCommandContext } from '@backstage/cli-node';\n\n/**\n * Attempts to read package.json from node_modules for a given package name.\n * Returns undefined if the package.json cannot be read.\n */\nfunction tryReadPackageJson(\n packageName: string,\n targetPath: string,\n): BackstagePackageJson | undefined {\n try {\n return require(require.resolve(`${packageName}/package.json`, {\n paths: [targetPath],\n }));\n } catch {\n return undefined;\n }\n}\n\n/**\n * Checks if a package has a backstage field in its package.json\n */\nfunction hasBackstageField(packageName: string, targetPath: string): boolean {\n const pkg = tryReadPackageJson(packageName, targetPath);\n return pkg?.backstage !== undefined;\n}\n\nexport default async ({ args, info }: CliCommandContext) => {\n const {\n flags: { include, format },\n } = cli(\n {\n help: info,\n booleanFlagNegation: true,\n flags: {\n include: {\n type: [String],\n description:\n 'Glob patterns for additional packages to include (e.g., @spotify/backstage*)',\n },\n format: {\n type: String,\n description: 'Output format (text or json)',\n default: 'text',\n },\n },\n },\n undefined,\n args,\n );\n\n const options = { include, format: format as 'text' | 'json' };\n\n await new Promise(async () => {\n const yarnVersion = await runOutput(['yarn', '--version']);\n /* eslint-disable-next-line no-restricted-syntax */\n const isLocal = fs.existsSync(findOwnPaths(__dirname).resolve('./src'));\n\n const backstageFile = targetPaths.resolveRoot('backstage.json');\n let backstageVersion = 'N/A';\n if (fs.existsSync(backstageFile)) {\n try {\n const backstageJson = await fs.readJSON(backstageFile);\n backstageVersion = backstageJson.version ?? 'N/A';\n } catch (error) {\n if (options.format !== 'json') {\n console.warn(\n 'The \"backstage.json\" file is not in the expected format',\n );\n console.log();\n }\n }\n }\n\n // Try to resolve the CLI package version — it may not be installed\n // when this module is executed standalone.\n let cliVersion: string | undefined;\n try {\n cliVersion = (\n require(require.resolve('@backstage/cli/package.json', {\n paths: [process.cwd()],\n })) as { version: string }\n ).version;\n } catch {\n /* not available */\n }\n\n const systemInfo = {\n os: `${os.type} ${os.release} - ${os.platform}/${os.arch}`,\n node: process.version,\n yarn: yarnVersion,\n ...(cliVersion\n ? { cli: { version: cliVersion, local: isLocal } }\n : undefined),\n infoModuleVersion,\n backstage: backstageVersion,\n };\n\n const lockfilePath = targetPaths.resolveRoot('yarn.lock');\n const lockfile = await Lockfile.load(lockfilePath);\n const targetPath = targetPaths.rootDir;\n\n // Get workspace package names and their versions\n const workspacePackages = new Map<string, string>();\n try {\n const packages = await PackageGraph.listTargetPackages();\n for (const pkg of packages) {\n workspacePackages.set(pkg.packageJson.name, pkg.packageJson.version);\n }\n } catch {\n // If we can't list workspace packages, continue without them\n }\n\n // Collect all package names from lockfile\n const allPackages = [...lockfile.keys()];\n const includePatterns = options.include || [];\n\n // Collect installed (non-local) packages\n const installedDeps = new Set<string>();\n // Collect local workspace packages\n const localDeps = new Set<string>();\n\n // Process @backstage/* packages\n for (const pkg of allPackages) {\n if (pkg.startsWith('@backstage/')) {\n if (workspacePackages.has(pkg)) {\n localDeps.add(pkg);\n } else {\n installedDeps.add(pkg);\n }\n }\n }\n\n // Process packages matching --include patterns\n for (const pattern of includePatterns) {\n for (const pkg of allPackages) {\n if (minimatch(pkg, pattern)) {\n if (workspacePackages.has(pkg)) {\n localDeps.add(pkg);\n } else {\n installedDeps.add(pkg);\n }\n }\n }\n }\n\n // Process packages with backstage field in their package.json\n for (const pkg of allPackages) {\n // Skip @backstage/* packages (already processed above)\n if (pkg.startsWith('@backstage/')) {\n continue;\n }\n if (workspacePackages.has(pkg)) {\n // Check if local package has backstage field\n if (hasBackstageField(pkg, targetPath)) {\n localDeps.add(pkg);\n }\n } else if (hasBackstageField(pkg, targetPath)) {\n installedDeps.add(pkg);\n }\n }\n\n // Helper to get versions for a package as an array of objects\n const getVersions = (dep: string): Array<{ version: string }> => {\n const entries = lockfile.get(dep);\n if (!entries) {\n return [{ version: 'unknown' }];\n }\n const versions = [...new Set(entries.map(i => i.version))];\n return versions.map(v => ({ version: v }));\n };\n\n const sortedInstalled = [...installedDeps].sort();\n const sortedLocal = [...localDeps].sort();\n\n // If format is json, output JSON to stdout\n if (options.format === 'json') {\n const output = {\n system: systemInfo,\n dependencies: Object.fromEntries(\n sortedInstalled.map(dep => [dep, getVersions(dep)]),\n ),\n local: Object.fromEntries(\n sortedLocal.map(dep => [\n dep,\n [{ version: workspacePackages.get(dep) ?? 'unknown' }],\n ]),\n ),\n };\n\n process.stdout.write(`${JSON.stringify(output, null, 2)}\\n`);\n return;\n }\n\n // Print to console\n console.log(`OS: ${systemInfo.os}`);\n console.log(`node: ${systemInfo.node}`);\n console.log(`yarn: ${systemInfo.yarn}`);\n if (cliVersion) {\n console.log(`cli: ${cliVersion} (${isLocal ? 'local' : 'installed'})`);\n }\n console.log(`info module: ${infoModuleVersion}`);\n console.log(`backstage: ${backstageVersion}`);\n console.log();\n\n // Print installed dependencies\n console.log('Dependencies:');\n if (sortedInstalled.length > 0) {\n const maxLength = Math.max(...sortedInstalled.map(d => d.length));\n for (const dep of sortedInstalled) {\n const versions = getVersions(dep)\n .map(v => v.version)\n .join(', ');\n console.log(` ${dep.padEnd(maxLength)} ${versions}`);\n }\n } else {\n console.log(' (no installed Backstage packages found)');\n }\n\n // Print local workspace packages\n if (localDeps.size > 0) {\n console.log();\n console.log('Local:');\n const maxLength = Math.max(...sortedLocal.map(d => d.length));\n for (const dep of sortedLocal) {\n const version = workspacePackages.get(dep) ?? 'unknown';\n console.log(` ${dep.padEnd(maxLength)} ${version}`);\n }\n }\n });\n};\n"],"names":["cli","runOutput","fs","findOwnPaths","targetPaths","os","infoModuleVersion","Lockfile","PackageGraph","minimatch"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var cliNode = require('@backstage/cli-node');
|
|
6
|
+
var _package = require('./package.json.cjs.js');
|
|
7
|
+
|
|
8
|
+
var index = cliNode.createCliModule({
|
|
9
|
+
packageJson: _package.default,
|
|
10
|
+
init: async (reg) => {
|
|
11
|
+
reg.addCommand({
|
|
12
|
+
path: ["info"],
|
|
13
|
+
description: "Show helpful information for debugging and reporting bugs",
|
|
14
|
+
execute: { loader: () => import('./commands/info.cjs.js') }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.default = index;
|
|
20
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createCliModule } from '@backstage/cli-node';\nimport packageJson from '../package.json';\n\nexport default createCliModule({\n packageJson,\n init: async reg => {\n reg.addCommand({\n path: ['info'],\n description: 'Show helpful information for debugging and reporting bugs',\n execute: { loader: () => import('./commands/info') },\n });\n },\n});\n"],"names":["createCliModule","packageJson"],"mappings":";;;;;;;AAkBA,YAAeA,uBAAA,CAAgB;AAAA,eAC7BC,gBAAA;AAAA,EACA,IAAA,EAAM,OAAM,GAAA,KAAO;AACjB,IAAA,GAAA,CAAI,UAAA,CAAW;AAAA,MACb,IAAA,EAAM,CAAC,MAAM,CAAA;AAAA,MACb,WAAA,EAAa,2DAAA;AAAA,MACb,SAAS,EAAE,MAAA,EAAQ,MAAM,OAAO,wBAAiB,CAAA;AAAE,KACpD,CAAA;AAAA,EACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var name = "@backstage/cli-module-info";
|
|
6
|
+
var version = "0.0.0-nightly-20260317031259";
|
|
7
|
+
var description = "CLI module for Backstage CLI";
|
|
8
|
+
var backstage = {
|
|
9
|
+
role: "cli-module"
|
|
10
|
+
};
|
|
11
|
+
var publishConfig = {
|
|
12
|
+
access: "public",
|
|
13
|
+
main: "dist/index.cjs.js",
|
|
14
|
+
types: "dist/index.d.ts"
|
|
15
|
+
};
|
|
16
|
+
var homepage = "https://backstage.io";
|
|
17
|
+
var repository = {
|
|
18
|
+
type: "git",
|
|
19
|
+
url: "https://github.com/backstage/backstage",
|
|
20
|
+
directory: "packages/cli-module-info"
|
|
21
|
+
};
|
|
22
|
+
var license = "Apache-2.0";
|
|
23
|
+
var main = "src/index.ts";
|
|
24
|
+
var types = "src/index.ts";
|
|
25
|
+
var files = [
|
|
26
|
+
"dist",
|
|
27
|
+
"bin"
|
|
28
|
+
];
|
|
29
|
+
var scripts = {
|
|
30
|
+
build: "backstage-cli package build",
|
|
31
|
+
clean: "backstage-cli package clean",
|
|
32
|
+
lint: "backstage-cli package lint",
|
|
33
|
+
prepack: "backstage-cli package prepack",
|
|
34
|
+
postpack: "backstage-cli package postpack",
|
|
35
|
+
test: "backstage-cli package test"
|
|
36
|
+
};
|
|
37
|
+
var dependencies = {
|
|
38
|
+
"@backstage/cli-common": "workspace:*",
|
|
39
|
+
"@backstage/cli-node": "workspace:*",
|
|
40
|
+
cleye: "^2.3.0",
|
|
41
|
+
"fs-extra": "^11.2.0",
|
|
42
|
+
minimatch: "^10.2.1"
|
|
43
|
+
};
|
|
44
|
+
var devDependencies = {
|
|
45
|
+
"@backstage/cli": "workspace:*",
|
|
46
|
+
"@types/fs-extra": "^11.0.0"
|
|
47
|
+
};
|
|
48
|
+
var bin = "bin/backstage-cli-module-info";
|
|
49
|
+
var packageJson = {
|
|
50
|
+
name: name,
|
|
51
|
+
version: version,
|
|
52
|
+
description: description,
|
|
53
|
+
backstage: backstage,
|
|
54
|
+
publishConfig: publishConfig,
|
|
55
|
+
homepage: homepage,
|
|
56
|
+
repository: repository,
|
|
57
|
+
license: license,
|
|
58
|
+
main: main,
|
|
59
|
+
types: types,
|
|
60
|
+
files: files,
|
|
61
|
+
scripts: scripts,
|
|
62
|
+
dependencies: dependencies,
|
|
63
|
+
devDependencies: devDependencies,
|
|
64
|
+
bin: bin
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
exports.backstage = backstage;
|
|
68
|
+
exports.bin = bin;
|
|
69
|
+
exports.default = packageJson;
|
|
70
|
+
exports.dependencies = dependencies;
|
|
71
|
+
exports.description = description;
|
|
72
|
+
exports.devDependencies = devDependencies;
|
|
73
|
+
exports.files = files;
|
|
74
|
+
exports.homepage = homepage;
|
|
75
|
+
exports.license = license;
|
|
76
|
+
exports.main = main;
|
|
77
|
+
exports.name = name;
|
|
78
|
+
exports.publishConfig = publishConfig;
|
|
79
|
+
exports.repository = repository;
|
|
80
|
+
exports.scripts = scripts;
|
|
81
|
+
exports.types = types;
|
|
82
|
+
exports.version = version;
|
|
83
|
+
//# sourceMappingURL=package.json.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.json.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@backstage/cli-module-info",
|
|
3
|
+
"version": "0.0.0-nightly-20260317031259",
|
|
4
|
+
"description": "CLI module for Backstage CLI",
|
|
5
|
+
"backstage": {
|
|
6
|
+
"role": "cli-module"
|
|
7
|
+
},
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public",
|
|
10
|
+
"main": "dist/index.cjs.js",
|
|
11
|
+
"types": "dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://backstage.io",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/backstage/backstage",
|
|
17
|
+
"directory": "packages/cli-module-info"
|
|
18
|
+
},
|
|
19
|
+
"license": "Apache-2.0",
|
|
20
|
+
"main": "dist/index.cjs.js",
|
|
21
|
+
"types": "dist/index.d.ts",
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"bin"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "backstage-cli package build",
|
|
28
|
+
"clean": "backstage-cli package clean",
|
|
29
|
+
"lint": "backstage-cli package lint",
|
|
30
|
+
"prepack": "backstage-cli package prepack",
|
|
31
|
+
"postpack": "backstage-cli package postpack",
|
|
32
|
+
"test": "backstage-cli package test"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@backstage/cli-common": "0.0.0-nightly-20260317031259",
|
|
36
|
+
"@backstage/cli-node": "0.0.0-nightly-20260317031259",
|
|
37
|
+
"cleye": "^2.3.0",
|
|
38
|
+
"fs-extra": "^11.2.0",
|
|
39
|
+
"minimatch": "^10.2.1"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@backstage/cli": "0.0.0-nightly-20260317031259",
|
|
43
|
+
"@types/fs-extra": "^11.0.0"
|
|
44
|
+
},
|
|
45
|
+
"bin": "bin/backstage-cli-module-info",
|
|
46
|
+
"typesVersions": {
|
|
47
|
+
"*": {
|
|
48
|
+
"package.json": [
|
|
49
|
+
"package.json"
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|