@backstage/backend-defaults 0.3.0-next.3 → 0.3.0
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 +41 -0
- package/auth/package.json +6 -0
- package/cache/package.json +1 -1
- package/config.d.ts +277 -0
- package/database/package.json +1 -1
- package/discovery/package.json +1 -1
- package/dist/auth.cjs.js +1025 -0
- package/dist/auth.cjs.js.map +1 -0
- package/dist/auth.d.ts +14 -0
- package/dist/cache.cjs.js.map +1 -1
- package/dist/cache.d.ts +31 -37
- package/dist/cjs/config-BDOwXIyo.cjs.js +64 -0
- package/dist/cjs/config-BDOwXIyo.cjs.js.map +1 -0
- package/dist/cjs/createConfigSecretEnumerator-DShyoWWL.cjs.js +33 -0
- package/dist/cjs/createConfigSecretEnumerator-DShyoWWL.cjs.js.map +1 -0
- package/dist/cjs/helpers-D2f1CG0o.cjs.js +53 -0
- package/dist/cjs/helpers-D2f1CG0o.cjs.js.map +1 -0
- package/dist/database.cjs.js +25 -26
- package/dist/database.cjs.js.map +1 -1
- package/dist/database.d.ts +7 -2
- package/dist/discovery.cjs.js +6 -6
- package/dist/discovery.cjs.js.map +1 -1
- package/dist/discovery.d.ts +9 -1
- package/dist/httpAuth.cjs.js +192 -0
- package/dist/httpAuth.cjs.js.map +1 -0
- package/dist/httpAuth.d.ts +15 -0
- package/dist/httpRouter.cjs.js +191 -0
- package/dist/httpRouter.cjs.js.map +1 -0
- package/dist/httpRouter.d.ts +55 -0
- package/dist/index.cjs.js +14 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/lifecycle.cjs.js.map +1 -1
- package/dist/lifecycle.d.ts +5 -1
- package/dist/logger.cjs.js +17 -0
- package/dist/logger.cjs.js.map +1 -0
- package/dist/logger.d.ts +14 -0
- package/dist/permissions.cjs.js.map +1 -1
- package/dist/permissions.d.ts +6 -0
- package/dist/rootConfig.cjs.js +3 -0
- package/dist/rootConfig.cjs.js.map +1 -1
- package/dist/rootConfig.d.ts +17 -2
- package/dist/rootHttpRouter.cjs.js +629 -0
- package/dist/rootHttpRouter.cjs.js.map +1 -0
- package/dist/rootHttpRouter.d.ts +283 -0
- package/dist/rootLifecycle.cjs.js.map +1 -1
- package/dist/rootLifecycle.d.ts +5 -1
- package/dist/rootLogger.cjs.js +143 -0
- package/dist/rootLogger.cjs.js.map +1 -0
- package/dist/rootLogger.d.ts +58 -0
- package/dist/scheduler.cjs.js +2 -3
- package/dist/scheduler.cjs.js.map +1 -1
- package/dist/scheduler.d.ts +5 -1
- package/dist/urlReader.cjs.js +68 -126
- package/dist/urlReader.cjs.js.map +1 -1
- package/dist/urlReader.d.ts +49 -43
- package/dist/userInfo.cjs.js +70 -0
- package/dist/userInfo.cjs.js.map +1 -0
- package/dist/userInfo.d.ts +14 -0
- package/httpAuth/package.json +6 -0
- package/httpRouter/package.json +6 -0
- package/lifecycle/package.json +1 -1
- package/logger/package.json +6 -0
- package/migrations/auth/20240327104803_public_keys.js +50 -0
- package/package.json +82 -12
- package/permissions/package.json +1 -1
- package/rootConfig/package.json +1 -1
- package/rootHttpRouter/package.json +6 -0
- package/rootLifecycle/package.json +1 -1
- package/rootLogger/package.json +6 -0
- package/scheduler/package.json +1 -1
- package/urlReader/package.json +1 -1
- package/userInfo/package.json +6 -0
package/dist/urlReader.cjs.js
CHANGED
|
@@ -9,19 +9,17 @@ var getRawBody = require('raw-body');
|
|
|
9
9
|
var parseGitUrl = require('git-url-parse');
|
|
10
10
|
var lodash = require('lodash');
|
|
11
11
|
var base64Stream = require('base64-stream');
|
|
12
|
-
var concatStream = require('concat-stream');
|
|
13
|
-
var fs = require('fs-extra');
|
|
14
|
-
var os = require('os');
|
|
15
|
-
var platformPath = require('path');
|
|
16
|
-
var tar = require('tar');
|
|
17
|
-
var util = require('util');
|
|
18
|
-
var isomorphicGit = require('isomorphic-git');
|
|
19
|
-
var http = require('isomorphic-git/http/node');
|
|
20
12
|
var integrationAwsNode = require('@backstage/integration-aws-node');
|
|
21
13
|
var credentialProviders = require('@aws-sdk/credential-providers');
|
|
22
14
|
var clientS3 = require('@aws-sdk/client-s3');
|
|
23
15
|
var abortController = require('@aws-sdk/abort-controller');
|
|
24
16
|
var posix = require('path/posix');
|
|
17
|
+
var platformPath = require('path');
|
|
18
|
+
var os = require('os');
|
|
19
|
+
var concatStream = require('concat-stream');
|
|
20
|
+
var fs = require('fs-extra');
|
|
21
|
+
var tar = require('tar');
|
|
22
|
+
var util = require('util');
|
|
25
23
|
var archiver = require('archiver');
|
|
26
24
|
var yauzl = require('yauzl');
|
|
27
25
|
var backendPluginApi = require('@backstage/backend-plugin-api');
|
|
@@ -51,13 +49,11 @@ function _interopNamespaceCompat(e) {
|
|
|
51
49
|
var fetch__default = /*#__PURE__*/_interopDefaultCompat(fetch);
|
|
52
50
|
var getRawBody__default = /*#__PURE__*/_interopDefaultCompat(getRawBody);
|
|
53
51
|
var parseGitUrl__default = /*#__PURE__*/_interopDefaultCompat(parseGitUrl);
|
|
52
|
+
var platformPath__default = /*#__PURE__*/_interopDefaultCompat(platformPath);
|
|
53
|
+
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
54
54
|
var concatStream__default = /*#__PURE__*/_interopDefaultCompat(concatStream);
|
|
55
55
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
56
|
-
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
|
|
57
|
-
var platformPath__default = /*#__PURE__*/_interopDefaultCompat(platformPath);
|
|
58
56
|
var tar__default = /*#__PURE__*/_interopDefaultCompat(tar);
|
|
59
|
-
var isomorphicGit__default = /*#__PURE__*/_interopDefaultCompat(isomorphicGit);
|
|
60
|
-
var http__default = /*#__PURE__*/_interopDefaultCompat(http);
|
|
61
57
|
var archiver__default = /*#__PURE__*/_interopDefaultCompat(archiver);
|
|
62
58
|
var yauzl__default = /*#__PURE__*/_interopDefaultCompat(yauzl);
|
|
63
59
|
var GoogleCloud__namespace = /*#__PURE__*/_interopNamespaceCompat(GoogleCloud);
|
|
@@ -711,91 +707,18 @@ class BitbucketServerUrlReader {
|
|
|
711
707
|
}
|
|
712
708
|
}
|
|
713
709
|
|
|
714
|
-
function isAuthCallbackOptions(options) {
|
|
715
|
-
return "onAuth" in options;
|
|
716
|
-
}
|
|
717
|
-
class Git {
|
|
718
|
-
constructor(config) {
|
|
719
|
-
this.config = config;
|
|
720
|
-
this.onAuth = config.onAuth;
|
|
721
|
-
this.headers = {
|
|
722
|
-
"user-agent": "git/@isomorphic-git",
|
|
723
|
-
...config.token ? { Authorization: `Bearer ${config.token}` } : {}
|
|
724
|
-
};
|
|
725
|
-
}
|
|
726
|
-
headers;
|
|
727
|
-
/** https://isomorphic-git.org/docs/en/clone */
|
|
728
|
-
async clone(options) {
|
|
729
|
-
const { url, dir, ref, depth, noCheckout } = options;
|
|
730
|
-
this.config.logger?.info(`Cloning repo {dir=${dir},url=${url}}`);
|
|
731
|
-
try {
|
|
732
|
-
return await isomorphicGit__default.default.clone({
|
|
733
|
-
fs: fs__default.default,
|
|
734
|
-
http: http__default.default,
|
|
735
|
-
url,
|
|
736
|
-
dir,
|
|
737
|
-
ref,
|
|
738
|
-
singleBranch: true,
|
|
739
|
-
depth: depth ?? 1,
|
|
740
|
-
noCheckout,
|
|
741
|
-
onProgress: this.onProgressHandler(),
|
|
742
|
-
headers: this.headers,
|
|
743
|
-
onAuth: this.onAuth
|
|
744
|
-
});
|
|
745
|
-
} catch (ex) {
|
|
746
|
-
this.config.logger?.error(`Failed to clone repo {dir=${dir},url=${url}}`);
|
|
747
|
-
if (ex.data) {
|
|
748
|
-
throw new Error(`${ex.message} {data=${JSON.stringify(ex.data)}}`);
|
|
749
|
-
}
|
|
750
|
-
throw ex;
|
|
751
|
-
}
|
|
752
|
-
}
|
|
753
|
-
onAuth;
|
|
754
|
-
onProgressHandler = () => {
|
|
755
|
-
let currentPhase = "";
|
|
756
|
-
return (event) => {
|
|
757
|
-
if (currentPhase !== event.phase) {
|
|
758
|
-
currentPhase = event.phase;
|
|
759
|
-
this.config.logger?.info(event.phase);
|
|
760
|
-
}
|
|
761
|
-
const total = event.total ? `${Math.round(event.loaded / event.total * 100)}%` : event.loaded;
|
|
762
|
-
this.config.logger?.debug(`status={${event.phase},total={${total}}}`);
|
|
763
|
-
};
|
|
764
|
-
};
|
|
765
|
-
static fromAuth = (options) => {
|
|
766
|
-
if (isAuthCallbackOptions(options)) {
|
|
767
|
-
const { onAuth, logger: logger2 } = options;
|
|
768
|
-
return new Git({ onAuth, logger: logger2 });
|
|
769
|
-
}
|
|
770
|
-
const { username, password, token, logger } = options;
|
|
771
|
-
return new Git({ onAuth: () => ({ username, password }), token, logger });
|
|
772
|
-
};
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
const pipeline$3 = util.promisify(stream.pipeline);
|
|
776
|
-
const GITILES_BASE_URL_DEPRECATION_MESSSAGE = `A gitilesBaseUrl must be provided for the gerrit integration to work. You can disable this check by setting DISABLE_GERRIT_GITILES_REQUIREMENT=1 but this will be removed in a future release. If you are not able to use the gitiles gerrit plugin, please open an issue towards https://github.com/backstage/backstage`;
|
|
777
|
-
const createTemporaryDirectory = async (workDir) => await fs__default.default.mkdtemp(platformPath.join(workDir, "/gerrit-clone-"));
|
|
778
710
|
class GerritUrlReader {
|
|
779
|
-
constructor(integration, deps
|
|
711
|
+
constructor(integration, deps) {
|
|
780
712
|
this.integration = integration;
|
|
781
713
|
this.deps = deps;
|
|
782
|
-
this.workDir = workDir;
|
|
783
714
|
}
|
|
784
715
|
static factory = ({ config, treeResponseFactory }) => {
|
|
785
716
|
const integrations = integration.ScmIntegrations.fromConfig(config);
|
|
786
717
|
if (!integrations.gerrit) {
|
|
787
718
|
return [];
|
|
788
719
|
}
|
|
789
|
-
const workDir = config.getOptionalString("backend.workingDirectory") ?? os__default.default.tmpdir();
|
|
790
720
|
return integrations.gerrit.list().map((integration) => {
|
|
791
|
-
|
|
792
|
-
throw new Error(GITILES_BASE_URL_DEPRECATION_MESSSAGE);
|
|
793
|
-
}
|
|
794
|
-
const reader = new GerritUrlReader(
|
|
795
|
-
integration,
|
|
796
|
-
{ treeResponseFactory },
|
|
797
|
-
workDir
|
|
798
|
-
);
|
|
721
|
+
const reader = new GerritUrlReader(integration, { treeResponseFactory });
|
|
799
722
|
const predicate = (url) => {
|
|
800
723
|
const gitilesUrl = new URL(integration.config.gitilesBaseUrl);
|
|
801
724
|
return url.host === gitilesUrl.host;
|
|
@@ -870,10 +793,7 @@ class GerritUrlReader {
|
|
|
870
793
|
if (options?.etag === branchInfo.revision) {
|
|
871
794
|
throw new errors.NotModifiedError();
|
|
872
795
|
}
|
|
873
|
-
|
|
874
|
-
return this.readTreeFromGitiles(url, branchInfo.revision, options);
|
|
875
|
-
}
|
|
876
|
-
return this.readTreeFromGitClone(url, branchInfo.revision, options);
|
|
796
|
+
return this.readTreeFromGitiles(url, branchInfo.revision, options);
|
|
877
797
|
}
|
|
878
798
|
async search() {
|
|
879
799
|
throw new Error("GerritReader does not implement search");
|
|
@@ -882,40 +802,6 @@ class GerritUrlReader {
|
|
|
882
802
|
const { host, password } = this.integration.config;
|
|
883
803
|
return `gerrit{host=${host},authed=${Boolean(password)}}`;
|
|
884
804
|
}
|
|
885
|
-
async readTreeFromGitClone(url, revision, options) {
|
|
886
|
-
const { filePath } = integration.parseGerritGitilesUrl(this.integration.config, url);
|
|
887
|
-
const git = Git.fromAuth({
|
|
888
|
-
username: this.integration.config.username,
|
|
889
|
-
password: this.integration.config.password
|
|
890
|
-
});
|
|
891
|
-
const tempDir = await createTemporaryDirectory(this.workDir);
|
|
892
|
-
const cloneUrl = integration.getGerritCloneRepoUrl(this.integration.config, url);
|
|
893
|
-
try {
|
|
894
|
-
await git.clone({
|
|
895
|
-
url: cloneUrl,
|
|
896
|
-
dir: platformPath.join(tempDir, "repo"),
|
|
897
|
-
ref: revision,
|
|
898
|
-
depth: 1
|
|
899
|
-
});
|
|
900
|
-
const data = await new Promise(async (resolve) => {
|
|
901
|
-
await pipeline$3(
|
|
902
|
-
tar__default.default.create({ cwd: tempDir }, [""]),
|
|
903
|
-
concatStream__default.default(resolve)
|
|
904
|
-
);
|
|
905
|
-
});
|
|
906
|
-
const tarArchive = stream.Readable.from(data);
|
|
907
|
-
return await this.deps.treeResponseFactory.fromTarArchive({
|
|
908
|
-
stream: tarArchive,
|
|
909
|
-
subpath: filePath === "/" ? void 0 : filePath,
|
|
910
|
-
etag: revision,
|
|
911
|
-
filter: options?.filter
|
|
912
|
-
});
|
|
913
|
-
} catch (error) {
|
|
914
|
-
throw new Error(`Could not clone ${cloneUrl}: ${error}`);
|
|
915
|
-
} finally {
|
|
916
|
-
await fs__default.default.rm(tempDir, { recursive: true, force: true });
|
|
917
|
-
}
|
|
918
|
-
}
|
|
919
805
|
async readTreeFromGitiles(url, revision, options) {
|
|
920
806
|
const { branch, filePath, project } = integration.parseGerritGitilesUrl(
|
|
921
807
|
this.integration.config,
|
|
@@ -2416,7 +2302,7 @@ class DefaultReadTreeResponseFactory {
|
|
|
2416
2302
|
}
|
|
2417
2303
|
|
|
2418
2304
|
var name = "@backstage/backend-defaults";
|
|
2419
|
-
var version = "0.3.0
|
|
2305
|
+
var version = "0.3.0";
|
|
2420
2306
|
var description = "Backend defaults used by Backstage backend apps";
|
|
2421
2307
|
var backstage = {
|
|
2422
2308
|
role: "node-library"
|
|
@@ -2436,21 +2322,31 @@ var repository = {
|
|
|
2436
2322
|
var license = "Apache-2.0";
|
|
2437
2323
|
var exports$1 = {
|
|
2438
2324
|
".": "./src/index.ts",
|
|
2325
|
+
"./auth": "./src/entrypoints/auth/index.ts",
|
|
2439
2326
|
"./cache": "./src/entrypoints/cache/index.ts",
|
|
2440
2327
|
"./database": "./src/entrypoints/database/index.ts",
|
|
2441
2328
|
"./discovery": "./src/entrypoints/discovery/index.ts",
|
|
2329
|
+
"./httpAuth": "./src/entrypoints/httpAuth/index.ts",
|
|
2330
|
+
"./httpRouter": "./src/entrypoints/httpRouter/index.ts",
|
|
2442
2331
|
"./lifecycle": "./src/entrypoints/lifecycle/index.ts",
|
|
2332
|
+
"./logger": "./src/entrypoints/logger/index.ts",
|
|
2443
2333
|
"./permissions": "./src/entrypoints/permissions/index.ts",
|
|
2444
2334
|
"./rootConfig": "./src/entrypoints/rootConfig/index.ts",
|
|
2335
|
+
"./rootHttpRouter": "./src/entrypoints/rootHttpRouter/index.ts",
|
|
2445
2336
|
"./rootLifecycle": "./src/entrypoints/rootLifecycle/index.ts",
|
|
2337
|
+
"./rootLogger": "./src/entrypoints/rootLogger/index.ts",
|
|
2446
2338
|
"./scheduler": "./src/entrypoints/scheduler/index.ts",
|
|
2447
2339
|
"./urlReader": "./src/entrypoints/urlReader/index.ts",
|
|
2340
|
+
"./userInfo": "./src/entrypoints/userInfo/index.ts",
|
|
2448
2341
|
"./package.json": "./package.json"
|
|
2449
2342
|
};
|
|
2450
2343
|
var main = "src/index.ts";
|
|
2451
2344
|
var types = "src/index.ts";
|
|
2452
2345
|
var typesVersions = {
|
|
2453
2346
|
"*": {
|
|
2347
|
+
auth: [
|
|
2348
|
+
"src/entrypoints/auth/index.ts"
|
|
2349
|
+
],
|
|
2454
2350
|
cache: [
|
|
2455
2351
|
"src/entrypoints/cache/index.ts"
|
|
2456
2352
|
],
|
|
@@ -2460,24 +2356,42 @@ var typesVersions = {
|
|
|
2460
2356
|
discovery: [
|
|
2461
2357
|
"src/entrypoints/discovery/index.ts"
|
|
2462
2358
|
],
|
|
2359
|
+
httpAuth: [
|
|
2360
|
+
"src/entrypoints/httpAuth/index.ts"
|
|
2361
|
+
],
|
|
2362
|
+
httpRouter: [
|
|
2363
|
+
"src/entrypoints/httpRouter/index.ts"
|
|
2364
|
+
],
|
|
2463
2365
|
lifecycle: [
|
|
2464
2366
|
"src/entrypoints/lifecycle/index.ts"
|
|
2465
2367
|
],
|
|
2368
|
+
logger: [
|
|
2369
|
+
"src/entrypoints/logger/index.ts"
|
|
2370
|
+
],
|
|
2466
2371
|
permissions: [
|
|
2467
2372
|
"src/entrypoints/permissions/index.ts"
|
|
2468
2373
|
],
|
|
2469
2374
|
rootConfig: [
|
|
2470
2375
|
"src/entrypoints/rootConfig/index.ts"
|
|
2471
2376
|
],
|
|
2377
|
+
rootHttpRouter: [
|
|
2378
|
+
"src/entrypoints/rootHttpRouter/index.ts"
|
|
2379
|
+
],
|
|
2472
2380
|
rootLifecycle: [
|
|
2473
2381
|
"src/entrypoints/rootLifecycle/index.ts"
|
|
2474
2382
|
],
|
|
2383
|
+
rootLogger: [
|
|
2384
|
+
"src/entrypoints/rootLogger/index.ts"
|
|
2385
|
+
],
|
|
2475
2386
|
scheduler: [
|
|
2476
2387
|
"src/entrypoints/scheduler/index.ts"
|
|
2477
2388
|
],
|
|
2478
2389
|
urlReader: [
|
|
2479
2390
|
"src/entrypoints/urlReader/index.ts"
|
|
2480
2391
|
],
|
|
2392
|
+
userInfo: [
|
|
2393
|
+
"src/entrypoints/userInfo/index.ts"
|
|
2394
|
+
],
|
|
2481
2395
|
"package.json": [
|
|
2482
2396
|
"package.json"
|
|
2483
2397
|
]
|
|
@@ -2507,40 +2421,62 @@ var dependencies = {
|
|
|
2507
2421
|
"@backstage/backend-common": "workspace:^",
|
|
2508
2422
|
"@backstage/backend-dev-utils": "workspace:^",
|
|
2509
2423
|
"@backstage/backend-plugin-api": "workspace:^",
|
|
2424
|
+
"@backstage/cli-common": "workspace:^",
|
|
2510
2425
|
"@backstage/config": "workspace:^",
|
|
2511
2426
|
"@backstage/config-loader": "workspace:^",
|
|
2512
2427
|
"@backstage/errors": "workspace:^",
|
|
2513
2428
|
"@backstage/integration": "workspace:^",
|
|
2514
2429
|
"@backstage/integration-aws-node": "workspace:^",
|
|
2430
|
+
"@backstage/plugin-auth-node": "workspace:^",
|
|
2515
2431
|
"@backstage/plugin-events-node": "workspace:^",
|
|
2516
2432
|
"@backstage/plugin-permission-node": "workspace:^",
|
|
2517
2433
|
"@backstage/types": "workspace:^",
|
|
2518
2434
|
"@google-cloud/storage": "^7.0.0",
|
|
2519
2435
|
"@keyv/memcache": "^1.3.5",
|
|
2520
2436
|
"@keyv/redis": "^2.5.3",
|
|
2437
|
+
"@manypkg/get-packages": "^1.1.3",
|
|
2521
2438
|
"@octokit/rest": "^19.0.3",
|
|
2522
2439
|
"@opentelemetry/api": "^1.3.0",
|
|
2440
|
+
"@types/cors": "^2.8.6",
|
|
2441
|
+
"@types/express": "^4.17.6",
|
|
2523
2442
|
archiver: "^6.0.0",
|
|
2524
2443
|
"base64-stream": "^1.0.0",
|
|
2525
2444
|
"better-sqlite3": "^9.0.0",
|
|
2445
|
+
compression: "^1.7.4",
|
|
2526
2446
|
"concat-stream": "^2.0.0",
|
|
2447
|
+
cookie: "^0.6.0",
|
|
2448
|
+
cors: "^2.8.5",
|
|
2527
2449
|
cron: "^3.0.0",
|
|
2450
|
+
express: "^4.17.1",
|
|
2451
|
+
"express-promise-router": "^4.1.0",
|
|
2528
2452
|
"fs-extra": "^11.2.0",
|
|
2529
2453
|
"git-url-parse": "^14.0.0",
|
|
2454
|
+
helmet: "^6.0.0",
|
|
2530
2455
|
"isomorphic-git": "^1.23.0",
|
|
2456
|
+
jose: "^5.0.0",
|
|
2531
2457
|
keyv: "^4.5.2",
|
|
2532
2458
|
knex: "^3.0.0",
|
|
2533
2459
|
lodash: "^4.17.21",
|
|
2460
|
+
logform: "^2.3.2",
|
|
2534
2461
|
luxon: "^3.0.0",
|
|
2535
2462
|
minimatch: "^9.0.0",
|
|
2463
|
+
minimist: "^1.2.5",
|
|
2464
|
+
morgan: "^1.10.0",
|
|
2536
2465
|
mysql2: "^3.0.0",
|
|
2537
2466
|
"node-fetch": "^2.6.7",
|
|
2467
|
+
"node-forge": "^1.3.1",
|
|
2538
2468
|
"p-limit": "^3.1.0",
|
|
2469
|
+
"path-to-regexp": "^6.2.1",
|
|
2539
2470
|
pg: "^8.11.3",
|
|
2540
2471
|
"pg-connection-string": "^2.3.0",
|
|
2541
2472
|
"raw-body": "^2.4.1",
|
|
2473
|
+
selfsigned: "^2.0.0",
|
|
2474
|
+
stoppable: "^1.1.0",
|
|
2542
2475
|
tar: "^6.1.12",
|
|
2476
|
+
"triple-beam": "^1.4.1",
|
|
2543
2477
|
uuid: "^9.0.0",
|
|
2478
|
+
winston: "^3.2.1",
|
|
2479
|
+
"winston-transport": "^4.5.0",
|
|
2544
2480
|
yauzl: "^3.0.0",
|
|
2545
2481
|
yn: "^4.0.0",
|
|
2546
2482
|
zod: "^3.22.4"
|
|
@@ -2550,8 +2486,14 @@ var devDependencies = {
|
|
|
2550
2486
|
"@backstage/backend-plugin-api": "workspace:^",
|
|
2551
2487
|
"@backstage/backend-test-utils": "workspace:^",
|
|
2552
2488
|
"@backstage/cli": "workspace:^",
|
|
2489
|
+
"@types/http-errors": "^2.0.0",
|
|
2490
|
+
"@types/morgan": "^1.9.0",
|
|
2491
|
+
"@types/node-forge": "^1.3.0",
|
|
2492
|
+
"@types/stoppable": "^1.1.0",
|
|
2553
2493
|
"aws-sdk-client-mock": "^4.0.0",
|
|
2494
|
+
"http-errors": "^2.0.0",
|
|
2554
2495
|
msw: "^1.0.0",
|
|
2496
|
+
supertest: "^6.1.3",
|
|
2555
2497
|
"wait-for-expect": "^3.0.2"
|
|
2556
2498
|
};
|
|
2557
2499
|
var configSchema = "config.d.ts";
|