@backstage/repo-tools 0.7.0 → 0.7.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 +22 -0
- package/dist/cjs/{api-reports-6fbf90c8.cjs.js → api-reports-BILnGZ_-.cjs.js} +25 -25
- package/dist/cjs/{entryPoints-c9b88245.cjs.js → entryPoints-BYUBMQoL.cjs.js} +1 -1
- package/dist/cjs/{exec-7bf444eb.cjs.js → exec-d7-AweRf.cjs.js} +1 -1
- package/dist/cjs/{generate-catalog-info-e7071c1c.cjs.js → generate-catalog-info-CwsIGc45.cjs.js} +13 -13
- package/dist/cjs/{helpers-712dfada.cjs.js → helpers-Dd7PBM8s.cjs.js} +2 -2
- package/dist/cjs/{index-c6ffc4f4.cjs.js → index-CM0bJMpv.cjs.js} +19 -19
- package/dist/cjs/{init-3d29e55d.cjs.js → init-q37Rum6N.cjs.js} +11 -11
- package/dist/cjs/{knip-reports-f68aec50.cjs.js → knip-reports-BbrRgCsA.cjs.js} +13 -13
- package/dist/cjs/{lint-5433166f.cjs.js → lint-BNE-BGv5.cjs.js} +12 -12
- package/dist/cjs/{paths-9ab9b8a8.cjs.js → paths-BvbxdT_S.cjs.js} +1 -1
- package/dist/cjs/{runner-d5b73286.cjs.js → runner-CRAhuK8A.cjs.js} +8 -8
- package/dist/cjs/{test-df73bb76.cjs.js → test-Bjep-DJ3.cjs.js} +11 -11
- package/dist/cjs/{type-deps-5eacd931.cjs.js → type-deps-D_eqfKIv.cjs.js} +16 -16
- package/dist/cjs/{util-bfc74a41.cjs.js → util-BhlP_S3V.cjs.js} +5 -5
- package/dist/cjs/verify-BX1iUi_q.cjs.js +68 -0
- package/dist/index.cjs.js +15 -15
- package/package.json +4 -4
- package/dist/cjs/verify-dad6101f.cjs.js +0 -86
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @backstage/repo-tools
|
|
2
2
|
|
|
3
|
+
## 0.7.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @backstage/backend-common@0.21.6
|
|
9
|
+
- @backstage/catalog-model@1.4.5
|
|
10
|
+
- @backstage/cli-common@0.1.13
|
|
11
|
+
- @backstage/cli-node@0.2.4
|
|
12
|
+
- @backstage/errors@1.2.4
|
|
13
|
+
|
|
14
|
+
## 0.7.1
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
- @backstage/backend-common@0.21.5
|
|
20
|
+
- @backstage/catalog-model@1.4.5
|
|
21
|
+
- @backstage/cli-common@0.1.13
|
|
22
|
+
- @backstage/cli-node@0.2.4
|
|
23
|
+
- @backstage/errors@1.2.4
|
|
24
|
+
|
|
3
25
|
## 0.7.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
|
@@ -12,19 +12,19 @@ var DocTable = require('@microsoft/api-documenter/lib/nodes/DocTable');
|
|
|
12
12
|
var DocTableRow = require('@microsoft/api-documenter/lib/nodes/DocTableRow');
|
|
13
13
|
var DocHeading = require('@microsoft/api-documenter/lib/nodes/DocHeading');
|
|
14
14
|
var CustomMarkdownEmitter = require('@microsoft/api-documenter/lib/markdown/CustomMarkdownEmitter');
|
|
15
|
-
var paths = require('./paths-
|
|
15
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
16
16
|
var minimatch = require('minimatch');
|
|
17
|
-
var entryPoints = require('./entryPoints-
|
|
18
|
-
var util = require('./util-
|
|
17
|
+
var entryPoints = require('./entryPoints-BYUBMQoL.cjs.js');
|
|
18
|
+
var util = require('./util-BhlP_S3V.cjs.js');
|
|
19
19
|
var child_process = require('child_process');
|
|
20
20
|
require('@backstage/cli-common');
|
|
21
21
|
require('@backstage/cli-node');
|
|
22
22
|
require('os');
|
|
23
23
|
require('p-limit');
|
|
24
24
|
|
|
25
|
-
function
|
|
25
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
26
26
|
|
|
27
|
-
var fs__default = /*#__PURE__*/
|
|
27
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
28
28
|
|
|
29
29
|
var __defProp = Object.defineProperty;
|
|
30
30
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -147,7 +147,7 @@ ApiReportGenerator.generateReviewFileContent = function decoratedGenerateReviewF
|
|
|
147
147
|
async function createTemporaryTsConfig(includedPackageDirs) {
|
|
148
148
|
const path$1 = paths.paths.resolveTargetRoot("tsconfig.tmp.json");
|
|
149
149
|
process.once("exit", () => {
|
|
150
|
-
fs__default
|
|
150
|
+
fs__default.default.removeSync(path$1);
|
|
151
151
|
});
|
|
152
152
|
let assetTypeFile = [];
|
|
153
153
|
try {
|
|
@@ -156,7 +156,7 @@ async function createTemporaryTsConfig(includedPackageDirs) {
|
|
|
156
156
|
];
|
|
157
157
|
} catch {
|
|
158
158
|
}
|
|
159
|
-
await fs__default
|
|
159
|
+
await fs__default.default.writeJson(path$1, {
|
|
160
160
|
extends: "./tsconfig.json",
|
|
161
161
|
include: [
|
|
162
162
|
// These two contain global definitions that are needed for stable API report generation
|
|
@@ -170,7 +170,7 @@ async function createTemporaryTsConfig(includedPackageDirs) {
|
|
|
170
170
|
}
|
|
171
171
|
async function countApiReportWarnings(reportPath) {
|
|
172
172
|
try {
|
|
173
|
-
const content = await fs__default
|
|
173
|
+
const content = await fs__default.default.readFile(reportPath, "utf8");
|
|
174
174
|
const lines = content.split("\n");
|
|
175
175
|
const lineWarnings = lines.filter(
|
|
176
176
|
(line) => line.includes("// Warning:")
|
|
@@ -223,7 +223,7 @@ async function findPackageEntryPoints(packageDirs) {
|
|
|
223
223
|
return Promise.all(
|
|
224
224
|
packageDirs.map(async (packageDir) => {
|
|
225
225
|
var _a, _b;
|
|
226
|
-
const pkg = await fs__default
|
|
226
|
+
const pkg = await fs__default.default.readJson(
|
|
227
227
|
paths.paths.resolveTargetRoot(packageDir, "package.json")
|
|
228
228
|
);
|
|
229
229
|
return (_b = (_a = entryPoints.getPackageExportNames(pkg)) == null ? void 0 : _a.map((name) => ({ packageDir, name }))) != null ? _b : {
|
|
@@ -242,7 +242,7 @@ async function runApiExtraction({
|
|
|
242
242
|
omitMessages = [],
|
|
243
243
|
validateReleaseTags = false
|
|
244
244
|
}) {
|
|
245
|
-
await fs__default
|
|
245
|
+
await fs__default.default.remove(outputDir);
|
|
246
246
|
const packageEntryPoints = await findPackageEntryPoints(packageDirs);
|
|
247
247
|
const entryPoints = packageEntryPoints.map(({ packageDir, name }) => {
|
|
248
248
|
return paths.paths.resolveTargetRoot(
|
|
@@ -270,7 +270,7 @@ async function runApiExtraction({
|
|
|
270
270
|
);
|
|
271
271
|
const names = group.map((ep) => ep.name);
|
|
272
272
|
const remainingReportFiles = new Set(
|
|
273
|
-
fs__default
|
|
273
|
+
fs__default.default.readdirSync(projectFolder).filter(
|
|
274
274
|
(filename) => filename.match(/^(.+)-api-report\.md$/) || filename.match(/^api-report(-.+)?\.md$/)
|
|
275
275
|
)
|
|
276
276
|
);
|
|
@@ -377,9 +377,9 @@ async function runApiExtraction({
|
|
|
377
377
|
},
|
|
378
378
|
compilerState
|
|
379
379
|
});
|
|
380
|
-
if (validateReleaseTags && fs__default
|
|
380
|
+
if (validateReleaseTags && fs__default.default.pathExistsSync(extractorConfig.reportFilePath)) {
|
|
381
381
|
if (["index", "alpha", "beta"].includes(name)) {
|
|
382
|
-
const report = await fs__default
|
|
382
|
+
const report = await fs__default.default.readFile(
|
|
383
383
|
extractorConfig.reportFilePath,
|
|
384
384
|
"utf8"
|
|
385
385
|
);
|
|
@@ -411,7 +411,7 @@ async function runApiExtraction({
|
|
|
411
411
|
)}, with the following content:`
|
|
412
412
|
);
|
|
413
413
|
console.log("");
|
|
414
|
-
const content = await fs__default
|
|
414
|
+
const content = await fs__default.default.readFile(conflictingFile, "utf8");
|
|
415
415
|
console.log(content);
|
|
416
416
|
logApiReportInstructions();
|
|
417
417
|
}
|
|
@@ -443,7 +443,7 @@ async function runApiExtraction({
|
|
|
443
443
|
if (remainingReportFiles.size > 0) {
|
|
444
444
|
if (isLocalBuild) {
|
|
445
445
|
for (const f of remainingReportFiles) {
|
|
446
|
-
fs__default
|
|
446
|
+
fs__default.default.rmSync(path.resolve(projectFolder, f));
|
|
447
447
|
console.log(`Deleted deprecated API report ${f}`);
|
|
448
448
|
}
|
|
449
449
|
} else {
|
|
@@ -640,9 +640,9 @@ async function buildDocs({
|
|
|
640
640
|
}) {
|
|
641
641
|
const parseFile = async (filename) => {
|
|
642
642
|
console.log(`Reading ${filename}`);
|
|
643
|
-
return fs__default
|
|
643
|
+
return fs__default.default.readJson(path.resolve(inputDir, filename));
|
|
644
644
|
};
|
|
645
|
-
const filenames = await fs__default
|
|
645
|
+
const filenames = await fs__default.default.readdir(inputDir);
|
|
646
646
|
const serializedPackages = await Promise.all(
|
|
647
647
|
filenames.filter((filename) => filename.match(/\.api\.json$/i)).map(parseFile)
|
|
648
648
|
);
|
|
@@ -887,8 +887,8 @@ async function buildDocs({
|
|
|
887
887
|
},
|
|
888
888
|
outputFolder: outputDir
|
|
889
889
|
});
|
|
890
|
-
await fs__default
|
|
891
|
-
await fs__default
|
|
890
|
+
await fs__default.default.remove(outputDir);
|
|
891
|
+
await fs__default.default.ensureDir(outputDir);
|
|
892
892
|
documenter.generateFiles();
|
|
893
893
|
}
|
|
894
894
|
async function categorizePackageDirs(packageDirs) {
|
|
@@ -903,7 +903,7 @@ async function categorizePackageDirs(packageDirs) {
|
|
|
903
903
|
if (!dir) {
|
|
904
904
|
return;
|
|
905
905
|
}
|
|
906
|
-
const pkgJson = await fs__default
|
|
906
|
+
const pkgJson = await fs__default.default.readJson(paths.paths.resolveTargetRoot(dir, "package.json")).catch((error) => {
|
|
907
907
|
if (error.code === "ENOENT") {
|
|
908
908
|
return void 0;
|
|
909
909
|
}
|
|
@@ -1016,7 +1016,7 @@ async function runCliExtraction({
|
|
|
1016
1016
|
for (const packageDir of packageDirs) {
|
|
1017
1017
|
console.log(`## Processing ${packageDir}`);
|
|
1018
1018
|
const fullDir = paths.paths.resolveTargetRoot(packageDir);
|
|
1019
|
-
const pkgJson = await fs__default
|
|
1019
|
+
const pkgJson = await fs__default.default.readJson(path.resolve(fullDir, "package.json"));
|
|
1020
1020
|
if (!pkgJson.bin) {
|
|
1021
1021
|
throw new Error(`CLI Package in ${packageDir} has no bin field`);
|
|
1022
1022
|
}
|
|
@@ -1034,7 +1034,7 @@ async function runCliExtraction({
|
|
|
1034
1034
|
}
|
|
1035
1035
|
const report = generateCliReport(pkgJson.name, models);
|
|
1036
1036
|
const reportPath = path.resolve(fullDir, "cli-report.md");
|
|
1037
|
-
const existingReport = await fs__default
|
|
1037
|
+
const existingReport = await fs__default.default.readFile(reportPath, "utf8").catch((error) => {
|
|
1038
1038
|
if (error.code === "ENOENT") {
|
|
1039
1039
|
return void 0;
|
|
1040
1040
|
}
|
|
@@ -1043,7 +1043,7 @@ async function runCliExtraction({
|
|
|
1043
1043
|
if (existingReport !== report) {
|
|
1044
1044
|
if (isLocalBuild) {
|
|
1045
1045
|
console.warn(`CLI report changed for ${packageDir}`);
|
|
1046
|
-
await fs__default
|
|
1046
|
+
await fs__default.default.writeFile(reportPath, report);
|
|
1047
1047
|
} else {
|
|
1048
1048
|
logApiReportInstructions();
|
|
1049
1049
|
if (existingReport) {
|
|
@@ -1065,7 +1065,7 @@ async function runCliExtraction({
|
|
|
1065
1065
|
}
|
|
1066
1066
|
|
|
1067
1067
|
async function generateTypeDeclarations(tsconfigFilePath) {
|
|
1068
|
-
await fs__default
|
|
1068
|
+
await fs__default.default.remove(paths.paths.resolveTargetRoot("dist-types"));
|
|
1069
1069
|
const { status } = child_process.spawnSync(
|
|
1070
1070
|
"yarn",
|
|
1071
1071
|
[
|
|
@@ -1156,4 +1156,4 @@ function parseArrayOption(value) {
|
|
|
1156
1156
|
}
|
|
1157
1157
|
|
|
1158
1158
|
exports.buildApiReports = buildApiReports;
|
|
1159
|
-
//# sourceMappingURL=api-reports-
|
|
1159
|
+
//# sourceMappingURL=api-reports-BILnGZ_-.cjs.js.map
|
package/dist/cjs/{generate-catalog-info-e7071c1c.cjs.js → generate-catalog-info-CwsIGc45.cjs.js}
RENAMED
|
@@ -10,15 +10,15 @@ var codeownersUtils = require('codeowners-utils');
|
|
|
10
10
|
var fs = require('fs');
|
|
11
11
|
var util = require('util');
|
|
12
12
|
|
|
13
|
-
function
|
|
13
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
14
|
|
|
15
|
-
var YAML__default = /*#__PURE__*/
|
|
16
|
-
var pLimit__default = /*#__PURE__*/
|
|
17
|
-
var chalk__default = /*#__PURE__*/
|
|
18
|
-
var fs__default = /*#__PURE__*/
|
|
15
|
+
var YAML__default = /*#__PURE__*/_interopDefaultCompat(YAML);
|
|
16
|
+
var pLimit__default = /*#__PURE__*/_interopDefaultCompat(pLimit);
|
|
17
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
18
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
19
19
|
|
|
20
|
-
const readFile = util.promisify(fs__default
|
|
21
|
-
const writeFile = util.promisify(fs__default
|
|
20
|
+
const readFile = util.promisify(fs__default.default.readFile);
|
|
21
|
+
const writeFile = util.promisify(fs__default.default.writeFile);
|
|
22
22
|
function isBackstagePackage(packageJson) {
|
|
23
23
|
var _a;
|
|
24
24
|
return packageJson && packageJson.hasOwnProperty("backstage") && ((_a = packageJson == null ? void 0 : packageJson.backstage) == null ? void 0 : _a.role) !== "undefined";
|
|
@@ -68,7 +68,7 @@ var generateCatalogInfo = async (opts) => {
|
|
|
68
68
|
const { dryRun = false, ci = false } = opts;
|
|
69
69
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
70
70
|
const codeowners = await loadCodeowners();
|
|
71
|
-
const limit = pLimit__default
|
|
71
|
+
const limit = pLimit__default.default(10);
|
|
72
72
|
const isDryRun = ci ? true : dryRun;
|
|
73
73
|
const checkForChanges = ci;
|
|
74
74
|
const results = await Promise.allSettled(
|
|
@@ -106,7 +106,7 @@ var generateCatalogInfo = async (opts) => {
|
|
|
106
106
|
const rejects = results.filter(isRejected);
|
|
107
107
|
if (rejects.length > 0) {
|
|
108
108
|
console.error(
|
|
109
|
-
chalk__default
|
|
109
|
+
chalk__default.default.red("Unable to create or fix catalog-info.yaml files\n")
|
|
110
110
|
);
|
|
111
111
|
rejects.forEach((reject) => console.error(` ${reject.reason}`));
|
|
112
112
|
console.error();
|
|
@@ -134,7 +134,7 @@ async function createCatalogInfoYaml(options) {
|
|
|
134
134
|
if (dryRun) {
|
|
135
135
|
console.error(instruction);
|
|
136
136
|
} else {
|
|
137
|
-
await writeFile(yamlPath, YAML__default
|
|
137
|
+
await writeFile(yamlPath, YAML__default.default.dump(entity));
|
|
138
138
|
}
|
|
139
139
|
return instruction;
|
|
140
140
|
}
|
|
@@ -148,7 +148,7 @@ async function fixCatalogInfoYaml(options) {
|
|
|
148
148
|
const safeName = safeEntityName(packageJson.name);
|
|
149
149
|
let yamlJson;
|
|
150
150
|
try {
|
|
151
|
-
yamlJson = YAML__default
|
|
151
|
+
yamlJson = YAML__default.default.load(yamlString);
|
|
152
152
|
} catch (e) {
|
|
153
153
|
throw new Error(`Unable to parse ${path.relative(".", yamlPath)}: ${e}`);
|
|
154
154
|
}
|
|
@@ -216,5 +216,5 @@ function createOrMergeEntity(packageJson, owner, existingEntity = {}) {
|
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
exports
|
|
220
|
-
//# sourceMappingURL=generate-catalog-info-
|
|
219
|
+
exports.default = generateCatalogInfo;
|
|
220
|
+
//# sourceMappingURL=generate-catalog-info-CwsIGc45.cjs.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
|
-
var paths = require('./paths-
|
|
4
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
|
|
7
7
|
const YAML_SCHEMA_PATH = "src/schema/openapi.yaml";
|
|
@@ -67,4 +67,4 @@ exports.YAML_SCHEMA_PATH = YAML_SCHEMA_PATH;
|
|
|
67
67
|
exports.getPathToCurrentOpenApiSpec = getPathToCurrentOpenApiSpec;
|
|
68
68
|
exports.getPathToOpenApiSpec = getPathToOpenApiSpec;
|
|
69
69
|
exports.getRelativePathToFile = getRelativePathToFile;
|
|
70
|
-
//# sourceMappingURL=helpers-
|
|
70
|
+
//# sourceMappingURL=helpers-Dd7PBM8s.cjs.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var path = require('path');
|
|
5
|
-
var helpers = require('./helpers-
|
|
6
|
-
var paths = require('./paths-
|
|
5
|
+
var helpers = require('./helpers-Dd7PBM8s.cjs.js');
|
|
6
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
7
7
|
var fs = require('fs-extra');
|
|
8
|
-
var exec$1 = require('./exec-
|
|
8
|
+
var exec$1 = require('./exec-d7-AweRf.cjs.js');
|
|
9
9
|
var backendCommon = require('@backstage/backend-common');
|
|
10
10
|
var YAML = require('js-yaml');
|
|
11
11
|
var util = require('util');
|
|
@@ -14,11 +14,11 @@ require('@backstage/cli-common');
|
|
|
14
14
|
require('@backstage/cli-node');
|
|
15
15
|
require('minimatch');
|
|
16
16
|
|
|
17
|
-
function
|
|
17
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
18
18
|
|
|
19
|
-
var chalk__default = /*#__PURE__*/
|
|
20
|
-
var fs__default = /*#__PURE__*/
|
|
21
|
-
var YAML__default = /*#__PURE__*/
|
|
19
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
20
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
21
|
+
var YAML__default = /*#__PURE__*/_interopDefaultCompat(YAML);
|
|
22
22
|
|
|
23
23
|
async function generate$1(outputDirectory) {
|
|
24
24
|
const resolvedOpenapiPath = await helpers.getPathToCurrentOpenApiSpec();
|
|
@@ -27,8 +27,8 @@ async function generate$1(outputDirectory) {
|
|
|
27
27
|
helpers.OUTPUT_PATH
|
|
28
28
|
);
|
|
29
29
|
fs.mkdirpSync(resolvedOutputDirectory);
|
|
30
|
-
await fs__default
|
|
31
|
-
await fs__default
|
|
30
|
+
await fs__default.default.mkdirp(resolvedOutputDirectory);
|
|
31
|
+
await fs__default.default.writeFile(
|
|
32
32
|
path.resolve(resolvedOutputDirectory, ".openapi-generator-ignore"),
|
|
33
33
|
helpers.OPENAPI_IGNORE_FILES.join("\n")
|
|
34
34
|
);
|
|
@@ -66,8 +66,8 @@ async function generate$1(outputDirectory) {
|
|
|
66
66
|
if (prettier) {
|
|
67
67
|
await exec$1.exec(`${prettier} --write ${resolvedOutputDirectory}`);
|
|
68
68
|
}
|
|
69
|
-
fs__default
|
|
70
|
-
fs__default
|
|
69
|
+
fs__default.default.removeSync(path.resolve(resolvedOutputDirectory, ".openapi-generator-ignore"));
|
|
70
|
+
fs__default.default.rmSync(path.resolve(resolvedOutputDirectory, ".openapi-generator"), {
|
|
71
71
|
recursive: true,
|
|
72
72
|
force: true
|
|
73
73
|
});
|
|
@@ -76,11 +76,11 @@ async function command$2(outputPackage) {
|
|
|
76
76
|
try {
|
|
77
77
|
await generate$1(outputPackage);
|
|
78
78
|
console.log(
|
|
79
|
-
chalk__default
|
|
79
|
+
chalk__default.default.green(`Generated client in ${outputPackage}/${helpers.OUTPUT_PATH}`)
|
|
80
80
|
);
|
|
81
81
|
} catch (err) {
|
|
82
82
|
console.log();
|
|
83
|
-
console.log(chalk__default
|
|
83
|
+
console.log(chalk__default.default.red(`Client generation failed:`));
|
|
84
84
|
console.log(err);
|
|
85
85
|
process.exit(1);
|
|
86
86
|
}
|
|
@@ -89,9 +89,9 @@ async function command$2(outputPackage) {
|
|
|
89
89
|
const exec = util.promisify(child_process.exec);
|
|
90
90
|
async function generate() {
|
|
91
91
|
const openapiPath = await helpers.getPathToCurrentOpenApiSpec();
|
|
92
|
-
const yaml = YAML__default
|
|
92
|
+
const yaml = YAML__default.default.load(await fs__default.default.readFile(openapiPath, "utf8"));
|
|
93
93
|
const tsPath = paths.paths.resolveTarget(helpers.TS_SCHEMA_PATH);
|
|
94
|
-
await fs__default
|
|
94
|
+
await fs__default.default.writeFile(
|
|
95
95
|
tsPath,
|
|
96
96
|
`//
|
|
97
97
|
|
|
@@ -115,9 +115,9 @@ export const createOpenApiRouter = async (
|
|
|
115
115
|
async function command$1() {
|
|
116
116
|
try {
|
|
117
117
|
await generate();
|
|
118
|
-
console.log(chalk__default
|
|
118
|
+
console.log(chalk__default.default.green("Generated all files."));
|
|
119
119
|
} catch (err) {
|
|
120
|
-
console.log(chalk__default
|
|
120
|
+
console.log(chalk__default.default.red(`OpenAPI server stub generation failed.`));
|
|
121
121
|
console.log(err.message);
|
|
122
122
|
process.exit(1);
|
|
123
123
|
}
|
|
@@ -126,7 +126,7 @@ async function command$1() {
|
|
|
126
126
|
async function command(opts) {
|
|
127
127
|
if (!opts.clientPackage && !opts.server) {
|
|
128
128
|
console.log(
|
|
129
|
-
chalk__default
|
|
129
|
+
chalk__default.default.red("Either --client-package or --server must be defined.")
|
|
130
130
|
);
|
|
131
131
|
process.exit(1);
|
|
132
132
|
}
|
|
@@ -139,4 +139,4 @@ async function command(opts) {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
exports.command = command;
|
|
142
|
-
//# sourceMappingURL=index-
|
|
142
|
+
//# sourceMappingURL=index-CM0bJMpv.cjs.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
|
-
var helpers = require('./helpers-
|
|
5
|
-
var paths = require('./paths-
|
|
4
|
+
var helpers = require('./helpers-Dd7PBM8s.cjs.js');
|
|
5
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
6
6
|
var chalk = require('chalk');
|
|
7
|
-
var exec = require('./exec-
|
|
7
|
+
var exec = require('./exec-d7-AweRf.cjs.js');
|
|
8
8
|
require('path');
|
|
9
9
|
require('@backstage/cli-common');
|
|
10
10
|
require('@backstage/cli-node');
|
|
@@ -12,10 +12,10 @@ require('minimatch');
|
|
|
12
12
|
require('util');
|
|
13
13
|
require('child_process');
|
|
14
14
|
|
|
15
|
-
function
|
|
15
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
16
16
|
|
|
17
|
-
var fs__default = /*#__PURE__*/
|
|
18
|
-
var chalk__default = /*#__PURE__*/
|
|
17
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
18
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
19
19
|
|
|
20
20
|
const ROUTER_TEST_PATHS = [
|
|
21
21
|
"src/service/router.test.ts",
|
|
@@ -30,10 +30,10 @@ async function init() {
|
|
|
30
30
|
);
|
|
31
31
|
}
|
|
32
32
|
const opticConfigFilePath = await helpers.getRelativePathToFile("optic.yml");
|
|
33
|
-
if (await fs__default
|
|
33
|
+
if (await fs__default.default.pathExists(opticConfigFilePath)) {
|
|
34
34
|
throw new Error(`This directory already has an optic.yml file. Exiting.`);
|
|
35
35
|
}
|
|
36
|
-
await fs__default
|
|
36
|
+
await fs__default.default.writeFile(
|
|
37
37
|
opticConfigFilePath,
|
|
38
38
|
`ruleset:
|
|
39
39
|
- breaking-changes
|
|
@@ -61,13 +61,13 @@ capture:
|
|
|
61
61
|
async function singleCommand() {
|
|
62
62
|
try {
|
|
63
63
|
await init();
|
|
64
|
-
console.log(chalk__default
|
|
64
|
+
console.log(chalk__default.default.green(`Successfully configured.`));
|
|
65
65
|
} catch (err) {
|
|
66
|
-
console.log(chalk__default
|
|
66
|
+
console.log(chalk__default.default.red(`OpenAPI tooling initialization failed.`));
|
|
67
67
|
console.log(err.message);
|
|
68
68
|
process.exit(1);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
exports.singleCommand = singleCommand;
|
|
73
|
-
//# sourceMappingURL=init-
|
|
73
|
+
//# sourceMappingURL=init-q37Rum6N.cjs.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var paths = require('./paths-
|
|
3
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
4
4
|
var pLimit = require('p-limit');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var path = require('path');
|
|
7
7
|
var fs = require('fs-extra');
|
|
8
|
-
var util = require('./util-
|
|
8
|
+
var util = require('./util-BhlP_S3V.cjs.js');
|
|
9
9
|
require('@backstage/cli-common');
|
|
10
10
|
require('@backstage/cli-node');
|
|
11
11
|
require('minimatch');
|
|
12
12
|
require('child_process');
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
15
15
|
|
|
16
|
-
var pLimit__default = /*#__PURE__*/
|
|
17
|
-
var os__default = /*#__PURE__*/
|
|
18
|
-
var fs__default = /*#__PURE__*/
|
|
16
|
+
var pLimit__default = /*#__PURE__*/_interopDefaultCompat(pLimit);
|
|
17
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
18
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
19
19
|
|
|
20
20
|
const ignoredPackages = ["packages/techdocs-cli-embedded-app"];
|
|
21
21
|
function logKnipReportInstructions() {
|
|
@@ -62,14 +62,14 @@ async function generateKnipConfig({ packageDir }) {
|
|
|
62
62
|
// this uses `declare module` in .d.ts so is implicitly used whenever extensions are needed
|
|
63
63
|
]
|
|
64
64
|
};
|
|
65
|
-
await fs__default
|
|
65
|
+
await fs__default.default.writeFile(
|
|
66
66
|
`${packageDir}/knip.json`,
|
|
67
67
|
JSON.stringify(knipConfig, null, 2)
|
|
68
68
|
);
|
|
69
69
|
}
|
|
70
70
|
function cleanKnipConfig({ packageDir }) {
|
|
71
|
-
if (fs__default
|
|
72
|
-
fs__default
|
|
71
|
+
if (fs__default.default.existsSync(`${packageDir}/knip.json`)) {
|
|
72
|
+
fs__default.default.rmSync(`${packageDir}/knip.json`);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
async function handlePackage({
|
|
@@ -100,7 +100,7 @@ async function handlePackage({
|
|
|
100
100
|
"--reporter markdown"
|
|
101
101
|
);
|
|
102
102
|
cleanKnipConfig({ packageDir: fullDir });
|
|
103
|
-
const existingReport = await fs__default
|
|
103
|
+
const existingReport = await fs__default.default.readFile(reportPath, "utf8").catch((error) => {
|
|
104
104
|
if (error.code === "ENOENT") {
|
|
105
105
|
return void 0;
|
|
106
106
|
}
|
|
@@ -109,7 +109,7 @@ async function handlePackage({
|
|
|
109
109
|
if (existingReport !== report) {
|
|
110
110
|
if (isLocalBuild) {
|
|
111
111
|
console.warn(`Knip report changed for ${packageDir}`);
|
|
112
|
-
await fs__default
|
|
112
|
+
await fs__default.default.writeFile(reportPath, report);
|
|
113
113
|
} else {
|
|
114
114
|
logKnipReportInstructions();
|
|
115
115
|
if (existingReport) {
|
|
@@ -133,7 +133,7 @@ async function runKnipReports({
|
|
|
133
133
|
isLocalBuild
|
|
134
134
|
}) {
|
|
135
135
|
const knipDir = paths.paths.resolveTargetRoot("./node_modules/knip/bin/");
|
|
136
|
-
const limiter = pLimit__default
|
|
136
|
+
const limiter = pLimit__default.default(os__default.default.cpus().length);
|
|
137
137
|
try {
|
|
138
138
|
await Promise.all(
|
|
139
139
|
packageDirs.map(
|
|
@@ -187,4 +187,4 @@ const buildKnipReports = async (paths$1 = [], opts) => {
|
|
|
187
187
|
};
|
|
188
188
|
|
|
189
189
|
exports.buildKnipReports = buildKnipReports;
|
|
190
|
-
//# sourceMappingURL=knip-reports-
|
|
190
|
+
//# sourceMappingURL=knip-reports-BbrRgCsA.cjs.js.map
|
|
@@ -5,12 +5,12 @@ var spectralParsers = require('@stoplight/spectral-parsers');
|
|
|
5
5
|
var ruleset = require('@apisyouwonthate/style-guide');
|
|
6
6
|
var fs = require('fs-extra');
|
|
7
7
|
var chalk = require('chalk');
|
|
8
|
-
var runner = require('./runner-
|
|
8
|
+
var runner = require('./runner-CRAhuK8A.cjs.js');
|
|
9
9
|
var spectralRulesets = require('@stoplight/spectral-rulesets');
|
|
10
10
|
var types = require('@stoplight/types');
|
|
11
11
|
var spectralFormatters = require('@stoplight/spectral-formatters');
|
|
12
|
-
var helpers = require('./helpers-
|
|
13
|
-
require('./paths-
|
|
12
|
+
var helpers = require('./helpers-Dd7PBM8s.cjs.js');
|
|
13
|
+
require('./paths-BvbxdT_S.cjs.js');
|
|
14
14
|
require('@backstage/cli-common');
|
|
15
15
|
require('@backstage/cli-node');
|
|
16
16
|
require('minimatch');
|
|
@@ -18,11 +18,11 @@ require('path');
|
|
|
18
18
|
require('p-limit');
|
|
19
19
|
require('portfinder');
|
|
20
20
|
|
|
21
|
-
function
|
|
21
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
22
22
|
|
|
23
|
-
var ruleset__default = /*#__PURE__*/
|
|
24
|
-
var fs__default = /*#__PURE__*/
|
|
25
|
-
var chalk__default = /*#__PURE__*/
|
|
23
|
+
var ruleset__default = /*#__PURE__*/_interopDefaultCompat(ruleset);
|
|
24
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
25
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
26
26
|
|
|
27
27
|
async function lint(directoryPath, config) {
|
|
28
28
|
const { strict } = config != null ? config : {};
|
|
@@ -32,12 +32,12 @@ async function lint(directoryPath, config) {
|
|
|
32
32
|
} catch {
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
-
const openapiFileContent = await fs__default
|
|
35
|
+
const openapiFileContent = await fs__default.default.readFile(openapiPath, "utf8");
|
|
36
36
|
const document = new spectralCore.Document(openapiFileContent, spectralParsers.Yaml, openapiPath);
|
|
37
37
|
const spectral = new spectralCore.Spectral();
|
|
38
38
|
const backstageRuleset = new spectralCore.Ruleset(
|
|
39
39
|
{
|
|
40
|
-
extends: [spectralRulesets.oas, ruleset__default
|
|
40
|
+
extends: [spectralRulesets.oas, ruleset__default.default],
|
|
41
41
|
overrides: [
|
|
42
42
|
{
|
|
43
43
|
files: ["*"],
|
|
@@ -78,7 +78,7 @@ async function bulkCommand(paths = [], options) {
|
|
|
78
78
|
if (resultText) {
|
|
79
79
|
console.log();
|
|
80
80
|
console.log(
|
|
81
|
-
chalk__default
|
|
81
|
+
chalk__default.default.red(`OpenAPI yaml file linting failed in ${relativeDir}:`)
|
|
82
82
|
);
|
|
83
83
|
console.log(resultText.trimStart());
|
|
84
84
|
failed = true;
|
|
@@ -87,9 +87,9 @@ async function bulkCommand(paths = [], options) {
|
|
|
87
87
|
if (failed) {
|
|
88
88
|
process.exit(1);
|
|
89
89
|
} else {
|
|
90
|
-
console.log(chalk__default
|
|
90
|
+
console.log(chalk__default.default.green("Linted all files."));
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
exports.bulkCommand = bulkCommand;
|
|
95
|
-
//# sourceMappingURL=lint-
|
|
95
|
+
//# sourceMappingURL=lint-BNE-BGv5.cjs.js.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var paths = require('./paths-
|
|
3
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
4
4
|
var pLimit = require('p-limit');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
var portFinder = require('portfinder');
|
|
7
7
|
|
|
8
|
-
function
|
|
8
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
9
9
|
|
|
10
|
-
var pLimit__default = /*#__PURE__*/
|
|
11
|
-
var portFinder__default = /*#__PURE__*/
|
|
10
|
+
var pLimit__default = /*#__PURE__*/_interopDefaultCompat(pLimit);
|
|
11
|
+
var portFinder__default = /*#__PURE__*/_interopDefaultCompat(portFinder);
|
|
12
12
|
|
|
13
13
|
async function runner(paths$1, command, options) {
|
|
14
14
|
var _a;
|
|
15
15
|
const packages = await paths.resolvePackagePaths({ paths: paths$1 });
|
|
16
|
-
const limit = pLimit__default
|
|
17
|
-
let port = (options == null ? void 0 : options.startingPort) && await portFinder__default
|
|
16
|
+
const limit = pLimit__default.default((_a = options == null ? void 0 : options.concurrencyLimit) != null ? _a : 5);
|
|
17
|
+
let port = (options == null ? void 0 : options.startingPort) && await portFinder__default.default.getPortPromise({
|
|
18
18
|
// Prevent collisions with optic which runs 8000->8999
|
|
19
19
|
port: options.startingPort,
|
|
20
20
|
stopPort: options.startingPort + 1e3
|
|
@@ -25,7 +25,7 @@ async function runner(paths$1, command, options) {
|
|
|
25
25
|
let resultText = "";
|
|
26
26
|
try {
|
|
27
27
|
if (port)
|
|
28
|
-
port = (options == null ? void 0 : options.startingPort) && await portFinder__default
|
|
28
|
+
port = (options == null ? void 0 : options.startingPort) && await portFinder__default.default.getPortPromise({
|
|
29
29
|
// Prevent collisions with optic which runs 8000->8999
|
|
30
30
|
port: port + 1,
|
|
31
31
|
stopPort: options.startingPort + 1e3
|
|
@@ -46,4 +46,4 @@ async function runner(paths$1, command, options) {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
exports.runner = runner;
|
|
49
|
-
//# sourceMappingURL=runner-
|
|
49
|
+
//# sourceMappingURL=runner-CRAhuK8A.cjs.js.map
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var chalk = require('chalk');
|
|
6
|
-
var runner = require('./runner-
|
|
7
|
-
var helpers = require('./helpers-
|
|
8
|
-
var paths = require('./paths-
|
|
9
|
-
var exec = require('./exec-
|
|
6
|
+
var runner = require('./runner-CRAhuK8A.cjs.js');
|
|
7
|
+
var helpers = require('./helpers-Dd7PBM8s.cjs.js');
|
|
8
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
9
|
+
var exec = require('./exec-d7-AweRf.cjs.js');
|
|
10
10
|
require('p-limit');
|
|
11
11
|
require('portfinder');
|
|
12
12
|
require('@backstage/cli-common');
|
|
@@ -15,10 +15,10 @@ require('minimatch');
|
|
|
15
15
|
require('util');
|
|
16
16
|
require('child_process');
|
|
17
17
|
|
|
18
|
-
function
|
|
18
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
19
|
|
|
20
|
-
var fs__default = /*#__PURE__*/
|
|
21
|
-
var chalk__default = /*#__PURE__*/
|
|
20
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
21
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
22
22
|
|
|
23
23
|
async function test(directoryPath, { port }, options) {
|
|
24
24
|
let openapiPath = path.join(directoryPath, helpers.YAML_SCHEMA_PATH);
|
|
@@ -28,7 +28,7 @@ async function test(directoryPath, { port }, options) {
|
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
const opticConfigFilePath = path.join(directoryPath, "optic.yml");
|
|
31
|
-
if (!await fs__default
|
|
31
|
+
if (!await fs__default.default.pathExists(opticConfigFilePath)) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
let opticLocation = "";
|
|
@@ -79,7 +79,7 @@ async function bulkCommand(paths = [], options) {
|
|
|
79
79
|
if (resultText) {
|
|
80
80
|
console.log();
|
|
81
81
|
console.log(
|
|
82
|
-
chalk__default
|
|
82
|
+
chalk__default.default.red(
|
|
83
83
|
`OpenAPI runtime validation against tests failed in ${relativeDir}:`
|
|
84
84
|
)
|
|
85
85
|
);
|
|
@@ -90,9 +90,9 @@ async function bulkCommand(paths = [], options) {
|
|
|
90
90
|
if (failed) {
|
|
91
91
|
process.exit(1);
|
|
92
92
|
} else {
|
|
93
|
-
console.log(chalk__default
|
|
93
|
+
console.log(chalk__default.default.green("Verified all specifications against test data."));
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
exports.bulkCommand = bulkCommand;
|
|
98
|
-
//# sourceMappingURL=test-
|
|
98
|
+
//# sourceMappingURL=test-Bjep-DJ3.cjs.js.map
|
|
@@ -4,12 +4,12 @@ var fs = require('fs');
|
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var chalk = require('chalk');
|
|
6
6
|
var getPackages = require('@manypkg/get-packages');
|
|
7
|
-
var entryPoints = require('./entryPoints-
|
|
7
|
+
var entryPoints = require('./entryPoints-BYUBMQoL.cjs.js');
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
10
|
|
|
11
|
-
var fs__default = /*#__PURE__*/
|
|
12
|
-
var chalk__default = /*#__PURE__*/
|
|
11
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
12
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
13
13
|
|
|
14
14
|
var typeDeps = async () => {
|
|
15
15
|
const { packages } = await getPackages.getPackages(path.resolve("."));
|
|
@@ -22,21 +22,21 @@ var typeDeps = async () => {
|
|
|
22
22
|
if (errors.length) {
|
|
23
23
|
hadErrors = true;
|
|
24
24
|
console.error(
|
|
25
|
-
`Incorrect type dependencies in ${chalk__default
|
|
25
|
+
`Incorrect type dependencies in ${chalk__default.default.yellow(pkg.packageJson.name)}:`
|
|
26
26
|
);
|
|
27
27
|
for (const error of errors) {
|
|
28
28
|
if (error.name === "WrongDepError") {
|
|
29
29
|
console.error(
|
|
30
|
-
` Move from ${chalk__default
|
|
30
|
+
` Move from ${chalk__default.default.red(error.from)} to ${chalk__default.default.green(
|
|
31
31
|
error.to
|
|
32
|
-
)}: ${chalk__default
|
|
32
|
+
)}: ${chalk__default.default.cyan(error.dep)}`
|
|
33
33
|
);
|
|
34
34
|
} else if (error.name === "MissingDepError") {
|
|
35
35
|
console.error(
|
|
36
|
-
` Missing a type dependency: ${chalk__default
|
|
36
|
+
` Missing a type dependency: ${chalk__default.default.cyan(error.dep)}`
|
|
37
37
|
);
|
|
38
38
|
} else {
|
|
39
|
-
console.error(` Unknown error, ${chalk__default
|
|
39
|
+
console.error(` Unknown error, ${chalk__default.default.red(error)}`);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -44,13 +44,13 @@ var typeDeps = async () => {
|
|
|
44
44
|
if (hadErrors) {
|
|
45
45
|
console.error();
|
|
46
46
|
console.error(
|
|
47
|
-
chalk__default
|
|
47
|
+
chalk__default.default.red("At least one package had incorrect type dependencies")
|
|
48
48
|
);
|
|
49
49
|
process.exit(2);
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
function shouldCheckTypes(pkg) {
|
|
53
|
-
return !pkg.packageJson.private && pkg.packageJson.types && fs__default
|
|
53
|
+
return !pkg.packageJson.private && pkg.packageJson.types && fs__default.default.existsSync(path.resolve(pkg.dir, "dist/index.d.ts"));
|
|
54
54
|
}
|
|
55
55
|
function findAllDeps(declSrc) {
|
|
56
56
|
const importedDeps = (declSrc.match(/^import .* from '.*';$/gm) || []).map((match) => {
|
|
@@ -67,7 +67,7 @@ function checkTypes(pkg) {
|
|
|
67
67
|
var _a;
|
|
68
68
|
const entryPointNames = (_a = entryPoints.getPackageExportNames(pkg.packageJson)) != null ? _a : ["index"];
|
|
69
69
|
const allDeps = entryPointNames.flatMap((name) => {
|
|
70
|
-
const typeDecl = fs__default
|
|
70
|
+
const typeDecl = fs__default.default.readFileSync(
|
|
71
71
|
path.resolve(pkg.dir, `dist/${name}.d.ts`),
|
|
72
72
|
"utf8"
|
|
73
73
|
);
|
|
@@ -109,10 +109,10 @@ function findTypesPackage(dep, pkg) {
|
|
|
109
109
|
require.resolve(`${dep}.d.ts`, { paths: [pkg.dir] });
|
|
110
110
|
return void 0;
|
|
111
111
|
} catch {
|
|
112
|
-
if (fs__default
|
|
112
|
+
if (fs__default.default.existsSync(path.resolve(pkg.dir, `node_modules/${dep}.d.ts`))) {
|
|
113
113
|
return void 0;
|
|
114
114
|
}
|
|
115
|
-
if (fs__default
|
|
115
|
+
if (fs__default.default.existsSync(
|
|
116
116
|
path.resolve(pkg.dir, `../../node_modules/${dep}.d.ts`)
|
|
117
117
|
)) {
|
|
118
118
|
return void 0;
|
|
@@ -173,5 +173,5 @@ function mkErr(name, msg, extra) {
|
|
|
173
173
|
return error;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
exports
|
|
177
|
-
//# sourceMappingURL=type-deps-
|
|
176
|
+
exports.default = typeDeps;
|
|
177
|
+
//# sourceMappingURL=type-deps-D_eqfKIv.cjs.js.map
|
|
@@ -4,12 +4,12 @@ var child_process = require('child_process');
|
|
|
4
4
|
var os = require('os');
|
|
5
5
|
var pLimit = require('p-limit');
|
|
6
6
|
|
|
7
|
-
function
|
|
7
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
8
|
|
|
9
|
-
var os__default = /*#__PURE__*/
|
|
10
|
-
var pLimit__default = /*#__PURE__*/
|
|
9
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
10
|
+
var pLimit__default = /*#__PURE__*/_interopDefaultCompat(pLimit);
|
|
11
11
|
|
|
12
|
-
const limiter = pLimit__default
|
|
12
|
+
const limiter = pLimit__default.default(os__default.default.cpus().length);
|
|
13
13
|
function createBinRunner(cwd, path) {
|
|
14
14
|
return async (...command) => limiter(
|
|
15
15
|
() => new Promise((resolve, reject) => {
|
|
@@ -38,4 +38,4 @@ ${stderr}`));
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
exports.createBinRunner = createBinRunner;
|
|
41
|
-
//# sourceMappingURL=util-
|
|
41
|
+
//# sourceMappingURL=util-BhlP_S3V.cjs.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fs = require('fs-extra');
|
|
4
|
+
var YAML = require('js-yaml');
|
|
5
|
+
var lodash = require('lodash');
|
|
6
|
+
var path = require('path');
|
|
7
|
+
var chalk = require('chalk');
|
|
8
|
+
var Parser = require('@apidevtools/swagger-parser');
|
|
9
|
+
var runner = require('./runner-CRAhuK8A.cjs.js');
|
|
10
|
+
var paths = require('./paths-BvbxdT_S.cjs.js');
|
|
11
|
+
var helpers = require('./helpers-Dd7PBM8s.cjs.js');
|
|
12
|
+
require('p-limit');
|
|
13
|
+
require('portfinder');
|
|
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 fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
21
|
+
var YAML__default = /*#__PURE__*/_interopDefaultCompat(YAML);
|
|
22
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
23
|
+
var Parser__default = /*#__PURE__*/_interopDefaultCompat(Parser);
|
|
24
|
+
|
|
25
|
+
async function verify(directoryPath) {
|
|
26
|
+
let openapiPath = "";
|
|
27
|
+
try {
|
|
28
|
+
openapiPath = await helpers.getPathToOpenApiSpec(directoryPath);
|
|
29
|
+
} catch {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const yaml = YAML__default.default.load(await fs__default.default.readFile(openapiPath, "utf8"));
|
|
33
|
+
await Parser__default.default.validate(lodash.cloneDeep(yaml));
|
|
34
|
+
const schemaPath = path.join(directoryPath, helpers.TS_SCHEMA_PATH);
|
|
35
|
+
if (!await fs__default.default.pathExists(schemaPath)) {
|
|
36
|
+
throw new Error(`No \`${helpers.TS_SCHEMA_PATH}\` file found.`);
|
|
37
|
+
}
|
|
38
|
+
const schema = await import(path.resolve(path.join(directoryPath, helpers.TS_MODULE)));
|
|
39
|
+
if (!schema.spec) {
|
|
40
|
+
throw new Error(`\`${helpers.TS_SCHEMA_PATH}\` needs to have a 'spec' export.`);
|
|
41
|
+
}
|
|
42
|
+
if (!lodash.isEqual(schema.spec, yaml)) {
|
|
43
|
+
const path$1 = path.relative(paths.paths.targetRoot, directoryPath);
|
|
44
|
+
throw new Error(
|
|
45
|
+
`\`${helpers.YAML_SCHEMA_PATH}\` and \`${helpers.TS_SCHEMA_PATH}\` do not match. Please run \`yarn backstage-repo-tools package schema openapi generate\` from '${path$1}' to regenerate \`${helpers.TS_SCHEMA_PATH}\`.`
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function bulkCommand(paths = []) {
|
|
50
|
+
const resultsList = await runner.runner(paths, (dir) => verify(dir));
|
|
51
|
+
let failed = false;
|
|
52
|
+
for (const { relativeDir, resultText } of resultsList) {
|
|
53
|
+
if (resultText) {
|
|
54
|
+
console.log();
|
|
55
|
+
console.log(chalk__default.default.red(`OpenAPI validation failed in ${relativeDir}:`));
|
|
56
|
+
console.log(resultText.trimStart());
|
|
57
|
+
failed = true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (failed) {
|
|
61
|
+
process.exit(1);
|
|
62
|
+
} else {
|
|
63
|
+
console.log(chalk__default.default.green("Verified all files."));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
exports.bulkCommand = bulkCommand;
|
|
68
|
+
//# sourceMappingURL=verify-BX1iUi_q.cjs.js.map
|
package/dist/index.cjs.js
CHANGED
|
@@ -4,9 +4,9 @@ var commander = require('commander');
|
|
|
4
4
|
var chalk = require('chalk');
|
|
5
5
|
var errors = require('@backstage/errors');
|
|
6
6
|
|
|
7
|
-
function
|
|
7
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
8
|
|
|
9
|
-
var chalk__default = /*#__PURE__*/
|
|
9
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
10
10
|
|
|
11
11
|
var __defProp = Object.defineProperty;
|
|
12
12
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -31,13 +31,13 @@ class ExitCodeError extends CustomError {
|
|
|
31
31
|
function exitWithError(error) {
|
|
32
32
|
if (error instanceof ExitCodeError) {
|
|
33
33
|
process.stderr.write(`
|
|
34
|
-
${chalk__default
|
|
34
|
+
${chalk__default.default.red(error.message)}
|
|
35
35
|
|
|
36
36
|
`);
|
|
37
37
|
process.exit(error.code);
|
|
38
38
|
} else {
|
|
39
39
|
process.stderr.write(`
|
|
40
|
-
${chalk__default
|
|
40
|
+
${chalk__default.default.red(`${error}`)}
|
|
41
41
|
|
|
42
42
|
`);
|
|
43
43
|
process.exit(1);
|
|
@@ -54,7 +54,7 @@ function registerPackageCommand(program) {
|
|
|
54
54
|
"Initialize any required files to use the OpenAPI tooling for this package."
|
|
55
55
|
).action(
|
|
56
56
|
lazy(
|
|
57
|
-
() => Promise.resolve().then(function () { return require('./cjs/init-
|
|
57
|
+
() => Promise.resolve().then(function () { return require('./cjs/init-q37Rum6N.cjs.js'); }).then((m) => m.singleCommand)
|
|
58
58
|
)
|
|
59
59
|
);
|
|
60
60
|
openApiCommand.command("generate").option(
|
|
@@ -64,7 +64,7 @@ function registerPackageCommand(program) {
|
|
|
64
64
|
"Command to generate a client and/or a server stub from an OpenAPI spec."
|
|
65
65
|
).action(
|
|
66
66
|
lazy(
|
|
67
|
-
() => Promise.resolve().then(function () { return require('./cjs/index-
|
|
67
|
+
() => Promise.resolve().then(function () { return require('./cjs/index-CM0bJMpv.cjs.js'); }).then((m) => m.command)
|
|
68
68
|
)
|
|
69
69
|
);
|
|
70
70
|
}
|
|
@@ -76,17 +76,17 @@ function registerRepoCommand(program) {
|
|
|
76
76
|
"Verify that all OpenAPI schemas are valid and have a matching `schemas/openapi.generated.ts` file."
|
|
77
77
|
).action(
|
|
78
78
|
lazy(
|
|
79
|
-
() => Promise.resolve().then(function () { return require('./cjs/verify-
|
|
79
|
+
() => Promise.resolve().then(function () { return require('./cjs/verify-BX1iUi_q.cjs.js'); }).then((m) => m.bulkCommand)
|
|
80
80
|
)
|
|
81
81
|
);
|
|
82
82
|
openApiCommand.command("lint [paths...]").description("Lint OpenAPI schemas.").option(
|
|
83
83
|
"--strict",
|
|
84
84
|
"Fail on any linting severity messages, not just errors."
|
|
85
85
|
).action(
|
|
86
|
-
lazy(() => Promise.resolve().then(function () { return require('./cjs/lint-
|
|
86
|
+
lazy(() => Promise.resolve().then(function () { return require('./cjs/lint-BNE-BGv5.cjs.js'); }).then((m) => m.bulkCommand))
|
|
87
87
|
);
|
|
88
88
|
openApiCommand.command("test [paths...]").description("Test OpenAPI schemas against written tests").option("--update", "Update the spec on failure.").action(
|
|
89
|
-
lazy(() => Promise.resolve().then(function () { return require('./cjs/test-
|
|
89
|
+
lazy(() => Promise.resolve().then(function () { return require('./cjs/test-Bjep-DJ3.cjs.js'); }).then((m) => m.bulkCommand))
|
|
90
90
|
);
|
|
91
91
|
}
|
|
92
92
|
function registerCommands(program) {
|
|
@@ -113,10 +113,10 @@ function registerCommands(program) {
|
|
|
113
113
|
"Turn on release tag validation for the public, beta, and alpha APIs"
|
|
114
114
|
).description("Generate an API report for selected packages").action(
|
|
115
115
|
lazy(
|
|
116
|
-
() => Promise.resolve().then(function () { return require('./cjs/api-reports-
|
|
116
|
+
() => Promise.resolve().then(function () { return require('./cjs/api-reports-BILnGZ_-.cjs.js'); }).then((m) => m.buildApiReports)
|
|
117
117
|
)
|
|
118
118
|
);
|
|
119
|
-
program.command("type-deps").description("Find inconsistencies in types of all packages and plugins").action(lazy(() => Promise.resolve().then(function () { return require('./cjs/type-deps-
|
|
119
|
+
program.command("type-deps").description("Find inconsistencies in types of all packages and plugins").action(lazy(() => Promise.resolve().then(function () { return require('./cjs/type-deps-D_eqfKIv.cjs.js'); }).then((m) => m.default)));
|
|
120
120
|
program.command("generate-catalog-info").option(
|
|
121
121
|
"--dry-run",
|
|
122
122
|
"Shows what would happen without actually writing any yaml."
|
|
@@ -125,14 +125,14 @@ function registerCommands(program) {
|
|
|
125
125
|
"CI run checks that there are no changes to catalog-info.yaml files"
|
|
126
126
|
).description("Create or fix info yaml files for all backstage packages").action(
|
|
127
127
|
lazy(
|
|
128
|
-
() => Promise.resolve().then(function () { return require('./cjs/generate-catalog-info-
|
|
128
|
+
() => Promise.resolve().then(function () { return require('./cjs/generate-catalog-info-CwsIGc45.cjs.js'); }).then(
|
|
129
129
|
(m) => m.default
|
|
130
130
|
)
|
|
131
131
|
)
|
|
132
132
|
);
|
|
133
133
|
program.command("knip-reports [paths...]").option("--ci", "CI run checks that there is no changes on knip reports").description("Generate a knip report for selected packages").action(
|
|
134
134
|
lazy(
|
|
135
|
-
() => Promise.resolve().then(function () { return require('./cjs/knip-reports-
|
|
135
|
+
() => Promise.resolve().then(function () { return require('./cjs/knip-reports-BbrRgCsA.cjs.js'); }).then((m) => m.buildKnipReports)
|
|
136
136
|
)
|
|
137
137
|
);
|
|
138
138
|
registerPackageCommand(program);
|
|
@@ -151,14 +151,14 @@ function lazy(getActionFunc) {
|
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
var version = "0.7.
|
|
154
|
+
var version = "0.7.2";
|
|
155
155
|
|
|
156
156
|
const main = (argv) => {
|
|
157
157
|
commander.program.name("backstage-repo-tools").version(version);
|
|
158
158
|
registerCommands(commander.program);
|
|
159
159
|
commander.program.on("command:*", () => {
|
|
160
160
|
console.log();
|
|
161
|
-
console.log(chalk__default
|
|
161
|
+
console.log(chalk__default.default.red(`Invalid command: ${commander.program.args.join(" ")}`));
|
|
162
162
|
console.log();
|
|
163
163
|
commander.program.outputHelp();
|
|
164
164
|
process.exit(1);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/repo-tools",
|
|
3
3
|
"description": "CLI for Backstage repo tooling ",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@apidevtools/swagger-parser": "^10.1.0",
|
|
34
34
|
"@apisyouwonthate/style-guide": "^1.4.0",
|
|
35
|
-
"@backstage/backend-common": "^0.21.
|
|
35
|
+
"@backstage/backend-common": "^0.21.6",
|
|
36
36
|
"@backstage/catalog-model": "^1.4.5",
|
|
37
37
|
"@backstage/cli-common": "^0.1.13",
|
|
38
38
|
"@backstage/cli-node": "^0.2.4",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"yaml-diff-patch": "^2.0.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@backstage/backend-test-utils": "^0.3.
|
|
66
|
-
"@backstage/cli": "^0.26.
|
|
65
|
+
"@backstage/backend-test-utils": "^0.3.6",
|
|
66
|
+
"@backstage/cli": "^0.26.2",
|
|
67
67
|
"@backstage/types": "^1.1.1",
|
|
68
68
|
"@types/is-glob": "^4.0.2",
|
|
69
69
|
"@types/node": "^18.17.8",
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var fs = require('fs-extra');
|
|
4
|
-
var YAML = require('js-yaml');
|
|
5
|
-
var lodash = require('lodash');
|
|
6
|
-
var path = require('path');
|
|
7
|
-
var chalk = require('chalk');
|
|
8
|
-
var Parser = require('@apidevtools/swagger-parser');
|
|
9
|
-
var runner = require('./runner-d5b73286.cjs.js');
|
|
10
|
-
var paths = require('./paths-9ab9b8a8.cjs.js');
|
|
11
|
-
var helpers = require('./helpers-712dfada.cjs.js');
|
|
12
|
-
require('p-limit');
|
|
13
|
-
require('portfinder');
|
|
14
|
-
require('@backstage/cli-common');
|
|
15
|
-
require('@backstage/cli-node');
|
|
16
|
-
require('minimatch');
|
|
17
|
-
|
|
18
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
|
-
|
|
20
|
-
function _interopNamespace(e) {
|
|
21
|
-
if (e && e.__esModule) return e;
|
|
22
|
-
var n = Object.create(null);
|
|
23
|
-
if (e) {
|
|
24
|
-
Object.keys(e).forEach(function (k) {
|
|
25
|
-
if (k !== 'default') {
|
|
26
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
27
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: function () { return e[k]; }
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
n["default"] = e;
|
|
35
|
-
return Object.freeze(n);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
39
|
-
var YAML__default = /*#__PURE__*/_interopDefaultLegacy(YAML);
|
|
40
|
-
var chalk__default = /*#__PURE__*/_interopDefaultLegacy(chalk);
|
|
41
|
-
var Parser__default = /*#__PURE__*/_interopDefaultLegacy(Parser);
|
|
42
|
-
|
|
43
|
-
async function verify(directoryPath) {
|
|
44
|
-
let openapiPath = "";
|
|
45
|
-
try {
|
|
46
|
-
openapiPath = await helpers.getPathToOpenApiSpec(directoryPath);
|
|
47
|
-
} catch {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const yaml = YAML__default["default"].load(await fs__default["default"].readFile(openapiPath, "utf8"));
|
|
51
|
-
await Parser__default["default"].validate(lodash.cloneDeep(yaml));
|
|
52
|
-
const schemaPath = path.join(directoryPath, helpers.TS_SCHEMA_PATH);
|
|
53
|
-
if (!await fs__default["default"].pathExists(schemaPath)) {
|
|
54
|
-
throw new Error(`No \`${helpers.TS_SCHEMA_PATH}\` file found.`);
|
|
55
|
-
}
|
|
56
|
-
const schema = await (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(path.resolve(path.join(directoryPath, helpers.TS_MODULE)));
|
|
57
|
-
if (!schema.spec) {
|
|
58
|
-
throw new Error(`\`${helpers.TS_SCHEMA_PATH}\` needs to have a 'spec' export.`);
|
|
59
|
-
}
|
|
60
|
-
if (!lodash.isEqual(schema.spec, yaml)) {
|
|
61
|
-
const path$1 = path.relative(paths.paths.targetRoot, directoryPath);
|
|
62
|
-
throw new Error(
|
|
63
|
-
`\`${helpers.YAML_SCHEMA_PATH}\` and \`${helpers.TS_SCHEMA_PATH}\` do not match. Please run \`yarn backstage-repo-tools package schema openapi generate\` from '${path$1}' to regenerate \`${helpers.TS_SCHEMA_PATH}\`.`
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
async function bulkCommand(paths = []) {
|
|
68
|
-
const resultsList = await runner.runner(paths, (dir) => verify(dir));
|
|
69
|
-
let failed = false;
|
|
70
|
-
for (const { relativeDir, resultText } of resultsList) {
|
|
71
|
-
if (resultText) {
|
|
72
|
-
console.log();
|
|
73
|
-
console.log(chalk__default["default"].red(`OpenAPI validation failed in ${relativeDir}:`));
|
|
74
|
-
console.log(resultText.trimStart());
|
|
75
|
-
failed = true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (failed) {
|
|
79
|
-
process.exit(1);
|
|
80
|
-
} else {
|
|
81
|
-
console.log(chalk__default["default"].green("Verified all files."));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
exports.bulkCommand = bulkCommand;
|
|
86
|
-
//# sourceMappingURL=verify-dad6101f.cjs.js.map
|