@backstage/cli-module-auth 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 +19 -0
- package/bin/backstage-cli-module-auth +32 -0
- package/dist/commands/list.cjs.js +23 -0
- package/dist/commands/list.cjs.js.map +1 -0
- package/dist/commands/login.cjs.js +316 -0
- package/dist/commands/login.cjs.js.map +1 -0
- package/dist/commands/logout.cjs.js +55 -0
- package/dist/commands/logout.cjs.js.map +1 -0
- package/dist/commands/printToken.cjs.js +41 -0
- package/dist/commands/printToken.cjs.js.map +1 -0
- package/dist/commands/select.cjs.js +32 -0
- package/dist/commands/select.cjs.js.map +1 -0
- package/dist/commands/show.cjs.js +59 -0
- package/dist/commands/show.cjs.js.map +1 -0
- package/dist/index.cjs.js +45 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/lib/auth.cjs.js +60 -0
- package/dist/lib/auth.cjs.js.map +1 -0
- package/dist/lib/http.cjs.js +26 -0
- package/dist/lib/http.cjs.js.map +1 -0
- package/dist/lib/localServer.cjs.js +80 -0
- package/dist/lib/localServer.cjs.js.map +1 -0
- package/dist/lib/pkce.cjs.js +23 -0
- package/dist/lib/pkce.cjs.js.map +1 -0
- package/dist/lib/prompt.cjs.js +44 -0
- package/dist/lib/prompt.cjs.js.map +1 -0
- package/dist/lib/secretStore.cjs.js +81 -0
- package/dist/lib/secretStore.cjs.js.map +1 -0
- package/dist/lib/storage.cjs.js +152 -0
- package/dist/lib/storage.cjs.js.map +1 -0
- package/dist/package.json.cjs.js +95 -0
- package/dist/package.json.cjs.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var errors = require('@backstage/errors');
|
|
4
|
+
var fs = require('fs-extra');
|
|
5
|
+
var os = require('node:os');
|
|
6
|
+
var path = require('node:path');
|
|
7
|
+
var lockfile = require('proper-lockfile');
|
|
8
|
+
var YAML = require('yaml');
|
|
9
|
+
var zod = require('zod');
|
|
10
|
+
|
|
11
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
|
+
|
|
13
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
14
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
15
|
+
var path__default = /*#__PURE__*/_interopDefaultCompat(path);
|
|
16
|
+
var lockfile__default = /*#__PURE__*/_interopDefaultCompat(lockfile);
|
|
17
|
+
var YAML__default = /*#__PURE__*/_interopDefaultCompat(YAML);
|
|
18
|
+
|
|
19
|
+
const METADATA_FILE = "auth-instances.yaml";
|
|
20
|
+
const INSTANCE_NAME_PATTERN = /^[a-zA-Z0-9._:@-]+$/;
|
|
21
|
+
const storedInstanceSchema = zod.z.object({
|
|
22
|
+
name: zod.z.string().min(1).regex(INSTANCE_NAME_PATTERN, "Instance name contains invalid characters"),
|
|
23
|
+
baseUrl: zod.z.string().url(),
|
|
24
|
+
clientId: zod.z.string().min(1),
|
|
25
|
+
issuedAt: zod.z.number().int().nonnegative(),
|
|
26
|
+
accessTokenExpiresAt: zod.z.number().int().nonnegative(),
|
|
27
|
+
selected: zod.z.boolean().optional()
|
|
28
|
+
});
|
|
29
|
+
const authYamlSchema = zod.z.object({
|
|
30
|
+
instances: zod.z.array(storedInstanceSchema).default([])
|
|
31
|
+
});
|
|
32
|
+
function getMetadataFilePath() {
|
|
33
|
+
const root = process.env.XDG_CONFIG_HOME || (process.platform === "win32" ? process.env.APPDATA || path__default.default.join(os__default.default.homedir(), "AppData", "Roaming") : path__default.default.join(os__default.default.homedir(), ".config"));
|
|
34
|
+
return path__default.default.join(root, "backstage-cli", METADATA_FILE);
|
|
35
|
+
}
|
|
36
|
+
async function readAll() {
|
|
37
|
+
const file = getMetadataFilePath();
|
|
38
|
+
if (!await fs__default.default.pathExists(file)) {
|
|
39
|
+
return { instances: [] };
|
|
40
|
+
}
|
|
41
|
+
const text = await fs__default.default.readFile(file, "utf8");
|
|
42
|
+
if (!text.trim()) {
|
|
43
|
+
return { instances: [] };
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const doc = YAML__default.default.parse(text);
|
|
47
|
+
const parsed = authYamlSchema.safeParse(doc);
|
|
48
|
+
if (parsed.success) {
|
|
49
|
+
return parsed.data;
|
|
50
|
+
}
|
|
51
|
+
return { instances: [] };
|
|
52
|
+
} catch {
|
|
53
|
+
return { instances: [] };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function writeAll(data) {
|
|
57
|
+
const file = getMetadataFilePath();
|
|
58
|
+
await fs__default.default.ensureDir(path__default.default.dirname(file));
|
|
59
|
+
const yaml = YAML__default.default.stringify(authYamlSchema.parse(data), { indentSeq: false });
|
|
60
|
+
await fs__default.default.writeFile(file, yaml, { encoding: "utf8", mode: 384 });
|
|
61
|
+
}
|
|
62
|
+
async function getAllInstances() {
|
|
63
|
+
const { instances } = await readAll();
|
|
64
|
+
const selected = instances.find((i) => i.selected) ?? instances[0];
|
|
65
|
+
return {
|
|
66
|
+
// Normalize selection prop
|
|
67
|
+
instances: instances.map((i) => ({
|
|
68
|
+
...i,
|
|
69
|
+
selected: i.name === selected.name
|
|
70
|
+
})),
|
|
71
|
+
selected
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
async function getSelectedInstance(instanceName) {
|
|
75
|
+
if (instanceName) {
|
|
76
|
+
return await getInstanceByName(instanceName);
|
|
77
|
+
}
|
|
78
|
+
const { selected } = await getAllInstances();
|
|
79
|
+
if (!selected) {
|
|
80
|
+
throw new Error(
|
|
81
|
+
'No instances found. Run "auth login" to authenticate first.'
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
return selected;
|
|
85
|
+
}
|
|
86
|
+
async function getInstanceByName(name) {
|
|
87
|
+
const { instances } = await readAll();
|
|
88
|
+
const instance = instances.find((i) => i.name === name);
|
|
89
|
+
if (!instance) {
|
|
90
|
+
throw new errors.NotFoundError(`Instance '${name}' not found`);
|
|
91
|
+
}
|
|
92
|
+
return instance;
|
|
93
|
+
}
|
|
94
|
+
async function upsertInstance(instance) {
|
|
95
|
+
const data = await readAll();
|
|
96
|
+
const idx = data.instances.findIndex((i) => i.name === instance.name);
|
|
97
|
+
if (idx === -1) {
|
|
98
|
+
data.instances.push(instance);
|
|
99
|
+
} else {
|
|
100
|
+
data.instances[idx] = instance;
|
|
101
|
+
}
|
|
102
|
+
await writeAll(data);
|
|
103
|
+
}
|
|
104
|
+
async function removeInstance(name) {
|
|
105
|
+
const data = await readAll();
|
|
106
|
+
const next = data.instances.filter((i) => i.name !== name);
|
|
107
|
+
if (next.length !== data.instances.length) {
|
|
108
|
+
await writeAll({ instances: next });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async function setSelectedInstance(name) {
|
|
112
|
+
return withMetadataLock(async () => {
|
|
113
|
+
const data = await readAll();
|
|
114
|
+
let found = false;
|
|
115
|
+
data.instances = data.instances.map((i) => {
|
|
116
|
+
if (i.name === name) {
|
|
117
|
+
found = true;
|
|
118
|
+
return { ...i, selected: true };
|
|
119
|
+
}
|
|
120
|
+
const { selected, ...rest } = i;
|
|
121
|
+
return { ...rest, selected: false };
|
|
122
|
+
});
|
|
123
|
+
if (!found) {
|
|
124
|
+
throw new Error(`Unknown instance '${name}'`);
|
|
125
|
+
}
|
|
126
|
+
await writeAll(data);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
async function withMetadataLock(fn) {
|
|
130
|
+
const file = getMetadataFilePath();
|
|
131
|
+
await fs__default.default.ensureDir(path__default.default.dirname(file));
|
|
132
|
+
if (!await fs__default.default.pathExists(file)) {
|
|
133
|
+
await fs__default.default.writeFile(file, "", { encoding: "utf8", mode: 384 });
|
|
134
|
+
}
|
|
135
|
+
const release = await lockfile__default.default.lock(file, {
|
|
136
|
+
retries: { retries: 5, factor: 1.5, minTimeout: 100, maxTimeout: 1e3 }
|
|
137
|
+
});
|
|
138
|
+
try {
|
|
139
|
+
return await fn();
|
|
140
|
+
} finally {
|
|
141
|
+
await release();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
exports.getAllInstances = getAllInstances;
|
|
146
|
+
exports.getInstanceByName = getInstanceByName;
|
|
147
|
+
exports.getSelectedInstance = getSelectedInstance;
|
|
148
|
+
exports.removeInstance = removeInstance;
|
|
149
|
+
exports.setSelectedInstance = setSelectedInstance;
|
|
150
|
+
exports.upsertInstance = upsertInstance;
|
|
151
|
+
exports.withMetadataLock = withMetadataLock;
|
|
152
|
+
//# sourceMappingURL=storage.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.cjs.js","sources":["../../src/lib/storage.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 { NotFoundError } from '@backstage/errors';\nimport fs from 'fs-extra';\nimport os from 'node:os';\nimport path from 'node:path';\nimport lockfile from 'proper-lockfile';\nimport YAML from 'yaml';\nimport { z } from 'zod';\n\nconst METADATA_FILE = 'auth-instances.yaml';\n\nconst INSTANCE_NAME_PATTERN = /^[a-zA-Z0-9._:@-]+$/;\n\nconst storedInstanceSchema = z.object({\n name: z\n .string()\n .min(1)\n .regex(INSTANCE_NAME_PATTERN, 'Instance name contains invalid characters'),\n baseUrl: z.string().url(),\n clientId: z.string().min(1),\n issuedAt: z.number().int().nonnegative(),\n accessTokenExpiresAt: z.number().int().nonnegative(),\n selected: z.boolean().optional(),\n});\n\nexport type StoredInstance = z.infer<typeof storedInstanceSchema>;\n\nconst authYamlSchema = z.object({\n instances: z.array(storedInstanceSchema).default([]),\n});\n\nfunction getMetadataFilePath(): string {\n const root =\n process.env.XDG_CONFIG_HOME ||\n (process.platform === 'win32'\n ? process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming')\n : path.join(os.homedir(), '.config'));\n\n return path.join(root, 'backstage-cli', METADATA_FILE);\n}\n\nasync function readAll(): Promise<{ instances: StoredInstance[] }> {\n const file = getMetadataFilePath();\n if (!(await fs.pathExists(file))) {\n return { instances: [] };\n }\n const text = await fs.readFile(file, 'utf8');\n if (!text.trim()) {\n return { instances: [] };\n }\n try {\n const doc = YAML.parse(text);\n const parsed = authYamlSchema.safeParse(doc);\n if (parsed.success) {\n return parsed.data;\n }\n return { instances: [] };\n } catch {\n return { instances: [] };\n }\n}\n\nasync function writeAll(data: { instances: StoredInstance[] }): Promise<void> {\n const file = getMetadataFilePath();\n await fs.ensureDir(path.dirname(file));\n const yaml = YAML.stringify(authYamlSchema.parse(data), { indentSeq: false });\n await fs.writeFile(file, yaml, { encoding: 'utf8', mode: 0o600 });\n}\n\nexport async function getAllInstances(): Promise<{\n instances: StoredInstance[];\n selected: StoredInstance | undefined;\n}> {\n const { instances } = await readAll();\n const selected = instances.find(i => i.selected) ?? instances[0];\n return {\n // Normalize selection prop\n instances: instances.map(i => ({\n ...i,\n selected: i.name === selected.name,\n })),\n selected,\n };\n}\n\nexport async function getSelectedInstance(\n instanceName?: string,\n): Promise<StoredInstance> {\n if (instanceName) {\n return await getInstanceByName(instanceName);\n }\n const { selected } = await getAllInstances();\n if (!selected) {\n throw new Error(\n 'No instances found. Run \"auth login\" to authenticate first.',\n );\n }\n return selected;\n}\n\nexport async function getInstanceByName(name: string): Promise<StoredInstance> {\n const { instances } = await readAll();\n const instance = instances.find(i => i.name === name);\n if (!instance) {\n throw new NotFoundError(`Instance '${name}' not found`);\n }\n return instance;\n}\n\nexport async function upsertInstance(instance: StoredInstance): Promise<void> {\n const data = await readAll();\n const idx = data.instances.findIndex(i => i.name === instance.name);\n if (idx === -1) {\n data.instances.push(instance);\n } else {\n data.instances[idx] = instance;\n }\n await writeAll(data);\n}\n\nexport async function removeInstance(name: string): Promise<void> {\n const data = await readAll();\n const next = data.instances.filter(i => i.name !== name);\n if (next.length !== data.instances.length) {\n await writeAll({ instances: next });\n }\n}\n\nexport async function setSelectedInstance(name: string): Promise<void> {\n return withMetadataLock(async () => {\n const data = await readAll();\n let found = false;\n data.instances = data.instances.map(i => {\n if (i.name === name) {\n found = true;\n return { ...i, selected: true };\n }\n const { selected, ...rest } = i;\n return { ...rest, selected: false };\n });\n if (!found) {\n throw new Error(`Unknown instance '${name}'`);\n }\n await writeAll(data);\n });\n}\n\nexport async function withMetadataLock<T>(fn: () => Promise<T>): Promise<T> {\n const file = getMetadataFilePath();\n await fs.ensureDir(path.dirname(file));\n if (!(await fs.pathExists(file))) {\n await fs.writeFile(file, '', { encoding: 'utf8', mode: 0o600 });\n }\n const release = await lockfile.lock(file, {\n retries: { retries: 5, factor: 1.5, minTimeout: 100, maxTimeout: 1000 },\n });\n try {\n return await fn();\n } finally {\n await release();\n }\n}\n"],"names":["z","path","os","fs","YAML","NotFoundError","lockfile"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var name = "@backstage/cli-module-auth";
|
|
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-auth"
|
|
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-node": "workspace:*",
|
|
39
|
+
"@backstage/errors": "workspace:*",
|
|
40
|
+
cleye: "^2.3.0",
|
|
41
|
+
"cross-fetch": "^4.0.0",
|
|
42
|
+
"fs-extra": "^11.2.0",
|
|
43
|
+
glob: "^7.1.7",
|
|
44
|
+
inquirer: "^8.2.0",
|
|
45
|
+
"proper-lockfile": "^4.1.2",
|
|
46
|
+
yaml: "^2.0.0",
|
|
47
|
+
zod: "^3.25.76"
|
|
48
|
+
};
|
|
49
|
+
var devDependencies = {
|
|
50
|
+
"@backstage/backend-test-utils": "workspace:*",
|
|
51
|
+
"@backstage/cli": "workspace:*",
|
|
52
|
+
"@types/fs-extra": "^11.0.0",
|
|
53
|
+
"@types/proper-lockfile": "^4"
|
|
54
|
+
};
|
|
55
|
+
var optionalDependencies = {
|
|
56
|
+
keytar: "^7.9.0"
|
|
57
|
+
};
|
|
58
|
+
var bin = "bin/backstage-cli-module-auth";
|
|
59
|
+
var packageJson = {
|
|
60
|
+
name: name,
|
|
61
|
+
version: version,
|
|
62
|
+
description: description,
|
|
63
|
+
backstage: backstage,
|
|
64
|
+
publishConfig: publishConfig,
|
|
65
|
+
homepage: homepage,
|
|
66
|
+
repository: repository,
|
|
67
|
+
license: license,
|
|
68
|
+
main: main,
|
|
69
|
+
types: types,
|
|
70
|
+
files: files,
|
|
71
|
+
scripts: scripts,
|
|
72
|
+
dependencies: dependencies,
|
|
73
|
+
devDependencies: devDependencies,
|
|
74
|
+
optionalDependencies: optionalDependencies,
|
|
75
|
+
bin: bin
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.backstage = backstage;
|
|
79
|
+
exports.bin = bin;
|
|
80
|
+
exports.default = packageJson;
|
|
81
|
+
exports.dependencies = dependencies;
|
|
82
|
+
exports.description = description;
|
|
83
|
+
exports.devDependencies = devDependencies;
|
|
84
|
+
exports.files = files;
|
|
85
|
+
exports.homepage = homepage;
|
|
86
|
+
exports.license = license;
|
|
87
|
+
exports.main = main;
|
|
88
|
+
exports.name = name;
|
|
89
|
+
exports.optionalDependencies = optionalDependencies;
|
|
90
|
+
exports.publishConfig = publishConfig;
|
|
91
|
+
exports.repository = repository;
|
|
92
|
+
exports.scripts = scripts;
|
|
93
|
+
exports.types = types;
|
|
94
|
+
exports.version = version;
|
|
95
|
+
//# 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,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@backstage/cli-module-auth",
|
|
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-auth"
|
|
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-node": "0.0.0-nightly-20260317031259",
|
|
36
|
+
"@backstage/errors": "1.2.7",
|
|
37
|
+
"cleye": "^2.3.0",
|
|
38
|
+
"cross-fetch": "^4.0.0",
|
|
39
|
+
"fs-extra": "^11.2.0",
|
|
40
|
+
"glob": "^7.1.7",
|
|
41
|
+
"inquirer": "^8.2.0",
|
|
42
|
+
"proper-lockfile": "^4.1.2",
|
|
43
|
+
"yaml": "^2.0.0",
|
|
44
|
+
"zod": "^3.25.76"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@backstage/backend-test-utils": "0.0.0-nightly-20260317031259",
|
|
48
|
+
"@backstage/cli": "0.0.0-nightly-20260317031259",
|
|
49
|
+
"@types/fs-extra": "^11.0.0",
|
|
50
|
+
"@types/proper-lockfile": "^4"
|
|
51
|
+
},
|
|
52
|
+
"optionalDependencies": {
|
|
53
|
+
"keytar": "^7.9.0"
|
|
54
|
+
},
|
|
55
|
+
"bin": "bin/backstage-cli-module-auth",
|
|
56
|
+
"typesVersions": {
|
|
57
|
+
"*": {
|
|
58
|
+
"package.json": [
|
|
59
|
+
"package.json"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|