@backstage/repo-tools 0.10.0-next.0 → 0.10.0-next.2
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 +29 -0
- package/dist/{cjs/api-reports-B3Gt_Fej.cjs.js → commands/api-reports/api-extractor.cjs.js} +13 -103
- package/dist/commands/api-reports/api-reports.cjs.js +78 -0
- package/dist/commands/api-reports/generateTypeDeclarations.cjs.js +33 -0
- package/dist/commands/generate-catalog-info/codeowners.cjs.js +42 -0
- package/dist/{cjs/generate-catalog-info-DxKb-9Wh.cjs.js → commands/generate-catalog-info/generate-catalog-info.cjs.js} +22 -68
- package/dist/commands/generate-catalog-info/utils.cjs.js +30 -0
- package/dist/commands/index.cjs.js +159 -0
- package/dist/{cjs/knip-reports-028OuOct.cjs.js → commands/knip-reports/knip-extractor.cjs.js} +4 -40
- package/dist/commands/knip-reports/knip-reports.cjs.js +39 -0
- package/dist/{cjs/lint-legacy-backend-exports-CDxZ51l5.cjs.js → commands/lint-legacy-backend-exports/lint-legacy-backend-exports.cjs.js} +2 -4
- package/dist/{cjs/diff-zt06VUKR.cjs.js → commands/package/schema/openapi/diff.cjs.js} +4 -11
- package/dist/{cjs/fuzz-BGbvHwkB.cjs.js → commands/package/schema/openapi/fuzz.cjs.js} +4 -10
- package/dist/commands/package/schema/openapi/generate/client.cjs.js +86 -0
- package/dist/commands/package/schema/openapi/generate/index.cjs.js +27 -0
- package/dist/commands/package/schema/openapi/generate/server.cjs.js +56 -0
- package/dist/{cjs/init-wsIZc-Ys.cjs.js → commands/package/schema/openapi/init.cjs.js} +5 -11
- package/dist/commands/peer-deps/peer-deps.cjs.js +175 -0
- package/dist/commands/repo/schema/openapi/diff.cjs.js +81 -0
- package/dist/{cjs/fuzz-CRe0ewrD.cjs.js → commands/repo/schema/openapi/fuzz.cjs.js} +2 -4
- package/dist/{cjs/lint-DqMp4VN_.cjs.js → commands/repo/schema/openapi/lint.cjs.js} +3 -11
- package/dist/{cjs/test-5XE2uhir.cjs.js → commands/repo/schema/openapi/test.cjs.js} +6 -13
- package/dist/{cjs/verify-ARmbHOf8.cjs.js → commands/repo/schema/openapi/verify.cjs.js} +5 -10
- package/dist/{cjs/type-deps-DgJcEpV_.cjs.js → commands/type-deps/type-deps.cjs.js} +7 -2
- package/dist/{cjs/util-BhlP_S3V.cjs.js → commands/util.cjs.js} +1 -1
- package/dist/index.cjs.js +7 -186
- package/dist/lib/errors.cjs.js +42 -0
- package/dist/{cjs/exec-C0kCNRgF.cjs.js → lib/exec.cjs.js} +1 -1
- package/dist/{cjs/getPackageExportDetails-FkT40JIH.cjs.js → lib/getPackageExportDetails.cjs.js} +1 -1
- package/dist/{cjs/constants-Dwa51b6l.cjs.js → lib/openapi/constants.cjs.js} +1 -1
- package/dist/{cjs/helpers-ja_ryoK_.cjs.js → lib/openapi/helpers.cjs.js} +5 -3
- package/dist/{cjs/diff-DDkHPBWC.cjs.js → lib/openapi/optic/helpers.cjs.js} +2 -82
- package/dist/{cjs/paths-BvbxdT_S.cjs.js → lib/paths.cjs.js} +2 -1
- package/dist/{cjs/runner-DMC006Gs.cjs.js → lib/runner.cjs.js} +2 -2
- package/dist/package.json.cjs.js +6 -0
- package/package.json +10 -10
- package/dist/cjs/index-zZtTyIMm.cjs.js +0 -145
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
|
-
var paths = require('
|
|
5
|
-
var constants = require('./constants
|
|
4
|
+
var paths = require('../paths.cjs.js');
|
|
5
|
+
var constants = require('./constants.cjs.js');
|
|
6
6
|
var path = require('path');
|
|
7
7
|
|
|
8
8
|
const getPathToFile = async (directory, filename) => {
|
|
@@ -24,7 +24,9 @@ const getPathToCurrentOpenApiSpec = async () => {
|
|
|
24
24
|
return await assertExists(await getRelativePathToFile(constants.YAML_SCHEMA_PATH));
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
+
exports.assertExists = assertExists;
|
|
27
28
|
exports.getPathToCurrentOpenApiSpec = getPathToCurrentOpenApiSpec;
|
|
29
|
+
exports.getPathToFile = getPathToFile;
|
|
28
30
|
exports.getPathToOpenApiSpec = getPathToOpenApiSpec;
|
|
29
31
|
exports.getRelativePathToFile = getRelativePathToFile;
|
|
30
|
-
//# sourceMappingURL=helpers
|
|
32
|
+
//# sourceMappingURL=helpers.cjs.js.map
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var cliNode = require('@backstage/cli-node');
|
|
4
|
-
var exec = require('./exec-C0kCNRgF.cjs.js');
|
|
5
3
|
var openapiUtilities = require('@useoptic/openapi-utilities');
|
|
6
|
-
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
7
|
-
var constants = require('./constants-Dwa51b6l.cjs.js');
|
|
8
|
-
require('util');
|
|
9
|
-
require('child_process');
|
|
10
|
-
require('@backstage/cli-common');
|
|
11
|
-
require('minimatch');
|
|
12
|
-
require('path');
|
|
13
4
|
|
|
14
5
|
const getChecksLabel = (results, severity) => {
|
|
15
6
|
const totalChecks = results.length;
|
|
@@ -184,76 +175,5 @@ ${breakages.map(getBreakagesRow).join("\n")}
|
|
|
184
175
|
`;
|
|
185
176
|
};
|
|
186
177
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
190
|
-
async function command(opts) {
|
|
191
|
-
let packages = await cliNode.PackageGraph.listTargetPackages();
|
|
192
|
-
let since = "";
|
|
193
|
-
if (opts.since) {
|
|
194
|
-
const { stdout: sinceRaw } = await exec.exec("git", ["rev-parse", opts.since]);
|
|
195
|
-
since = sinceRaw.toString().trim();
|
|
196
|
-
const { stdout: changedFilesRaw } = await exec.exec("git", [
|
|
197
|
-
"diff",
|
|
198
|
-
"--name-only",
|
|
199
|
-
since
|
|
200
|
-
]);
|
|
201
|
-
const changedFiles = changedFilesRaw.toString().trim();
|
|
202
|
-
const changedOpenApiSpecs = changedFiles.split("\n").filter((e) => e.endsWith(constants.YAML_SCHEMA_PATH)).map((e) => paths.paths.resolveTarget(e));
|
|
203
|
-
packages = packages.filter(
|
|
204
|
-
(pkg) => changedOpenApiSpecs.some((e) => e.startsWith(`${pkg.dir}/`))
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
const checkablePackages = packages.filter((e) => e.packageJson.scripts?.diff);
|
|
208
|
-
try {
|
|
209
|
-
const outputs = {
|
|
210
|
-
completed: [],
|
|
211
|
-
failed: [],
|
|
212
|
-
noop: [],
|
|
213
|
-
warning: [],
|
|
214
|
-
severity: 0
|
|
215
|
-
};
|
|
216
|
-
for (const pkg of checkablePackages) {
|
|
217
|
-
const sinceCommands = since ? ["--since", since] : [];
|
|
218
|
-
const { stdout } = await exec.exec(
|
|
219
|
-
"yarn",
|
|
220
|
-
["diff", "--ignore", "--json", ...sinceCommands],
|
|
221
|
-
{
|
|
222
|
-
cwd: pkg.dir
|
|
223
|
-
}
|
|
224
|
-
);
|
|
225
|
-
const result = JSON.parse(stdout.toString());
|
|
226
|
-
outputs.completed.push(...result.completed ?? []);
|
|
227
|
-
outputs.failed.push(...result.failed ?? []);
|
|
228
|
-
outputs.noop.push(...result.noop ?? []);
|
|
229
|
-
}
|
|
230
|
-
for (const pkg of packages.filter((e) => !e.packageJson.scripts?.diff)) {
|
|
231
|
-
outputs.warning?.push({
|
|
232
|
-
apiName: `${pkg.dir}/`,
|
|
233
|
-
warning: "No diff script found in package.json"
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
outputs.completed.forEach(cleanUpApiName);
|
|
237
|
-
outputs.failed.forEach(cleanUpApiName);
|
|
238
|
-
outputs.noop.forEach(cleanUpApiName);
|
|
239
|
-
outputs.warning?.forEach(cleanUpApiName);
|
|
240
|
-
const { stdout: currentSha } = await exec.exec("git", ["rev-parse", "HEAD"]);
|
|
241
|
-
console.log(
|
|
242
|
-
generateCompareSummaryMarkdown(
|
|
243
|
-
{ sha: currentSha.toString().trim() },
|
|
244
|
-
outputs,
|
|
245
|
-
{ verbose: true }
|
|
246
|
-
)
|
|
247
|
-
);
|
|
248
|
-
const failed = outputs.failed.length > 0;
|
|
249
|
-
if (failed) {
|
|
250
|
-
throw new Error("Some checks failed");
|
|
251
|
-
}
|
|
252
|
-
} catch (err) {
|
|
253
|
-
console.error(err);
|
|
254
|
-
process.exit(1);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
exports.command = command;
|
|
259
|
-
//# sourceMappingURL=diff-DDkHPBWC.cjs.js.map
|
|
178
|
+
exports.generateCompareSummaryMarkdown = generateCompareSummaryMarkdown;
|
|
179
|
+
//# sourceMappingURL=helpers.cjs.js.map
|
|
@@ -44,6 +44,7 @@ function isChildPath(base, path$1) {
|
|
|
44
44
|
return !outsideBase && !differentDrive;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
exports.isChildPath = isChildPath;
|
|
47
48
|
exports.paths = paths;
|
|
48
49
|
exports.resolvePackagePaths = resolvePackagePaths;
|
|
49
|
-
//# sourceMappingURL=paths
|
|
50
|
+
//# sourceMappingURL=paths.cjs.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var paths = require('./paths
|
|
3
|
+
var paths = require('./paths.cjs.js');
|
|
4
4
|
var pLimit = require('p-limit');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
var portFinder = require('portfinder');
|
|
@@ -45,4 +45,4 @@ async function runner(paths$1, command, options) {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
exports.runner = runner;
|
|
48
|
-
//# sourceMappingURL=runner
|
|
48
|
+
//# sourceMappingURL=runner.cjs.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/repo-tools",
|
|
3
|
-
"version": "0.10.0-next.
|
|
3
|
+
"version": "0.10.0-next.2",
|
|
4
4
|
"description": "CLI for Backstage repo tooling ",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli"
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@apidevtools/swagger-parser": "^10.1.0",
|
|
45
45
|
"@apisyouwonthate/style-guide": "^1.4.0",
|
|
46
|
-
"@backstage/backend-plugin-api": "
|
|
47
|
-
"@backstage/catalog-model": "
|
|
48
|
-
"@backstage/cli-common": "
|
|
49
|
-
"@backstage/cli-node": "
|
|
50
|
-
"@backstage/config-loader": "
|
|
51
|
-
"@backstage/errors": "
|
|
46
|
+
"@backstage/backend-plugin-api": "1.0.1-next.1",
|
|
47
|
+
"@backstage/catalog-model": "1.7.0",
|
|
48
|
+
"@backstage/cli-common": "0.1.14",
|
|
49
|
+
"@backstage/cli-node": "0.2.9-next.0",
|
|
50
|
+
"@backstage/config-loader": "1.9.1",
|
|
51
|
+
"@backstage/errors": "1.2.4",
|
|
52
52
|
"@manypkg/get-packages": "^1.1.3",
|
|
53
53
|
"@microsoft/api-documenter": "^7.25.7",
|
|
54
54
|
"@microsoft/api-extractor": "^7.47.2",
|
|
@@ -77,9 +77,9 @@
|
|
|
77
77
|
"yaml-diff-patch": "^2.0.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@backstage/backend-test-utils": "
|
|
81
|
-
"@backstage/cli": "
|
|
82
|
-
"@backstage/types": "
|
|
80
|
+
"@backstage/backend-test-utils": "1.0.1-next.2",
|
|
81
|
+
"@backstage/cli": "0.28.0-next.2",
|
|
82
|
+
"@backstage/types": "1.1.1",
|
|
83
83
|
"@types/is-glob": "^4.0.2",
|
|
84
84
|
"@types/node": "^18.17.8",
|
|
85
85
|
"@types/prettier": "^2.0.0"
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chalk = require('chalk');
|
|
4
|
-
var path = require('path');
|
|
5
|
-
var constants = require('./constants-Dwa51b6l.cjs.js');
|
|
6
|
-
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
7
|
-
var fs = require('fs-extra');
|
|
8
|
-
var exec$1 = require('./exec-C0kCNRgF.cjs.js');
|
|
9
|
-
var backendPluginApi = require('@backstage/backend-plugin-api');
|
|
10
|
-
var helpers = require('./helpers-ja_ryoK_.cjs.js');
|
|
11
|
-
var YAML = require('js-yaml');
|
|
12
|
-
var util = require('util');
|
|
13
|
-
var child_process = require('child_process');
|
|
14
|
-
require('@backstage/cli-common');
|
|
15
|
-
require('@backstage/cli-node');
|
|
16
|
-
require('minimatch');
|
|
17
|
-
|
|
18
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
|
-
|
|
20
|
-
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
21
|
-
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
22
|
-
var YAML__default = /*#__PURE__*/_interopDefaultCompat(YAML);
|
|
23
|
-
|
|
24
|
-
async function generate$1(outputDirectory, clientAdditionalProperties) {
|
|
25
|
-
const resolvedOpenapiPath = await helpers.getPathToCurrentOpenApiSpec();
|
|
26
|
-
const resolvedOutputDirectory = paths.paths.resolveTargetRoot(
|
|
27
|
-
outputDirectory,
|
|
28
|
-
constants.OUTPUT_PATH
|
|
29
|
-
);
|
|
30
|
-
const additionalProperties = clientAdditionalProperties ? `--additional-properties=${clientAdditionalProperties}` : "";
|
|
31
|
-
fs.mkdirpSync(resolvedOutputDirectory);
|
|
32
|
-
await fs__default.default.mkdirp(resolvedOutputDirectory);
|
|
33
|
-
await fs__default.default.writeFile(
|
|
34
|
-
path.resolve(resolvedOutputDirectory, ".openapi-generator-ignore"),
|
|
35
|
-
constants.OPENAPI_IGNORE_FILES.join("\n")
|
|
36
|
-
);
|
|
37
|
-
await exec$1.exec(
|
|
38
|
-
"node",
|
|
39
|
-
[
|
|
40
|
-
backendPluginApi.resolvePackagePath("@openapitools/openapi-generator-cli", "main.js"),
|
|
41
|
-
"generate",
|
|
42
|
-
"-i",
|
|
43
|
-
resolvedOpenapiPath,
|
|
44
|
-
"-o",
|
|
45
|
-
resolvedOutputDirectory,
|
|
46
|
-
"-g",
|
|
47
|
-
"typescript",
|
|
48
|
-
"-c",
|
|
49
|
-
backendPluginApi.resolvePackagePath(
|
|
50
|
-
"@backstage/repo-tools",
|
|
51
|
-
"templates/typescript-backstage.yaml"
|
|
52
|
-
),
|
|
53
|
-
"--generator-key",
|
|
54
|
-
"v3.0",
|
|
55
|
-
additionalProperties
|
|
56
|
-
],
|
|
57
|
-
{
|
|
58
|
-
maxBuffer: Number.MAX_VALUE,
|
|
59
|
-
cwd: backendPluginApi.resolvePackagePath("@backstage/repo-tools"),
|
|
60
|
-
env: {
|
|
61
|
-
...process.env
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
);
|
|
65
|
-
await exec$1.exec(
|
|
66
|
-
`yarn backstage-cli package lint --fix ${resolvedOutputDirectory}`
|
|
67
|
-
);
|
|
68
|
-
const prettier = paths.paths.resolveTargetRoot("node_modules/.bin/prettier");
|
|
69
|
-
if (prettier) {
|
|
70
|
-
await exec$1.exec(`${prettier} --write ${resolvedOutputDirectory}`);
|
|
71
|
-
}
|
|
72
|
-
fs__default.default.removeSync(path.resolve(resolvedOutputDirectory, ".openapi-generator-ignore"));
|
|
73
|
-
fs__default.default.rmSync(path.resolve(resolvedOutputDirectory, ".openapi-generator"), {
|
|
74
|
-
recursive: true,
|
|
75
|
-
force: true
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
async function command$2(outputPackage, clientAdditionalProperties) {
|
|
79
|
-
try {
|
|
80
|
-
await generate$1(outputPackage, clientAdditionalProperties);
|
|
81
|
-
console.log(
|
|
82
|
-
chalk__default.default.green(`Generated client in ${outputPackage}/${constants.OUTPUT_PATH}`)
|
|
83
|
-
);
|
|
84
|
-
} catch (err) {
|
|
85
|
-
console.log();
|
|
86
|
-
console.log(chalk__default.default.red(`Client generation failed:`));
|
|
87
|
-
console.log(err);
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const exec = util.promisify(child_process.exec);
|
|
93
|
-
async function generate() {
|
|
94
|
-
const openapiPath = await helpers.getPathToCurrentOpenApiSpec();
|
|
95
|
-
const yaml = YAML__default.default.load(await fs__default.default.readFile(openapiPath, "utf8"));
|
|
96
|
-
const tsPath = paths.paths.resolveTarget(constants.TS_SCHEMA_PATH);
|
|
97
|
-
await fs__default.default.writeFile(
|
|
98
|
-
tsPath,
|
|
99
|
-
`//
|
|
100
|
-
|
|
101
|
-
// ******************************************************************
|
|
102
|
-
// * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. *
|
|
103
|
-
// ******************************************************************
|
|
104
|
-
import {createValidatedOpenApiRouter} from '@backstage/backend-openapi-utils';
|
|
105
|
-
export const spec = ${JSON.stringify(yaml, null, 2)} as const;
|
|
106
|
-
export const createOpenApiRouter = async (
|
|
107
|
-
options?: Parameters<typeof createValidatedOpenApiRouter>['1'],
|
|
108
|
-
) => createValidatedOpenApiRouter<typeof spec>(spec, options);
|
|
109
|
-
`
|
|
110
|
-
);
|
|
111
|
-
await exec(`yarn backstage-cli package lint --fix ${tsPath}`);
|
|
112
|
-
if (await paths.paths.resolveTargetRoot("node_modules/.bin/prettier")) {
|
|
113
|
-
await exec(`yarn prettier --write ${tsPath}`, {
|
|
114
|
-
cwd: paths.paths.targetRoot
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
async function command$1() {
|
|
119
|
-
try {
|
|
120
|
-
await generate();
|
|
121
|
-
console.log(chalk__default.default.green("Generated all files."));
|
|
122
|
-
} catch (err) {
|
|
123
|
-
console.log(chalk__default.default.red(`OpenAPI server stub generation failed.`));
|
|
124
|
-
console.log(err.message);
|
|
125
|
-
process.exit(1);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
async function command(opts) {
|
|
130
|
-
if (!opts.clientPackage && !opts.server) {
|
|
131
|
-
console.log(
|
|
132
|
-
chalk__default.default.red("Either --client-package or --server must be defined.")
|
|
133
|
-
);
|
|
134
|
-
process.exit(1);
|
|
135
|
-
}
|
|
136
|
-
if (opts.clientPackage) {
|
|
137
|
-
await command$2(opts.clientPackage, opts.clientAdditionalProperties);
|
|
138
|
-
}
|
|
139
|
-
if (opts.server) {
|
|
140
|
-
await command$1();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
exports.command = command;
|
|
145
|
-
//# sourceMappingURL=index-zZtTyIMm.cjs.js.map
|