@pipeline-builder/pipeline-core 3.4.68 → 3.4.70
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/README.md +62 -33
- package/lib/config/app-config.d.ts +1 -1
- package/lib/config/app-config.js +20 -25
- package/lib/config/billing-config.d.ts +1 -1
- package/lib/config/billing-config.js +2 -5
- package/lib/config/config-types.d.ts +1 -1
- package/lib/config/config-types.js +2 -3
- package/lib/config/infrastructure-config.d.ts +1 -1
- package/lib/config/infrastructure-config.js +25 -38
- package/lib/config/server-config.d.ts +1 -1
- package/lib/config/server-config.js +12 -19
- package/lib/core/artifact-manager.js +3 -6
- package/lib/core/id-generator.js +4 -8
- package/lib/core/metadata-builder.d.ts +4 -4
- package/lib/core/metadata-builder.js +32 -44
- package/lib/core/network-types.d.ts +2 -2
- package/lib/core/network-types.js +2 -3
- package/lib/core/network.d.ts +3 -3
- package/lib/core/network.js +18 -20
- package/lib/core/pipeline-helpers.d.ts +3 -3
- package/lib/core/pipeline-helpers.js +73 -79
- package/lib/core/pipeline-types.d.ts +2 -2
- package/lib/core/pipeline-types.js +5 -11
- package/lib/core/role-types.js +2 -3
- package/lib/core/role.d.ts +3 -3
- package/lib/core/role.js +24 -25
- package/lib/core/security-group-types.js +2 -3
- package/lib/core/security-group.d.ts +3 -3
- package/lib/core/security-group.js +8 -9
- package/lib/handlers/plugin-lookup-handler.d.ts +1 -1
- package/lib/handlers/plugin-lookup-handler.js +18 -56
- package/lib/index.d.ts +17 -17
- package/lib/index.js +28 -71
- package/lib/pipeline/pipeline-builder.d.ts +5 -5
- package/lib/pipeline/pipeline-builder.js +73 -110
- package/lib/pipeline/pipeline-configuration.d.ts +5 -5
- package/lib/pipeline/pipeline-configuration.js +15 -19
- package/lib/pipeline/plugin-lookup.d.ts +3 -3
- package/lib/pipeline/plugin-lookup.js +32 -31
- package/lib/pipeline/source-builder.d.ts +2 -2
- package/lib/pipeline/source-builder.js +27 -29
- package/lib/pipeline/source-types.d.ts +1 -1
- package/lib/pipeline/source-types.js +2 -3
- package/lib/pipeline/stage-builder.d.ts +5 -5
- package/lib/pipeline/stage-builder.js +9 -9
- package/lib/pipeline/step-types.d.ts +4 -4
- package/lib/pipeline/step-types.js +2 -3
- package/lib/template/cache.d.ts +1 -1
- package/lib/template/cache.js +5 -9
- package/lib/template/evaluator.d.ts +1 -1
- package/lib/template/evaluator.js +11 -16
- package/lib/template/index.d.ts +9 -9
- package/lib/template/index.js +31 -56
- package/lib/template/metrics.js +6 -10
- package/lib/template/plugin-resolver.js +5 -9
- package/lib/template/tokenizer.js +13 -19
- package/lib/template/topo-sort.js +2 -5
- package/lib/template/validate.d.ts +1 -1
- package/lib/template/validate.js +20 -25
- package/lib/template/walker.d.ts +1 -1
- package/lib/template/walker.js +6 -10
- package/package.json +20 -14
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.loadRedisConfig = loadRedisConfig;
|
|
10
|
-
exports.loadPluginBuildConfig = loadPluginBuildConfig;
|
|
11
|
-
exports.loadDatabaseConfig = loadDatabaseConfig;
|
|
12
|
-
exports.loadObservabilityConfig = loadObservabilityConfig;
|
|
13
|
-
exports.loadComplianceConfig = loadComplianceConfig;
|
|
14
|
-
exports.loadDockerConfig = loadDockerConfig;
|
|
15
|
-
exports.loadAWSConfig = loadAWSConfig;
|
|
16
|
-
const path_1 = __importDefault(require("path"));
|
|
17
|
-
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
18
|
-
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
19
|
-
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
20
|
-
const pipeline_helpers_1 = require("../core/pipeline-helpers");
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { Duration, RemovalPolicy } from 'aws-cdk-lib';
|
|
5
|
+
import { Architecture, Runtime } from 'aws-cdk-lib/aws-lambda';
|
|
6
|
+
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
7
|
+
import { getComputeType } from '../core/pipeline-helpers.js';
|
|
21
8
|
/**
|
|
22
9
|
* Load Docker registry configuration from environment variables.
|
|
23
10
|
*
|
|
@@ -34,7 +21,7 @@ const pipeline_helpers_1 = require("../core/pipeline-helpers");
|
|
|
34
21
|
*
|
|
35
22
|
* @returns Registry configuration
|
|
36
23
|
*/
|
|
37
|
-
function loadRegistryConfig() {
|
|
24
|
+
export function loadRegistryConfig() {
|
|
38
25
|
const host = process.env.IMAGE_REGISTRY_HOST || 'registry';
|
|
39
26
|
const port = parseInt(process.env.IMAGE_REGISTRY_PORT || '5000', 10);
|
|
40
27
|
return {
|
|
@@ -47,7 +34,7 @@ function loadRegistryConfig() {
|
|
|
47
34
|
http: process.env.IMAGE_REGISTRY_HTTP !== 'false',
|
|
48
35
|
};
|
|
49
36
|
}
|
|
50
|
-
function loadRedisConfig() {
|
|
37
|
+
export function loadRedisConfig() {
|
|
51
38
|
return {
|
|
52
39
|
host: process.env.REDIS_HOST || 'localhost',
|
|
53
40
|
port: parseInt(process.env.REDIS_PORT || '6379', 10),
|
|
@@ -59,7 +46,7 @@ function loadRedisConfig() {
|
|
|
59
46
|
* Environment variables:
|
|
60
47
|
* - `PLUGIN_BUILD_CONCURRENCY` — Max concurrent plugin builds (default: `1`)
|
|
61
48
|
*/
|
|
62
|
-
function loadPluginBuildConfig() {
|
|
49
|
+
export function loadPluginBuildConfig() {
|
|
63
50
|
return {
|
|
64
51
|
concurrency: parseInt(process.env.PLUGIN_BUILD_CONCURRENCY || '1', 10),
|
|
65
52
|
maxAttempts: parseInt(process.env.PLUGIN_BUILD_MAX_ATTEMPTS || '2', 10),
|
|
@@ -71,7 +58,7 @@ function loadPluginBuildConfig() {
|
|
|
71
58
|
dlqMaxSize: parseInt(process.env.PLUGIN_DLQ_MAX_SIZE || '20', 10),
|
|
72
59
|
};
|
|
73
60
|
}
|
|
74
|
-
function loadDatabaseConfig() {
|
|
61
|
+
export function loadDatabaseConfig() {
|
|
75
62
|
return {
|
|
76
63
|
postgres: {
|
|
77
64
|
host: process.env.DB_HOST || 'postgres',
|
|
@@ -87,7 +74,7 @@ function loadDatabaseConfig() {
|
|
|
87
74
|
},
|
|
88
75
|
};
|
|
89
76
|
}
|
|
90
|
-
function loadObservabilityConfig() {
|
|
77
|
+
export function loadObservabilityConfig() {
|
|
91
78
|
return {
|
|
92
79
|
logLevel: process.env.LOG_LEVEL || 'info',
|
|
93
80
|
logFormat: process.env.LOG_FORMAT || 'json',
|
|
@@ -98,7 +85,7 @@ function loadObservabilityConfig() {
|
|
|
98
85
|
},
|
|
99
86
|
};
|
|
100
87
|
}
|
|
101
|
-
function loadComplianceConfig() {
|
|
88
|
+
export function loadComplianceConfig() {
|
|
102
89
|
return {
|
|
103
90
|
scanSchedulerIntervalMs: parseInt(process.env.SCAN_SCHEDULER_INTERVAL_MS || '60000', 10),
|
|
104
91
|
systemOrgScansEnabled: process.env.SYSTEM_ORG_SCANS_ENABLED === 'true',
|
|
@@ -115,9 +102,9 @@ function loadComplianceConfig() {
|
|
|
115
102
|
* - `BUILDKIT_HOST` — buildctl `--addr` value for the buildkitd sidecar
|
|
116
103
|
* (default: `unix:///run/buildkit/buildkitd.sock`)
|
|
117
104
|
*/
|
|
118
|
-
function loadDockerConfig() {
|
|
105
|
+
export function loadDockerConfig() {
|
|
119
106
|
return {
|
|
120
|
-
tempRoot: process.env.DOCKER_BUILD_TEMP_ROOT ||
|
|
107
|
+
tempRoot: process.env.DOCKER_BUILD_TEMP_ROOT || path.join(process.cwd(), 'tmp'),
|
|
121
108
|
timeoutMs: parseInt(process.env.DOCKER_BUILD_TIMEOUT_MS || '900000', 10),
|
|
122
109
|
pushTimeoutMs: parseInt(process.env.DOCKER_PUSH_TIMEOUT_MS || '300000', 10),
|
|
123
110
|
buildkitAddr: process.env.BUILDKIT_HOST || 'unix:///run/buildkit/buildkitd.sock',
|
|
@@ -138,15 +125,15 @@ function loadDockerConfig() {
|
|
|
138
125
|
*
|
|
139
126
|
* @returns AWS infrastructure configuration
|
|
140
127
|
*/
|
|
141
|
-
function loadAWSConfig() {
|
|
128
|
+
export function loadAWSConfig() {
|
|
142
129
|
return {
|
|
143
130
|
lambda: {
|
|
144
131
|
runtime: parseRuntime(process.env.LAMBDA_RUNTIME || 'nodejs24.x'),
|
|
145
|
-
timeout:
|
|
132
|
+
timeout: Duration.seconds(parseInt(process.env.LAMBDA_TIMEOUT || '900', 10)),
|
|
146
133
|
memorySize: parseInt(process.env.LAMBDA_MEMORY_SIZE || '512', 10),
|
|
147
134
|
architecture: process.env.LAMBDA_ARCHITECTURE === 'x86_64'
|
|
148
|
-
?
|
|
149
|
-
:
|
|
135
|
+
? Architecture.X86_64
|
|
136
|
+
: Architecture.ARM_64,
|
|
150
137
|
reservedConcurrentExecutions: process.env.LAMBDA_RESERVED_CONCURRENCY
|
|
151
138
|
? parseInt(process.env.LAMBDA_RESERVED_CONCURRENCY, 10)
|
|
152
139
|
: undefined,
|
|
@@ -155,11 +142,11 @@ function loadAWSConfig() {
|
|
|
155
142
|
groupName: process.env.LOG_GROUP_NAME || '/pipeline-builder/logs',
|
|
156
143
|
retention: parseRetention(process.env.LOG_RETENTION || '7'),
|
|
157
144
|
removalPolicy: process.env.LOG_REMOVAL_POLICY === 'RETAIN'
|
|
158
|
-
?
|
|
159
|
-
:
|
|
145
|
+
? RemovalPolicy.RETAIN
|
|
146
|
+
: RemovalPolicy.DESTROY,
|
|
160
147
|
},
|
|
161
148
|
codeBuild: {
|
|
162
|
-
computeType:
|
|
149
|
+
computeType: getComputeType(process.env.CODEBUILD_COMPUTE_TYPE || 'SMALL'),
|
|
163
150
|
defaultImage: process.env.CODEBUILD_DEFAULT_IMAGE || 'pipeline-bootstrap:1.0',
|
|
164
151
|
},
|
|
165
152
|
};
|
|
@@ -172,9 +159,9 @@ function loadAWSConfig() {
|
|
|
172
159
|
*/
|
|
173
160
|
function parseRuntime(runtime) {
|
|
174
161
|
const runtimeMap = {
|
|
175
|
-
'nodejs24.x':
|
|
162
|
+
'nodejs24.x': Runtime.NODEJS_24_X,
|
|
176
163
|
};
|
|
177
|
-
return runtimeMap[runtime] ||
|
|
164
|
+
return runtimeMap[runtime] || Runtime.NODEJS_24_X;
|
|
178
165
|
}
|
|
179
166
|
/**
|
|
180
167
|
* Parse log retention days string into a CDK RetentionDays enum value.
|
|
@@ -184,9 +171,9 @@ function parseRuntime(runtime) {
|
|
|
184
171
|
* @param days - Retention period in days as a string (e.g. `'30'`)
|
|
185
172
|
* @returns CDK RetentionDays enum; falls back to ONE_DAY for unknown values
|
|
186
173
|
*/
|
|
187
|
-
const VALID_RETENTION_DAYS = new Set(Object.values(
|
|
174
|
+
const VALID_RETENTION_DAYS = new Set(Object.values(RetentionDays).filter((v) => typeof v === 'number'));
|
|
188
175
|
function parseRetention(days) {
|
|
189
176
|
const parsed = parseInt(days, 10);
|
|
190
|
-
return VALID_RETENTION_DAYS.has(parsed) ? parsed :
|
|
177
|
+
return VALID_RETENTION_DAYS.has(parsed) ? parsed : RetentionDays.ONE_DAY;
|
|
191
178
|
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmFzdHJ1Y3R1cmUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9pbmZyYXN0cnVjdHVyZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7Ozs7O0FBeUJ0QyxnREFZQztBQUVELDBDQUtDO0FBUUQsc0RBV0M7QUFFRCxnREFlQztBQUVELDBEQVVDO0FBRUQsb0RBS0M7QUFhRCw0Q0FPQztBQWlCRCxzQ0EyQkM7QUFqS0QsZ0RBQXdCO0FBQ3hCLDZDQUFzRDtBQUN0RCx1REFBK0Q7QUFDL0QsbURBQXFEO0FBRXJELCtEQUEwRDtBQUUxRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxTQUFnQixrQkFBa0I7SUFDaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLE9BQU87UUFDTCxJQUFJO1FBQ0osSUFBSTtRQUNKLDJFQUEyRTtRQUMzRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxJQUFJO1FBQ3RELFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzVFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQ3pDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixLQUFLLE9BQU87S0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlO0lBQzdCLE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksV0FBVztRQUMzQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDckQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPO1FBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDdEUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDdkUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDakYsZUFBZSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDcEYsZUFBZSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFDNUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDeEUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLElBQUksUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNsRixVQUFVLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztLQUNsRSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGtCQUFrQjtJQUNoQyxPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLFVBQVU7WUFDdkMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2pELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxrQkFBa0I7WUFDcEQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLFVBQVU7WUFDdkMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUU7U0FDeEM7UUFDRCxPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNwRSxpQkFBaUIsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25GLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7U0FDaEc7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHVCQUF1QjtJQUNyQyxPQUFPO1FBQ0wsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLE1BQU07UUFDekMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU07UUFDM0MsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEtBQUs7UUFDOUMsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEtBQUssTUFBTTtZQUNwRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxpQ0FBaUM7U0FDdkY7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG9CQUFvQjtJQUNsQyxPQUFPO1FBQ0wsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLElBQUksT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN4RixxQkFBcUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixLQUFLLE1BQU07S0FDdkUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsZ0JBQWdCO0lBQzlCLE9BQU87UUFDTCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsSUFBSSxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFDL0UsU0FBUyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDeEUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDM0UsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLHFDQUFxQztLQUNqRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsYUFBYTtJQUMzQixPQUFPO1FBQ0wsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxZQUFZLENBQUM7WUFDakUsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEtBQUssUUFBUTtnQkFDeEQsQ0FBQyxDQUFDLHlCQUFZLENBQUMsTUFBTTtnQkFDckIsQ0FBQyxDQUFDLHlCQUFZLENBQUMsTUFBTTtZQUN2Qiw0QkFBNEIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQjtnQkFDbkUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLFNBQVM7U0FDZDtRQUVELE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSx3QkFBd0I7WUFDakUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUM7WUFDM0QsYUFBYSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEtBQUssUUFBUTtnQkFDeEQsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTTtnQkFDdEIsQ0FBQyxDQUFDLDJCQUFhLENBQUMsT0FBTztTQUMxQjtRQUVELFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRSxJQUFBLGlDQUFjLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsSUFBSSxPQUFPLENBQUM7WUFDMUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksd0JBQXdCO1NBQzlFO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsWUFBWSxDQUFDLE9BQWU7SUFDbkMsTUFBTSxVQUFVLEdBQTRCO1FBQzFDLFlBQVksRUFBRSxvQkFBTyxDQUFDLFdBQVc7S0FDbEMsQ0FBQztJQUNGLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9CQUFPLENBQUMsV0FBVyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFckgsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNsQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sb0JBQW9CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUF1QixDQUFDLENBQUMsQ0FBQyx3QkFBYSxDQUFDLE9BQU8sQ0FBQztBQUM1RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBcmNoaXRlY3R1cmUsIFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgdHlwZSB7IEFXU0NvbmZpZywgQnVpbGRDb25maWcsIENvbXBsaWFuY2VDb25maWcsIERhdGFiYXNlQ29uZmlnLCBPYnNlcnZhYmlsaXR5Q29uZmlnLCBQbHVnaW5CdWlsZENvbmZpZywgUmVkaXNDb25maWcsIFJlZ2lzdHJ5Q29uZmlnIH0gZnJvbSAnLi9jb25maWctdHlwZXMnO1xuaW1wb3J0IHsgZ2V0Q29tcHV0ZVR5cGUgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLWhlbHBlcnMnO1xuXG4vKipcbiAqIExvYWQgRG9ja2VyIHJlZ2lzdHJ5IGNvbmZpZ3VyYXRpb24gZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzOlxuICogLSBgSU1BR0VfUkVHSVNUUllfSE9TVGAg4oCUIFJlZ2lzdHJ5IGhvc3RuYW1lIChkZWZhdWx0OiBgJ3JlZ2lzdHJ5J2ApXG4gKiAtIGBJTUFHRV9SRUdJU1RSWV9QT1JUYCDigJQgUmVnaXN0cnkgcG9ydCAoZGVmYXVsdDogYDUwMDBgKVxuICogLSBgSU1BR0VfUkVHSVNUUllfUFVMTF9IT1NUYCDigJQgSG9zdCBhbiBvdXQtb2YtY2x1c3RlciBjbGllbnQgKENvZGVCdWlsZClcbiAqICAgdXNlcyB0byBwdWxsIHBsdWdpbiBpbWFnZXMgKGRlZmF1bHQ6IGBJTUFHRV9SRUdJU1RSWV9IT1NUYCkuXG4gKiAtIGBJTUFHRV9SRUdJU1RSWV9QVUxMX1BPUlRgIOKAlCBQb3J0IGZvciB0aGUgYWJvdmUgKGRlZmF1bHQ6XG4gKiAgIGBJTUFHRV9SRUdJU1RSWV9QT1JUYCkuXG4gKiAtIGBET0NLRVJfTkVUV09SS2Ag4oCUIERvY2tlciBuZXR3b3JrIGZvciBidWlsZC9wdXNoIChkZWZhdWx0OiBgJydgKVxuICogLSBgSU1BR0VfUkVHSVNUUllfSFRUUGAg4oCUIFVzZSBwbGFpbiBIVFRQIGluc3RlYWQgb2YgSFRUUFMgKGRlZmF1bHQ6IGB0cnVlYCxcbiAqICAgdGhlIGluLWNsdXN0ZXIgcmVnaXN0cnkgaGFzIG5vIFRMUykuXG4gKlxuICogQHJldHVybnMgUmVnaXN0cnkgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlZ2lzdHJ5Q29uZmlnKCk6IFJlZ2lzdHJ5Q29uZmlnIHtcbiAgY29uc3QgaG9zdCA9IHByb2Nlc3MuZW52LklNQUdFX1JFR0lTVFJZX0hPU1QgfHwgJ3JlZ2lzdHJ5JztcbiAgY29uc3QgcG9ydCA9IHBhcnNlSW50KHByb2Nlc3MuZW52LklNQUdFX1JFR0lTVFJZX1BPUlQgfHwgJzUwMDAnLCAxMCk7XG4gIHJldHVybiB7XG4gICAgaG9zdCxcbiAgICBwb3J0LFxuICAgIC8vIEZhbGwgYmFjayB0byB0aGUgaW4tY2x1c3RlciBob3N0L3BvcnQgd2hlbiBubyBleHRlcm5hbCBwdWxsIGhvc3QgaXMgc2V0LlxuICAgIHB1bGxIb3N0OiBwcm9jZXNzLmVudi5JTUFHRV9SRUdJU1RSWV9QVUxMX0hPU1QgfHwgaG9zdCxcbiAgICBwdWxsUG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuSU1BR0VfUkVHSVNUUllfUFVMTF9QT1JUIHx8IFN0cmluZyhwb3J0KSwgMTApLFxuICAgIG5ldHdvcms6IHByb2Nlc3MuZW52LkRPQ0tFUl9ORVRXT1JLIHx8ICcnLFxuICAgIGh0dHA6IHByb2Nlc3MuZW52LklNQUdFX1JFR0lTVFJZX0hUVFAgIT09ICdmYWxzZScsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVkaXNDb25maWcoKTogUmVkaXNDb25maWcge1xuICByZXR1cm4ge1xuICAgIGhvc3Q6IHByb2Nlc3MuZW52LlJFRElTX0hPU1QgfHwgJ2xvY2FsaG9zdCcsXG4gICAgcG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUkVESVNfUE9SVCB8fCAnNjM3OScsIDEwKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2FkIHBsdWdpbiBidWlsZCBxdWV1ZSBjb25maWd1cmF0aW9uLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqIC0gYFBMVUdJTl9CVUlMRF9DT05DVVJSRU5DWWAg4oCUIE1heCBjb25jdXJyZW50IHBsdWdpbiBidWlsZHMgKGRlZmF1bHQ6IGAxYClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQbHVnaW5CdWlsZENvbmZpZygpOiBQbHVnaW5CdWlsZENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgY29uY3VycmVuY3k6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBMVUdJTl9CVUlMRF9DT05DVVJSRU5DWSB8fCAnMScsIDEwKSxcbiAgICBtYXhBdHRlbXB0czogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUExVR0lOX0JVSUxEX01BWF9BVFRFTVBUUyB8fCAnMicsIDEwKSxcbiAgICBiYWNrb2ZmRGVsYXlNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUExVR0lOX0JVSUxEX0JBQ0tPRkZfREVMQVlfTVMgfHwgJzUwMDAnLCAxMCksXG4gICAgd29ya2VyVGltZW91dE1zOiBwYXJzZUludChwcm9jZXNzLmVudi5QTFVHSU5fQlVJTERfV09SS0VSX1RJTUVPVVRfTVMgfHwgJzEwMDAwJywgMTApLFxuICAgIHRlbXBEaXJNYXhBZ2VNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuVEVNUF9ESVJfTUFYX0FHRV9NUyB8fCAnMTQ0MDAwMDAnLCAxMCksXG4gICAgZGxxTWF4QXR0ZW1wdHM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBMVUdJTl9ETFFfTUFYX0FUVEVNUFRTIHx8ICczJywgMTApLFxuICAgIGRscUJhY2tvZmZCYXNlTXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBMVUdJTl9ETFFfQkFDS09GRl9CQVNFX01TIHx8ICczMDAwMDAnLCAxMCksXG4gICAgZGxxTWF4U2l6ZTogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUExVR0lOX0RMUV9NQVhfU0laRSB8fCAnMjAnLCAxMCksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkRGF0YWJhc2VDb25maWcoKTogRGF0YWJhc2VDb25maWcge1xuICByZXR1cm4ge1xuICAgIHBvc3RncmVzOiB7XG4gICAgICBob3N0OiBwcm9jZXNzLmVudi5EQl9IT1NUIHx8ICdwb3N0Z3JlcycsXG4gICAgICBwb3J0OiBwYXJzZUludChwcm9jZXNzLmVudi5EQl9QT1JUIHx8ICc1NDMyJywgMTApLFxuICAgICAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LkRBVEFCQVNFIHx8ICdwaXBlbGluZV9idWlsZGVyJyxcbiAgICAgIHVzZXI6IHByb2Nlc3MuZW52LkRCX1VTRVIgfHwgJ3Bvc3RncmVzJyxcbiAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5EQl9QQVNTV09SRCB8fCAnJyxcbiAgICB9LFxuICAgIGRyaXp6bGU6IHtcbiAgICAgIG1heFBvb2xTaXplOiBwYXJzZUludChwcm9jZXNzLmVudi5EUklaWkxFX01BWF9QT09MX1NJWkUgfHwgJzIwJywgMTApLFxuICAgICAgaWRsZVRpbWVvdXRNaWxsaXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LkRSSVpaTEVfSURMRV9USU1FT1VUX01JTExJUyB8fCAnMzAwMDAnLCAxMCksXG4gICAgICBjb25uZWN0aW9uVGltZW91dE1pbGxpczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuRFJJWlpMRV9DT05ORUNUSU9OX1RJTUVPVVRfTUlMTElTIHx8ICcxMDAwMCcsIDEwKSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZE9ic2VydmFiaWxpdHlDb25maWcoKTogT2JzZXJ2YWJpbGl0eUNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgbG9nTGV2ZWw6IHByb2Nlc3MuZW52LkxPR19MRVZFTCB8fCAnaW5mbycsXG4gICAgbG9nRm9ybWF0OiBwcm9jZXNzLmVudi5MT0dfRk9STUFUIHx8ICdqc29uJyxcbiAgICBzZXJ2aWNlTmFtZTogcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FIHx8ICdhcGknLFxuICAgIHRyYWNpbmc6IHtcbiAgICAgIGVuYWJsZWQ6IHByb2Nlc3MuZW52Lk9URUxfVFJBQ0lOR19FTkFCTEVEID09PSAndHJ1ZScsXG4gICAgICBlbmRwb2ludDogcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UIHx8ICdodHRwOi8vbG9jYWxob3N0OjQzMTgvdjEvdHJhY2VzJyxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZENvbXBsaWFuY2VDb25maWcoKTogQ29tcGxpYW5jZUNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgc2NhblNjaGVkdWxlckludGVydmFsTXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlNDQU5fU0NIRURVTEVSX0lOVEVSVkFMX01TIHx8ICc2MDAwMCcsIDEwKSxcbiAgICBzeXN0ZW1PcmdTY2Fuc0VuYWJsZWQ6IHByb2Nlc3MuZW52LlNZU1RFTV9PUkdfU0NBTlNfRU5BQkxFRCA9PT0gJ3RydWUnLFxuICB9O1xufVxuXG4vKipcbiAqIExvYWQgcGx1Z2luIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEJ1aWxkcyBydW4gYWdhaW5zdCBhIHJvb3RsZXNzIGBtb2J5L2J1aWxka2l0YFxuICogc2lkZWNhciDigJQgc2VlIGBCVUlMREtJVF9IT1NUYC5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKiAtIGBET0NLRVJfQlVJTERfVEVNUF9ST09UYCDigJQgVGVtcCBkaXJlY3RvcnkgZm9yIGJ1aWxkIGNvbnRleHRzIChkZWZhdWx0OiBgPGN3ZD4vdG1wYClcbiAqIC0gYERPQ0tFUl9CVUlMRF9USU1FT1VUX01TYCDigJQgQnVpbGQgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgKGRlZmF1bHQ6IGA5MDAwMDBgIC8gMTUgbWluKVxuICogLSBgRE9DS0VSX1BVU0hfVElNRU9VVF9NU2Ag4oCUIFB1c2ggdGltZW91dCBpbiBtaWxsaXNlY29uZHMgKGRlZmF1bHQ6IGAzMDAwMDBgIC8gNSBtaW4pXG4gKiAtIGBCVUlMREtJVF9IT1NUYCDigJQgYnVpbGRjdGwgYC0tYWRkcmAgdmFsdWUgZm9yIHRoZSBidWlsZGtpdGQgc2lkZWNhclxuICogICAoZGVmYXVsdDogYHVuaXg6Ly8vcnVuL2J1aWxka2l0L2J1aWxka2l0ZC5zb2NrYClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWREb2NrZXJDb25maWcoKTogQnVpbGRDb25maWcge1xuICByZXR1cm4ge1xuICAgIHRlbXBSb290OiBwcm9jZXNzLmVudi5ET0NLRVJfQlVJTERfVEVNUF9ST09UIHx8IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAndG1wJyksXG4gICAgdGltZW91dE1zOiBwYXJzZUludChwcm9jZXNzLmVudi5ET0NLRVJfQlVJTERfVElNRU9VVF9NUyB8fCAnOTAwMDAwJywgMTApLFxuICAgIHB1c2hUaW1lb3V0TXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LkRPQ0tFUl9QVVNIX1RJTUVPVVRfTVMgfHwgJzMwMDAwMCcsIDEwKSxcbiAgICBidWlsZGtpdEFkZHI6IHByb2Nlc3MuZW52LkJVSUxES0lUX0hPU1QgfHwgJ3VuaXg6Ly8vcnVuL2J1aWxka2l0L2J1aWxka2l0ZC5zb2NrJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2FkIEFXUyBpbmZyYXN0cnVjdHVyZSBjb25maWd1cmF0aW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqIC0gYExBTUJEQV9SVU5USU1FYCDigJQgTGFtYmRhIHJ1bnRpbWUgKGRlZmF1bHQ6IGAnbm9kZWpzMjQueCdgOyBzdXBwb3J0cyBub2RlanMyMi54LCBub2RlanMyNC54KVxuICogLSBgTEFNQkRBX1RJTUVPVVRgIOKAlCBMYW1iZGEgdGltZW91dCBpbiBzZWNvbmRzIChkZWZhdWx0OiBgOTAwYClcbiAqIC0gYExBTUJEQV9NRU1PUllfU0laRWAg4oCUIExhbWJkYSBtZW1vcnkgaW4gTUIgKGRlZmF1bHQ6IGAxMjhgKVxuICogLSBgTEFNQkRBX0FSQ0hJVEVDVFVSRWAg4oCUIGAneDg2XzY0J2Agb3IgQVJNIChkZWZhdWx0OiBBUk1fNjQpXG4gKiAtIGBMT0dfR1JPVVBfTkFNRWAg4oCUIENsb3VkV2F0Y2ggbG9nIGdyb3VwIChkZWZhdWx0OiBgJy9waXBlbGluZS1idWlsZGVyL2xvZ3MnYClcbiAqIC0gYExPR19SRVRFTlRJT05gIOKAlCBMb2cgcmV0ZW50aW9uIGluIGRheXMgKGRlZmF1bHQ6IGA3YClcbiAqIC0gYExPR19SRU1PVkFMX1BPTElDWWAg4oCUIGAnUkVUQUlOJ2Agb3IgZGVzdHJveSAoZGVmYXVsdDogREVTVFJPWSlcbiAqIC0gYENPREVCVUlMRF9DT01QVVRFX1RZUEVgIOKAlCBDb2RlQnVpbGQgY29tcHV0ZSB0eXBlIChkZWZhdWx0OiBgJ1NNQUxMJ2ApXG4gKlxuICogQHJldHVybnMgQVdTIGluZnJhc3RydWN0dXJlIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBV1NDb25maWcoKTogQVdTQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBsYW1iZGE6IHtcbiAgICAgIHJ1bnRpbWU6IHBhcnNlUnVudGltZShwcm9jZXNzLmVudi5MQU1CREFfUlVOVElNRSB8fCAnbm9kZWpzMjQueCcpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyhwYXJzZUludChwcm9jZXNzLmVudi5MQU1CREFfVElNRU9VVCB8fCAnOTAwJywgMTApKSxcbiAgICAgIG1lbW9yeVNpemU6IHBhcnNlSW50KHByb2Nlc3MuZW52LkxBTUJEQV9NRU1PUllfU0laRSB8fCAnNTEyJywgMTApLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9jZXNzLmVudi5MQU1CREFfQVJDSElURUNUVVJFID09PSAneDg2XzY0J1xuICAgICAgICA/IEFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICAgICAgOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uczogcHJvY2Vzcy5lbnYuTEFNQkRBX1JFU0VSVkVEX0NPTkNVUlJFTkNZXG4gICAgICAgID8gcGFyc2VJbnQocHJvY2Vzcy5lbnYuTEFNQkRBX1JFU0VSVkVEX0NPTkNVUlJFTkNZLCAxMClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSxcblxuICAgIGxvZ2dpbmc6IHtcbiAgICAgIGdyb3VwTmFtZTogcHJvY2Vzcy5lbnYuTE9HX0dST1VQX05BTUUgfHwgJy9waXBlbGluZS1idWlsZGVyL2xvZ3MnLFxuICAgICAgcmV0ZW50aW9uOiBwYXJzZVJldGVudGlvbihwcm9jZXNzLmVudi5MT0dfUkVURU5USU9OIHx8ICc3JyksXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9jZXNzLmVudi5MT0dfUkVNT1ZBTF9QT0xJQ1kgPT09ICdSRVRBSU4nXG4gICAgICAgID8gUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgICAgOiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSxcblxuICAgIGNvZGVCdWlsZDoge1xuICAgICAgY29tcHV0ZVR5cGU6IGdldENvbXB1dGVUeXBlKHByb2Nlc3MuZW52LkNPREVCVUlMRF9DT01QVVRFX1RZUEUgfHwgJ1NNQUxMJyksXG4gICAgICBkZWZhdWx0SW1hZ2U6IHByb2Nlc3MuZW52LkNPREVCVUlMRF9ERUZBVUxUX0lNQUdFIHx8ICdwaXBlbGluZS1ib290c3RyYXA6MS4wJyxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIFBhcnNlIExhbWJkYSBydW50aW1lIHN0cmluZyBpbnRvIGEgQ0RLIFJ1bnRpbWUgZW51bSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0gcnVudGltZSAtIFJ1bnRpbWUgc3RyaW5nIChlLmcuIGAnbm9kZWpzMjQueCdgKVxuICogQHJldHVybnMgQ0RLIFJ1bnRpbWUgZW51bTsgZmFsbHMgYmFjayB0byBOT0RFSlNfMjRfWCBmb3IgdW5rbm93biB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gcGFyc2VSdW50aW1lKHJ1bnRpbWU6IHN0cmluZyk6IFJ1bnRpbWUge1xuICBjb25zdCBydW50aW1lTWFwOiBSZWNvcmQ8c3RyaW5nLCBSdW50aW1lPiA9IHtcbiAgICAnbm9kZWpzMjQueCc6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gIH07XG4gIHJldHVybiBydW50aW1lTWFwW3J1bnRpbWVdIHx8IFJ1bnRpbWUuTk9ERUpTXzI0X1g7XG59XG5cbi8qKlxuICogUGFyc2UgbG9nIHJldGVudGlvbiBkYXlzIHN0cmluZyBpbnRvIGEgQ0RLIFJldGVudGlvbkRheXMgZW51bSB2YWx1ZS5cbiAqIFJldGVudGlvbkRheXMgZW51bSB2YWx1ZXMgYXJlIHRoZSBudW1lcmljIGRheSBjb3VudHMgdGhlbXNlbHZlcyxcbiAqIHNvIHdlIHBhcnNlIHRoZSBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0J3MgYSB2YWxpZCBlbnVtIG1lbWJlci5cbiAqXG4gKiBAcGFyYW0gZGF5cyAtIFJldGVudGlvbiBwZXJpb2QgaW4gZGF5cyBhcyBhIHN0cmluZyAoZS5nLiBgJzMwJ2ApXG4gKiBAcmV0dXJucyBDREsgUmV0ZW50aW9uRGF5cyBlbnVtOyBmYWxscyBiYWNrIHRvIE9ORV9EQVkgZm9yIHVua25vd24gdmFsdWVzXG4gKi9cbmNvbnN0IFZBTElEX1JFVEVOVElPTl9EQVlTID0gbmV3IFNldChPYmplY3QudmFsdWVzKFJldGVudGlvbkRheXMpLmZpbHRlcigodik6IHYgaXMgbnVtYmVyID0+IHR5cGVvZiB2ID09PSAnbnVtYmVyJykpO1xuXG5mdW5jdGlvbiBwYXJzZVJldGVudGlvbihkYXlzOiBzdHJpbmcpOiBSZXRlbnRpb25EYXlzIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQoZGF5cywgMTApO1xuICByZXR1cm4gVkFMSURfUkVURU5USU9OX0RBWVMuaGFzKHBhcnNlZCkgPyBwYXJzZWQgYXMgUmV0ZW50aW9uRGF5cyA6IFJldGVudGlvbkRheXMuT05FX0RBWTtcbn1cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmFzdHJ1Y3R1cmUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9pbmZyYXN0cnVjdHVyZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLE9BQU87UUFDTCxJQUFJO1FBQ0osSUFBSTtRQUNKLDJFQUEyRTtRQUMzRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxJQUFJO1FBQ3RELFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzVFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQ3pDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixLQUFLLE9BQU87S0FDbEQsQ0FBQztBQUNKLENBQUM7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QyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztBQUVySCxTQUFTLGNBQWMsQ0FBQyxJQUFZO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEMsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQXVCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7QUFDNUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBSdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHR5cGUgeyBBV1NDb25maWcsIEJ1aWxkQ29uZmlnLCBDb21wbGlhbmNlQ29uZmlnLCBEYXRhYmFzZUNvbmZpZywgT2JzZXJ2YWJpbGl0eUNvbmZpZywgUGx1Z2luQnVpbGRDb25maWcsIFJlZGlzQ29uZmlnLCBSZWdpc3RyeUNvbmZpZyB9IGZyb20gJy4vY29uZmlnLXR5cGVzLmpzJztcbmltcG9ydCB7IGdldENvbXB1dGVUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS1oZWxwZXJzLmpzJztcblxuLyoqXG4gKiBMb2FkIERvY2tlciByZWdpc3RyeSBjb25maWd1cmF0aW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqIC0gYElNQUdFX1JFR0lTVFJZX0hPU1RgIOKAlCBSZWdpc3RyeSBob3N0bmFtZSAoZGVmYXVsdDogYCdyZWdpc3RyeSdgKVxuICogLSBgSU1BR0VfUkVHSVNUUllfUE9SVGAg4oCUIFJlZ2lzdHJ5IHBvcnQgKGRlZmF1bHQ6IGA1MDAwYClcbiAqIC0gYElNQUdFX1JFR0lTVFJZX1BVTExfSE9TVGAg4oCUIEhvc3QgYW4gb3V0LW9mLWNsdXN0ZXIgY2xpZW50IChDb2RlQnVpbGQpXG4gKiAgIHVzZXMgdG8gcHVsbCBwbHVnaW4gaW1hZ2VzIChkZWZhdWx0OiBgSU1BR0VfUkVHSVNUUllfSE9TVGApLlxuICogLSBgSU1BR0VfUkVHSVNUUllfUFVMTF9QT1JUYCDigJQgUG9ydCBmb3IgdGhlIGFib3ZlIChkZWZhdWx0OlxuICogICBgSU1BR0VfUkVHSVNUUllfUE9SVGApLlxuICogLSBgRE9DS0VSX05FVFdPUktgIOKAlCBEb2NrZXIgbmV0d29yayBmb3IgYnVpbGQvcHVzaCAoZGVmYXVsdDogYCcnYClcbiAqIC0gYElNQUdFX1JFR0lTVFJZX0hUVFBgIOKAlCBVc2UgcGxhaW4gSFRUUCBpbnN0ZWFkIG9mIEhUVFBTIChkZWZhdWx0OiBgdHJ1ZWAsXG4gKiAgIHRoZSBpbi1jbHVzdGVyIHJlZ2lzdHJ5IGhhcyBubyBUTFMpLlxuICpcbiAqIEByZXR1cm5zIFJlZ2lzdHJ5IGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZWdpc3RyeUNvbmZpZygpOiBSZWdpc3RyeUNvbmZpZyB7XG4gIGNvbnN0IGhvc3QgPSBwcm9jZXNzLmVudi5JTUFHRV9SRUdJU1RSWV9IT1NUIHx8ICdyZWdpc3RyeSc7XG4gIGNvbnN0IHBvcnQgPSBwYXJzZUludChwcm9jZXNzLmVudi5JTUFHRV9SRUdJU1RSWV9QT1JUIHx8ICc1MDAwJywgMTApO1xuICByZXR1cm4ge1xuICAgIGhvc3QsXG4gICAgcG9ydCxcbiAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIGluLWNsdXN0ZXIgaG9zdC9wb3J0IHdoZW4gbm8gZXh0ZXJuYWwgcHVsbCBob3N0IGlzIHNldC5cbiAgICBwdWxsSG9zdDogcHJvY2Vzcy5lbnYuSU1BR0VfUkVHSVNUUllfUFVMTF9IT1NUIHx8IGhvc3QsXG4gICAgcHVsbFBvcnQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LklNQUdFX1JFR0lTVFJZX1BVTExfUE9SVCB8fCBTdHJpbmcocG9ydCksIDEwKSxcbiAgICBuZXR3b3JrOiBwcm9jZXNzLmVudi5ET0NLRVJfTkVUV09SSyB8fCAnJyxcbiAgICBodHRwOiBwcm9jZXNzLmVudi5JTUFHRV9SRUdJU1RSWV9IVFRQICE9PSAnZmFsc2UnLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlZGlzQ29uZmlnKCk6IFJlZGlzQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBob3N0OiBwcm9jZXNzLmVudi5SRURJU19IT1NUIHx8ICdsb2NhbGhvc3QnLFxuICAgIHBvcnQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LlJFRElTX1BPUlQgfHwgJzYzNzknLCAxMCksXG4gIH07XG59XG5cbi8qKlxuICogTG9hZCBwbHVnaW4gYnVpbGQgcXVldWUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKiAtIGBQTFVHSU5fQlVJTERfQ09OQ1VSUkVOQ1lgIOKAlCBNYXggY29uY3VycmVudCBwbHVnaW4gYnVpbGRzIChkZWZhdWx0OiBgMWApXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUGx1Z2luQnVpbGRDb25maWcoKTogUGx1Z2luQnVpbGRDb25maWcge1xuICByZXR1cm4ge1xuICAgIGNvbmN1cnJlbmN5OiBwYXJzZUludChwcm9jZXNzLmVudi5QTFVHSU5fQlVJTERfQ09OQ1VSUkVOQ1kgfHwgJzEnLCAxMCksXG4gICAgbWF4QXR0ZW1wdHM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBMVUdJTl9CVUlMRF9NQVhfQVRURU1QVFMgfHwgJzInLCAxMCksXG4gICAgYmFja29mZkRlbGF5TXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBMVUdJTl9CVUlMRF9CQUNLT0ZGX0RFTEFZX01TIHx8ICc1MDAwJywgMTApLFxuICAgIHdvcmtlclRpbWVvdXRNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUExVR0lOX0JVSUxEX1dPUktFUl9USU1FT1VUX01TIHx8ICcxMDAwMCcsIDEwKSxcbiAgICB0ZW1wRGlyTWF4QWdlTXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlRFTVBfRElSX01BWF9BR0VfTVMgfHwgJzE0NDAwMDAwJywgMTApLFxuICAgIGRscU1heEF0dGVtcHRzOiBwYXJzZUludChwcm9jZXNzLmVudi5QTFVHSU5fRExRX01BWF9BVFRFTVBUUyB8fCAnMycsIDEwKSxcbiAgICBkbHFCYWNrb2ZmQmFzZU1zOiBwYXJzZUludChwcm9jZXNzLmVudi5QTFVHSU5fRExRX0JBQ0tPRkZfQkFTRV9NUyB8fCAnMzAwMDAwJywgMTApLFxuICAgIGRscU1heFNpemU6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBMVUdJTl9ETFFfTUFYX1NJWkUgfHwgJzIwJywgMTApLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERhdGFiYXNlQ29uZmlnKCk6IERhdGFiYXNlQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBwb3N0Z3Jlczoge1xuICAgICAgaG9zdDogcHJvY2Vzcy5lbnYuREJfSE9TVCB8fCAncG9zdGdyZXMnLFxuICAgICAgcG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuREJfUE9SVCB8fCAnNTQzMicsIDEwKSxcbiAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5EQVRBQkFTRSB8fCAncGlwZWxpbmVfYnVpbGRlcicsXG4gICAgICB1c2VyOiBwcm9jZXNzLmVudi5EQl9VU0VSIHx8ICdwb3N0Z3JlcycsXG4gICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuREJfUEFTU1dPUkQgfHwgJycsXG4gICAgfSxcbiAgICBkcml6emxlOiB7XG4gICAgICBtYXhQb29sU2l6ZTogcGFyc2VJbnQocHJvY2Vzcy5lbnYuRFJJWlpMRV9NQVhfUE9PTF9TSVpFIHx8ICcyMCcsIDEwKSxcbiAgICAgIGlkbGVUaW1lb3V0TWlsbGlzOiBwYXJzZUludChwcm9jZXNzLmVudi5EUklaWkxFX0lETEVfVElNRU9VVF9NSUxMSVMgfHwgJzMwMDAwJywgMTApLFxuICAgICAgY29ubmVjdGlvblRpbWVvdXRNaWxsaXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LkRSSVpaTEVfQ09OTkVDVElPTl9USU1FT1VUX01JTExJUyB8fCAnMTAwMDAnLCAxMCksXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRPYnNlcnZhYmlsaXR5Q29uZmlnKCk6IE9ic2VydmFiaWxpdHlDb25maWcge1xuICByZXR1cm4ge1xuICAgIGxvZ0xldmVsOiBwcm9jZXNzLmVudi5MT0dfTEVWRUwgfHwgJ2luZm8nLFxuICAgIGxvZ0Zvcm1hdDogcHJvY2Vzcy5lbnYuTE9HX0ZPUk1BVCB8fCAnanNvbicsXG4gICAgc2VydmljZU5hbWU6IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRSB8fCAnYXBpJyxcbiAgICB0cmFjaW5nOiB7XG4gICAgICBlbmFibGVkOiBwcm9jZXNzLmVudi5PVEVMX1RSQUNJTkdfRU5BQkxFRCA9PT0gJ3RydWUnLFxuICAgICAgZW5kcG9pbnQ6IHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVCB8fCAnaHR0cDovL2xvY2FsaG9zdDo0MzE4L3YxL3RyYWNlcycsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRDb21wbGlhbmNlQ29uZmlnKCk6IENvbXBsaWFuY2VDb25maWcge1xuICByZXR1cm4ge1xuICAgIHNjYW5TY2hlZHVsZXJJbnRlcnZhbE1zOiBwYXJzZUludChwcm9jZXNzLmVudi5TQ0FOX1NDSEVEVUxFUl9JTlRFUlZBTF9NUyB8fCAnNjAwMDAnLCAxMCksXG4gICAgc3lzdGVtT3JnU2NhbnNFbmFibGVkOiBwcm9jZXNzLmVudi5TWVNURU1fT1JHX1NDQU5TX0VOQUJMRUQgPT09ICd0cnVlJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2FkIHBsdWdpbiBidWlsZCBjb25maWd1cmF0aW9uLiBCdWlsZHMgcnVuIGFnYWluc3QgYSByb290bGVzcyBgbW9ieS9idWlsZGtpdGBcbiAqIHNpZGVjYXIg4oCUIHNlZSBgQlVJTERLSVRfSE9TVGAuXG4gKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzOlxuICogLSBgRE9DS0VSX0JVSUxEX1RFTVBfUk9PVGAg4oCUIFRlbXAgZGlyZWN0b3J5IGZvciBidWlsZCBjb250ZXh0cyAoZGVmYXVsdDogYDxjd2Q+L3RtcGApXG4gKiAtIGBET0NLRVJfQlVJTERfVElNRU9VVF9NU2Ag4oCUIEJ1aWxkIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIChkZWZhdWx0OiBgOTAwMDAwYCAvIDE1IG1pbilcbiAqIC0gYERPQ0tFUl9QVVNIX1RJTUVPVVRfTVNgIOKAlCBQdXNoIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIChkZWZhdWx0OiBgMzAwMDAwYCAvIDUgbWluKVxuICogLSBgQlVJTERLSVRfSE9TVGAg4oCUIGJ1aWxkY3RsIGAtLWFkZHJgIHZhbHVlIGZvciB0aGUgYnVpbGRraXRkIHNpZGVjYXJcbiAqICAgKGRlZmF1bHQ6IGB1bml4Oi8vL3J1bi9idWlsZGtpdC9idWlsZGtpdGQuc29ja2ApXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkRG9ja2VyQ29uZmlnKCk6IEJ1aWxkQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICB0ZW1wUm9vdDogcHJvY2Vzcy5lbnYuRE9DS0VSX0JVSUxEX1RFTVBfUk9PVCB8fCBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3RtcCcpLFxuICAgIHRpbWVvdXRNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuRE9DS0VSX0JVSUxEX1RJTUVPVVRfTVMgfHwgJzkwMDAwMCcsIDEwKSxcbiAgICBwdXNoVGltZW91dE1zOiBwYXJzZUludChwcm9jZXNzLmVudi5ET0NLRVJfUFVTSF9USU1FT1VUX01TIHx8ICczMDAwMDAnLCAxMCksXG4gICAgYnVpbGRraXRBZGRyOiBwcm9jZXNzLmVudi5CVUlMREtJVF9IT1NUIHx8ICd1bml4Oi8vL3J1bi9idWlsZGtpdC9idWlsZGtpdGQuc29jaycsXG4gIH07XG59XG5cbi8qKlxuICogTG9hZCBBV1MgaW5mcmFzdHJ1Y3R1cmUgY29uZmlndXJhdGlvbiBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKiAtIGBMQU1CREFfUlVOVElNRWAg4oCUIExhbWJkYSBydW50aW1lIChkZWZhdWx0OiBgJ25vZGVqczI0LngnYDsgc3VwcG9ydHMgbm9kZWpzMjIueCwgbm9kZWpzMjQueClcbiAqIC0gYExBTUJEQV9USU1FT1VUYCDigJQgTGFtYmRhIHRpbWVvdXQgaW4gc2Vjb25kcyAoZGVmYXVsdDogYDkwMGApXG4gKiAtIGBMQU1CREFfTUVNT1JZX1NJWkVgIOKAlCBMYW1iZGEgbWVtb3J5IGluIE1CIChkZWZhdWx0OiBgMTI4YClcbiAqIC0gYExBTUJEQV9BUkNISVRFQ1RVUkVgIOKAlCBgJ3g4Nl82NCdgIG9yIEFSTSAoZGVmYXVsdDogQVJNXzY0KVxuICogLSBgTE9HX0dST1VQX05BTUVgIOKAlCBDbG91ZFdhdGNoIGxvZyBncm91cCAoZGVmYXVsdDogYCcvcGlwZWxpbmUtYnVpbGRlci9sb2dzJ2ApXG4gKiAtIGBMT0dfUkVURU5USU9OYCDigJQgTG9nIHJldGVudGlvbiBpbiBkYXlzIChkZWZhdWx0OiBgN2ApXG4gKiAtIGBMT0dfUkVNT1ZBTF9QT0xJQ1lgIOKAlCBgJ1JFVEFJTidgIG9yIGRlc3Ryb3kgKGRlZmF1bHQ6IERFU1RST1kpXG4gKiAtIGBDT0RFQlVJTERfQ09NUFVURV9UWVBFYCDigJQgQ29kZUJ1aWxkIGNvbXB1dGUgdHlwZSAoZGVmYXVsdDogYCdTTUFMTCdgKVxuICpcbiAqIEByZXR1cm5zIEFXUyBpbmZyYXN0cnVjdHVyZSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQVdTQ29uZmlnKCk6IEFXU0NvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgbGFtYmRhOiB7XG4gICAgICBydW50aW1lOiBwYXJzZVJ1bnRpbWUocHJvY2Vzcy5lbnYuTEFNQkRBX1JVTlRJTUUgfHwgJ25vZGVqczI0LngnKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMocGFyc2VJbnQocHJvY2Vzcy5lbnYuTEFNQkRBX1RJTUVPVVQgfHwgJzkwMCcsIDEwKSksXG4gICAgICBtZW1vcnlTaXplOiBwYXJzZUludChwcm9jZXNzLmVudi5MQU1CREFfTUVNT1JZX1NJWkUgfHwgJzUxMicsIDEwKSxcbiAgICAgIGFyY2hpdGVjdHVyZTogcHJvY2Vzcy5lbnYuTEFNQkRBX0FSQ0hJVEVDVFVSRSA9PT0gJ3g4Nl82NCdcbiAgICAgICAgPyBBcmNoaXRlY3R1cmUuWDg2XzY0XG4gICAgICAgIDogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM6IHByb2Nlc3MuZW52LkxBTUJEQV9SRVNFUlZFRF9DT05DVVJSRU5DWVxuICAgICAgICA/IHBhcnNlSW50KHByb2Nlc3MuZW52LkxBTUJEQV9SRVNFUlZFRF9DT05DVVJSRU5DWSwgMTApXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0sXG5cbiAgICBsb2dnaW5nOiB7XG4gICAgICBncm91cE5hbWU6IHByb2Nlc3MuZW52LkxPR19HUk9VUF9OQU1FIHx8ICcvcGlwZWxpbmUtYnVpbGRlci9sb2dzJyxcbiAgICAgIHJldGVudGlvbjogcGFyc2VSZXRlbnRpb24ocHJvY2Vzcy5lbnYuTE9HX1JFVEVOVElPTiB8fCAnNycpLFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvY2Vzcy5lbnYuTE9HX1JFTU9WQUxfUE9MSUNZID09PSAnUkVUQUlOJ1xuICAgICAgICA/IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgICAgIDogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0sXG5cbiAgICBjb2RlQnVpbGQ6IHtcbiAgICAgIGNvbXB1dGVUeXBlOiBnZXRDb21wdXRlVHlwZShwcm9jZXNzLmVudi5DT0RFQlVJTERfQ09NUFVURV9UWVBFIHx8ICdTTUFMTCcpLFxuICAgICAgZGVmYXVsdEltYWdlOiBwcm9jZXNzLmVudi5DT0RFQlVJTERfREVGQVVMVF9JTUFHRSB8fCAncGlwZWxpbmUtYm9vdHN0cmFwOjEuMCcsXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBQYXJzZSBMYW1iZGEgcnVudGltZSBzdHJpbmcgaW50byBhIENESyBSdW50aW1lIGVudW0gdmFsdWUuXG4gKlxuICogQHBhcmFtIHJ1bnRpbWUgLSBSdW50aW1lIHN0cmluZyAoZS5nLiBgJ25vZGVqczI0LngnYClcbiAqIEByZXR1cm5zIENESyBSdW50aW1lIGVudW07IGZhbGxzIGJhY2sgdG8gTk9ERUpTXzI0X1ggZm9yIHVua25vd24gdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUnVudGltZShydW50aW1lOiBzdHJpbmcpOiBSdW50aW1lIHtcbiAgY29uc3QgcnVudGltZU1hcDogUmVjb3JkPHN0cmluZywgUnVudGltZT4gPSB7XG4gICAgJ25vZGVqczI0LngnOiBSdW50aW1lLk5PREVKU18yNF9YLFxuICB9O1xuICByZXR1cm4gcnVudGltZU1hcFtydW50aW1lXSB8fCBSdW50aW1lLk5PREVKU18yNF9YO1xufVxuXG4vKipcbiAqIFBhcnNlIGxvZyByZXRlbnRpb24gZGF5cyBzdHJpbmcgaW50byBhIENESyBSZXRlbnRpb25EYXlzIGVudW0gdmFsdWUuXG4gKiBSZXRlbnRpb25EYXlzIGVudW0gdmFsdWVzIGFyZSB0aGUgbnVtZXJpYyBkYXkgY291bnRzIHRoZW1zZWx2ZXMsXG4gKiBzbyB3ZSBwYXJzZSB0aGUgc3RyaW5nIGFuZCBjaGVjayBpZiBpdCdzIGEgdmFsaWQgZW51bSBtZW1iZXIuXG4gKlxuICogQHBhcmFtIGRheXMgLSBSZXRlbnRpb24gcGVyaW9kIGluIGRheXMgYXMgYSBzdHJpbmcgKGUuZy4gYCczMCdgKVxuICogQHJldHVybnMgQ0RLIFJldGVudGlvbkRheXMgZW51bTsgZmFsbHMgYmFjayB0byBPTkVfREFZIGZvciB1bmtub3duIHZhbHVlc1xuICovXG5jb25zdCBWQUxJRF9SRVRFTlRJT05fREFZUyA9IG5ldyBTZXQoT2JqZWN0LnZhbHVlcyhSZXRlbnRpb25EYXlzKS5maWx0ZXIoKHYpOiB2IGlzIG51bWJlciA9PiB0eXBlb2YgdiA9PT0gJ251bWJlcicpKTtcblxuZnVuY3Rpb24gcGFyc2VSZXRlbnRpb24oZGF5czogc3RyaW5nKTogUmV0ZW50aW9uRGF5cyB7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KGRheXMsIDEwKTtcbiAgcmV0dXJuIFZBTElEX1JFVEVOVElPTl9EQVlTLmhhcyhwYXJzZWQpID8gcGFyc2VkIGFzIFJldGVudGlvbkRheXMgOiBSZXRlbnRpb25EYXlzLk9ORV9EQVk7XG59XG4iXX0=
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.loadRateLimitConfig = loadRateLimitConfig;
|
|
8
|
-
exports.validateServerConfig = validateServerConfig;
|
|
9
|
-
exports.validateAuthConfig = validateAuthConfig;
|
|
10
|
-
const api_core_1 = require("@pipeline-builder/api-core");
|
|
11
|
-
const app_config_1 = require("./app-config");
|
|
12
|
-
const log = (0, api_core_1.createLogger)('server-config');
|
|
3
|
+
import { createLogger } from '@pipeline-builder/api-core';
|
|
4
|
+
import { CoreConstants } from './app-config.js';
|
|
5
|
+
const log = createLogger('server-config');
|
|
13
6
|
/**
|
|
14
7
|
* Load server configuration from environment variables.
|
|
15
8
|
*
|
|
@@ -22,17 +15,17 @@ const log = (0, api_core_1.createLogger)('server-config');
|
|
|
22
15
|
*
|
|
23
16
|
* @returns Server configuration with port, CORS, trust proxy, and platform URL
|
|
24
17
|
*/
|
|
25
|
-
function loadServerConfig() {
|
|
18
|
+
export function loadServerConfig() {
|
|
26
19
|
return {
|
|
27
20
|
port: parseInt(process.env.PORT || '3000', 10),
|
|
28
21
|
cors: {
|
|
29
22
|
credentials: process.env.CORS_CREDENTIALS !== 'false',
|
|
30
23
|
origin: process.env.CORS_ORIGIN
|
|
31
24
|
? process.env.CORS_ORIGIN.split(',').map(o => o.trim())
|
|
32
|
-
: [process.env.PLATFORM_BASE_URL ||
|
|
25
|
+
: [process.env.PLATFORM_BASE_URL || CoreConstants.DEFAULT_PLATFORM_URL],
|
|
33
26
|
},
|
|
34
27
|
trustProxy: parseInt(process.env.TRUST_PROXY || '1', 10),
|
|
35
|
-
platformUrl: process.env.PLATFORM_BASE_URL ||
|
|
28
|
+
platformUrl: process.env.PLATFORM_BASE_URL || CoreConstants.DEFAULT_PLATFORM_URL,
|
|
36
29
|
httpClient: {
|
|
37
30
|
timeout: parseInt(process.env.HTTP_CLIENT_TIMEOUT || '5000', 10),
|
|
38
31
|
maxRetries: parseInt(process.env.HTTP_CLIENT_MAX_RETRIES || '2', 10),
|
|
@@ -72,7 +65,7 @@ function loadServerConfig() {
|
|
|
72
65
|
* @returns Authentication configuration with safe defaults (empty strings when env vars are unset).
|
|
73
66
|
* Call {@link validateAuthConfig} at server startup to enforce required secrets.
|
|
74
67
|
*/
|
|
75
|
-
function loadAuthConfig() {
|
|
68
|
+
export function loadAuthConfig() {
|
|
76
69
|
return {
|
|
77
70
|
jwt: {
|
|
78
71
|
secret: process.env.JWT_SECRET ?? '',
|
|
@@ -95,7 +88,7 @@ function loadAuthConfig() {
|
|
|
95
88
|
*
|
|
96
89
|
* @returns Rate limit configuration
|
|
97
90
|
*/
|
|
98
|
-
function loadRateLimitConfig() {
|
|
91
|
+
export function loadRateLimitConfig() {
|
|
99
92
|
return {
|
|
100
93
|
max: parseInt(process.env.LIMITER_MAX || '100', 10),
|
|
101
94
|
windowMs: parseInt(process.env.LIMITER_WINDOWMS || '900000', 10),
|
|
@@ -108,7 +101,7 @@ function loadRateLimitConfig() {
|
|
|
108
101
|
*
|
|
109
102
|
* @param config - Server configuration to validate
|
|
110
103
|
*/
|
|
111
|
-
function validateServerConfig(config) {
|
|
104
|
+
export function validateServerConfig(config) {
|
|
112
105
|
const warnings = [];
|
|
113
106
|
// Check CORS configuration
|
|
114
107
|
const origin = config.cors.origin;
|
|
@@ -144,7 +137,7 @@ function isInsecureSecret(secret) {
|
|
|
144
137
|
* @param config - Auth configuration to validate
|
|
145
138
|
* @throws {Error} If secrets are insecure, too short (<32 chars), or use disallowed algorithms
|
|
146
139
|
*/
|
|
147
|
-
function validateAuthConfig(config) {
|
|
140
|
+
export function validateAuthConfig(config) {
|
|
148
141
|
const errors = [];
|
|
149
142
|
const warnings = [];
|
|
150
143
|
// Validate both secrets with the same checks
|
|
@@ -164,7 +157,7 @@ function validateAuthConfig(config) {
|
|
|
164
157
|
warnings.push('JWT expiration time is greater than 2 hours - shorter expiration recommended');
|
|
165
158
|
}
|
|
166
159
|
// Check algorithm
|
|
167
|
-
if (!
|
|
160
|
+
if (!CoreConstants.ALLOWED_JWT_ALGORITHMS.includes(config.jwt.algorithm)) {
|
|
168
161
|
errors.push(`JWT algorithm ${config.jwt.algorithm} is not in the allowed list`);
|
|
169
162
|
}
|
|
170
163
|
// Display warnings
|
|
@@ -177,4 +170,4 @@ function validateAuthConfig(config) {
|
|
|
177
170
|
throw new Error(`Auth configuration validation failed:\n${errors.map(e => ` - ${e}`).join('\n')}`);
|
|
178
171
|
}
|
|
179
172
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc2VydmVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHNDQUFzQzs7QUFxQnRDLDRDQXNDQztBQWdCRCx3Q0FhQztBQVdELGtEQU9DO0FBT0Qsb0RBNEJDO0FBZ0JELGdEQXNDQztBQWpNRCx5REFBMEQ7QUFFMUQsNkNBQTZDO0FBRzdDLE1BQU0sR0FBRyxHQUFHLElBQUEsdUJBQVksRUFBQyxlQUFlLENBQUMsQ0FBQztBQUUxQzs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLGdCQUFnQjtJQUM5QixPQUFPO1FBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQzlDLElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixLQUFLLE9BQU87WUFDckQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVztnQkFDN0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksMEJBQWEsQ0FBQyxvQkFBb0IsQ0FBQztTQUMxRTtRQUNELFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUN4RCxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSwwQkFBYSxDQUFDLG9CQUFvQjtRQUVoRixVQUFVLEVBQUU7WUFDVixP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RUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ25GLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFsZ29yaXRobSB9IGZyb20gJ2pzb253ZWJ0b2tlbic7XG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzIH0gZnJvbSAnLi9hcHAtY29uZmlnJztcbmltcG9ydCB0eXBlIHsgU2VydmVyQ29uZmlnLCBBdXRoQ29uZmlnLCBSYXRlTGltaXRDb25maWcgfSBmcm9tICcuL2NvbmZpZy10eXBlcyc7XG5cbmNvbnN0IGxvZyA9IGNyZWF0ZUxvZ2dlcignc2VydmVyLWNvbmZpZycpO1xuXG4vKipcbiAqIExvYWQgc2VydmVyIGNvbmZpZ3VyYXRpb24gZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzOlxuICogLSBgUE9SVGAg4oCUIEhUVFAgbGlzdGVuIHBvcnQgKGRlZmF1bHQ6IGAzMDAwYClcbiAqIC0gYENPUlNfT1JJR0lOYCDigJQgQ29tbWEtc2VwYXJhdGVkIGFsbG93ZWQgb3JpZ2lucyAoZGVmYXVsdDogYFBMQVRGT1JNX0JBU0VfVVJMYClcbiAqIC0gYENPUlNfQ1JFREVOVElBTFNgIOKAlCBBbGxvdyBjcmVkZW50aWFsczsgc2V0IHRvIGAnZmFsc2UnYCB0byBkaXNhYmxlIChkZWZhdWx0OiBgdHJ1ZWApXG4gKiAtIGBUUlVTVF9QUk9YWWAg4oCUIEV4cHJlc3MgdHJ1c3QgcHJveHkgaG9wcyAoZGVmYXVsdDogYDFgKVxuICogLSBgUExBVEZPUk1fQkFTRV9VUkxgIOKAlCBGcm9udGVuZCBVUkwgdXNlZCBhcyBDT1JTIGZhbGxiYWNrIChkZWZhdWx0OiBgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnYClcbiAqXG4gKiBAcmV0dXJucyBTZXJ2ZXIgY29uZmlndXJhdGlvbiB3aXRoIHBvcnQsIENPUlMsIHRydXN0IHByb3h5LCBhbmQgcGxhdGZvcm0gVVJMXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkU2VydmVyQ29uZmlnKCk6IFNlcnZlckNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgcG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUE9SVCB8fCAnMzAwMCcsIDEwKSxcbiAgICBjb3JzOiB7XG4gICAgICBjcmVkZW50aWFsczogcHJvY2Vzcy5lbnYuQ09SU19DUkVERU5USUFMUyAhPT0gJ2ZhbHNlJyxcbiAgICAgIG9yaWdpbjogcHJvY2Vzcy5lbnYuQ09SU19PUklHSU5cbiAgICAgICAgPyBwcm9jZXNzLmVudi5DT1JTX09SSUdJTi5zcGxpdCgnLCcpLm1hcChvID0+IG8udHJpbSgpKVxuICAgICAgICA6IFtwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTCB8fCBDb3JlQ29uc3RhbnRzLkRFRkFVTFRfUExBVEZPUk1fVVJMXSxcbiAgICB9LFxuICAgIHRydXN0UHJveHk6IHBhcnNlSW50KHByb2Nlc3MuZW52LlRSVVNUX1BST1hZIHx8ICcxJywgMTApLFxuICAgIHBsYXRmb3JtVXJsOiBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTCB8fCBDb3JlQ29uc3RhbnRzLkRFRkFVTFRfUExBVEZPUk1fVVJMLFxuXG4gICAgaHR0cENsaWVudDoge1xuICAgICAgdGltZW91dDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuSFRUUF9DTElFTlRfVElNRU9VVCB8fCAnNTAwMCcsIDEwKSxcbiAgICAgIG1heFJldHJpZXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LkhUVFBfQ0xJRU5UX01BWF9SRVRSSUVTIHx8ICcyJywgMTApLFxuICAgICAgcmV0cnlEZWxheU1zOiBwYXJzZUludChwcm9jZXNzLmVudi5IVFRQX0NMSUVOVF9SRVRSWV9ERUxBWV9NUyB8fCAnMjAwJywgMTApLFxuICAgIH0sXG5cbiAgICBzc2U6IHtcbiAgICAgIG1heENsaWVudHNQZXJSZXF1ZXN0OiBwYXJzZUludChwcm9jZXNzLmVudi5TU0VfTUFYX0NMSUVOVFNfUEVSX1JFUVVFU1QgfHwgJzEwJywgMTApLFxuICAgICAgY2xpZW50VGltZW91dE1zOiBwYXJzZUludChwcm9jZXNzLmVudi5TU0VfQ0xJRU5UX1RJTUVPVVRfTVMgfHwgJzE4MDAwMDAnLCAxMCksXG4gICAgICBjbGVhbnVwSW50ZXJ2YWxNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuU1NFX0NMRUFOVVBfSU5URVJWQUxfTVMgfHwgJzMwMDAwMCcsIDEwKSxcbiAgICB9LFxuXG4gICAgc2VydmljZXM6IHtcbiAgICAgIHBsdWdpbkhvc3Q6IHByb2Nlc3MuZW52LlBMVUdJTl9TRVJWSUNFX0hPU1QgfHwgJ3BsdWdpbicsXG4gICAgICBwbHVnaW5Qb3J0OiBwYXJzZUludChwcm9jZXNzLmVudi5QTFVHSU5fU0VSVklDRV9QT1JUIHx8ICczMDAwJywgMTApLFxuICAgICAgcGlwZWxpbmVIb3N0OiBwcm9jZXNzLmVudi5QSVBFTElORV9TRVJWSUNFX0hPU1QgfHwgJ3BpcGVsaW5lJyxcbiAgICAgIHBpcGVsaW5lUG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUElQRUxJTkVfU0VSVklDRV9QT1JUIHx8ICczMDAwJywgMTApLFxuICAgICAgbWVzc2FnZUhvc3Q6IHByb2Nlc3MuZW52Lk1FU1NBR0VfU0VSVklDRV9IT1NUIHx8ICdtZXNzYWdlJyxcbiAgICAgIG1lc3NhZ2VQb3J0OiBwYXJzZUludChwcm9jZXNzLmVudi5NRVNTQUdFX1NFUlZJQ0VfUE9SVCB8fCAnMzAwMCcsIDEwKSxcbiAgICAgIGNvbXBsaWFuY2VIb3N0OiBwcm9jZXNzLmVudi5DT01QTElBTkNFX1NFUlZJQ0VfSE9TVCB8fCAnY29tcGxpYW5jZScsXG4gICAgICBjb21wbGlhbmNlUG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuQ09NUExJQU5DRV9TRVJWSUNFX1BPUlQgfHwgJzMwMDAnLCAxMCksXG4gICAgICBiaWxsaW5nSG9zdDogcHJvY2Vzcy5lbnYuQklMTElOR19TRVJWSUNFX0hPU1QgfHwgJ2JpbGxpbmcnLFxuICAgICAgYmlsbGluZ1BvcnQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LkJJTExJTkdfU0VSVklDRV9QT1JUIHx8ICczMDAwJywgMTApLFxuICAgICAgYmlsbGluZ1RpbWVvdXQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LkJJTExJTkdfU0VSVklDRV9USU1FT1VUIHx8ICc1MDAwJywgMTApLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogTG9hZCBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqIC0gYEpXVF9TRUNSRVRgIOKAlCAqKlJlcXVpcmVkLioqIFNlY3JldCBrZXkgZm9yIHNpZ25pbmcgSldUc1xuICogLSBgUkVGUkVTSF9UT0tFTl9TRUNSRVRgIOKAlCAqKlJlcXVpcmVkLioqIFNlY3JldCBrZXkgZm9yIHNpZ25pbmcgcmVmcmVzaCB0b2tlbnNcbiAqIC0gYEpXVF9FWFBJUkVTX0lOYCDigJQgSldUIGxpZmV0aW1lIGluIHNlY29uZHMgKGRlZmF1bHQ6IGA3MjAwYCA9IDIgaG91cnMpXG4gKiAtIGBKV1RfQUxHT1JJVEhNYCDigJQgSldUIHNpZ25pbmcgYWxnb3JpdGhtIChkZWZhdWx0OiBgJ0hTMjU2J2ApXG4gKiAtIGBCQ1JZUFRfU0FMVF9ST1VORFNgIOKAlCBiY3J5cHQgc2FsdCByb3VuZHMgZm9yIHBhc3N3b3JkIGhhc2hpbmcgKGRlZmF1bHQ6IGAxMmApXG4gKiAtIGBSRUZSRVNIX1RPS0VOX0VYUElSRVNfSU5gIOKAlCBSZWZyZXNoIHRva2VuIGxpZmV0aW1lIGluIHNlY29uZHMgKGRlZmF1bHQ6IGAyNTkyMDAwYCA9IDMwIGRheXMpXG4gKlxuICogQHJldHVybnMgQXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiB3aXRoIHNhZmUgZGVmYXVsdHMgKGVtcHR5IHN0cmluZ3Mgd2hlbiBlbnYgdmFycyBhcmUgdW5zZXQpLlxuICogQ2FsbCB7QGxpbmsgdmFsaWRhdGVBdXRoQ29uZmlnfSBhdCBzZXJ2ZXIgc3RhcnR1cCB0byBlbmZvcmNlIHJlcXVpcmVkIHNlY3JldHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXV0aENvbmZpZygpOiBBdXRoQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBqd3Q6IHtcbiAgICAgIHNlY3JldDogcHJvY2Vzcy5lbnYuSldUX1NFQ1JFVCA/PyAnJyxcbiAgICAgIGV4cGlyZXNJbjogcGFyc2VJbnQocHJvY2Vzcy5lbnYuSldUX0VYUElSRVNfSU4gfHwgJzcyMDAnLCAxMCksXG4gICAgICBhbGdvcml0aG06IChwcm9jZXNzLmVudi5KV1RfQUxHT1JJVEhNIHx8ICdIUzI1NicpIGFzIEFsZ29yaXRobSxcbiAgICAgIHNhbHRSb3VuZHM6IHBhcnNlSW50KHByb2Nlc3MuZW52LkJDUllQVF9TQUxUX1JPVU5EUyB8fCAnMTInLCAxMCksXG4gICAgfSxcbiAgICByZWZyZXNoVG9rZW46IHtcbiAgICAgIHNlY3JldDogcHJvY2Vzcy5lbnYuUkVGUkVTSF9UT0tFTl9TRUNSRVQgfHwgJycsXG4gICAgICBleHBpcmVzSW46IHBhcnNlSW50KHByb2Nlc3MuZW52LlJFRlJFU0hfVE9LRU5fRVhQSVJFU19JTiB8fCAnMjU5MjAwMCcsIDEwKSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIExvYWQgcmF0ZSBsaW1pdGluZyBjb25maWd1cmF0aW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqIC0gYExJTUlURVJfTUFYYCDigJQgTWF4IHJlcXVlc3RzIHBlciB3aW5kb3cgKGRlZmF1bHQ6IGAxMDBgKVxuICogLSBgTElNSVRFUl9XSU5ET1dNU2Ag4oCUIFJhdGUgbGltaXQgd2luZG93IGluIG1zIChkZWZhdWx0OiBgOTAwMDAwYCA9IDE1IG1pbnV0ZXMpXG4gKlxuICogQHJldHVybnMgUmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmF0ZUxpbWl0Q29uZmlnKCk6IFJhdGVMaW1pdENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgbWF4OiBwYXJzZUludChwcm9jZXNzLmVudi5MSU1JVEVSX01BWCB8fCAnMTAwJywgMTApLFxuICAgIHdpbmRvd01zOiBwYXJzZUludChwcm9jZXNzLmVudi5MSU1JVEVSX1dJTkRPV01TIHx8ICc5MDAwMDAnLCAxMCksXG4gICAgbGVnYWN5SGVhZGVyczogZmFsc2UsXG4gICAgc3RhbmRhcmRIZWFkZXJzOiB0cnVlLFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHNlcnZlciBjb25maWd1cmF0aW9uIGFuZCBsb2cgd2FybmluZ3MgZm9yIGluc2VjdXJlIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBTZXJ2ZXIgY29uZmlndXJhdGlvbiB0byB2YWxpZGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTZXJ2ZXJDb25maWcoY29uZmlnOiBTZXJ2ZXJDb25maWcpOiB2b2lkIHtcbiAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gQ2hlY2sgQ09SUyBjb25maWd1cmF0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGNvbmZpZy5jb3JzLm9yaWdpbjtcbiAgY29uc3QgaXNXaWxkY2FyZCA9IG9yaWdpbiA9PT0gJyonIHx8IChBcnJheS5pc0FycmF5KG9yaWdpbikgJiYgb3JpZ2luLmluY2x1ZGVzKCcqJykpO1xuICBpZiAoaXNXaWxkY2FyZCkge1xuICAgIHdhcm5pbmdzLnB1c2goJ0NPUlMgb3JpZ2luIHNldCB0byB3aWxkY2FyZCAoKikgLSBjb25zaWRlciByZXN0cmljdGluZyB0byBzcGVjaWZpYyBkb21haW5zJyk7XG4gIH1cbiAgaWYgKGlzV2lsZGNhcmQgJiYgY29uZmlnLmNvcnMuY3JlZGVudGlhbHMpIHtcbiAgICAvLyBCcm93c2VycyByZWplY3QgdGhpcyBjb21iaW5hdGlvbiwgYnV0IGl0IGluZGljYXRlcyBhIG1pc2NvbmZpZ3VyYXRpb25cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnU0VDVVJJVFkgRVJST1I6IENPUlNfT1JJR0lOPSogd2l0aCBDT1JTX0NSRURFTlRJQUxTPXRydWUgaXMgYW4gaW52YWxpZCBhbmQgaW5zZWN1cmUgY29uZmlndXJhdGlvbi4gJyArXG4gICAgICAnU2V0IENPUlNfT1JJR0lOIHRvIHNwZWNpZmljIGRvbWFpbnMgb3IgZGlzYWJsZSBDT1JTX0NSRURFTlRJQUxTLicsXG4gICAgKTtcbiAgfVxuXG4gIC8vIENoZWNrIHBsYXRmb3JtIFVSTCB1c2VzIEhUVFBTXG4gIGlmIChjb25maWcucGxhdGZvcm1Vcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpICYmXG4gICAgIWNvbmZpZy5wbGF0Zm9ybVVybC5pbmNsdWRlcygnbG9jYWxob3N0JykpIHtcbiAgICB3YXJuaW5ncy5wdXNoKCdQbGF0Zm9ybSBVUkwgdXNlcyBIVFRQIGluc3RlYWQgb2YgSFRUUFMgLSBpbnNlY3VyZSBmb3IgcHJvZHVjdGlvbicpO1xuICB9XG5cbiAgLy8gRGlzcGxheSB3YXJuaW5nc1xuICBpZiAod2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgIGxvZy53YXJuKCdTZXJ2ZXIgY29uZmlndXJhdGlvbiB3YXJuaW5nczonKTtcbiAgICB3YXJuaW5ncy5mb3JFYWNoKHdhcm5pbmcgPT4gbG9nLndhcm4oYCAgLSAke3dhcm5pbmd9YCkpO1xuICB9XG59XG5cbmNvbnN0IElOU0VDVVJFX1BBVFRFUk5TID0gWydzZWNyZXQnLCAncGFzc3dvcmQnLCAnY2hhbmdlbWUnLCAnZGVmYXVsdCcsICcxMjM0NTYnLCAnYWRtaW4nXTtcblxuZnVuY3Rpb24gaXNJbnNlY3VyZVNlY3JldChzZWNyZXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBsb3dlciA9IHNlY3JldC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gSU5TRUNVUkVfUEFUVEVSTlMuc29tZShzID0+IGxvd2VyID09PSBzIHx8IChsb3dlci5sZW5ndGggPCA2NCAmJiBsb3dlci5pbmNsdWRlcyhzKSkpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24gKEpXVCBzZWNyZXRzLCBhbGdvcml0aG1zLCBleHBpcmF0aW9uKS5cbiAqIENhbGwgdGhpcyBhdCBzZXJ2ZXIgc3RhcnR1cCwgbm90IGR1cmluZyBDREsgc3ludGhlc2lzLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBBdXRoIGNvbmZpZ3VyYXRpb24gdG8gdmFsaWRhdGVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBzZWNyZXRzIGFyZSBpbnNlY3VyZSwgdG9vIHNob3J0ICg8MzIgY2hhcnMpLCBvciB1c2UgZGlzYWxsb3dlZCBhbGdvcml0aG1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUF1dGhDb25maWcoY29uZmlnOiBBdXRoQ29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gVmFsaWRhdGUgYm90aCBzZWNyZXRzIHdpdGggdGhlIHNhbWUgY2hlY2tzXG4gIGZvciAoY29uc3QgW2xhYmVsLCBzZWNyZXRdIG9mIFtbJ0pXVCcsIGNvbmZpZy5qd3Quc2VjcmV0XSwgWydSZWZyZXNoIHRva2VuJywgY29uZmlnLnJlZnJlc2hUb2tlbi5zZWNyZXRdXSBhcyBjb25zdCkge1xuICAgIGlmIChzZWNyZXQubGVuZ3RoIDwgMzIpIHtcbiAgICAgIGVycm9ycy5wdXNoKGAke2xhYmVsfSBzZWNyZXQgc2hvdWxkIGJlIGF0IGxlYXN0IDMyIGNoYXJhY3RlcnMgbG9uZ2ApO1xuICAgIH1cbiAgICBpZiAoaXNJbnNlY3VyZVNlY3JldChzZWNyZXQpKSB7XG4gICAgICBlcnJvcnMucHVzaChgJHtsYWJlbH0gc2VjcmV0IGFwcGVhcnMgdG8gYmUgaW5zZWN1cmUgb3IgZGVmYXVsdCB2YWx1ZWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIEpXVCBleHBpcmF0aW9uIHRpbWVzXG4gIGlmIChjb25maWcuand0LmV4cGlyZXNJbiA+IDg2NDAwKSB7XG4gICAgZXJyb3JzLnB1c2goJ0pXVCBleHBpcmF0aW9uIG11c3Qgbm90IGV4Y2VlZCAyNCBob3VycyAoODY0MDAgc2Vjb25kcyknKTtcbiAgfSBlbHNlIGlmIChjb25maWcuand0LmV4cGlyZXNJbiA+IDcyMDApIHtcbiAgICB3YXJuaW5ncy5wdXNoKCdKV1QgZXhwaXJhdGlvbiB0aW1lIGlzIGdyZWF0ZXIgdGhhbiAyIGhvdXJzIC0gc2hvcnRlciBleHBpcmF0aW9uIHJlY29tbWVuZGVkJyk7XG4gIH1cblxuICAvLyBDaGVjayBhbGdvcml0aG1cbiAgaWYgKCFDb3JlQ29uc3RhbnRzLkFMTE9XRURfSldUX0FMR09SSVRITVMuaW5jbHVkZXMoY29uZmlnLmp3dC5hbGdvcml0aG0pKSB7XG4gICAgZXJyb3JzLnB1c2goYEpXVCBhbGdvcml0aG0gJHtjb25maWcuand0LmFsZ29yaXRobX0gaXMgbm90IGluIHRoZSBhbGxvd2VkIGxpc3RgKTtcbiAgfVxuXG4gIC8vIERpc3BsYXkgd2FybmluZ3NcbiAgaWYgKHdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICBsb2cud2FybignQXV0aCBjb25maWd1cmF0aW9uIHdhcm5pbmdzOicpO1xuICAgIHdhcm5pbmdzLmZvckVhY2god2FybmluZyA9PiBsb2cud2FybihgICAtICR7d2FybmluZ31gKSk7XG4gIH1cblxuICAvLyBUaHJvdyBlcnJvcnNcbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF1dGggY29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDpcXG4ke2Vycm9ycy5tYXAoZSA9PiBgICAtICR7ZX1gKS5qb2luKCdcXG4nKX1gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc2VydmVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTFDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPO1FBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQzlDLElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixLQUFLLE9BQU87WUFDckQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVztnQkFDN0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksYUFBYSxDQUFDLG9CQUFvQixDQUFDO1NBQzFFO1FBQ0QsVUFBVSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3hELFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLGFBQWEsQ0FBQyxvQkFBb0I7UUFFaEYsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFF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TyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNuRixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBBbGdvcml0aG0gfSBmcm9tICdqc29ud2VidG9rZW4nO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50cyB9IGZyb20gJy4vYXBwLWNvbmZpZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNlcnZlckNvbmZpZywgQXV0aENvbmZpZywgUmF0ZUxpbWl0Q29uZmlnIH0gZnJvbSAnLi9jb25maWctdHlwZXMuanMnO1xuXG5jb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIoJ3NlcnZlci1jb25maWcnKTtcblxuLyoqXG4gKiBMb2FkIHNlcnZlciBjb25maWd1cmF0aW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqIC0gYFBPUlRgIOKAlCBIVFRQIGxpc3RlbiBwb3J0IChkZWZhdWx0OiBgMzAwMGApXG4gKiAtIGBDT1JTX09SSUdJTmAg4oCUIENvbW1hLXNlcGFyYXRlZCBhbGxvd2VkIG9yaWdpbnMgKGRlZmF1bHQ6IGBQTEFURk9STV9CQVNFX1VSTGApXG4gKiAtIGBDT1JTX0NSRURFTlRJQUxTYCDigJQgQWxsb3cgY3JlZGVudGlhbHM7IHNldCB0byBgJ2ZhbHNlJ2AgdG8gZGlzYWJsZSAoZGVmYXVsdDogYHRydWVgKVxuICogLSBgVFJVU1RfUFJPWFlgIOKAlCBFeHByZXNzIHRydXN0IHByb3h5IGhvcHMgKGRlZmF1bHQ6IGAxYClcbiAqIC0gYFBMQVRGT1JNX0JBU0VfVVJMYCDigJQgRnJvbnRlbmQgVVJMIHVzZWQgYXMgQ09SUyBmYWxsYmFjayAoZGVmYXVsdDogYCdodHRwczovL2xvY2FsaG9zdDo4NDQzJ2ApXG4gKlxuICogQHJldHVybnMgU2VydmVyIGNvbmZpZ3VyYXRpb24gd2l0aCBwb3J0LCBDT1JTLCB0cnVzdCBwcm94eSwgYW5kIHBsYXRmb3JtIFVSTFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFNlcnZlckNvbmZpZygpOiBTZXJ2ZXJDb25maWcge1xuICByZXR1cm4ge1xuICAgIHBvcnQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBPUlQgfHwgJzMwMDAnLCAxMCksXG4gICAgY29yczoge1xuICAgICAgY3JlZGVudGlhbHM6IHByb2Nlc3MuZW52LkNPUlNfQ1JFREVOVElBTFMgIT09ICdmYWxzZScsXG4gICAgICBvcmlnaW46IHByb2Nlc3MuZW52LkNPUlNfT1JJR0lOXG4gICAgICAgID8gcHJvY2Vzcy5lbnYuQ09SU19PUklHSU4uc3BsaXQoJywnKS5tYXAobyA9PiBvLnRyaW0oKSlcbiAgICAgICAgOiBbcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgQ29yZUNvbnN0YW50cy5ERUZBVUxUX1BMQVRGT1JNX1VSTF0sXG4gICAgfSxcbiAgICB0cnVzdFByb3h5OiBwYXJzZUludChwcm9jZXNzLmVudi5UUlVTVF9QUk9YWSB8fCAnMScsIDEwKSxcbiAgICBwbGF0Zm9ybVVybDogcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgQ29yZUNvbnN0YW50cy5ERUZBVUxUX1BMQVRGT1JNX1VSTCxcblxuICAgIGh0dHBDbGllbnQ6IHtcbiAgICAgIHRpbWVvdXQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LkhUVFBfQ0xJRU5UX1RJTUVPVVQgfHwgJzUwMDAnLCAxMCksXG4gICAgICBtYXhSZXRyaWVzOiBwYXJzZUludChwcm9jZXNzLmVudi5IVFRQX0NMSUVOVF9NQVhfUkVUUklFUyB8fCAnMicsIDEwKSxcbiAgICAgIHJldHJ5RGVsYXlNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuSFRUUF9DTElFTlRfUkVUUllfREVMQVlfTVMgfHwgJzIwMCcsIDEwKSxcbiAgICB9LFxuXG4gICAgc3NlOiB7XG4gICAgICBtYXhDbGllbnRzUGVyUmVxdWVzdDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuU1NFX01BWF9DTElFTlRTX1BFUl9SRVFVRVNUIHx8ICcxMCcsIDEwKSxcbiAgICAgIGNsaWVudFRpbWVvdXRNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuU1NFX0NMSUVOVF9USU1FT1VUX01TIHx8ICcxODAwMDAwJywgMTApLFxuICAgICAgY2xlYW51cEludGVydmFsTXM6IHBhcnNlSW50KHByb2Nlc3MuZW52LlNTRV9DTEVBTlVQX0lOVEVSVkFMX01TIHx8ICczMDAwMDAnLCAxMCksXG4gICAgfSxcblxuICAgIHNlcnZpY2VzOiB7XG4gICAgICBwbHVnaW5Ib3N0OiBwcm9jZXNzLmVudi5QTFVHSU5fU0VSVklDRV9IT1NUIHx8ICdwbHVnaW4nLFxuICAgICAgcGx1Z2luUG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuUExVR0lOX1NFUlZJQ0VfUE9SVCB8fCAnMzAwMCcsIDEwKSxcbiAgICAgIHBpcGVsaW5lSG9zdDogcHJvY2Vzcy5lbnYuUElQRUxJTkVfU0VSVklDRV9IT1NUIHx8ICdwaXBlbGluZScsXG4gICAgICBwaXBlbGluZVBvcnQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LlBJUEVMSU5FX1NFUlZJQ0VfUE9SVCB8fCAnMzAwMCcsIDEwKSxcbiAgICAgIG1lc3NhZ2VIb3N0OiBwcm9jZXNzLmVudi5NRVNTQUdFX1NFUlZJQ0VfSE9TVCB8fCAnbWVzc2FnZScsXG4gICAgICBtZXNzYWdlUG9ydDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuTUVTU0FHRV9TRVJWSUNFX1BPUlQgfHwgJzMwMDAnLCAxMCksXG4gICAgICBjb21wbGlhbmNlSG9zdDogcHJvY2Vzcy5lbnYuQ09NUExJQU5DRV9TRVJWSUNFX0hPU1QgfHwgJ2NvbXBsaWFuY2UnLFxuICAgICAgY29tcGxpYW5jZVBvcnQ6IHBhcnNlSW50KHByb2Nlc3MuZW52LkNPTVBMSUFOQ0VfU0VSVklDRV9QT1JUIHx8ICczMDAwJywgMTApLFxuICAgICAgYmlsbGluZ0hvc3Q6IHByb2Nlc3MuZW52LkJJTExJTkdfU0VSVklDRV9IT1NUIHx8ICdiaWxsaW5nJyxcbiAgICAgIGJpbGxpbmdQb3J0OiBwYXJzZUludChwcm9jZXNzLmVudi5CSUxMSU5HX1NFUlZJQ0VfUE9SVCB8fCAnMzAwMCcsIDEwKSxcbiAgICAgIGJpbGxpbmdUaW1lb3V0OiBwYXJzZUludChwcm9jZXNzLmVudi5CSUxMSU5HX1NFUlZJQ0VfVElNRU9VVCB8fCAnNTAwMCcsIDEwKSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIExvYWQgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKiAtIGBKV1RfU0VDUkVUYCDigJQgKipSZXF1aXJlZC4qKiBTZWNyZXQga2V5IGZvciBzaWduaW5nIEpXVHNcbiAqIC0gYFJFRlJFU0hfVE9LRU5fU0VDUkVUYCDigJQgKipSZXF1aXJlZC4qKiBTZWNyZXQga2V5IGZvciBzaWduaW5nIHJlZnJlc2ggdG9rZW5zXG4gKiAtIGBKV1RfRVhQSVJFU19JTmAg4oCUIEpXVCBsaWZldGltZSBpbiBzZWNvbmRzIChkZWZhdWx0OiBgNzIwMGAgPSAyIGhvdXJzKVxuICogLSBgSldUX0FMR09SSVRITWAg4oCUIEpXVCBzaWduaW5nIGFsZ29yaXRobSAoZGVmYXVsdDogYCdIUzI1NidgKVxuICogLSBgQkNSWVBUX1NBTFRfUk9VTkRTYCDigJQgYmNyeXB0IHNhbHQgcm91bmRzIGZvciBwYXNzd29yZCBoYXNoaW5nIChkZWZhdWx0OiBgMTJgKVxuICogLSBgUkVGUkVTSF9UT0tFTl9FWFBJUkVTX0lOYCDigJQgUmVmcmVzaCB0b2tlbiBsaWZldGltZSBpbiBzZWNvbmRzIChkZWZhdWx0OiBgMjU5MjAwMGAgPSAzMCBkYXlzKVxuICpcbiAqIEByZXR1cm5zIEF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24gd2l0aCBzYWZlIGRlZmF1bHRzIChlbXB0eSBzdHJpbmdzIHdoZW4gZW52IHZhcnMgYXJlIHVuc2V0KS5cbiAqIENhbGwge0BsaW5rIHZhbGlkYXRlQXV0aENvbmZpZ30gYXQgc2VydmVyIHN0YXJ0dXAgdG8gZW5mb3JjZSByZXF1aXJlZCBzZWNyZXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEF1dGhDb25maWcoKTogQXV0aENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgand0OiB7XG4gICAgICBzZWNyZXQ6IHByb2Nlc3MuZW52LkpXVF9TRUNSRVQgPz8gJycsXG4gICAgICBleHBpcmVzSW46IHBhcnNlSW50KHByb2Nlc3MuZW52LkpXVF9FWFBJUkVTX0lOIHx8ICc3MjAwJywgMTApLFxuICAgICAgYWxnb3JpdGhtOiAocHJvY2Vzcy5lbnYuSldUX0FMR09SSVRITSB8fCAnSFMyNTYnKSBhcyBBbGdvcml0aG0sXG4gICAgICBzYWx0Um91bmRzOiBwYXJzZUludChwcm9jZXNzLmVudi5CQ1JZUFRfU0FMVF9ST1VORFMgfHwgJzEyJywgMTApLFxuICAgIH0sXG4gICAgcmVmcmVzaFRva2VuOiB7XG4gICAgICBzZWNyZXQ6IHByb2Nlc3MuZW52LlJFRlJFU0hfVE9LRU5fU0VDUkVUIHx8ICcnLFxuICAgICAgZXhwaXJlc0luOiBwYXJzZUludChwcm9jZXNzLmVudi5SRUZSRVNIX1RPS0VOX0VYUElSRVNfSU4gfHwgJzI1OTIwMDAnLCAxMCksXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2FkIHJhdGUgbGltaXRpbmcgY29uZmlndXJhdGlvbiBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKiAtIGBMSU1JVEVSX01BWGAg4oCUIE1heCByZXF1ZXN0cyBwZXIgd2luZG93IChkZWZhdWx0OiBgMTAwYClcbiAqIC0gYExJTUlURVJfV0lORE9XTVNgIOKAlCBSYXRlIGxpbWl0IHdpbmRvdyBpbiBtcyAoZGVmYXVsdDogYDkwMDAwMGAgPSAxNSBtaW51dGVzKVxuICpcbiAqIEByZXR1cm5zIFJhdGUgbGltaXQgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJhdGVMaW1pdENvbmZpZygpOiBSYXRlTGltaXRDb25maWcge1xuICByZXR1cm4ge1xuICAgIG1heDogcGFyc2VJbnQocHJvY2Vzcy5lbnYuTElNSVRFUl9NQVggfHwgJzEwMCcsIDEwKSxcbiAgICB3aW5kb3dNczogcGFyc2VJbnQocHJvY2Vzcy5lbnYuTElNSVRFUl9XSU5ET1dNUyB8fCAnOTAwMDAwJywgMTApLFxuICAgIGxlZ2FjeUhlYWRlcnM6IGZhbHNlLFxuICAgIHN0YW5kYXJkSGVhZGVyczogdHJ1ZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBhbmQgbG9nIHdhcm5pbmdzIGZvciBpbnNlY3VyZSBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gU2VydmVyIGNvbmZpZ3VyYXRpb24gdG8gdmFsaWRhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU2VydmVyQ29uZmlnKGNvbmZpZzogU2VydmVyQ29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIENoZWNrIENPUlMgY29uZmlndXJhdGlvblxuICBjb25zdCBvcmlnaW4gPSBjb25maWcuY29ycy5vcmlnaW47XG4gIGNvbnN0IGlzV2lsZGNhcmQgPSBvcmlnaW4gPT09ICcqJyB8fCAoQXJyYXkuaXNBcnJheShvcmlnaW4pICYmIG9yaWdpbi5pbmNsdWRlcygnKicpKTtcbiAgaWYgKGlzV2lsZGNhcmQpIHtcbiAgICB3YXJuaW5ncy5wdXNoKCdDT1JTIG9yaWdpbiBzZXQgdG8gd2lsZGNhcmQgKCopIC0gY29uc2lkZXIgcmVzdHJpY3RpbmcgdG8gc3BlY2lmaWMgZG9tYWlucycpO1xuICB9XG4gIGlmIChpc1dpbGRjYXJkICYmIGNvbmZpZy5jb3JzLmNyZWRlbnRpYWxzKSB7XG4gICAgLy8gQnJvd3NlcnMgcmVqZWN0IHRoaXMgY29tYmluYXRpb24sIGJ1dCBpdCBpbmRpY2F0ZXMgYSBtaXNjb25maWd1cmF0aW9uXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1NFQ1VSSVRZIEVSUk9SOiBDT1JTX09SSUdJTj0qIHdpdGggQ09SU19DUkVERU5USUFMUz10cnVlIGlzIGFuIGludmFsaWQgYW5kIGluc2VjdXJlIGNvbmZpZ3VyYXRpb24uICcgK1xuICAgICAgJ1NldCBDT1JTX09SSUdJTiB0byBzcGVjaWZpYyBkb21haW5zIG9yIGRpc2FibGUgQ09SU19DUkVERU5USUFMUy4nLFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBwbGF0Zm9ybSBVUkwgdXNlcyBIVFRQU1xuICBpZiAoY29uZmlnLnBsYXRmb3JtVXJsLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSAmJlxuICAgICFjb25maWcucGxhdGZvcm1VcmwuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpKSB7XG4gICAgd2FybmluZ3MucHVzaCgnUGxhdGZvcm0gVVJMIHVzZXMgSFRUUCBpbnN0ZWFkIG9mIEhUVFBTIC0gaW5zZWN1cmUgZm9yIHByb2R1Y3Rpb24nKTtcbiAgfVxuXG4gIC8vIERpc3BsYXkgd2FybmluZ3NcbiAgaWYgKHdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICBsb2cud2FybignU2VydmVyIGNvbmZpZ3VyYXRpb24gd2FybmluZ3M6Jyk7XG4gICAgd2FybmluZ3MuZm9yRWFjaCh3YXJuaW5nID0+IGxvZy53YXJuKGAgIC0gJHt3YXJuaW5nfWApKTtcbiAgfVxufVxuXG5jb25zdCBJTlNFQ1VSRV9QQVRURVJOUyA9IFsnc2VjcmV0JywgJ3Bhc3N3b3JkJywgJ2NoYW5nZW1lJywgJ2RlZmF1bHQnLCAnMTIzNDU2JywgJ2FkbWluJ107XG5cbmZ1bmN0aW9uIGlzSW5zZWN1cmVTZWNyZXQoc2VjcmV0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgbG93ZXIgPSBzZWNyZXQudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIElOU0VDVVJFX1BBVFRFUk5TLnNvbWUocyA9PiBsb3dlciA9PT0gcyB8fCAobG93ZXIubGVuZ3RoIDwgNjQgJiYgbG93ZXIuaW5jbHVkZXMocykpKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uIChKV1Qgc2VjcmV0cywgYWxnb3JpdGhtcywgZXhwaXJhdGlvbikuXG4gKiBDYWxsIHRoaXMgYXQgc2VydmVyIHN0YXJ0dXAsIG5vdCBkdXJpbmcgQ0RLIHN5bnRoZXNpcy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQXV0aCBjb25maWd1cmF0aW9uIHRvIHZhbGlkYXRlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgc2VjcmV0cyBhcmUgaW5zZWN1cmUsIHRvbyBzaG9ydCAoPDMyIGNoYXJzKSwgb3IgdXNlIGRpc2FsbG93ZWQgYWxnb3JpdGhtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBdXRoQ29uZmlnKGNvbmZpZzogQXV0aENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIFZhbGlkYXRlIGJvdGggc2VjcmV0cyB3aXRoIHRoZSBzYW1lIGNoZWNrc1xuICBmb3IgKGNvbnN0IFtsYWJlbCwgc2VjcmV0XSBvZiBbWydKV1QnLCBjb25maWcuand0LnNlY3JldF0sIFsnUmVmcmVzaCB0b2tlbicsIGNvbmZpZy5yZWZyZXNoVG9rZW4uc2VjcmV0XV0gYXMgY29uc3QpIHtcbiAgICBpZiAoc2VjcmV0Lmxlbmd0aCA8IDMyKSB7XG4gICAgICBlcnJvcnMucHVzaChgJHtsYWJlbH0gc2VjcmV0IHNob3VsZCBiZSBhdCBsZWFzdCAzMiBjaGFyYWN0ZXJzIGxvbmdgKTtcbiAgICB9XG4gICAgaWYgKGlzSW5zZWN1cmVTZWNyZXQoc2VjcmV0KSkge1xuICAgICAgZXJyb3JzLnB1c2goYCR7bGFiZWx9IHNlY3JldCBhcHBlYXJzIHRvIGJlIGluc2VjdXJlIG9yIGRlZmF1bHQgdmFsdWVgKTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBKV1QgZXhwaXJhdGlvbiB0aW1lc1xuICBpZiAoY29uZmlnLmp3dC5leHBpcmVzSW4gPiA4NjQwMCkge1xuICAgIGVycm9ycy5wdXNoKCdKV1QgZXhwaXJhdGlvbiBtdXN0IG5vdCBleGNlZWQgMjQgaG91cnMgKDg2NDAwIHNlY29uZHMpJyk7XG4gIH0gZWxzZSBpZiAoY29uZmlnLmp3dC5leHBpcmVzSW4gPiA3MjAwKSB7XG4gICAgd2FybmluZ3MucHVzaCgnSldUIGV4cGlyYXRpb24gdGltZSBpcyBncmVhdGVyIHRoYW4gMiBob3VycyAtIHNob3J0ZXIgZXhwaXJhdGlvbiByZWNvbW1lbmRlZCcpO1xuICB9XG5cbiAgLy8gQ2hlY2sgYWxnb3JpdGhtXG4gIGlmICghQ29yZUNvbnN0YW50cy5BTExPV0VEX0pXVF9BTEdPUklUSE1TLmluY2x1ZGVzKGNvbmZpZy5qd3QuYWxnb3JpdGhtKSkge1xuICAgIGVycm9ycy5wdXNoKGBKV1QgYWxnb3JpdGhtICR7Y29uZmlnLmp3dC5hbGdvcml0aG19IGlzIG5vdCBpbiB0aGUgYWxsb3dlZCBsaXN0YCk7XG4gIH1cblxuICAvLyBEaXNwbGF5IHdhcm5pbmdzXG4gIGlmICh3YXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgbG9nLndhcm4oJ0F1dGggY29uZmlndXJhdGlvbiB3YXJuaW5nczonKTtcbiAgICB3YXJuaW5ncy5mb3JFYWNoKHdhcm5pbmcgPT4gbG9nLndhcm4oYCAgLSAke3dhcm5pbmd9YCkpO1xuICB9XG5cbiAgLy8gVGhyb3cgZXJyb3JzXG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdXRoIGNvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBmYWlsZWQ6XFxuJHtlcnJvcnMubWFwKGUgPT4gYCAgLSAke2V9YCkuam9pbignXFxuJyl9YCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
exports.ArtifactManager = void 0;
|
|
3
|
+
import { CodeBuildStep, FileSet, ShellStep } from 'aws-cdk-lib/pipelines';
|
|
6
4
|
/**
|
|
7
5
|
* Manages build step artifacts with hierarchical key-based lookup.
|
|
8
6
|
* Keys follow the pattern: stageName:stageAlias:pluginName:pluginAlias:outputDirectory
|
|
@@ -13,7 +11,7 @@ exports.ArtifactManager = void 0;
|
|
|
13
11
|
* // Build step: "build:build-alias:nodejs-build:nodejs-build-alias:dist"
|
|
14
12
|
* ```
|
|
15
13
|
*/
|
|
16
|
-
class ArtifactManager {
|
|
14
|
+
export class ArtifactManager {
|
|
17
15
|
artifacts = new Map();
|
|
18
16
|
/**
|
|
19
17
|
* Generate a key string from artifact parameters
|
|
@@ -82,5 +80,4 @@ class ArtifactManager {
|
|
|
82
80
|
return Array.from(this.artifacts.keys());
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
|
-
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2FydGlmYWN0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7OztBQVl0Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLGVBQWU7SUFDVCxTQUFTLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7SUFFL0U7O09BRUc7SUFDSyxXQUFXLENBQUMsR0FBZ0I7UUFDbEMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLEdBQWdCLEVBQUUsSUFBK0I7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxHQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsR0FBZ0I7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsVUFBVSx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxHQUFnQixFQUFFLFNBQWlCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxPQUFPLENBQUMsR0FBZ0I7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0IsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO1lBQ2pILE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBM0VELDBDQTJFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBDb2RlQnVpbGRTdGVwLCBGaWxlU2V0LCBTaGVsbFN0ZXAgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFydGlmYWN0S2V5IHtcbiAgcmVhZG9ubHkgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YWdlQWxpYXM6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwbHVnaW5BbGlhczogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNYW5hZ2VzIGJ1aWxkIHN0ZXAgYXJ0aWZhY3RzIHdpdGggaGllcmFyY2hpY2FsIGtleS1iYXNlZCBsb29rdXAuXG4gKiBLZXlzIGZvbGxvdyB0aGUgcGF0dGVybjogc3RhZ2VOYW1lOnN0YWdlQWxpYXM6cGx1Z2luTmFtZTpwbHVnaW5BbGlhczpvdXRwdXREaXJlY3RvcnlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gU3ludGggc3RlcDogXCJuby1zdGFnZTpuby1zdGFnZS1hbGlhczpjZGstc3ludGg6Y2RrLXN5bnRoLWFsaWFzOmNkay5vdXRcIlxuICogLy8gQnVpbGQgc3RlcDogXCJidWlsZDpidWlsZC1hbGlhczpub2RlanMtYnVpbGQ6bm9kZWpzLWJ1aWxkLWFsaWFzOmRpc3RcIlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBBcnRpZmFjdE1hbmFnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGFydGlmYWN0czogTWFwPHN0cmluZywgQ29kZUJ1aWxkU3RlcCB8IFNoZWxsU3RlcD4gPSBuZXcgTWFwKCk7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyBmcm9tIGFydGlmYWN0IHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVLZXkoa2V5OiBBcnRpZmFjdEtleSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2tleS5zdGFnZU5hbWV9OiR7a2V5LnN0YWdlQWxpYXN9OiR7a2V5LnBsdWdpbk5hbWV9OiR7a2V5LnBsdWdpbkFsaWFzfToke2tleS5vdXRwdXREaXJlY3Rvcnl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGJ1aWxkIHN0ZXAgYXJ0aWZhY3RcbiAgICogQHBhcmFtIGtleSAtIFRoZSBoaWVyYXJjaGljYWwga2V5IGlkZW50aWZ5aW5nIHRoaXMgYXJ0aWZhY3QgKGluY2x1ZGVzIG91dHB1dCBkaXJlY3RvcnkpXG4gICAqIEBwYXJhbSBzdGVwIC0gVGhlIENvZGVCdWlsZFN0ZXAgb3IgU2hlbGxTdGVwIHRvIHN0b3JlXG4gICAqL1xuICBhZGQoa2V5OiBBcnRpZmFjdEtleSwgc3RlcDogQ29kZUJ1aWxkU3RlcCB8IFNoZWxsU3RlcCk6IHZvaWQge1xuICAgIHRoaXMuYXJ0aWZhY3RzLnNldCh0aGlzLmdlbmVyYXRlS2V5KGtleSksIHN0ZXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGJ1aWxkIHN0ZXAgYnkgaXRzIGFydGlmYWN0IGtleVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGhpZXJhcmNoaWNhbCBrZXkgaWRlbnRpZnlpbmcgdGhlIGFydGlmYWN0XG4gICAqIEByZXR1cm5zIFRoZSBzdG9yZWQgc3RlcCwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZ2V0KGtleTogQXJ0aWZhY3RLZXkpOiBDb2RlQnVpbGRTdGVwIHwgU2hlbGxTdGVwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hcnRpZmFjdHMuZ2V0KHRoaXMuZ2VuZXJhdGVLZXkoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmltYXJ5IG91dHB1dCBGaWxlU2V0IGZyb20gYSByZWdpc3RlcmVkIHN0ZXAuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgYXJ0aWZhY3Qga2V5IGlkZW50aWZ5aW5nIHRoZSBzdGVwXG4gICAqIEByZXR1cm5zIFRoZSBwcmltYXJ5IG91dHB1dCBGaWxlU2V0XG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHN0ZXAgaXMgbm90IGZvdW5kIG9yIGhhcyBubyBwcmltYXJ5IG91dHB1dFxuICAgKi9cbiAgZ2V0T3V0cHV0KGtleTogQXJ0aWZhY3RLZXkpOiBGaWxlU2V0IHtcbiAgICBjb25zdCBzdGVwID0gdGhpcy5yZXF1aXJlKGtleSk7XG4gICAgY29uc3Qgb3V0cHV0ID0gc3RlcC5wcmltYXJ5T3V0cHV0O1xuICAgIGlmICghb3V0cHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0ZXAgJyR7a2V5LnBsdWdpbk5hbWV9JyBoYXMgbm8gcHJpbWFyeSBvdXRwdXRgKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBhZGRpdGlvbmFsIG91dHB1dCBkaXJlY3Rvcnkgb24gYSBzdG9yZWQgc3RlcCBhbmQgcmV0dXJuIGl0cyBGaWxlU2V0LlxuICAgKiBDYWxscyBDREsncyBhZGRPdXRwdXREaXJlY3RvcnkoKSB0byBjcmVhdGUgYSBuYW1lZCBvdXRwdXQgYmV5b25kIHRoZSBwcmltYXJ5LlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGFydGlmYWN0IGtleSBpZGVudGlmeWluZyB0aGUgc3RlcFxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IC0gVGhlIGFkZGl0aW9uYWwgb3V0cHV0IGRpcmVjdG9yeSBwYXRoIHRvIHJlZ2lzdGVyXG4gICAqIEByZXR1cm5zIFRoZSBGaWxlU2V0IGZvciB0aGUgYWRkaXRpb25hbCBvdXRwdXQgZGlyZWN0b3J5XG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHN0ZXAgaXMgbm90IGZvdW5kXG4gICAqL1xuICBhZGRPdXRwdXQoa2V5OiBBcnRpZmFjdEtleSwgZGlyZWN0b3J5OiBzdHJpbmcpOiBGaWxlU2V0IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlKGtleSkuYWRkT3V0cHV0RGlyZWN0b3J5KGRpcmVjdG9yeSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3RlcCBieSBrZXkgb3IgdGhyb3cgd2l0aCBhIGhlbHBmdWwgZXJyb3IgbGlzdGluZyBhdmFpbGFibGUgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXF1aXJlKGtleTogQXJ0aWZhY3RLZXkpOiBDb2RlQnVpbGRTdGVwIHwgU2hlbGxTdGVwIHtcbiAgICBjb25zdCBzdGVwID0gdGhpcy5nZXQoa2V5KTtcbiAgICBpZiAoIXN0ZXApIHtcbiAgICAgIGNvbnN0IHJlZ2lzdGVyZWQgPSB0aGlzLmxpc3QoKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IHJlZ2lzdGVyZWQubGVuZ3RoID4gMCA/IGAgQXZhaWxhYmxlOiBbJHtyZWdpc3RlcmVkLmpvaW4oJywgJyl9XWAgOiAnIE5vIGFydGlmYWN0cyByZWdpc3RlcmVkLic7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGFydGlmYWN0IHJlZ2lzdGVyZWQgZm9yIFwiJHt0aGlzLmdlbmVyYXRlS2V5KGtleSl9XCIuJHthdmFpbGFibGV9YCk7XG4gICAgfVxuICAgIHJldHVybiBzdGVwO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGFydGlmYWN0IGtleXNcbiAgICogQHJldHVybnMgQXJyYXkgb2YgYWxsIHN0b3JlZCBhcnRpZmFjdCBrZXkgc3RyaW5nc1xuICAgKi9cbiAgbGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5hcnRpZmFjdHMua2V5cygpKTtcbiAgfVxufVxuIl19
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3QtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2FydGlmYWN0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVUxRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUNULFNBQVMsR0FBMkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUUvRTs7T0FFRztJQUNLLFdBQVcsQ0FBQyxHQUFnQjtRQUNsQyxPQUFPLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsR0FBZ0IsRUFBRSxJQUErQjtRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLEdBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxHQUFnQjtRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLHlCQUF5QixDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLEdBQWdCLEVBQUUsU0FBaUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNLLE9BQU8sQ0FBQyxHQUFnQjtRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUM7WUFDakgsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQ29kZUJ1aWxkU3RlcCwgRmlsZVNldCwgU2hlbGxTdGVwIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdEtleSB7XG4gIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFnZUFsaWFzOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luQWxpYXM6IHN0cmluZztcbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWFuYWdlcyBidWlsZCBzdGVwIGFydGlmYWN0cyB3aXRoIGhpZXJhcmNoaWNhbCBrZXktYmFzZWQgbG9va3VwLlxuICogS2V5cyBmb2xsb3cgdGhlIHBhdHRlcm46IHN0YWdlTmFtZTpzdGFnZUFsaWFzOnBsdWdpbk5hbWU6cGx1Z2luQWxpYXM6b3V0cHV0RGlyZWN0b3J5XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIFN5bnRoIHN0ZXA6IFwibm8tc3RhZ2U6bm8tc3RhZ2UtYWxpYXM6Y2RrLXN5bnRoOmNkay1zeW50aC1hbGlhczpjZGsub3V0XCJcbiAqIC8vIEJ1aWxkIHN0ZXA6IFwiYnVpbGQ6YnVpbGQtYWxpYXM6bm9kZWpzLWJ1aWxkOm5vZGVqcy1idWlsZC1hbGlhczpkaXN0XCJcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQXJ0aWZhY3RNYW5hZ2VyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcnRpZmFjdHM6IE1hcDxzdHJpbmcsIENvZGVCdWlsZFN0ZXAgfCBTaGVsbFN0ZXA+ID0gbmV3IE1hcCgpO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIGtleSBzdHJpbmcgZnJvbSBhcnRpZmFjdCBwYXJhbWV0ZXJzXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlS2V5KGtleTogQXJ0aWZhY3RLZXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtrZXkuc3RhZ2VOYW1lfToke2tleS5zdGFnZUFsaWFzfToke2tleS5wbHVnaW5OYW1lfToke2tleS5wbHVnaW5BbGlhc306JHtrZXkub3V0cHV0RGlyZWN0b3J5fWA7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBidWlsZCBzdGVwIGFydGlmYWN0XG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgaGllcmFyY2hpY2FsIGtleSBpZGVudGlmeWluZyB0aGlzIGFydGlmYWN0IChpbmNsdWRlcyBvdXRwdXQgZGlyZWN0b3J5KVxuICAgKiBAcGFyYW0gc3RlcCAtIFRoZSBDb2RlQnVpbGRTdGVwIG9yIFNoZWxsU3RlcCB0byBzdG9yZVxuICAgKi9cbiAgYWRkKGtleTogQXJ0aWZhY3RLZXksIHN0ZXA6IENvZGVCdWlsZFN0ZXAgfCBTaGVsbFN0ZXApOiB2b2lkIHtcbiAgICB0aGlzLmFydGlmYWN0cy5zZXQodGhpcy5nZW5lcmF0ZUtleShrZXkpLCBzdGVwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBidWlsZCBzdGVwIGJ5IGl0cyBhcnRpZmFjdCBrZXlcbiAgICogQHBhcmFtIGtleSAtIFRoZSBoaWVyYXJjaGljYWwga2V5IGlkZW50aWZ5aW5nIHRoZSBhcnRpZmFjdFxuICAgKiBAcmV0dXJucyBUaGUgc3RvcmVkIHN0ZXAsIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICovXG4gIGdldChrZXk6IEFydGlmYWN0S2V5KTogQ29kZUJ1aWxkU3RlcCB8IFNoZWxsU3RlcCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYXJ0aWZhY3RzLmdldCh0aGlzLmdlbmVyYXRlS2V5KGtleSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpbWFyeSBvdXRwdXQgRmlsZVNldCBmcm9tIGEgcmVnaXN0ZXJlZCBzdGVwLlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGFydGlmYWN0IGtleSBpZGVudGlmeWluZyB0aGUgc3RlcFxuICAgKiBAcmV0dXJucyBUaGUgcHJpbWFyeSBvdXRwdXQgRmlsZVNldFxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBzdGVwIGlzIG5vdCBmb3VuZCBvciBoYXMgbm8gcHJpbWFyeSBvdXRwdXRcbiAgICovXG4gIGdldE91dHB1dChrZXk6IEFydGlmYWN0S2V5KTogRmlsZVNldCB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMucmVxdWlyZShrZXkpO1xuICAgIGNvbnN0IG91dHB1dCA9IHN0ZXAucHJpbWFyeU91dHB1dDtcbiAgICBpZiAoIW91dHB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdGVwICcke2tleS5wbHVnaW5OYW1lfScgaGFzIG5vIHByaW1hcnkgb3V0cHV0YCk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gYWRkaXRpb25hbCBvdXRwdXQgZGlyZWN0b3J5IG9uIGEgc3RvcmVkIHN0ZXAgYW5kIHJldHVybiBpdHMgRmlsZVNldC5cbiAgICogQ2FsbHMgQ0RLJ3MgYWRkT3V0cHV0RGlyZWN0b3J5KCkgdG8gY3JlYXRlIGEgbmFtZWQgb3V0cHV0IGJleW9uZCB0aGUgcHJpbWFyeS5cbiAgICogQHBhcmFtIGtleSAtIFRoZSBhcnRpZmFjdCBrZXkgaWRlbnRpZnlpbmcgdGhlIHN0ZXBcbiAgICogQHBhcmFtIGRpcmVjdG9yeSAtIFRoZSBhZGRpdGlvbmFsIG91dHB1dCBkaXJlY3RvcnkgcGF0aCB0byByZWdpc3RlclxuICAgKiBAcmV0dXJucyBUaGUgRmlsZVNldCBmb3IgdGhlIGFkZGl0aW9uYWwgb3V0cHV0IGRpcmVjdG9yeVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBzdGVwIGlzIG5vdCBmb3VuZFxuICAgKi9cbiAgYWRkT3V0cHV0KGtleTogQXJ0aWZhY3RLZXksIGRpcmVjdG9yeTogc3RyaW5nKTogRmlsZVNldCB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZShrZXkpLmFkZE91dHB1dERpcmVjdG9yeShkaXJlY3RvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHN0ZXAgYnkga2V5IG9yIHRocm93IHdpdGggYSBoZWxwZnVsIGVycm9yIGxpc3RpbmcgYXZhaWxhYmxlIGFydGlmYWN0cy5cbiAgICovXG4gIHByaXZhdGUgcmVxdWlyZShrZXk6IEFydGlmYWN0S2V5KTogQ29kZUJ1aWxkU3RlcCB8IFNoZWxsU3RlcCB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuZ2V0KGtleSk7XG4gICAgaWYgKCFzdGVwKSB7XG4gICAgICBjb25zdCByZWdpc3RlcmVkID0gdGhpcy5saXN0KCk7XG4gICAgICBjb25zdCBhdmFpbGFibGUgPSByZWdpc3RlcmVkLmxlbmd0aCA+IDAgPyBgIEF2YWlsYWJsZTogWyR7cmVnaXN0ZXJlZC5qb2luKCcsICcpfV1gIDogJyBObyBhcnRpZmFjdHMgcmVnaXN0ZXJlZC4nO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBhcnRpZmFjdCByZWdpc3RlcmVkIGZvciBcIiR7dGhpcy5nZW5lcmF0ZUtleShrZXkpfVwiLiR7YXZhaWxhYmxlfWApO1xuICAgIH1cbiAgICByZXR1cm4gc3RlcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBhcnRpZmFjdCBrZXlzXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGFsbCBzdG9yZWQgYXJ0aWZhY3Qga2V5IHN0cmluZ3NcbiAgICovXG4gIGxpc3QoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYXJ0aWZhY3RzLmtleXMoKSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/core/id-generator.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const crypto_1 = require("crypto");
|
|
7
|
-
class UniqueId {
|
|
3
|
+
import { createHash } from 'crypto';
|
|
4
|
+
export class UniqueId {
|
|
8
5
|
_counters = new Map();
|
|
9
6
|
_stackId;
|
|
10
7
|
constructor(opts) {
|
|
11
8
|
// 8 hex chars = 32 bits = 1 in 4 billion collision odds across pipelines.
|
|
12
9
|
// Lowercased for case-insensitive stability ("AcmeCorp" === "acmecorp").
|
|
13
|
-
this._stackId =
|
|
10
|
+
this._stackId = createHash('sha256')
|
|
14
11
|
.update(`${opts.project}:${opts.organization}`.toLowerCase())
|
|
15
12
|
.digest('hex')
|
|
16
13
|
.slice(0, 8);
|
|
@@ -50,5 +47,4 @@ class UniqueId {
|
|
|
50
47
|
return this._stackId;
|
|
51
48
|
}
|
|
52
49
|
}
|
|
53
|
-
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaWQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDOzs7QUFFdEMsbUNBQW9DO0FBb0NwQyxNQUFhLFFBQVE7SUFDRixTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDdEMsUUFBUSxDQUFTO0lBRWxDLFlBQVksSUFBcUI7UUFDL0IsMEVBQTBFO1FBQzFFLHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUM7YUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDNUQsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNiLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELDJEQUEyRDtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFakMseUVBQXlFO1FBQ3pFLHFFQUFxRTtRQUNyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZiwwREFBMEQ7WUFDMUQsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzlDLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQW5ERCw0QkFtREMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5cbi8qKlxuICogR2VuZXJhdGVzIHVuaXF1ZSBDREsgY29uc3RydWN0IElEcyBieSBhcHBlbmRpbmcgYXV0by1pbmNyZW1lbnRpbmcgY291bnRlcnNcbiAqIHRvIGxhYmVscywgd2l0aCBhbiBvcHRpb25hbCBzdGFjay1pZGVudGl0eSBoYXNoIGluc2VydGVkIGFmdGVyIHRoZSBmaXJzdFxuICogbmFtZXNwYWNlIHNlZ21lbnQgdG8gcHJldmVudCBjb2xsaXNpb25zIGFjcm9zcyBwaXBlbGluZXMvb3Jncy5cbiAqXG4gKiBXaHkgdGhlIGhhc2ggbWF0dGVyczpcbiAqICAgQVdTIHJlc291cmNlcyB3aXRoIGV4cGxpY2l0IG5hbWVzIChDbG91ZFdhdGNoIGxvZyBncm91cHMsIElBTSByb2xlcylcbiAqICAgY29sbGlkZSBpZiB0d28gQ0RLIHN0YWNrcyBnZW5lcmF0ZSB0aGUgc2FtZSBuYW1lLiBXaGVuIG9yZyBBJ3NcbiAqICAgc3ByaW5nLWJvb3QgcGlwZWxpbmUgYW5kIG9yZyBCJ3Mgc3ByaW5nLWJvb3QgcGlwZWxpbmUgYm90aCBkZXBsb3kgYVxuICogICBgcGx1Z2luLWxvb2t1cC0xYCBsb2cgZ3JvdXAsIHRoZSBzZWNvbmQgZGVwbG95IGZhaWxzIHdpdGhcbiAqICAgXCJSZXNvdXJjZSBhbHJlYWR5IGV4aXN0c1wiLiBUaGUgaGFzaCBtYWtlcyBlYWNoIChwcm9qZWN0LCBvcmcpIHBhaXJcbiAqICAgcHJvZHVjZSBhIHVuaXF1ZSBzdGFibGUgbmFtZSB3aXRob3V0IGNoYW5naW5nIHRoZSByZXN0IG9mIHRoZSBsYWJlbC5cbiAqXG4gKiBGb3JtYXQgd2l0aCBvcmcrcHJvamVjdDpcbiAqICAgZ2VuZXJhdGUoJ3BsdWdpbjpsb29rdXAnKSAgIOKGkiAncGx1Z2luOntoYXNofTpsb29rdXA6MSdcbiAqICAgZ2VuZXJhdGUoJ2xvZzpncm91cCcpICAgICAgIOKGkiAnbG9nOntoYXNofTpncm91cDoxJ1xuICogICBnZW5lcmF0ZSgncGx1Z2luOmxvb2t1cCcpICAg4oaSICdwbHVnaW46e2hhc2h9Omxvb2t1cDoyJyAgIChjb3VudGVyIGluYylcbiAqICAgZ2VuZXJhdGUoJ2NkazpwaXBlbGluZToxJykgIOKGkiAnY2RrOnBpcGVsaW5lOjEnICAgICAgICAgICAoYWxyZWFkeSBjb3VudGVkKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpZCA9IG5ldyBVbmlxdWVJZCh7IG9yZ2FuaXphdGlvbjogJ0FjbWVDb3JwJywgcHJvamVjdDogJ3NwcmluZy1ib290JyB9KTtcbiAqIGlkLmdlbmVyYXRlKCdwbHVnaW46bG9va3VwJyk7ICAgLy8gXCJwbHVnaW46YTFiMmMzZDQ6bG9va3VwOjFcIlxuICogaWQuZ2VuZXJhdGUoJ2xvZzpncm91cCcpOyAgICAgICAvLyBcImxvZzphMWIyYzNkNDpncm91cDoxXCJcbiAqIGlkLmdlbmVyYXRlKCdwbHVnaW46bG9va3VwJyk7ICAgLy8gXCJwbHVnaW46YTFiMmMzZDQ6bG9va3VwOjJcIlxuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5pcXVlSWRPcHRpb25zIHtcbiAgLyoqIE9yZ2FuaXphdGlvbiBuYW1lIOKAlCBjb21iaW5lZCB3aXRoIHByb2plY3QgdG8gZm9ybSB0aGUgc3RhY2staWRlbnRpdHkgaGFzaC4gKi9cbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBzdHJpbmc7XG4gIC8qKiBQcm9qZWN0IG5hbWUg4oCUIGNvbWJpbmVkIHdpdGggb3JnYW5pemF0aW9uIHRvIGZvcm0gdGhlIHN0YWNrLWlkZW50aXR5IGhhc2guICovXG4gIHJlYWRvbmx5IHByb2plY3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFVuaXF1ZUlkIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY291bnRlcnMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGFja0lkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0czogVW5pcXVlSWRPcHRpb25zKSB7XG4gICAgLy8gOCBoZXggY2hhcnMgPSAzMiBiaXRzID0gMSBpbiA0IGJpbGxpb24gY29sbGlzaW9uIG9kZHMgYWNyb3NzIHBpcGVsaW5lcy5cbiAgICAvLyBMb3dlcmNhc2VkIGZvciBjYXNlLWluc2Vuc2l0aXZlIHN0YWJpbGl0eSAoXCJBY21lQ29ycFwiID09PSBcImFjbWVjb3JwXCIpLlxuICAgIHRoaXMuX3N0YWNrSWQgPSBjcmVhdGVIYXNoKCdzaGEyNTYnKVxuICAgICAgLnVwZGF0ZShgJHtvcHRzLnByb2plY3R9OiR7b3B0cy5vcmdhbml6YXRpb259YC50b0xvd2VyQ2FzZSgpKVxuICAgICAgLmRpZ2VzdCgnaGV4JylcbiAgICAgIC5zbGljZSgwLCA4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIGNvbnN0cnVjdCBJRCBmb3IgdGhlIGdpdmVuIGxhYmVsLlxuICAgKiBJZiB0aGUgbGFiZWwgYWxyZWFkeSBlbmRzIHdpdGggYSBudW1lcmljIGNvdW50ZXIsIGl0IGlzIHJldHVybmVkIGFzLWlzLlxuICAgKiBPdGhlcndpc2UsIGFuIGF1dG8taW5jcmVtZW50aW5nIGNvdW50ZXIgaXMgYXBwZW5kZWQ7IGlmIGEgc3RhY2staWRlbnRpdHlcbiAgICogaGFzaCB3YXMgcHJvdmlkZWQgYXQgY29uc3RydWN0aW9uLCBpdCdzIGluc2VydGVkIGFmdGVyIHRoZSBmaXJzdCBzZWdtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gbGFiZWwgLSBDb2xvbi1zZXBhcmF0ZWQgbmFtZXNwYWNlIChlLmcuLCAncGx1Z2luOmxvb2t1cCcpXG4gICAqIEByZXR1cm5zIFRoZSBsYWJlbCB3aXRoIGhhc2ggKyBjb3VudGVyIGluc2VydGVkXG4gICAqL1xuICBnZW5lcmF0ZShsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWxhYmVsIHx8IHR5cGVvZiBsYWJlbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGFiZWwgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgICB9XG5cbiAgICAvLyBBbHJlYWR5IGNvdW50ZWQgKGUuZy4sICdjZGs6cGlwZWxpbmU6MScpIOKAlCBwYXNzIHRocm91Z2guXG4gICAgaWYgKC86XFxkKyQvLnRlc3QobGFiZWwpKSB7XG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfVxuXG4gICAgY29uc3QgY291bnQgPSAodGhpcy5fY291bnRlcnMuZ2V0KGxhYmVsKSA/PyAwKSArIDE7XG4gICAgdGhpcy5fY291bnRlcnMuc2V0KGxhYmVsLCBjb3VudCk7XG5cbiAgICAvLyBJbnNlcnQgdGhlIHN0YWNrIGhhc2ggYWZ0ZXIgdGhlIGZpcnN0IG5hbWVzcGFjZSBzZWdtZW50IHNvIHRoZSBsZWFkaW5nXG4gICAgLy8gY2F0ZWdvcnkgKGBwbHVnaW5gLCBgbG9nYCwgYHJlc291cmNlYCwgZXRjLikgc3RheXMgaHVtYW4tcmVhZGFibGUuXG4gICAgY29uc3QgaWR4ID0gbGFiZWwuaW5kZXhPZignOicpO1xuICAgIGlmIChpZHggPT09IC0xKSB7XG4gICAgICAvLyBTaW5nbGUtc2VnbWVudCBsYWJlbCDigJQgcHV0IHRoZSBoYXNoIGJlZm9yZSB0aGUgY291bnRlci5cbiAgICAgIHJldHVybiBgJHtsYWJlbH06JHt0aGlzLl9zdGFja0lkfToke2NvdW50fWA7XG4gICAgfVxuICAgIGNvbnN0IGhlYWQgPSBsYWJlbC5zbGljZSgwLCBpZHgpO1xuICAgIGNvbnN0IHRhaWwgPSBsYWJlbC5zbGljZShpZHggKyAxKTtcbiAgICByZXR1cm4gYCR7aGVhZH06JHt0aGlzLl9zdGFja0lkfToke3RhaWx9OiR7Y291bnR9YDtcbiAgfVxuXG4gIC8qKiBUaGUgc3RhY2staWRlbnRpdHkgaGFzaCBkZXJpdmVkIGZyb20gb3JnYW5pemF0aW9uICsgcHJvamVjdC4gKi9cbiAgZ2V0IHN0YWNrSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhY2tJZDtcbiAgfVxufVxuIl19
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaWQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQW9DcEMsTUFBTSxPQUFPLFFBQVE7SUFDRixTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDdEMsUUFBUSxDQUFTO0lBRWxDLFlBQVksSUFBcUI7UUFDL0IsMEVBQTBFO1FBQzFFLHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDNUQsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUNiLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELDJEQUEyRDtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFakMseUVBQXlFO1FBQ3pFLHFFQUFxRTtRQUNyRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZiwwREFBMEQ7WUFDMUQsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzlDLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxtRUFBbUU7SUFDbkUsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdW5pcXVlIENESyBjb25zdHJ1Y3QgSURzIGJ5IGFwcGVuZGluZyBhdXRvLWluY3JlbWVudGluZyBjb3VudGVyc1xuICogdG8gbGFiZWxzLCB3aXRoIGFuIG9wdGlvbmFsIHN0YWNrLWlkZW50aXR5IGhhc2ggaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGZpcnN0XG4gKiBuYW1lc3BhY2Ugc2VnbWVudCB0byBwcmV2ZW50IGNvbGxpc2lvbnMgYWNyb3NzIHBpcGVsaW5lcy9vcmdzLlxuICpcbiAqIFdoeSB0aGUgaGFzaCBtYXR0ZXJzOlxuICogICBBV1MgcmVzb3VyY2VzIHdpdGggZXhwbGljaXQgbmFtZXMgKENsb3VkV2F0Y2ggbG9nIGdyb3VwcywgSUFNIHJvbGVzKVxuICogICBjb2xsaWRlIGlmIHR3byBDREsgc3RhY2tzIGdlbmVyYXRlIHRoZSBzYW1lIG5hbWUuIFdoZW4gb3JnIEEnc1xuICogICBzcHJpbmctYm9vdCBwaXBlbGluZSBhbmQgb3JnIEIncyBzcHJpbmctYm9vdCBwaXBlbGluZSBib3RoIGRlcGxveSBhXG4gKiAgIGBwbHVnaW4tbG9va3VwLTFgIGxvZyBncm91cCwgdGhlIHNlY29uZCBkZXBsb3kgZmFpbHMgd2l0aFxuICogICBcIlJlc291cmNlIGFscmVhZHkgZXhpc3RzXCIuIFRoZSBoYXNoIG1ha2VzIGVhY2ggKHByb2plY3QsIG9yZykgcGFpclxuICogICBwcm9kdWNlIGEgdW5pcXVlIHN0YWJsZSBuYW1lIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHJlc3Qgb2YgdGhlIGxhYmVsLlxuICpcbiAqIEZvcm1hdCB3aXRoIG9yZytwcm9qZWN0OlxuICogICBnZW5lcmF0ZSgncGx1Z2luOmxvb2t1cCcpICAg4oaSICdwbHVnaW46e2hhc2h9Omxvb2t1cDoxJ1xuICogICBnZW5lcmF0ZSgnbG9nOmdyb3VwJykgICAgICAg4oaSICdsb2c6e2hhc2h9Omdyb3VwOjEnXG4gKiAgIGdlbmVyYXRlKCdwbHVnaW46bG9va3VwJykgICDihpIgJ3BsdWdpbjp7aGFzaH06bG9va3VwOjInICAgKGNvdW50ZXIgaW5jKVxuICogICBnZW5lcmF0ZSgnY2RrOnBpcGVsaW5lOjEnKSAg4oaSICdjZGs6cGlwZWxpbmU6MScgICAgICAgICAgIChhbHJlYWR5IGNvdW50ZWQpXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlkID0gbmV3IFVuaXF1ZUlkKHsgb3JnYW5pemF0aW9uOiAnQWNtZUNvcnAnLCBwcm9qZWN0OiAnc3ByaW5nLWJvb3QnIH0pO1xuICogaWQuZ2VuZXJhdGUoJ3BsdWdpbjpsb29rdXAnKTsgICAvLyBcInBsdWdpbjphMWIyYzNkNDpsb29rdXA6MVwiXG4gKiBpZC5nZW5lcmF0ZSgnbG9nOmdyb3VwJyk7ICAgICAgIC8vIFwibG9nOmExYjJjM2Q0Omdyb3VwOjFcIlxuICogaWQuZ2VuZXJhdGUoJ3BsdWdpbjpsb29rdXAnKTsgICAvLyBcInBsdWdpbjphMWIyYzNkNDpsb29rdXA6MlwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVJZE9wdGlvbnMge1xuICAvKiogT3JnYW5pemF0aW9uIG5hbWUg4oCUIGNvbWJpbmVkIHdpdGggcHJvamVjdCB0byBmb3JtIHRoZSBzdGFjay1pZGVudGl0eSBoYXNoLiAqL1xuICByZWFkb25seSBvcmdhbml6YXRpb246IHN0cmluZztcbiAgLyoqIFByb2plY3QgbmFtZSDigJQgY29tYmluZWQgd2l0aCBvcmdhbml6YXRpb24gdG8gZm9ybSB0aGUgc3RhY2staWRlbnRpdHkgaGFzaC4gKi9cbiAgcmVhZG9ubHkgcHJvamVjdDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVW5pcXVlSWQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb3VudGVycyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YWNrSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRzOiBVbmlxdWVJZE9wdGlvbnMpIHtcbiAgICAvLyA4IGhleCBjaGFycyA9IDMyIGJpdHMgPSAxIGluIDQgYmlsbGlvbiBjb2xsaXNpb24gb2RkcyBhY3Jvc3MgcGlwZWxpbmVzLlxuICAgIC8vIExvd2VyY2FzZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgc3RhYmlsaXR5IChcIkFjbWVDb3JwXCIgPT09IFwiYWNtZWNvcnBcIikuXG4gICAgdGhpcy5fc3RhY2tJZCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpXG4gICAgICAudXBkYXRlKGAke29wdHMucHJvamVjdH06JHtvcHRzLm9yZ2FuaXphdGlvbn1gLnRvTG93ZXJDYXNlKCkpXG4gICAgICAuZGlnZXN0KCdoZXgnKVxuICAgICAgLnNsaWNlKDAsIDgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSB1bmlxdWUgY29uc3RydWN0IElEIGZvciB0aGUgZ2l2ZW4gbGFiZWwuXG4gICAqIElmIHRoZSBsYWJlbCBhbHJlYWR5IGVuZHMgd2l0aCBhIG51bWVyaWMgY291bnRlciwgaXQgaXMgcmV0dXJuZWQgYXMtaXMuXG4gICAqIE90aGVyd2lzZSwgYW4gYXV0by1pbmNyZW1lbnRpbmcgY291bnRlciBpcyBhcHBlbmRlZDsgaWYgYSBzdGFjay1pZGVudGl0eVxuICAgKiBoYXNoIHdhcyBwcm92aWRlZCBhdCBjb25zdHJ1Y3Rpb24sIGl0J3MgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGZpcnN0IHNlZ21lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBsYWJlbCAtIENvbG9uLXNlcGFyYXRlZCBuYW1lc3BhY2UgKGUuZy4sICdwbHVnaW46bG9va3VwJylcbiAgICogQHJldHVybnMgVGhlIGxhYmVsIHdpdGggaGFzaCArIGNvdW50ZXIgaW5zZXJ0ZWRcbiAgICovXG4gIGdlbmVyYXRlKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbGFiZWwgfHwgdHlwZW9mIGxhYmVsICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMYWJlbCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuICAgIH1cblxuICAgIC8vIEFscmVhZHkgY291bnRlZCAoZS5nLiwgJ2NkazpwaXBlbGluZToxJykg4oCUIHBhc3MgdGhyb3VnaC5cbiAgICBpZiAoLzpcXGQrJC8udGVzdChsYWJlbCkpIHtcbiAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb3VudCA9ICh0aGlzLl9jb3VudGVycy5nZXQobGFiZWwpID8/IDApICsgMTtcbiAgICB0aGlzLl9jb3VudGVycy5zZXQobGFiZWwsIGNvdW50KTtcblxuICAgIC8vIEluc2VydCB0aGUgc3RhY2sgaGFzaCBhZnRlciB0aGUgZmlyc3QgbmFtZXNwYWNlIHNlZ21lbnQgc28gdGhlIGxlYWRpbmdcbiAgICAvLyBjYXRlZ29yeSAoYHBsdWdpbmAsIGBsb2dgLCBgcmVzb3VyY2VgLCBldGMuKSBzdGF5cyBodW1hbi1yZWFkYWJsZS5cbiAgICBjb25zdCBpZHggPSBsYWJlbC5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKGlkeCA9PT0gLTEpIHtcbiAgICAgIC8vIFNpbmdsZS1zZWdtZW50IGxhYmVsIOKAlCBwdXQgdGhlIGhhc2ggYmVmb3JlIHRoZSBjb3VudGVyLlxuICAgICAgcmV0dXJuIGAke2xhYmVsfToke3RoaXMuX3N0YWNrSWR9OiR7Y291bnR9YDtcbiAgICB9XG4gICAgY29uc3QgaGVhZCA9IGxhYmVsLnNsaWNlKDAsIGlkeCk7XG4gICAgY29uc3QgdGFpbCA9IGxhYmVsLnNsaWNlKGlkeCArIDEpO1xuICAgIHJldHVybiBgJHtoZWFkfToke3RoaXMuX3N0YWNrSWR9OiR7dGFpbH06JHtjb3VudH1gO1xuICB9XG5cbiAgLyoqIFRoZSBzdGFjay1pZGVudGl0eSBoYXNoIGRlcml2ZWQgZnJvbSBvcmdhbml6YXRpb24gKyBwcm9qZWN0LiAqL1xuICBnZXQgc3RhY2tJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGFja0lkO1xuICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { BuildEnvironment } from 'aws-cdk-lib/aws-codebuild';
|
|
2
2
|
import type { CodeBuildStepProps, CodePipelineProps, ShellStepProps } from 'aws-cdk-lib/pipelines';
|
|
3
|
-
import type { NetworkConfig } from './network-types';
|
|
4
|
-
import type { MetaDataType } from './pipeline-types';
|
|
5
|
-
import type { RoleConfig } from './role-types';
|
|
6
|
-
import type { SecurityGroupConfig } from './security-group-types';
|
|
3
|
+
import type { NetworkConfig } from './network-types.js';
|
|
4
|
+
import type { MetaDataType } from './pipeline-types.js';
|
|
5
|
+
import type { RoleConfig } from './role-types.js';
|
|
6
|
+
import type { SecurityGroupConfig } from './security-group-types.js';
|
|
7
7
|
/** Extract CDK construct config from metadata for a given namespace. */
|
|
8
8
|
export declare function buildConfigFromMetadata(metadata: MetaDataType, namespace: string): Record<string, unknown>;
|
|
9
9
|
/** Extract CodePipeline config from metadata. */
|