truemark-cdk-lib 1.31.0 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aws-cloudfront/lib/behavior-builder.d.ts +8 -1
- package/dist/aws-cloudfront/lib/behavior-builder.js +10 -3
- package/dist/aws-dynamodb/lib/extended-table-v2.js +7 -3
- package/dist/aws-dynamodb/lib/standard-table-v2.js +1 -4
- package/dist/aws-sqs/lib/standard-queue.d.ts +8 -1
- package/dist/aws-sqs/lib/standard-queue.js +18 -1
- package/dist/aws-ssm/lib/parameter-reader.d.ts +2 -0
- package/dist/aws-ssm/lib/parameter-reader.js +33 -2
- package/dist/aws-wafv2/lib/cloud-front-security-baseline-web-acl.d.ts +9 -1
- package/dist/aws-wafv2/lib/cloud-front-security-baseline-web-acl.js +17 -4
- package/dist/aws-wafv2/lib/regional-security-baseline-web-acl.d.ts +9 -1
- package/dist/aws-wafv2/lib/regional-security-baseline-web-acl.js +17 -4
- package/package.json +1 -1
|
@@ -29,7 +29,14 @@ export declare class BehaviorBuilder extends ExtendedConstruct {
|
|
|
29
29
|
edgeLambdas(edgeLambdas?: EdgeLambda[]): BehaviorBuilder;
|
|
30
30
|
trustedKeyGroups(trustedKeyGroups?: IKeyGroup[]): BehaviorBuilder;
|
|
31
31
|
s3Defaults(): BehaviorBuilder;
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Applies the standard API cache and origin request policies.
|
|
34
|
+
*
|
|
35
|
+
* @param additionalHeaders headers added to the cache key and forwarded to the origin
|
|
36
|
+
* @param additionalOriginRequestHeaders headers forwarded to the origin only; use for
|
|
37
|
+
* headers a cache policy rejects, such as CloudFront-Viewer-Address
|
|
38
|
+
*/
|
|
39
|
+
apiDefaults(additionalHeaders?: string[], additionalOriginRequestHeaders?: string[]): BehaviorBuilder;
|
|
33
40
|
buildBehavior(): BehaviorOptions;
|
|
34
41
|
build(): DistributionProps;
|
|
35
42
|
behavior(origin: IOrigin, path: string): BehaviorBuilder;
|
|
@@ -166,10 +166,17 @@ class BehaviorBuilder extends index_1.ExtendedConstruct {
|
|
|
166
166
|
s3Defaults() {
|
|
167
167
|
return this.originRequestPolicy(aws_cloudfront_1.OriginRequestPolicy.CORS_S3_ORIGIN);
|
|
168
168
|
}
|
|
169
|
-
|
|
169
|
+
/**
|
|
170
|
+
* Applies the standard API cache and origin request policies.
|
|
171
|
+
*
|
|
172
|
+
* @param additionalHeaders headers added to the cache key and forwarded to the origin
|
|
173
|
+
* @param additionalOriginRequestHeaders headers forwarded to the origin only; use for
|
|
174
|
+
* headers a cache policy rejects, such as CloudFront-Viewer-Address
|
|
175
|
+
*/
|
|
176
|
+
apiDefaults(additionalHeaders, additionalOriginRequestHeaders) {
|
|
170
177
|
// TODO Need a way to re-use the cache policy and originRequestPolicy on subsequent calls to apiDefaults since they would be identical
|
|
171
178
|
const cachePolicy = new standard_api_cache_policy_1.StandardApiCachePolicy(this, 'ApiCachePolicy', additionalHeaders);
|
|
172
|
-
const originRequestPolicy = new standard_api_origin_request_policy_1.StandardApiOriginRequestPolicy(this, 'ApiOriginRequestPolicy', additionalHeaders);
|
|
179
|
+
const originRequestPolicy = new standard_api_origin_request_policy_1.StandardApiOriginRequestPolicy(this, 'ApiOriginRequestPolicy', [...(additionalHeaders !== null && additionalHeaders !== void 0 ? additionalHeaders : []), ...(additionalOriginRequestHeaders !== null && additionalOriginRequestHeaders !== void 0 ? additionalOriginRequestHeaders : [])]);
|
|
173
180
|
return this.allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_ALL)
|
|
174
181
|
.cachePolicy(cachePolicy)
|
|
175
182
|
.originRequestPolicy(originRequestPolicy);
|
|
@@ -215,4 +222,4 @@ class BehaviorBuilder extends index_1.ExtendedConstruct {
|
|
|
215
222
|
}
|
|
216
223
|
}
|
|
217
224
|
exports.BehaviorBuilder = BehaviorBuilder;
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3ItYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MtY2xvdWRmcm9udC9saWIvYmVoYXZpb3ItYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFDdkMsK0RBa0JvQztBQUVwQywrQ0FBc0Q7QUFJdEQsbUVBR2lDO0FBQ2pDLDJEQUc2QjtBQUM3QiwyRUFBbUU7QUFDbkUsNkZBQW9GO0FBRXBGLFNBQVMsT0FBTyxDQUFDLEtBQWE7SUFDNUIsT0FBTyxJQUFBLHdCQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRVksUUFBQSx5QkFBeUIsR0FBRztJQUN2QyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRztDQUN2QyxDQUFDO0FBQ1csUUFBQSw2QkFBNkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRWxFLE1BQWEsZUFBZ0IsU0FBUSx5QkFBaUI7SUFLcEQsWUFDRSxLQUEwQixFQUMxQixNQUFlLEVBQ2YsSUFBd0I7UUFFeEIsS0FBSyxDQUNILEtBQUssRUFDTCxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsVUFBVSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJ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QzlELENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsVUFBK0IsRUFDL0IsSUFBWTtRQUVaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBaFJELDBDQWdSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlSGFzaH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHtcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIHR5cGUgQmVoYXZpb3JPcHRpb25zLFxuICBDYWNoZWRNZXRob2RzLFxuICBDYWNoZVBvbGljeSxcbiAgdHlwZSBEaXN0cmlidXRpb24sXG4gIHR5cGUgRGlzdHJpYnV0aW9uUHJvcHMsXG4gIHR5cGUgRWRnZUxhbWJkYSxcbiAgdHlwZSBGdW5jdGlvbkFzc29jaWF0aW9uLFxuICBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgdHlwZSBJQ2FjaGVQb2xpY3ksXG4gIHR5cGUgSUZ1bmN0aW9uLFxuICB0eXBlIElLZXlHcm91cCxcbiAgdHlwZSBJT3JpZ2luLFxuICB0eXBlIElPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICB0eXBlIElSZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gIE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIFZpZXdlclByb3RvY29sUG9saWN5LFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgdHlwZSB7SUJ1Y2tldH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7RXh0ZW5kZWRDb25zdHJ1Y3R9IGZyb20gJy4uLy4uL2F3cy1jZGsvaW5kZXgnO1xuaW1wb3J0IHR5cGUge0RvbWFpbk5hbWV9IGZyb20gJy4uLy4uL2F3cy1yb3V0ZTUzL2luZGV4JztcbmltcG9ydCB0eXBlIHtDbG91ZEZyb250QnVja2V0fSBmcm9tICcuLi8uLi9hd3MtczMvaW5kZXgnO1xuaW1wb3J0IHR5cGUge0Rpc3RyaWJ1dGlvbkJ1aWxkZXJ9IGZyb20gJy4vZGlzdHJpYnV0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IHtcbiAgRXh0ZW5kZWRPcmlnaW5Hcm91cCxcbiAgaXNFeHRlbmRlZE9yaWdpbkdyb3VwLFxufSBmcm9tICcuL2V4dGVuZGVkLW9yaWdpbi1ncm91cCc7XG5pbXBvcnQge1xuICBSZWRpcmVjdEZ1bmN0aW9uLFxuICB0eXBlIFJlZGlyZWN0RnVuY3Rpb25Qcm9wcyxcbn0gZnJvbSAnLi9yZWRpcmVjdC1mdW5jdGlvbic7XG5pbXBvcnQge1N0YW5kYXJkQXBpQ2FjaGVQb2xpY3l9IGZyb20gJy4vc3RhbmRhcmQtYXBpLWNhY2hlLXBvbGljeSc7XG5pbXBvcnQge1N0YW5kYXJkQXBpT3JpZ2luUmVxdWVzdFBvbGljeX0gZnJvbSAnLi9zdGFuZGFyZC1hcGktb3JpZ2luLXJlcXVlc3QtcG9saWN5JztcblxuZnVuY3Rpb24gc2hhMXN1bShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goJ3NoYTEnKS51cGRhdGUoaW5wdXQpLmRpZ2VzdCgnaGV4Jyk7XG59XG5cbmV4cG9ydCBjb25zdCBBTExfRkFMTEJBQ0tfU1RBVFVTX0NPREVTID0gW1xuICA0MDAsIDQwMywgNDA0LCA0MDUsIDUwMCwgNTAyLCA1MDMsIDUwNCxcbl07XG5leHBvcnQgY29uc3QgREVGQVVMVF9GQUxMQkFDS19TVEFUVVNfQ09ERVMgPSBbNTAwLCA1MDIsIDUwMywgNTA0XTtcblxuZXhwb3J0IGNsYXNzIEJlaGF2aW9yQnVpbGRlciBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgb3B0aW9uczogQmVoYXZpb3JPcHRpb25zO1xuICBwcm90ZWN0ZWQgc2NvcGU6IERpc3RyaWJ1dGlvbkJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IERpc3RyaWJ1dGlvbkJ1aWxkZXIsXG4gICAgb3JpZ2luOiBJT3JpZ2luLFxuICAgIHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBzY29wZSxcbiAgICAgIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aCA9PT0gJycgPyAnRGVmYXVsdCcgOiBzaGExc3VtKHBhdGgpKSArXG4gICAgICAgICdCZWhhdmlvcicsXG4gICAgKTtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHNjb3BlLmFkZEJlaGF2aW9yKHRoaXMsIHBhdGgpO1xuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBvcmlnaW4sXG4gICAgfTtcbiAgfVxuXG4gIGdldE9yaWdpbigpOiBJT3JpZ2luIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm9yaWdpbjtcbiAgfVxuXG4gIGZhbGxiYWNrT3JpZ2luKFxuICAgIGZhbGxiYWNrT3JpZ2luPzogSU9yaWdpbixcbiAgICBmYWxsYmFja1N0YXR1c0NvZGVzPzogbnVtYmVyW10sXG4gICk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgaWYgKGZhbGxiYWNrT3JpZ2luKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIHJldXNlIE9yaWdpbkdyb3VwcyBvciBpdCB3aWxsIGNvbXBsYWluIGFib3V0IGR1cGxpY2F0ZSBvcmlnaW5zXG4gICAgICBmb3IgKGNvbnN0IG9yaWdpbiBvZiB0aGlzLnNjb3BlLmdldE9yaWdpbnMoKSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaXNFeHRlbmRlZE9yaWdpbkdyb3VwKG9yaWdpbikgJiZcbiAgICAgICAgICBvcmlnaW4ucHJpbWFyeU9yaWdpbiA9PT0gdGhpcy5vcHRpb25zLm9yaWdpbiAmJlxuICAgICAgICAgIG9yaWdpbi5mYWxsYmFja09yaWdpbiA9PT0gZmFsbGJhY2tPcmlnaW5cbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IG9yaWdpbkdyb3VwID0gbmV3IEV4dGVuZGVkT3JpZ2luR3JvdXAoe1xuICAgICAgICBwcmltYXJ5T3JpZ2luOiB0aGlzLm9wdGlvbnMub3JpZ2luLFxuICAgICAgICBmYWxsYmFja09yaWdpbixcbiAgICAgICAgZmFsbGJhY2tTdGF0dXNDb2RlczpcbiAgICAgICAgICBmYWxsYmFja1N0YXR1c0NvZGVzID8/IERFRkFVTFRfRkFMTEJBQ0tfU1RBVFVTX0NPREVTLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgb3JpZ2luOiBvcmlnaW5Hcm91cCxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWxsb3dlZE1ldGhvZHMoYWxsb3dlZE1ldGhvZHM/OiBBbGxvd2VkTWV0aG9kcyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgYWxsb3dlZE1ldGhvZHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNhY2hlZE1ldGhvZHMoY2FjaGVkTWV0aG9kcz86IENhY2hlZE1ldGhvZHMpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGNhY2hlZE1ldGhvZHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNhY2hlUG9saWN5KGNhY2hlUG9saWN5OiBJQ2FjaGVQb2xpY3kpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGNhY2hlUG9saWN5LFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb21wcmVzcyhjb21wcmVzcz86IGJvb2xlYW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGNvbXByZXNzLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvcmlnaW5SZXF1ZXN0UG9saWN5KFxuICAgIG9yaWdpblJlcXVlc3RQb2xpY3k/OiBJT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZXNwb25zZUhlYWRlcnNQb2xpY3koXG4gICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogSVJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNtb290aFN0cmVhbWluZyhzbW9vdGhTdHJlYW1pbmc/OiBib29sZWFuKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBzbW9vdGhTdHJlYW1pbmcsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZpZXdlclByb3RvY29sUG9saWN5KFxuICAgIHZpZXdlclByb3RvY29sUG9saWN5PzogVmlld2VyUHJvdG9jb2xQb2xpY3ksXG4gICk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3ksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZ1bmN0aW9uQXNzb2NpYXRpb25zKFxuICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zPzogRnVuY3Rpb25Bc3NvY2lhdGlvbltdLFxuICApOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb24odmlld2VyUmVxdWVzdEZ1bmN0aW9uOiBJRnVuY3Rpb24pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIGNvbnN0IGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBGdW5jdGlvbkFzc29jaWF0aW9uW10gPVxuICAgICAgdGhpcy5vcHRpb25zLmZ1bmN0aW9uQXNzb2NpYXRpb25zID8/IFtdO1xuICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zLnB1c2goe1xuICAgICAgZnVuY3Rpb246IHZpZXdlclJlcXVlc3RGdW5jdGlvbixcbiAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlZGlyZWN0RnVuY3Rpb24ocHJvcHM6IFJlZGlyZWN0RnVuY3Rpb25Qcm9wcyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3QgcmVkaXJlY3RGdW5jdGlvbiA9IG5ldyBSZWRpcmVjdEZ1bmN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdSZWRpcmVjdEZ1bmN0aW9uJyxcbiAgICAgIHByb3BzLFxuICAgICk7XG4gICAgdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24ocmVkaXJlY3RGdW5jdGlvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB2aWV3ZXJSZXNwb25zZUZ1bmN0aW9uKHZpZXdlclJlc3BvbnNlRnVuY3Rpb246IElGdW5jdGlvbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3QgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IEZ1bmN0aW9uQXNzb2NpYXRpb25bXSA9XG4gICAgICB0aGlzLm9wdGlvbnMuZnVuY3Rpb25Bc3NvY2lhdGlvbnMgPz8gW107XG4gICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMucHVzaCh7XG4gICAgICBmdW5jdGlvbjogdmlld2VyUmVzcG9uc2VGdW5jdGlvbixcbiAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFU1BPTlNFLFxuICAgIH0pO1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlZGdlTGFtYmRhcyhlZGdlTGFtYmRhcz86IEVkZ2VMYW1iZGFbXSk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZWRnZUxhbWJkYXMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRydXN0ZWRLZXlHcm91cHModHJ1c3RlZEtleUdyb3Vwcz86IElLZXlHcm91cFtdKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB0cnVzdGVkS2V5R3JvdXBzLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzM0RlZmF1bHRzKCk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMub3JpZ2luUmVxdWVzdFBvbGljeShPcmlnaW5SZXF1ZXN0UG9saWN5LkNPUlNfUzNfT1JJR0lOKTtcbiAgfVxuXG4gIGFwaURlZmF1bHRzKGFkZGl0aW9uYWxIZWFkZXJzPzogc3RyaW5nW10pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIC8vIFRPRE8gTmVlZCBhIHdheSB0byByZS11c2UgdGhlIGNhY2hlIHBvbGljeSBhbmQgb3JpZ2luUmVxdWVzdFBvbGljeSBvbiBzdWJzZXF1ZW50IGNhbGxzIHRvIGFwaURlZmF1bHRzIHNpbmNlIHRoZXkgd291bGQgYmUgaWRlbnRpY2FsXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPSBuZXcgU3RhbmRhcmRBcGlDYWNoZVBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnQXBpQ2FjaGVQb2xpY3knLFxuICAgICAgYWRkaXRpb25hbEhlYWRlcnMsXG4gICAgKTtcbiAgICBjb25zdCBvcmlnaW5SZXF1ZXN0UG9saWN5ID0gbmV3IFN0YW5kYXJkQXBpT3JpZ2luUmVxdWVzdFBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnQXBpT3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBhZGRpdGlvbmFsSGVhZGVycyxcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTClcbiAgICAgIC5jYWNoZVBvbGljeShjYWNoZVBvbGljeSlcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KG9yaWdpblJlcXVlc3RQb2xpY3kpO1xuICB9XG5cbiAgYnVpbGRCZWhhdmlvcigpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgIGlmICh0aGlzLm9wdGlvbnMudmlld2VyUHJvdG9jb2xQb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd2VkTWV0aG9kcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuY2FjaGVkTWV0aG9kcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNhY2hlZE1ldGhvZHMoQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmNhY2hlUG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMub3JpZ2luUmVxdWVzdFBvbGljeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9yaWdpblJlcXVlc3RQb2xpY3koT3JpZ2luUmVxdWVzdFBvbGljeS5BTExfVklFV0VSKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXByZXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29tcHJlc3ModHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucztcbiAgfVxuXG4gIGJ1aWxkKCk6IERpc3RyaWJ1dGlvblByb3BzIHtcbiAgICByZXR1cm4gdGhpcy5zY29wZS5idWlsZCgpO1xuICB9XG5cbiAgYmVoYXZpb3Iob3JpZ2luOiBJT3JpZ2luLCBwYXRoOiBzdHJpbmcpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmJlaGF2aW9yKG9yaWdpbiwgcGF0aCk7XG4gIH1cblxuICBiZWhhdmlvckZyb21CdWNrZXQoYnVja2V0OiBJQnVja2V0LCBwYXRoOiBzdHJpbmcpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmJlaGF2aW9yRnJvbUJ1Y2tldChidWNrZXQsIHBhdGgpO1xuICB9XG5cbiAgYmVoYXZpb3JGcm9tQ2xvdWRGcm9tQnVja2V0KFxuICAgIGJ1Y2tldDogQ2xvdWRGcm9udEJ1Y2tldCxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuYmVoYXZpb3JGcm9tQ2xvdWRGcm9tQnVja2V0KGJ1Y2tldCwgcGF0aCk7XG4gIH1cblxuICBiZWhhdmlvckZyb21Eb21haW5OYW1lKFxuICAgIGRvbWFpbk5hbWU6IHN0cmluZyB8IERvbWFpbk5hbWUsXG4gICAgcGF0aDogc3RyaW5nLFxuICApOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmJlaGF2aW9yRnJvbURvbWFpbk5hbWUoZG9tYWluTmFtZSwgcGF0aCk7XG4gIH1cblxuICB0b0Rpc3RyaWJ1dGlvbigpOiBEaXN0cmlidXRpb24ge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLnRvRGlzdHJpYnV0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3ItYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MtY2xvdWRmcm9udC9saWIvYmVoYXZpb3ItYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFDdkMsK0RBa0JvQztBQUVwQywrQ0FBc0Q7QUFJdEQsbUVBR2lDO0FBQ2pDLDJEQUc2QjtBQUM3QiwyRUFBbUU7QUFDbkUsNkZBQW9GO0FBRXBGLFNBQVMsT0FBTyxDQUFDLEtBQWE7SUFDNUIsT0FBTyxJQUFBLHdCQUFVLEVBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRVksUUFBQSx5QkFBeUIsR0FBRztJQUN2QyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRztDQUN2QyxDQUFDO0FBQ1csUUFBQSw2QkFBNkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRWxFLE1BQWEsZUFBZ0IsU0FBUSx5QkFBaUI7SUFLcEQsWUFDRSxLQUEwQixFQUMxQixNQUFlLEVBQ2YsSUFBd0I7UUFFeEIsS0FBSyxDQUNILEtBQUssRUFDTCxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsVUFBVSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJ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a0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCwyQkFBMkIsQ0FDekIsTUFBd0IsRUFDeEIsSUFBWTtRQUVaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHNCQUFzQixDQUNwQixVQUErQixFQUMvQixJQUFZO1FBRVosT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUExUkQsMENBMFJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjcmVhdGVIYXNofSBmcm9tICdub2RlOmNyeXB0byc7XG5pbXBvcnQge1xuICBBbGxvd2VkTWV0aG9kcyxcbiAgdHlwZSBCZWhhdmlvck9wdGlvbnMsXG4gIENhY2hlZE1ldGhvZHMsXG4gIENhY2hlUG9saWN5LFxuICB0eXBlIERpc3RyaWJ1dGlvbixcbiAgdHlwZSBEaXN0cmlidXRpb25Qcm9wcyxcbiAgdHlwZSBFZGdlTGFtYmRhLFxuICB0eXBlIEZ1bmN0aW9uQXNzb2NpYXRpb24sXG4gIEZ1bmN0aW9uRXZlbnRUeXBlLFxuICB0eXBlIElDYWNoZVBvbGljeSxcbiAgdHlwZSBJRnVuY3Rpb24sXG4gIHR5cGUgSUtleUdyb3VwLFxuICB0eXBlIElPcmlnaW4sXG4gIHR5cGUgSU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIHR5cGUgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgVmlld2VyUHJvdG9jb2xQb2xpY3ksXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB0eXBlIHtJQnVja2V0fSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdH0gZnJvbSAnLi4vLi4vYXdzLWNkay9pbmRleCc7XG5pbXBvcnQgdHlwZSB7RG9tYWluTmFtZX0gZnJvbSAnLi4vLi4vYXdzLXJvdXRlNTMvaW5kZXgnO1xuaW1wb3J0IHR5cGUge0Nsb3VkRnJvbnRCdWNrZXR9IGZyb20gJy4uLy4uL2F3cy1zMy9pbmRleCc7XG5pbXBvcnQgdHlwZSB7RGlzdHJpYnV0aW9uQnVpbGRlcn0gZnJvbSAnLi9kaXN0cmlidXRpb24tYnVpbGRlcic7XG5pbXBvcnQge1xuICBFeHRlbmRlZE9yaWdpbkdyb3VwLFxuICBpc0V4dGVuZGVkT3JpZ2luR3JvdXAsXG59IGZyb20gJy4vZXh0ZW5kZWQtb3JpZ2luLWdyb3VwJztcbmltcG9ydCB7XG4gIFJlZGlyZWN0RnVuY3Rpb24sXG4gIHR5cGUgUmVkaXJlY3RGdW5jdGlvblByb3BzLFxufSBmcm9tICcuL3JlZGlyZWN0LWZ1bmN0aW9uJztcbmltcG9ydCB7U3RhbmRhcmRBcGlDYWNoZVBvbGljeX0gZnJvbSAnLi9zdGFuZGFyZC1hcGktY2FjaGUtcG9saWN5JztcbmltcG9ydCB7U3RhbmRhcmRBcGlPcmlnaW5SZXF1ZXN0UG9saWN5fSBmcm9tICcuL3N0YW5kYXJkLWFwaS1vcmlnaW4tcmVxdWVzdC1wb2xpY3knO1xuXG5mdW5jdGlvbiBzaGExc3VtKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY3JlYXRlSGFzaCgnc2hhMScpLnVwZGF0ZShpbnB1dCkuZGlnZXN0KCdoZXgnKTtcbn1cblxuZXhwb3J0IGNvbnN0IEFMTF9GQUxMQkFDS19TVEFUVVNfQ09ERVMgPSBbXG4gIDQwMCwgNDAzLCA0MDQsIDQwNSwgNTAwLCA1MDIsIDUwMywgNTA0LFxuXTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZBTExCQUNLX1NUQVRVU19DT0RFUyA9IFs1MDAsIDUwMiwgNTAzLCA1MDRdO1xuXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JCdWlsZGVyIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuICByZWFkb25seSBwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBvcHRpb25zOiBCZWhhdmlvck9wdGlvbnM7XG4gIHByb3RlY3RlZCBzY29wZTogRGlzdHJpYnV0aW9uQnVpbGRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogRGlzdHJpYnV0aW9uQnVpbGRlcixcbiAgICBvcmlnaW46IElPcmlnaW4sXG4gICAgcGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoID09PSAnJyA/ICdEZWZhdWx0JyA6IHNoYTFzdW0ocGF0aCkpICtcbiAgICAgICAgJ0JlaGF2aW9yJyxcbiAgICApO1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgc2NvcGUuYWRkQmVoYXZpb3IodGhpcywgcGF0aCk7XG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIG9yaWdpbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0T3JpZ2luKCk6IElPcmlnaW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMub3JpZ2luO1xuICB9XG5cbiAgZmFsbGJhY2tPcmlnaW4oXG4gICAgZmFsbGJhY2tPcmlnaW4/OiBJT3JpZ2luLFxuICAgIGZhbGxiYWNrU3RhdHVzQ29kZXM/OiBudW1iZXJbXSxcbiAgKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICBpZiAoZmFsbGJhY2tPcmlnaW4pIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gcmV1c2UgT3JpZ2luR3JvdXBzIG9yIGl0IHdpbGwgY29tcGxhaW4gYWJvdXQgZHVwbGljYXRlIG9yaWdpbnNcbiAgICAgIGZvciAoY29uc3Qgb3JpZ2luIG9mIHRoaXMuc2NvcGUuZ2V0T3JpZ2lucygpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpc0V4dGVuZGVkT3JpZ2luR3JvdXAob3JpZ2luKSAmJlxuICAgICAgICAgIG9yaWdpbi5wcmltYXJ5T3JpZ2luID09PSB0aGlzLm9wdGlvbnMub3JpZ2luICYmXG4gICAgICAgICAgb3JpZ2luLmZhbGxiYWNrT3JpZ2luID09PSBmYWxsYmFja09yaWdpblxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICBvcmlnaW4sXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgb3JpZ2luR3JvdXAgPSBuZXcgRXh0ZW5kZWRPcmlnaW5Hcm91cCh7XG4gICAgICAgIHByaW1hcnlPcmlnaW46IHRoaXMub3B0aW9ucy5vcmlnaW4sXG4gICAgICAgIGZhbGxiYWNrT3JpZ2luLFxuICAgICAgICBmYWxsYmFja1N0YXR1c0NvZGVzOlxuICAgICAgICAgIGZhbGxiYWNrU3RhdHVzQ29kZXMgPz8gREVGQVVMVF9GQUxMQkFDS19TVEFUVVNfQ09ERVMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICBvcmlnaW46IG9yaWdpbkdyb3VwLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhbGxvd2VkTWV0aG9kcyhhbGxvd2VkTWV0aG9kcz86IEFsbG93ZWRNZXRob2RzKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBhbGxvd2VkTWV0aG9kcyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2FjaGVkTWV0aG9kcyhjYWNoZWRNZXRob2RzPzogQ2FjaGVkTWV0aG9kcyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgY2FjaGVkTWV0aG9kcyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2FjaGVQb2xpY3koY2FjaGVQb2xpY3k6IElDYWNoZVBvbGljeSk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgY2FjaGVQb2xpY3ksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbXByZXNzKGNvbXByZXNzPzogYm9vbGVhbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgY29tcHJlc3MsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9yaWdpblJlcXVlc3RQb2xpY3koXG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeT86IElPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICApOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlc3BvbnNlSGVhZGVyc1BvbGljeShcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBJUmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICApOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc21vb3RoU3RyZWFtaW5nKHNtb290aFN0cmVhbWluZz86IGJvb2xlYW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHNtb290aFN0cmVhbWluZyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdmlld2VyUHJvdG9jb2xQb2xpY3koXG4gICAgdmlld2VyUHJvdG9jb2xQb2xpY3k/OiBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbiAgKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMoXG4gICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM/OiBGdW5jdGlvbkFzc29jaWF0aW9uW10sXG4gICk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZpZXdlclJlcXVlc3RGdW5jdGlvbih2aWV3ZXJSZXF1ZXN0RnVuY3Rpb246IElGdW5jdGlvbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3QgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IEZ1bmN0aW9uQXNzb2NpYXRpb25bXSA9XG4gICAgICB0aGlzLm9wdGlvbnMuZnVuY3Rpb25Bc3NvY2lhdGlvbnMgPz8gW107XG4gICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMucHVzaCh7XG4gICAgICBmdW5jdGlvbjogdmlld2VyUmVxdWVzdEZ1bmN0aW9uLFxuICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICB9KTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9ucyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVkaXJlY3RGdW5jdGlvbihwcm9wczogUmVkaXJlY3RGdW5jdGlvblByb3BzKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICBjb25zdCByZWRpcmVjdEZ1bmN0aW9uID0gbmV3IFJlZGlyZWN0RnVuY3Rpb24oXG4gICAgICB0aGlzLFxuICAgICAgJ1JlZGlyZWN0RnVuY3Rpb24nLFxuICAgICAgcHJvcHMsXG4gICAgKTtcbiAgICB0aGlzLnZpZXdlclJlcXVlc3RGdW5jdGlvbihyZWRpcmVjdEZ1bmN0aW9uKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZpZXdlclJlc3BvbnNlRnVuY3Rpb24odmlld2VyUmVzcG9uc2VGdW5jdGlvbjogSUZ1bmN0aW9uKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICBjb25zdCBmdW5jdGlvbkFzc29jaWF0aW9uczogRnVuY3Rpb25Bc3NvY2lhdGlvbltdID1cbiAgICAgIHRoaXMub3B0aW9ucy5mdW5jdGlvbkFzc29jaWF0aW9ucyA/PyBbXTtcbiAgICBmdW5jdGlvbkFzc29jaWF0aW9ucy5wdXNoKHtcbiAgICAgIGZ1bmN0aW9uOiB2aWV3ZXJSZXNwb25zZUZ1bmN0aW9uLFxuICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVkZ2VMYW1iZGFzKGVkZ2VMYW1iZGFzPzogRWRnZUxhbWJkYVtdKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBlZGdlTGFtYmRhcyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdHJ1c3RlZEtleUdyb3Vwcyh0cnVzdGVkS2V5R3JvdXBzPzogSUtleUdyb3VwW10pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHRydXN0ZWRLZXlHcm91cHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHMzRGVmYXVsdHMoKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5SZXF1ZXN0UG9saWN5KE9yaWdpblJlcXVlc3RQb2xpY3kuQ09SU19TM19PUklHSU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIHN0YW5kYXJkIEFQSSBjYWNoZSBhbmQgb3JpZ2luIHJlcXVlc3QgcG9saWNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBhZGRpdGlvbmFsSGVhZGVycyBoZWFkZXJzIGFkZGVkIHRvIHRoZSBjYWNoZSBrZXkgYW5kIGZvcndhcmRlZCB0byB0aGUgb3JpZ2luXG4gICAqIEBwYXJhbSBhZGRpdGlvbmFsT3JpZ2luUmVxdWVzdEhlYWRlcnMgaGVhZGVycyBmb3J3YXJkZWQgdG8gdGhlIG9yaWdpbiBvbmx5OyB1c2UgZm9yXG4gICAqIGhlYWRlcnMgYSBjYWNoZSBwb2xpY3kgcmVqZWN0cywgc3VjaCBhcyBDbG91ZEZyb250LVZpZXdlci1BZGRyZXNzXG4gICAqL1xuICBhcGlEZWZhdWx0cyhcbiAgICBhZGRpdGlvbmFsSGVhZGVycz86IHN0cmluZ1tdLFxuICAgIGFkZGl0aW9uYWxPcmlnaW5SZXF1ZXN0SGVhZGVycz86IHN0cmluZ1tdLFxuICApOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIC8vIFRPRE8gTmVlZCBhIHdheSB0byByZS11c2UgdGhlIGNhY2hlIHBvbGljeSBhbmQgb3JpZ2luUmVxdWVzdFBvbGljeSBvbiBzdWJzZXF1ZW50IGNhbGxzIHRvIGFwaURlZmF1bHRzIHNpbmNlIHRoZXkgd291bGQgYmUgaWRlbnRpY2FsXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPSBuZXcgU3RhbmRhcmRBcGlDYWNoZVBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnQXBpQ2FjaGVQb2xpY3knLFxuICAgICAgYWRkaXRpb25hbEhlYWRlcnMsXG4gICAgKTtcbiAgICBjb25zdCBvcmlnaW5SZXF1ZXN0UG9saWN5ID0gbmV3IFN0YW5kYXJkQXBpT3JpZ2luUmVxdWVzdFBvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICAnQXBpT3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBbLi4uKGFkZGl0aW9uYWxIZWFkZXJzID8/IFtdKSwgLi4uKGFkZGl0aW9uYWxPcmlnaW5SZXF1ZXN0SGVhZGVycyA/PyBbXSldLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZE1ldGhvZHMoQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMKVxuICAgICAgLmNhY2hlUG9saWN5KGNhY2hlUG9saWN5KVxuICAgICAgLm9yaWdpblJlcXVlc3RQb2xpY3kob3JpZ2luUmVxdWVzdFBvbGljeSk7XG4gIH1cblxuICBidWlsZEJlaGF2aW9yKCk6IEJlaGF2aW9yT3B0aW9ucyB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy52aWV3ZXJQcm90b2NvbFBvbGljeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpZXdlclByb3RvY29sUG9saWN5KFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93ZWRNZXRob2RzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWxsb3dlZE1ldGhvZHMoQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jYWNoZWRNZXRob2RzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2FjaGVkTWV0aG9kcyhDYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuY2FjaGVQb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jYWNoZVBvbGljeShDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5vcmlnaW5SZXF1ZXN0UG9saWN5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3JpZ2luUmVxdWVzdFBvbGljeShPcmlnaW5SZXF1ZXN0UG9saWN5LkFMTF9WSUVXRVIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuY29tcHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb21wcmVzcyh0cnVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgYnVpbGQoKTogRGlzdHJpYnV0aW9uUHJvcHMge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmJ1aWxkKCk7XG4gIH1cblxuICBiZWhhdmlvcihvcmlnaW46IElPcmlnaW4sIHBhdGg6IHN0cmluZyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuYmVoYXZpb3Iob3JpZ2luLCBwYXRoKTtcbiAgfVxuXG4gIGJlaGF2aW9yRnJvbUJ1Y2tldChidWNrZXQ6IElCdWNrZXQsIHBhdGg6IHN0cmluZyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuYmVoYXZpb3JGcm9tQnVja2V0KGJ1Y2tldCwgcGF0aCk7XG4gIH1cblxuICBiZWhhdmlvckZyb21DbG91ZEZyb21CdWNrZXQoXG4gICAgYnVja2V0OiBDbG91ZEZyb250QnVja2V0LFxuICAgIHBhdGg6IHN0cmluZyxcbiAgKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5zY29wZS5iZWhhdmlvckZyb21DbG91ZEZyb21CdWNrZXQoYnVja2V0LCBwYXRoKTtcbiAgfVxuXG4gIGJlaGF2aW9yRnJvbURvbWFpbk5hbWUoXG4gICAgZG9tYWluTmFtZTogc3RyaW5nIHwgRG9tYWluTmFtZSxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuYmVoYXZpb3JGcm9tRG9tYWluTmFtZShkb21haW5OYW1lLCBwYXRoKTtcbiAgfVxuXG4gIHRvRGlzdHJpYnV0aW9uKCk6IERpc3RyaWJ1dGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUudG9EaXN0cmlidXRpb24oKTtcbiAgfVxufVxuIl19
|
|
@@ -8,13 +8,17 @@ const table_alarms_1 = require("./table-alarms");
|
|
|
8
8
|
*/
|
|
9
9
|
class ExtendedTableV2 extends aws_dynamodb_1.TableV2 {
|
|
10
10
|
constructor(scope, id, props) {
|
|
11
|
-
var _a;
|
|
11
|
+
var _a, _b;
|
|
12
12
|
super(scope, id, props);
|
|
13
13
|
if ((_a = props.createAlarms) !== null && _a !== void 0 ? _a : true) {
|
|
14
|
-
new table_alarms_1.TableAlarms(this, 'Alarms', {
|
|
14
|
+
this.tableAlarms = new table_alarms_1.TableAlarms(this, 'Alarms', {
|
|
15
15
|
table: this,
|
|
16
16
|
...props,
|
|
17
17
|
});
|
|
18
|
+
// TableV2 adds these indexes inside super(), before tableAlarms exists.
|
|
19
|
+
for (const index of (_b = props.globalSecondaryIndexes) !== null && _b !== void 0 ? _b : []) {
|
|
20
|
+
this.tableAlarms.addGlobalSecondaryIndexMonitoring(index.indexName);
|
|
21
|
+
}
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
@@ -30,4 +34,4 @@ class ExtendedTableV2 extends aws_dynamodb_1.TableV2 {
|
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
exports.ExtendedTableV2 = ExtendedTableV2;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtdGFibGUtdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLWR5bmFtb2RiL2xpYi9leHRlbmRlZC10YWJsZS12Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFJa0M7QUFHbEMsaURBQW9FO0FBVXBFOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLHNCQUFPO0lBRTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksTUFBQSxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQVcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNqRCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxHQUFHLEtBQUs7YUFDVCxDQUFDLENBQUM7WUFDSCx3RUFBd0U7WUFDeEUsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFBLEtBQUssQ0FBQyxzQkFBc0IsbUNBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx1QkFBdUIsQ0FBQyxLQUFrQztRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTVCRCwwQ0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHNWMixcbiAgdHlwZSBUYWJsZVByb3BzVjIsXG4gIFRhYmxlVjIsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHtFeHRlbmRlZENvbnN0cnVjdFByb3BzfSBmcm9tICcuLi8uLi9hd3MtY2RrL2luZGV4JztcbmltcG9ydCB7VGFibGVBbGFybXMsIHR5cGUgVGFibGVBbGFybXNPcHRpb25zfSBmcm9tICcuL3RhYmxlLWFsYXJtcyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRXh0ZW5kZWRUYWJsZVYyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkVGFibGVQcm9wc1YyXG4gIGV4dGVuZHMgVGFibGVQcm9wc1YyLFxuICAgIFRhYmxlQWxhcm1zT3B0aW9ucyxcbiAgICBFeHRlbmRlZENvbnN0cnVjdFByb3BzIHt9XG5cbi8qKlxuICogRHluYW1vREIgVGFibGUgd2l0aCBDbG91ZFdhdGNoIEFsYXJtcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEV4dGVuZGVkVGFibGVWMiBleHRlbmRzIFRhYmxlVjIge1xuICByZWFkb25seSB0YWJsZUFsYXJtcz86IFRhYmxlQWxhcm1zO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXh0ZW5kZWRUYWJsZVByb3BzVjIpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5jcmVhdGVBbGFybXMgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy50YWJsZUFsYXJtcyA9IG5ldyBUYWJsZUFsYXJtcyh0aGlzLCAnQWxhcm1zJywge1xuICAgICAgICB0YWJsZTogdGhpcyxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICB9KTtcbiAgICAgIC8vIFRhYmxlVjIgYWRkcyB0aGVzZSBpbmRleGVzIGluc2lkZSBzdXBlcigpLCBiZWZvcmUgdGFibGVBbGFybXMgZXhpc3RzLlxuICAgICAgZm9yIChjb25zdCBpbmRleCBvZiBwcm9wcy5nbG9iYWxTZWNvbmRhcnlJbmRleGVzID8/IFtdKSB7XG4gICAgICAgIHRoaXMudGFibGVBbGFybXMuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXhNb25pdG9yaW5nKGluZGV4LmluZGV4TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggb2YgdGFibGUuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcHJvcGVydHkgb2YgZ2xvYmFsIHNlY29uZGFyeSBpbmRleFxuICAgKi9cbiAgYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgocHJvcHM6IEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHNWMikge1xuICAgIHN1cGVyLmFkZEdsb2JhbFNlY29uZGFyeUluZGV4KHByb3BzKTtcbiAgICBpZiAodGhpcy50YWJsZUFsYXJtcykge1xuICAgICAgdGhpcy50YWJsZUFsYXJtcy5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleE1vbml0b3JpbmcocHJvcHMuaW5kZXhOYW1lKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -61,9 +61,6 @@ class StandardTableV2 extends extended_table_v2_1.ExtendedTableV2 {
|
|
|
61
61
|
}),
|
|
62
62
|
...props,
|
|
63
63
|
});
|
|
64
|
-
if (this.tableAlarms) {
|
|
65
|
-
this.tableAlarms.addGlobalSecondaryIndexMonitoring(indexName);
|
|
66
|
-
}
|
|
67
64
|
}
|
|
68
65
|
}
|
|
69
66
|
exports.StandardTableV2 = StandardTableV2;
|
|
@@ -83,4 +80,4 @@ function getGlobalIndexes(num) {
|
|
|
83
80
|
}
|
|
84
81
|
return indexes;
|
|
85
82
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtdGFibGUtdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLWR5bmFtb2RiL2xpYi9zdGFuZGFyZC10YWJsZS12Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SUEsNENBU0M7QUFoSkQsNkNBQTBDO0FBQzFDLDJEQUtrQztBQUVsQywyREFBK0U7QUF3RC9FOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1DQUFlO0lBRWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7O1FBQ3BFLE1BQU0sRUFDSixzQkFBc0IsRUFDdEIsZ0NBQWdDLEVBQ2hDLGlDQUFpQyxFQUNqQyxHQUFHLElBQUksRUFDUixHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixtQkFBbUIsRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsbUJBQW1CO1lBQy9DLFlBQVksRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLG1DQUFJO2dCQUNuQyxJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2FBQzNCO1lBQ0QsT0FBTyxFQUNMLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sTUFBSyxJQUFJO2dCQUNyQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsQ0FBQyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLG1DQUFJO29CQUNqQixJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2lCQUMzQixDQUFDO1lBQ1Isa0JBQWtCLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsa0JBQWtCLG1DQUFJLElBQUk7WUFDckQsYUFBYSxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGFBQWEsbUNBQUksMkJBQWEsQ0FBQyxNQUFNO1lBQzNELEdBQUcsSUFBSTtTQUNSLENBQUMsQ0FBQztRQXhCSyx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUF5QmhDLElBQUksc0JBQXNCLElBQUksc0JBQXNCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLHNCQUFzQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyx1QkFBdUIsQ0FBQztvQkFDM0IsWUFBWSxFQUFFLGdDQUFnQztvQkFDOUMsYUFBYSxFQUFFLGlDQUFpQztpQkFDakQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHVCQUF1QixDQUFDLEtBQTBDOztRQUNoRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixNQUFNLFNBQVMsR0FBRyxNQUFBLEtBQUssQ0FBQyxTQUFTLG1DQUFJLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDckUsS0FBSyxDQUFDLHVCQUF1QixDQUFDO1lBQzVCLFNBQVM7WUFDVCxZQUFZLEVBQUUsTUFBQSxLQUFLLENBQUMsWUFBWSxtQ0FBSTtnQkFDbEMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLG1CQUFtQixJQUFJO2dCQUN2QyxJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2FBQzNCO1lBQ0QsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSTtnQkFDcEIsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLENBQUMsTUFBQSxLQUFLLENBQUMsT0FBTyxtQ0FBSTtvQkFDaEIsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLG1CQUFtQixJQUFJO29CQUN2QyxJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2lCQUMzQixDQUFDO1lBQ1IsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBNURELDBDQTREQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsR0FBVztJQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxnREFBZ0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQzdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW92YWxQb2xpY3l9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIHR5cGUgQXR0cmlidXRlLFxuICBBdHRyaWJ1dGVUeXBlLFxuICB0eXBlIENhcGFjaXR5LFxuICB0eXBlIEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHNWMixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB0eXBlIHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHt0eXBlIEV4dGVuZGVkVGFibGVQcm9wc1YyLCBFeHRlbmRlZFRhYmxlVjJ9IGZyb20gJy4vZXh0ZW5kZWQtdGFibGUtdjInO1xuXG50eXBlIFN0YW5kYXJkR2xvYmFsU2Vjb25kYXJ5SW5kZXhQcm9wc1YyID0gUGFydGlhbDxHbG9iYWxTZWNvbmRhcnlJbmRleFByb3BzVjI+O1xuXG50eXBlIFN0YW5kYXJkVGFibGVQcm9wc1YyT21pdEZpZWxkcyA9XG4gIHwgJ3BhcnRpdGlvbktleSdcbiAgfCAnc29ydEtleSdcbiAgfCAnZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRUYWJsZVByb3BzVjJcbiAgZXh0ZW5kcyBPbWl0PEV4dGVuZGVkVGFibGVQcm9wc1YyLCBTdGFuZGFyZFRhYmxlUHJvcHNWMk9taXRGaWVsZHM+IHtcbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgdGFncyBvbiByZXNvdXJjZXNcbiAgICogY3JlYXRlZCBieSB0aGlzIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NUYWdnaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhZGRpdGlvbmFsIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXhlcyBvbiB0aGUgdGFibGUgd2l0aCB0aGUgcGFydGl0aW9uIGtleSBHcyNQayBhbmQgc29ydCBrZXkgR3MjU2sgb2Ygc3RyaW5nIHR5cGVzLiBEZWZhdWx0IGlzIDEuXG4gICAqIEJlIGF3YXJlIHlvdSBtYXkgb25seSBhZGQgb25lIGluZGV4IGF0IGEgdGltZSBpZiB0aGUgdGFibGUgYWxyZWFkeSBleGlzdHMuIFRoaXMgaXMgYSBsaW1pdGF0aW9uIG9mIHRoZSBEeW5hbW9EQiBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFNlY29uZGFyeUluZGV4ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHJlYWQgY2FwYWNpdHkgZm9yIHNlY29uZGFyeSBnbG9iYWwgaW5kZXhlcy4gSWYgeW91IHdhbnQgcGVyIGluZGV4IHNldHRpbmdzLCB1c2UgYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXggYW5kIHNldCBnbG9iYWxTZWNvbmRhcnlJbmRleGVzIHRvIDAuXG4gICAqXG4gICAqIENhbiBvbmx5IGJlIHByb3ZpZGVkIGlmIGJpbGxpbmdNb2RlIGlzIFByb3Zpc2lvbmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBpcyB0byBpbmhlcml0IGZyb20gdGhlIHByaW1hcnkgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFNlY29uZGFyeUluZGV4UmVhZENhcGFjaXR5PzogQ2FwYWNpdHk7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHJlYWQgY2FwYWNpdHkgZm9yIHNlY29uZGFyeSBnbG9iYWwgaW5kZXhlcy4gSWYgeW91IHdhbnQgcGVyIGluZGV4IHNldHRpbmdzLCB1c2UgYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXggYW5kIHNldCBnbG9iYWxTZWNvbmRhcnlJbmRleGVzIHRvIDAuXG4gICAqXG4gICAqIENhbiBvbmx5IGJlIHByb3ZpZGVkIGlmIGJpbGxpbmdNb2RlIGlzIFByb3Zpc2lvbmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBpcyB0byBpbmhlcml0IGZyb20gdGhlIHByaW1hcnkgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFNlY29uZGFyeUluZGV4V3JpdGVDYXBhY2l0eT86IENhcGFjaXR5O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBwYXJ0aXRpb24ga2V5IG9mIHRoZSB0YWJsZS4gRGVmYXVsdCBpcyBQayBvZiBzdHJpbmcgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbktleT86IEF0dHJpYnV0ZTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgc29ydCBrZXkgb2YgdGhlIHRhYmxlLiBEZWZhdWx0IGlzIFNrIG9mIHN0cmluZyB0eXBlLiBTZXQgdG8gbnVsbCBpbnN0ZWFkIG9mIHVuZGVmaW5lZCB0byByZW1vdmUgdGhlIHNvcnQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydEtleT86IEF0dHJpYnV0ZTtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBEeW5hbW9EQiBUYWJsZSBWMiB3aXRoIGEgZGVmaW5lZCBwcmltYXJ5IGtleSBhbmQgc29ydCBrZXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZFRhYmxlVjIgZXh0ZW5kcyBFeHRlbmRlZFRhYmxlVjIge1xuICBwcm90ZWN0ZWQgc2Vjb25kYXJ5SW5kZXhDb3VudCA9IDA7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhbmRhcmRUYWJsZVByb3BzVjIpIHtcbiAgICBjb25zdCB7XG4gICAgICBnbG9iYWxTZWNvbmRhcnlJbmRleGVzLFxuICAgICAgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhSZWFkQ2FwYWNpdHksXG4gICAgICBnbG9iYWxTZWNvbmRhcnlJbmRleFdyaXRlQ2FwYWNpdHksXG4gICAgICAuLi5yZXN0XG4gICAgfSA9IHByb3BzIHx8IHt9O1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGltZVRvTGl2ZUF0dHJpYnV0ZTogcHJvcHM/LnRpbWVUb0xpdmVBdHRyaWJ1dGUsXG4gICAgICBwYXJ0aXRpb25LZXk6IHByb3BzPy5wYXJ0aXRpb25LZXkgPz8ge1xuICAgICAgICBuYW1lOiAnUGsnLFxuICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgIH0sXG4gICAgICBzb3J0S2V5OlxuICAgICAgICBwcm9wcz8uc29ydEtleSA9PT0gbnVsbFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiAocHJvcHM/LnNvcnRLZXkgPz8ge1xuICAgICAgICAgICAgICBuYW1lOiAnU2snLFxuICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9wcz8uZGVsZXRpb25Qcm90ZWN0aW9uID8/IHRydWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcz8ucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIC4uLnJlc3QsXG4gICAgfSk7XG4gICAgaWYgKGdsb2JhbFNlY29uZGFyeUluZGV4ZXMgJiYgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlcyA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlczsgaSsrKSB7XG4gICAgICAgIHRoaXMuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgoe1xuICAgICAgICAgIHJlYWRDYXBhY2l0eTogZ2xvYmFsU2Vjb25kYXJ5SW5kZXhSZWFkQ2FwYWNpdHksXG4gICAgICAgICAgd3JpdGVDYXBhY2l0eTogZ2xvYmFsU2Vjb25kYXJ5SW5kZXhXcml0ZUNhcGFjaXR5LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZ2xvYmFsIHNlY29uZGFyeSBpbmRleCBvZiB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0eSBvZiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4XG4gICAqL1xuICBhZGRHbG9iYWxTZWNvbmRhcnlJbmRleChwcm9wczogU3RhbmRhcmRHbG9iYWxTZWNvbmRhcnlJbmRleFByb3BzVjIpIHtcbiAgICB0aGlzLnNlY29uZGFyeUluZGV4Q291bnQrKztcbiAgICBjb25zdCBpbmRleE5hbWUgPSBwcm9wcy5pbmRleE5hbWUgPz8gYEdzJHt0aGlzLnNlY29uZGFyeUluZGV4Q291bnR9YDtcbiAgICBzdXBlci5hZGRHbG9iYWxTZWNvbmRhcnlJbmRleCh7XG4gICAgICBpbmRleE5hbWUsXG4gICAgICBwYXJ0aXRpb25LZXk6IHByb3BzLnBhcnRpdGlvbktleSA/PyB7XG4gICAgICAgIG5hbWU6IGBHcyR7dGhpcy5zZWNvbmRhcnlJbmRleENvdW50fVBrYCxcbiAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICB9LFxuICAgICAgc29ydEtleTpcbiAgICAgICAgcHJvcHMuc29ydEtleSA9PT0gbnVsbFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiAocHJvcHMuc29ydEtleSA/PyB7XG4gICAgICAgICAgICAgIG5hbWU6IGBHcyR7dGhpcy5zZWNvbmRhcnlJbmRleENvdW50fVNrYCxcbiAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICB9KSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIHJldHVybiBhIGxpc3Qgb2YgaW5kZXggbmFtZXMuXG4gKlxuICogQHBhcmFtIG51bSB0aGUgbnVtYmVyIG9mIGluZGV4ZXNcbiAqIEByZXR1cm5zIGEgbGlzdCBvZiBpbmRleCBuYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2xvYmFsSW5kZXhlcyhudW06IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihudW0pIHx8IG51bSA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgbnVtIG11c3QgYmUgYSBub24tbmVnYXRpdmUgc2FmZSBpbnRlZ2VyLCBnb3QgJHtudW19YCk7XG4gIH1cbiAgY29uc3QgaW5kZXhlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xuICAgIGluZGV4ZXMucHVzaChgR3Mke2kgKyAxfWApO1xuICB9XG4gIHJldHVybiBpbmRleGVzO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Duration, type RemovalPolicy, type ResourceEnvironment, Stack } from 'aws-cdk-lib';
|
|
2
|
-
import type
|
|
2
|
+
import { MathExpression, type Metric, type MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
|
|
3
3
|
import type { AddToResourcePolicyResult, Grant, IGrantable, PolicyStatement } from 'aws-cdk-lib/aws-iam';
|
|
4
4
|
import type * as kms from 'aws-cdk-lib/aws-kms';
|
|
5
5
|
import { type IQueue, QueueEncryption, type QueueReference } from 'aws-cdk-lib/aws-sqs';
|
|
@@ -114,6 +114,12 @@ export interface StandardQueueProps extends QueueAlarmsOptions, ExtendedConstruc
|
|
|
114
114
|
* @default Duration.seconds(20)
|
|
115
115
|
*/
|
|
116
116
|
readonly receiveMessageWaitTime?: Duration;
|
|
117
|
+
/**
|
|
118
|
+
* Enforce encryption of data in transit on the queue and its dead letter queue.
|
|
119
|
+
*
|
|
120
|
+
* @default - not enforced on the queue; enforced on the dead letter queue
|
|
121
|
+
*/
|
|
122
|
+
readonly enforceSSL?: boolean;
|
|
117
123
|
}
|
|
118
124
|
export declare class StandardQueue extends ExtendedConstruct implements IQueue {
|
|
119
125
|
static readonly DEFAULT_MAX_RECEIVE_COUNT = 3;
|
|
@@ -139,6 +145,7 @@ export declare class StandardQueue extends ExtendedConstruct implements IQueue {
|
|
|
139
145
|
metricApproximateNumberOfMessagesDelayed(props?: MetricOptions): Metric;
|
|
140
146
|
metricApproximateNumberOfMessagesNotVisible(props?: MetricOptions): Metric;
|
|
141
147
|
metricApproximateNumberOfMessagesVisible(props?: MetricOptions): Metric;
|
|
148
|
+
metricApproximateNumberOfMessagesOutstanding(props?: MetricOptions): MathExpression;
|
|
142
149
|
metricNumberOfEmptyReceives(props?: MetricOptions): Metric;
|
|
143
150
|
metricNumberOfMessagesDeleted(props?: MetricOptions): Metric;
|
|
144
151
|
metricNumberOfMessagesReceived(props?: MetricOptions): Metric;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StandardQueue = void 0;
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
5
6
|
const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
|
|
6
7
|
const aws_cdk_1 = require("../../aws-cdk");
|
|
7
8
|
const truemark_1 = require("../../truemark");
|
|
@@ -30,6 +31,7 @@ class StandardQueue extends aws_cdk_1.ExtendedConstruct {
|
|
|
30
31
|
receiveMessageWaitTime: props === null || props === void 0 ? void 0 : props.receiveMessageWaitTime,
|
|
31
32
|
retentionPeriod: (_d = props === null || props === void 0 ? void 0 : props.deadLetterQueueRetentionPeriod) !== null && _d !== void 0 ? _d : aws_cdk_lib_1.Duration.days(14),
|
|
32
33
|
fifo: props === null || props === void 0 ? void 0 : props.fifo,
|
|
34
|
+
enforceSSL: props === null || props === void 0 ? void 0 : props.enforceSSL,
|
|
33
35
|
}),
|
|
34
36
|
maxReceiveCount,
|
|
35
37
|
};
|
|
@@ -87,6 +89,21 @@ class StandardQueue extends aws_cdk_1.ExtendedConstruct {
|
|
|
87
89
|
metricApproximateNumberOfMessagesVisible(props) {
|
|
88
90
|
return this.queue.metricApproximateNumberOfMessagesVisible(props);
|
|
89
91
|
}
|
|
92
|
+
// Built here rather than delegated to this.queue: Queue gained this method
|
|
93
|
+
// after aws-cdk-lib 2.256, the version this library builds against.
|
|
94
|
+
metricApproximateNumberOfMessagesOutstanding(props) {
|
|
95
|
+
var _a;
|
|
96
|
+
return new aws_cloudwatch_1.MathExpression({
|
|
97
|
+
expression: 'visible + notVisible',
|
|
98
|
+
usingMetrics: {
|
|
99
|
+
visible: this.queue.metricApproximateNumberOfMessagesVisible(props),
|
|
100
|
+
notVisible: this.queue.metricApproximateNumberOfMessagesNotVisible(props),
|
|
101
|
+
},
|
|
102
|
+
label: (_a = props === null || props === void 0 ? void 0 : props.label) !== null && _a !== void 0 ? _a : 'Approximate number of messages outstanding',
|
|
103
|
+
color: props === null || props === void 0 ? void 0 : props.color,
|
|
104
|
+
period: props === null || props === void 0 ? void 0 : props.period,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
90
107
|
metricNumberOfEmptyReceives(props) {
|
|
91
108
|
return this.queue.metricNumberOfEmptyReceives(props);
|
|
92
109
|
}
|
|
@@ -109,4 +126,4 @@ class StandardQueue extends aws_cdk_1.ExtendedConstruct {
|
|
|
109
126
|
exports.StandardQueue = StandardQueue;
|
|
110
127
|
StandardQueue.DEFAULT_MAX_RECEIVE_COUNT = 3;
|
|
111
128
|
StandardQueue.DEFAULT_RETENTION_PERIOD = aws_cdk_lib_1.Duration.seconds(1209600);
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLXNxcy9saWIvc3RhbmRhcmQtcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBS3FCO0FBU3JCLGlEQUs2QjtBQUU3QiwyQ0FJdUI7QUFDdkIsNkNBQStDO0FBQy9DLHFEQUErQztBQUUvQyw2RUFBcUU7QUErSHJFLE1BQWEsYUFBYyxTQUFRLDJCQUFpQjtJQWlCbEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsc0JBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksRUFBRSwwQkFBZSxDQUFDO1NBQ3ZFLENBQUMsQ0FBQztRQUVILE1BQU0sZUFBZSxHQUNuQixNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlLG1DQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FDZCxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxVQUFVLG1DQUNqQixDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixNQUFLLFNBQVM7WUFDdkMsQ0FBQyxDQUFDLHlCQUFlLENBQUMsV0FBVztZQUM3QixDQUFDLENBQUMseUJBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLG1CQUFtQixHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxtQkFBbUIsQ0FBQztRQUN2RCxNQUFNLFlBQVksR0FBRyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLG1DQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLE1BQU0sZUFB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LEtBQXFCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBcUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFxQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQXFCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBcUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBN0lILHNDQThJQztBQTdJaUIsdUNBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLHNDQUF3QixHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRHVyYXRpb24sXG4gIHR5cGUgUmVtb3ZhbFBvbGljeSxcbiAgdHlwZSBSZXNvdXJjZUVudmlyb25tZW50LFxuICBTdGFjayxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUge01ldHJpYywgTWV0cmljT3B0aW9uc30gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHR5cGUge1xuICBBZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0LFxuICBHcmFudCxcbiAgSUdyYW50YWJsZSxcbiAgUG9saWN5U3RhdGVtZW50LFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHtcbiAgdHlwZSBEZWFkTGV0dGVyUXVldWUsXG4gIHR5cGUgSVF1ZXVlLFxuICBRdWV1ZUVuY3J5cHRpb24sXG4gIHR5cGUgUXVldWVSZWZlcmVuY2UsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zcXMnO1xuaW1wb3J0IHR5cGUge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBFeHRlbmRlZENvbnN0cnVjdCxcbiAgdHlwZSBFeHRlbmRlZENvbnN0cnVjdFByb3BzLFxuICBTdGFuZGFyZFRhZ3MsXG59IGZyb20gJy4uLy4uL2F3cy1jZGsnO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gJy4uLy4uL3RydWVtYXJrJztcbmltcG9ydCB7RXh0ZW5kZWRRdWV1ZX0gZnJvbSAnLi9leHRlbmRlZC1xdWV1ZSc7XG5pbXBvcnQgdHlwZSB7UXVldWVBbGFybXNPcHRpb25zfSBmcm9tICcuL3F1ZXVlLWFsYXJtcyc7XG5pbXBvcnQge1N0YW5kYXJkRGVhZExldHRlclF1ZXVlfSBmcm9tICcuL3N0YW5kYXJkLWRlYWQtbGV0dGVyLXF1ZXVlJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFN0YW5kYXJkUXVldWVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFF1ZXVlUHJvcHNcbiAgZXh0ZW5kcyBRdWV1ZUFsYXJtc09wdGlvbnMsXG4gICAgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBxdWV1ZS5cbiAgICpcbiAgICogSWYgc3BlY2lmaWVkIGFuZCB0aGlzIGlzIGEgRklGTyBxdWV1ZSwgbXVzdCBlbmQgaW4gdGhlIHN0cmluZyAnLmZpZm8nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogSWYgc3BlY2lmaWVkIGFuZCB0aGlzIGlzIGEgRklGTyBxdWV1ZSwgbXVzdCBlbmQgaW4gdGhlIHN0cmluZyAnLmZpZm8nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJldGVudGlvbiBwZXJpb2QgZm9yIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyB0aGUgbWF4aW11bSB0aW1lIGFsbG93ZWQgd2hpY2ggaXMgMTQgZGF5cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZVJldGVudGlvblBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBpbiBzZWNvbmRzIHRoYXQgdGhlIGRlbGl2ZXJ5IG9mIGFsbCBtZXNzYWdlcyBpbiB0aGUgcXVldWUgaXMgZGVsYXllZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlbGl2ZXJ5RGVsYXk/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIEFtYXpvbiBTUVMgcmV0YWlucyBhIG1lc3NhZ2UuIFZhbHVlIG11c3QgYmUgYmV0d2VlblxuICAgKiA2MCBhbmQgMTIwOTYwMCBzZWNvbmRzICgxNCBkYXlzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygxMjA5NjAwKVxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBhIGNvbnN1bWVyIGhhcyB0byBoYW5kbGUgdGhlIG1lc3NhZ2UgYW5kIGRlbGV0ZSBpdFxuICAgKiBmcm9tIHRoZSBxdWV1ZSBiZWZvcmUgaXQgYmVjb21lcyB2aXNpYmxlIGFnYWluIGZvciBhbm90aGVyIGNvbnN1bWVyLiBWYWx1ZVxuICAgKiBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNDMyMDAgc2Vjb25kcyAoMTIgaG91cnMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwKVxuICAgKi9cbiAgcmVhZG9ubHkgdmlzaWJpbGl0eVRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGVuY3J5cHRpb24gbWV0aG9kIHRvIHVzZSBmb3IgdGhlIHF1ZXVlLiBEZWZhdWx0IGlzIFF1ZXVlRW5jcnlwdGlvbi5LTVNfTUFOQUdFRFxuICAgKiB1bmxlc3MgYSBtYXN0ZXIga2V5IGlzIHByb3ZpZGVkLCB0aGlzIHdpbGwgdXNlIHRoZSBBV1MgbWFuYWdlZCBrZXkgZm9yIFNRUy5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBRdWV1ZUVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi4gSWYgbm90IHNldCwgdGhlIEFXUyBtYXN0ZXIga2V5IGZvciBTUVNcbiAgICogd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbk1hc3RlcktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhhdCBBbWF6b24gU1FTIHJldXNlcyBhIGRhdGEga2V5IGJlZm9yZSBjYWxsaW5nIEtNUyBhZ2Fpbi5cbiAgICogVGhpcyB2YWx1ZSBhZmZlY3RzIHByaWNpbmcgYXMgeW91IGFyZSBjaGFyZ2VkIGZvciBLTVMgdXNhZ2UuIFZhbHVlIG11c3QgYmVcbiAgICogYmV0d2VlbiA2MCBhbmQgODYsNDAwIHNlY29uZHMgKDI0IGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFLZXlSZXVzZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYSBtZXNzYWdlIGNhbiBiZSB1bnN1Y2Nlc3NmdWwgYmVmb3JlIGJlaW5nIG1vdmVkXG4gICAqIHRvIHRoZSBkZWFkLWxldHRlciBxdWV1ZS4gU2V0IHRoaXMgdmFsdWUgdG8gLTEgdG8gZGlzYWJsZSB0aGUgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IG1heFJlY2VpdmVDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBpZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBTUVMgUXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiRGVmYXVsdFwiXG4gICAqL1xuICByZWFkb25seSBxdWV1ZUlkZW50aWZpZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgaW50ZXJuYWwgaWRlbnRpZmllciB1c2VkIGZvciB0aGUgZGVhZCBsZXR0ZXIgU1FTIFF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkRscVwiXG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWVJZGVudGlmaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIHN1cHByZXNzIHRoZSBjcmVhdGlvbiBvZiBkZWZhdWx0IHRhZ3Mgb24gcmVzb3VyY2VzXG4gICAqIGNyZWF0ZWQgYnkgdGhpcyBjb25zdHJ1Y3QuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1RhZ2dpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBxdWV1ZSBhcyBhIGZpZm8gcXVldWUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmaWZvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVmYXVsdCB3YWl0IHRpbWUgZm9yIFJlY2VpdmVNZXNzYWdlIGNhbGxzLlxuICAgKlxuICAgKiBEb2VzIG5vdCB3YWl0IGlmIHNldCB0byAwLCBvdGhlcndpc2Ugd2FpdHMgdGhpcyBhbW91bnQgb2Ygc2Vjb25kc1xuICAgKiBieSBkZWZhdWx0IGZvciBtZXNzYWdlcyB0byBhcnJpdmUuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgQW1hem9uIFNRUyBMb25nIFBvbGwuXG4gICAqXG4gICAqICBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDIwKVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT86IER1cmF0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRRdWV1ZSBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IGltcGxlbWVudHMgSVF1ZXVlIHtcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTUFYX1JFQ0VJVkVfQ09VTlQgPSAzO1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9SRVRFTlRJT05fUEVSSU9EID0gRHVyYXRpb24uc2Vjb25kcygxMjA5NjAwKTtcblxuICByZWFkb25seSBxdWV1ZTogRXh0ZW5kZWRRdWV1ZTtcblxuICAvLyBGcm9tIElRdWV1ZVxuICByZWFkb25seSBxdWV1ZUFybjogc3RyaW5nO1xuICByZWFkb25seSBxdWV1ZVVybDogc3RyaW5nO1xuICByZWFkb25seSBxdWV1ZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVSZWY6IFF1ZXVlUmVmZXJlbmNlO1xuICByZWFkb25seSBlbmNyeXB0aW9uOiBRdWV1ZUVuY3J5cHRpb24gfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGVuY3J5cHRpb25NYXN0ZXJLZXk/OiBrbXMuSUtleSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrO1xuICByZWFkb25seSBlbnY6IFJlc291cmNlRW52aXJvbm1lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBTdGFuZGFyZFF1ZXVlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHN0YW5kYXJkVGFnczogU3RhbmRhcmRUYWdzLm1lcmdlKHByb3BzPy5zdGFuZGFyZFRhZ3MsIExpYlN0YW5kYXJkVGFncyksXG4gICAgfSk7XG5cbiAgICBjb25zdCBtYXhSZWNlaXZlQ291bnQgPVxuICAgICAgcHJvcHM/Lm1heFJlY2VpdmVDb3VudCA/PyBTdGFuZGFyZFF1ZXVlLkRFRkFVTFRfTUFYX1JFQ0VJVkVfQ09VTlQ7XG4gICAgY29uc3QgZW5jcnlwdGlvbiA9XG4gICAgICBwcm9wcz8uZW5jcnlwdGlvbiA/P1xuICAgICAgKHByb3BzPy5lbmNyeXB0aW9uTWFzdGVyS2V5ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRURcbiAgICAgICAgOiBRdWV1ZUVuY3J5cHRpb24uS01TKTtcbiAgICBjb25zdCBlbmNyeXB0aW9uTWFzdGVyS2V5ID0gcHJvcHM/LmVuY3J5cHRpb25NYXN0ZXJLZXk7XG4gICAgY29uc3QgZGF0YUtleVJldXNlID0gcHJvcHM/LmRhdGFLZXlSZXVzZSA/PyBEdXJhdGlvbi5taW51dGVzKDE1KTtcblxuICAgIGNvbnN0IGRlYWRMZXR0ZXJRdWV1ZTogRGVhZExldHRlclF1ZXVlIHwgdW5kZWZpbmVkID1cbiAgICAgIG1heFJlY2VpdmVDb3VudCA8PSAwXG4gICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgIDoge1xuICAgICAgICAgICAgcXVldWU6IG5ldyBTdGFuZGFyZERlYWRMZXR0ZXJRdWV1ZSh0aGlzLCAnRGxxJywge1xuICAgICAgICAgICAgICBxdWV1ZU5hbWU6IHByb3BzPy5kZWFkTGV0dGVyUXVldWVOYW1lLFxuICAgICAgICAgICAgICBlbmNyeXB0aW9uLFxuICAgICAgICAgICAgICBlbmNyeXB0aW9uTWFzdGVyS2V5LFxuICAgICAgICAgICAgICBkYXRhS2V5UmV1c2UsXG4gICAgICAgICAgICAgIHJlY2VpdmVNZXNzYWdlV2FpdFRpbWU6IHByb3BzPy5yZWNlaXZlTWVzc2FnZVdhaXRUaW1lLFxuICAgICAgICAgICAgICByZXRlbnRpb25QZXJpb2Q6XG4gICAgICAgICAgICAgICAgcHJvcHM/LmRlYWRMZXR0ZXJRdWV1ZVJldGVudGlvblBlcmlvZCA/PyBEdXJhdGlvbi5kYXlzKDE0KSxcbiAgICAgICAgICAgICAgZmlmbzogcHJvcHM/LmZpZm8sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1heFJlY2VpdmVDb3VudCxcbiAgICAgICAgICB9O1xuXG4gICAgdGhpcy5xdWV1ZSA9IG5ldyBFeHRlbmRlZFF1ZXVlKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZWFkTGV0dGVyUXVldWUsXG4gICAgICBlbmNyeXB0aW9uLFxuICAgICAgZW5jcnlwdGlvbk1hc3RlcktleSxcbiAgICAgIGRhdGFLZXlSZXVzZSxcbiAgICAgIGZpZm86IHByb3BzPy5maWZvLFxuICAgICAgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZTpcbiAgICAgICAgcHJvcHM/LnJlY2VpdmVNZXNzYWdlV2FpdFRpbWUgPz8gRHVyYXRpb24uc2Vjb25kcygyMCksXG4gICAgICBhbGFybUZyaWVuZGx5TmFtZTogcHJvcHM/LmFsYXJtRnJpZW5kbHlOYW1lID8/IGlkLFxuICAgICAgcmV0ZW50aW9uUGVyaW9kOlxuICAgICAgICBwcm9wcz8ucmV0ZW50aW9uUGVyaW9kID8/IFN0YW5kYXJkUXVldWUuREVGQVVMVF9SRVRFTlRJT05fUEVSSU9ELFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IHByb3BzPy52aXNpYmlsaXR5VGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGFsYXJtTmFtZVByZWZpeDpcbiAgICAgICAgcHJvcHM/LmFsYXJtTmFtZVByZWZpeCA/PyBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LSR7aWR9YCxcbiAgICB9KTtcblxuICAgIHRoaXMucXVldWVBcm4gPSB0aGlzLnF1ZXVlLnF1ZXVlQXJuO1xuICAgIHRoaXMucXVldWVVcmwgPSB0aGlzLnF1ZXVlLnF1ZXVlVXJsO1xuICAgIHRoaXMucXVldWVOYW1lID0gdGhpcy5xdWV1ZS5xdWV1ZU5hbWU7XG4gICAgdGhpcy5xdWV1ZVJlZiA9IHRoaXMucXVldWUucXVldWVSZWY7XG4gICAgdGhpcy5lbmNyeXB0aW9uID0gdGhpcy5xdWV1ZS5lbmNyeXB0aW9uVHlwZTtcbiAgICB0aGlzLmVuY3J5cHRpb25NYXN0ZXJLZXkgPSB0aGlzLnF1ZXVlLmVuY3J5cHRpb25NYXN0ZXJLZXk7XG4gICAgdGhpcy5maWZvID0gdGhpcy5xdWV1ZS5maWZvO1xuICAgIHRoaXMuc3RhY2sgPSB0aGlzLnF1ZXVlLnN0YWNrO1xuICAgIHRoaXMuZW52ID0gdGhpcy5xdWV1ZS5lbnY7XG4gIH1cblxuICAvLyBGcm9tIElRdWV1ZVxuXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiBBZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICBncmFudENvbnN1bWVNZXNzYWdlcyhncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50Q29uc3VtZU1lc3NhZ2VzKGdyYW50ZWUpO1xuICB9XG5cbiAgZ3JhbnRTZW5kTWVzc2FnZXMoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhncmFudGVlKTtcbiAgfVxuXG4gIGdyYW50UHVyZ2UoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5ncmFudFB1cmdlKGdyYW50ZWUpO1xuICB9XG5cbiAgZ3JhbnQoZ3JhbnRlZTogSUdyYW50YWJsZSwgLi4ucXVldWVBY3Rpb25zOiBzdHJpbmdbXSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5ncmFudChncmFudGVlLCAuLi5xdWV1ZUFjdGlvbnMpO1xuICB9XG5cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWMobWV0cmljTmFtZSwgcHJvcHMpO1xuICB9XG5cbiAgbWV0cmljQXBwcm94aW1hdGVBZ2VPZk9sZGVzdE1lc3NhZ2UocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZUFnZU9mT2xkZXN0TWVzc2FnZShwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNEZWxheWVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzRGVsYXllZChwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzTm90VmlzaWJsZShwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzVmlzaWJsZShwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNOdW1iZXJPZkVtcHR5UmVjZWl2ZXMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNOdW1iZXJPZkVtcHR5UmVjZWl2ZXMocHJvcHMpO1xuICB9XG5cbiAgbWV0cmljTnVtYmVyT2ZNZXNzYWdlc0RlbGV0ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRGVsZXRlZChwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzUmVjZWl2ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNOdW1iZXJPZk1lc3NhZ2VzUmVjZWl2ZWQocHJvcHMpO1xuICB9XG5cbiAgbWV0cmljTnVtYmVyT2ZNZXNzYWdlc1NlbnQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNOdW1iZXJPZk1lc3NhZ2VzU2VudChwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNTZW50TWVzc2FnZVNpemUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNTZW50TWVzc2FnZVNpemUocHJvcHMpO1xuICB9XG5cbiAgYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeTogUmVtb3ZhbFBvbGljeSk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3kpO1xuICB9XG59XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLXNxcy9saWIvc3RhbmRhcmQtcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBS3FCO0FBQ3JCLCtEQUlvQztBQVFwQyxpREFLNkI7QUFFN0IsMkNBSXVCO0FBQ3ZCLDZDQUErQztBQUMvQyxxREFBK0M7QUFFL0MsNkVBQXFFO0FBc0lyRSxNQUFhLGFBQWMsU0FBUSwyQkFBaUI7SUFpQmxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7O1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLHNCQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLEVBQUUsMEJBQWUsQ0FBQztTQUN2RSxDQUFDLENBQUM7UUFFSCxNQUFNLGVBQWUsR0FDbkIsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZUFBZSxtQ0FBSSxhQUFhLENBQUMseUJBQXlCLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQ2QsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSxtQ0FDakIsQ0FBQyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxtQkFBbUIsTUFBSyxTQUFTO1lBQ3ZDLENBQUMsQ0FBQyx5QkFBZSxDQUFDLFdBQVc7WUFDN0IsQ0FBQyxDQUFDLHlCQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsbUJBQW1CLENBQUM7UUFDdkQsTUFBTSxZQUFZLEdBQUcsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxtQ0FBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztR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LEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQWhLSCxzQ0FpS0M7QUFoS2lCLHVDQUF5QixHQUFHLENBQUMsQ0FBQztBQUM5QixzQ0FBd0IsR0FBRyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIER1cmF0aW9uLFxuICB0eXBlIFJlbW92YWxQb2xpY3ksXG4gIHR5cGUgUmVzb3VyY2VFbnZpcm9ubWVudCxcbiAgU3RhY2ssXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIE1hdGhFeHByZXNzaW9uLFxuICB0eXBlIE1ldHJpYyxcbiAgdHlwZSBNZXRyaWNPcHRpb25zLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQsXG4gIEdyYW50LFxuICBJR3JhbnRhYmxlLFxuICBQb2xpY3lTdGF0ZW1lbnQsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQge1xuICB0eXBlIERlYWRMZXR0ZXJRdWV1ZSxcbiAgdHlwZSBJUXVldWUsXG4gIFF1ZXVlRW5jcnlwdGlvbixcbiAgdHlwZSBRdWV1ZVJlZmVyZW5jZSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIEV4dGVuZGVkQ29uc3RydWN0LFxuICB0eXBlIEV4dGVuZGVkQ29uc3RydWN0UHJvcHMsXG4gIFN0YW5kYXJkVGFncyxcbn0gZnJvbSAnLi4vLi4vYXdzLWNkayc7XG5pbXBvcnQge0xpYlN0YW5kYXJkVGFnc30gZnJvbSAnLi4vLi4vdHJ1ZW1hcmsnO1xuaW1wb3J0IHtFeHRlbmRlZFF1ZXVlfSBmcm9tICcuL2V4dGVuZGVkLXF1ZXVlJztcbmltcG9ydCB0eXBlIHtRdWV1ZUFsYXJtc09wdGlvbnN9IGZyb20gJy4vcXVldWUtYWxhcm1zJztcbmltcG9ydCB7U3RhbmRhcmREZWFkTGV0dGVyUXVldWV9IGZyb20gJy4vc3RhbmRhcmQtZGVhZC1sZXR0ZXItcXVldWUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgU3RhbmRhcmRRdWV1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkUXVldWVQcm9wc1xuICBleHRlbmRzIFF1ZXVlQWxhcm1zT3B0aW9ucyxcbiAgICBFeHRlbmRlZENvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIHF1ZXVlLlxuICAgKlxuICAgKiBJZiBzcGVjaWZpZWQgYW5kIHRoaXMgaXMgYSBGSUZPIHF1ZXVlLCBtdXN0IGVuZCBpbiB0aGUgc3RyaW5nICcuZmlmbycuXG4gICAqXG4gICAqIEBkZWZhdWx0IENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBxdWV1ZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIGRlYWQgbGV0dGVyIHF1ZXVlLlxuICAgKlxuICAgKiBJZiBzcGVjaWZpZWQgYW5kIHRoaXMgaXMgYSBGSUZPIHF1ZXVlLCBtdXN0IGVuZCBpbiB0aGUgc3RyaW5nICcuZmlmbycuXG4gICAqXG4gICAqIEBkZWZhdWx0IENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgdGhlIGRlYWQgbGV0dGVyIHF1ZXVlLlxuICAgKlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIHRoZSBtYXhpbXVtIHRpbWUgYWxsb3dlZCB3aGljaCBpcyAxNCBkYXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlUmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGluIHNlY29uZHMgdGhhdCB0aGUgZGVsaXZlcnkgb2YgYWxsIG1lc3NhZ2VzIGluIHRoZSBxdWV1ZSBpcyBkZWxheWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVsaXZlcnlEZWxheT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgQW1hem9uIFNRUyByZXRhaW5zIGEgbWVzc2FnZS4gVmFsdWUgbXVzdCBiZSBiZXR3ZWVuXG4gICAqIDYwIGFuZCAxMjA5NjAwIHNlY29uZHMgKDE0IGRheXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDEyMDk2MDApXG4gICAqXG4gICAqL1xuICByZWFkb25seSByZXRlbnRpb25QZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIGEgY29uc3VtZXIgaGFzIHRvIGhhbmRsZSB0aGUgbWVzc2FnZSBhbmQgZGVsZXRlIGl0XG4gICAqIGZyb20gdGhlIHF1ZXVlIGJlZm9yZSBpdCBiZWNvbWVzIHZpc2libGUgYWdhaW4gZm9yIGFub3RoZXIgY29uc3VtZXIuIFZhbHVlXG4gICAqIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA0MzIwMCBzZWNvbmRzICgxMiBob3VycykuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMzApXG4gICAqL1xuICByZWFkb25seSB2aXNpYmlsaXR5VGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZW5jcnlwdGlvbiBtZXRob2QgdG8gdXNlIGZvciB0aGUgcXVldWUuIERlZmF1bHQgaXMgUXVldWVFbmNyeXB0aW9uLktNU19NQU5BR0VEXG4gICAqIHVubGVzcyBhIG1hc3RlciBrZXkgaXMgcHJvdmlkZWQsIHRoaXMgd2lsbCB1c2UgdGhlIEFXUyBtYW5hZ2VkIGtleSBmb3IgU1FTLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbj86IFF1ZXVlRW5jcnlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBJZiBub3Qgc2V0LCB0aGUgQVdTIG1hc3RlciBrZXkgZm9yIFNRU1xuICAgKiB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uTWFzdGVyS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFRoZSBsZW5ndGggb2YgdGltZSB0aGF0IEFtYXpvbiBTUVMgcmV1c2VzIGEgZGF0YSBrZXkgYmVmb3JlIGNhbGxpbmcgS01TIGFnYWluLlxuICAgKiBUaGlzIHZhbHVlIGFmZmVjdHMgcHJpY2luZyBhcyB5b3UgYXJlIGNoYXJnZWQgZm9yIEtNUyB1c2FnZS4gVmFsdWUgbXVzdCBiZVxuICAgKiBiZXR3ZWVuIDYwIGFuZCA4Niw0MDAgc2Vjb25kcyAoMjQgaG91cnMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YUtleVJldXNlPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyBhIG1lc3NhZ2UgY2FuIGJlIHVuc3VjY2Vzc2Z1bCBiZWZvcmUgYmVpbmcgbW92ZWRcbiAgICogdG8gdGhlIGRlYWQtbGV0dGVyIHF1ZXVlLiBTZXQgdGhpcyB2YWx1ZSB0byAtMSB0byBkaXNhYmxlIHRoZSBkZWFkLWxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmVjZWl2ZUNvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGludGVybmFsIGlkZW50aWZpZXIgdXNlZCBmb3IgdGhlIFNRUyBRdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJEZWZhdWx0XCJcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlSWRlbnRpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBpZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBkZWFkIGxldHRlciBTUVMgUXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiRGxxXCJcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZUlkZW50aWZpZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgdGFncyBvbiByZXNvdXJjZXNcbiAgICogY3JlYXRlZCBieSB0aGlzIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN1cHByZXNzVGFnZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHF1ZXVlIGFzIGEgZmlmbyBxdWV1ZS4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZpZm8/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHdhaXQgdGltZSBmb3IgUmVjZWl2ZU1lc3NhZ2UgY2FsbHMuXG4gICAqXG4gICAqIERvZXMgbm90IHdhaXQgaWYgc2V0IHRvIDAsIG90aGVyd2lzZSB3YWl0cyB0aGlzIGFtb3VudCBvZiBzZWNvbmRzXG4gICAqIGJ5IGRlZmF1bHQgZm9yIG1lc3NhZ2VzIHRvIGFycml2ZS5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBBbWF6b24gU1FTIExvbmcgUG9sbC5cbiAgICpcbiAgICogIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMjApXG4gICAqL1xuICByZWFkb25seSByZWNlaXZlTWVzc2FnZVdhaXRUaW1lPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQgb24gdGhlIHF1ZXVlIGFuZCBpdHMgZGVhZCBsZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm90IGVuZm9yY2VkIG9uIHRoZSBxdWV1ZTsgZW5mb3JjZWQgb24gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlU1NMPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUXVldWUgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCBpbXBsZW1lbnRzIElRdWV1ZSB7XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX01BWF9SRUNFSVZFX0NPVU5UID0gMztcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUkVURU5USU9OX1BFUklPRCA9IER1cmF0aW9uLnNlY29uZHMoMTIwOTYwMCk7XG5cbiAgcmVhZG9ubHkgcXVldWU6IEV4dGVuZGVkUXVldWU7XG5cbiAgLy8gRnJvbSBJUXVldWVcbiAgcmVhZG9ubHkgcXVldWVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1ZXVlUmVmOiBRdWV1ZVJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbjogUXVldWVFbmNyeXB0aW9uIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBlbmNyeXB0aW9uTWFzdGVyS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGZpZm86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHN0YWNrOiBTdGFjaztcbiAgcmVhZG9ubHkgZW52OiBSZXNvdXJjZUVudmlyb25tZW50O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhbmRhcmRRdWV1ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncy5tZXJnZShwcm9wcz8uc3RhbmRhcmRUYWdzLCBMaWJTdGFuZGFyZFRhZ3MpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWF4UmVjZWl2ZUNvdW50ID1cbiAgICAgIHByb3BzPy5tYXhSZWNlaXZlQ291bnQgPz8gU3RhbmRhcmRRdWV1ZS5ERUZBVUxUX01BWF9SRUNFSVZFX0NPVU5UO1xuICAgIGNvbnN0IGVuY3J5cHRpb24gPVxuICAgICAgcHJvcHM/LmVuY3J5cHRpb24gPz9cbiAgICAgIChwcm9wcz8uZW5jcnlwdGlvbk1hc3RlcktleSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gUXVldWVFbmNyeXB0aW9uLktNU19NQU5BR0VEXG4gICAgICAgIDogUXVldWVFbmNyeXB0aW9uLktNUyk7XG4gICAgY29uc3QgZW5jcnlwdGlvbk1hc3RlcktleSA9IHByb3BzPy5lbmNyeXB0aW9uTWFzdGVyS2V5O1xuICAgIGNvbnN0IGRhdGFLZXlSZXVzZSA9IHByb3BzPy5kYXRhS2V5UmV1c2UgPz8gRHVyYXRpb24ubWludXRlcygxNSk7XG5cbiAgICBjb25zdCBkZWFkTGV0dGVyUXVldWU6IERlYWRMZXR0ZXJRdWV1ZSB8IHVuZGVmaW5lZCA9XG4gICAgICBtYXhSZWNlaXZlQ291bnQgPD0gMFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHF1ZXVlOiBuZXcgU3RhbmRhcmREZWFkTGV0dGVyUXVldWUodGhpcywgJ0RscScsIHtcbiAgICAgICAgICAgICAgcXVldWVOYW1lOiBwcm9wcz8uZGVhZExldHRlclF1ZXVlTmFtZSxcbiAgICAgICAgICAgICAgZW5jcnlwdGlvbixcbiAgICAgICAgICAgICAgZW5jcnlwdGlvbk1hc3RlcktleSxcbiAgICAgICAgICAgICAgZGF0YUtleVJldXNlLFxuICAgICAgICAgICAgICByZWNlaXZlTWVzc2FnZVdhaXRUaW1lOiBwcm9wcz8ucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZSxcbiAgICAgICAgICAgICAgcmV0ZW50aW9uUGVyaW9kOlxuICAgICAgICAgICAgICAgIHByb3BzPy5kZWFkTGV0dGVyUXVldWVSZXRlbnRpb25QZXJpb2QgPz8gRHVyYXRpb24uZGF5cygxNCksXG4gICAgICAgICAgICAgIGZpZm86IHByb3BzPy5maWZvLFxuICAgICAgICAgICAgICBlbmZvcmNlU1NMOiBwcm9wcz8uZW5mb3JjZVNTTCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICAgIH07XG5cbiAgICB0aGlzLnF1ZXVlID0gbmV3IEV4dGVuZGVkUXVldWUodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlYWRMZXR0ZXJRdWV1ZSxcbiAgICAgIGVuY3J5cHRpb24sXG4gICAgICBlbmNyeXB0aW9uTWFzdGVyS2V5LFxuICAgICAgZGF0YUtleVJldXNlLFxuICAgICAgZmlmbzogcHJvcHM/LmZpZm8sXG4gICAgICByZWNlaXZlTWVzc2FnZVdhaXRUaW1lOlxuICAgICAgICBwcm9wcz8ucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZSA/PyBEdXJhdGlvbi5zZWNvbmRzKDIwKSxcbiAgICAgIGFsYXJtRnJpZW5kbHlOYW1lOiBwcm9wcz8uYWxhcm1GcmllbmRseU5hbWUgPz8gaWQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6XG4gICAgICAgIHByb3BzPy5yZXRlbnRpb25QZXJpb2QgPz8gU3RhbmRhcmRRdWV1ZS5ERUZBVUxUX1JFVEVOVElPTl9QRVJJT0QsXG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogcHJvcHM/LnZpc2liaWxpdHlUaW1lb3V0ID8/IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgICAgYWxhcm1OYW1lUHJlZml4OlxuICAgICAgICBwcm9wcz8uYWxhcm1OYW1lUHJlZml4ID8/IGAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tJHtpZH1gLFxuICAgIH0pO1xuXG4gICAgdGhpcy5xdWV1ZUFybiA9IHRoaXMucXVldWUucXVldWVBcm47XG4gICAgdGhpcy5xdWV1ZVVybCA9IHRoaXMucXVldWUucXVldWVVcmw7XG4gICAgdGhpcy5xdWV1ZU5hbWUgPSB0aGlzLnF1ZXVlLnF1ZXVlTmFtZTtcbiAgICB0aGlzLnF1ZXVlUmVmID0gdGhpcy5xdWV1ZS5xdWV1ZVJlZjtcbiAgICB0aGlzLmVuY3J5cHRpb24gPSB0aGlzLnF1ZXVlLmVuY3J5cHRpb25UeXBlO1xuICAgIHRoaXMuZW5jcnlwdGlvbk1hc3RlcktleSA9IHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleTtcbiAgICB0aGlzLmZpZm8gPSB0aGlzLnF1ZXVlLmZpZm87XG4gICAgdGhpcy5zdGFjayA9IHRoaXMucXVldWUuc3RhY2s7XG4gICAgdGhpcy5lbnYgPSB0aGlzLnF1ZXVlLmVudjtcbiAgfVxuXG4gIC8vIEZyb20gSVF1ZXVlXG5cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50KTtcbiAgfVxuXG4gIGdyYW50Q29uc3VtZU1lc3NhZ2VzKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMoZ3JhbnRlZSk7XG4gIH1cblxuICBncmFudFNlbmRNZXNzYWdlcyhncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWUpO1xuICB9XG5cbiAgZ3JhbnRQdXJnZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50UHVyZ2UoZ3JhbnRlZSk7XG4gIH1cblxuICBncmFudChncmFudGVlOiBJR3JhbnRhYmxlLCAuLi5xdWV1ZUFjdGlvbnM6IHN0cmluZ1tdKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50KGdyYW50ZWUsIC4uLnF1ZXVlQWN0aW9ucyk7XG4gIH1cblxuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpYyhtZXRyaWNOYW1lLCBwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZUFnZU9mT2xkZXN0TWVzc2FnZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY0FwcHJveGltYXRlQWdlT2ZPbGRlc3RNZXNzYWdlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc0RlbGF5ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNEZWxheWVkKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc05vdFZpc2libGUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc1Zpc2libGUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHByb3BzKTtcbiAgfVxuXG4gIC8vIEJ1aWx0IGhlcmUgcmF0aGVyIHRoYW4gZGVsZWdhdGVkIHRvIHRoaXMucXVldWU6IFF1ZXVlIGdhaW5lZCB0aGlzIG1ldGhvZFxuICAvLyBhZnRlciBhd3MtY2RrLWxpYiAyLjI1NiwgdGhlIHZlcnNpb24gdGhpcyBsaWJyYXJ5IGJ1aWxkcyBhZ2FpbnN0LlxuICBtZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNPdXRzdGFuZGluZyhcbiAgICBwcm9wcz86IE1ldHJpY09wdGlvbnMsXG4gICk6IE1hdGhFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgIGV4cHJlc3Npb246ICd2aXNpYmxlICsgbm90VmlzaWJsZScsXG4gICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgdmlzaWJsZTogdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHByb3BzKSxcbiAgICAgICAgbm90VmlzaWJsZTpcbiAgICAgICAgICB0aGlzLnF1ZXVlLm1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc05vdFZpc2libGUocHJvcHMpLFxuICAgICAgfSxcbiAgICAgIGxhYmVsOiBwcm9wcz8ubGFiZWwgPz8gJ0FwcHJveGltYXRlIG51bWJlciBvZiBtZXNzYWdlcyBvdXRzdGFuZGluZycsXG4gICAgICBjb2xvcjogcHJvcHM/LmNvbG9yLFxuICAgICAgcGVyaW9kOiBwcm9wcz8ucGVyaW9kLFxuICAgIH0pO1xuICB9XG5cbiAgbWV0cmljTnVtYmVyT2ZFbXB0eVJlY2VpdmVzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljTnVtYmVyT2ZFbXB0eVJlY2VpdmVzKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY051bWJlck9mTWVzc2FnZXNEZWxldGVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljTnVtYmVyT2ZNZXNzYWdlc0RlbGV0ZWQocHJvcHMpO1xuICB9XG5cbiAgbWV0cmljTnVtYmVyT2ZNZXNzYWdlc1JlY2VpdmVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljTnVtYmVyT2ZNZXNzYWdlc1JlY2VpdmVkKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY051bWJlck9mTWVzc2FnZXNTZW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljTnVtYmVyT2ZNZXNzYWdlc1NlbnQocHJvcHMpO1xuICB9XG5cbiAgbWV0cmljU2VudE1lc3NhZ2VTaXplKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUubWV0cmljU2VudE1lc3NhZ2VTaXplKHByb3BzKTtcbiAgfVxuXG4gIGFwcGx5UmVtb3ZhbFBvbGljeShwb2xpY3k6IFJlbW92YWxQb2xpY3kpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5hcHBseVJlbW92YWxQb2xpY3kocG9saWN5KTtcbiAgfVxufVxuIl19
|
|
@@ -15,4 +15,6 @@ export interface ParameterReaderProps {
|
|
|
15
15
|
export declare class ParameterReader extends AwsCustomResource {
|
|
16
16
|
constructor(scope: Construct, id: string, props: ParameterReaderProps);
|
|
17
17
|
getStringValue(): string;
|
|
18
|
+
private static parameterArn;
|
|
19
|
+
private static providerLogGroup;
|
|
18
20
|
}
|
|
@@ -4,6 +4,7 @@ exports.ParameterReader = void 0;
|
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
6
6
|
const custom_resources_1 = require("aws-cdk-lib/custom-resources");
|
|
7
|
+
const function_log_options_1 = require("../../aws-lambda/lib/function-log-options");
|
|
7
8
|
/**
|
|
8
9
|
* Custom resource allowing SSM parameter strings to be read across regions.
|
|
9
10
|
*/
|
|
@@ -22,10 +23,11 @@ class ParameterReader extends custom_resources_1.AwsCustomResource {
|
|
|
22
23
|
super(scope, id, {
|
|
23
24
|
installLatestAwsSdk: false,
|
|
24
25
|
onUpdate: call,
|
|
26
|
+
logGroup: ParameterReader.providerLogGroup(scope),
|
|
25
27
|
policy: {
|
|
26
28
|
statements: [
|
|
27
29
|
new aws_iam_1.PolicyStatement({
|
|
28
|
-
resources: [
|
|
30
|
+
resources: [ParameterReader.parameterArn(scope, props)],
|
|
29
31
|
actions: ['ssm:GetParameter'],
|
|
30
32
|
effect: aws_iam_1.Effect.ALLOW,
|
|
31
33
|
}),
|
|
@@ -37,6 +39,35 @@ class ParameterReader extends custom_resources_1.AwsCustomResource {
|
|
|
37
39
|
getStringValue() {
|
|
38
40
|
return this.getResponseField('Parameter.Value').toString();
|
|
39
41
|
}
|
|
42
|
+
static parameterArn(scope, props) {
|
|
43
|
+
// A name with a leading slash drops it in the ARN (parameter/a/b), which
|
|
44
|
+
// cannot be decided for a token, so a token falls back to every parameter
|
|
45
|
+
// in the region.
|
|
46
|
+
const parameterName = props.parameterName;
|
|
47
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(parameterName) &&
|
|
48
|
+
parameterName.startsWith('arn:')) {
|
|
49
|
+
// Selectors choose a value; IAM authorizes the underlying parameter ARN.
|
|
50
|
+
return parameterName.split(':').slice(0, 6).join(':');
|
|
51
|
+
}
|
|
52
|
+
const resourceName = aws_cdk_lib_1.Token.isUnresolved(parameterName)
|
|
53
|
+
? '*'
|
|
54
|
+
: parameterName.replace(/^\//, '').split(':')[0];
|
|
55
|
+
return aws_cdk_lib_1.Stack.of(scope).formatArn({
|
|
56
|
+
service: 'ssm',
|
|
57
|
+
region: props.region,
|
|
58
|
+
resource: 'parameter',
|
|
59
|
+
resourceName,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// Every AwsCustomResource in a stack runs on one singleton provider function
|
|
63
|
+
// that keeps the log group of the first one created, so one group per stack
|
|
64
|
+
// is enough.
|
|
65
|
+
static providerLogGroup(scope) {
|
|
66
|
+
var _a;
|
|
67
|
+
const stack = aws_cdk_lib_1.Stack.of(scope);
|
|
68
|
+
const id = 'ParameterReaderLogGroup';
|
|
69
|
+
return ((_a = stack.node.tryFindChild(id)) !== null && _a !== void 0 ? _a : (0, function_log_options_1.configureLogGroupForCustomResource)(stack, id, {}));
|
|
70
|
+
}
|
|
40
71
|
}
|
|
41
72
|
exports.ParameterReader = ParameterReader;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXJlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mtc3NtL2xpYi9wYXJhbWV0ZXItcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFtRDtBQUNuRCxpREFBNEQ7QUFFNUQsbUVBQWdGO0FBRWhGLG9GQUE2RjtBQVc3Rjs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxvQ0FBaUI7SUFDcEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjs7UUFDbkUsTUFBTSxJQUFJLEdBQWU7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsY0FBYztZQUN0QixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhO2FBQzFCO1lBQ0QsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLGtCQUFrQixFQUFFLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBQztTQUNoRCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDakQsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRTtvQkFDVixJQUFJLHlCQUFlLENBQUM7d0JBQ2xCLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUN2RCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDN0IsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztxQkFDckIsQ0FBQztpQkFDSDthQUNGO1lBQ0QsT0FBTyxFQUFFLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FDekIsS0FBZ0IsRUFDaEIsS0FBMkI7UUFFM0IseUVBQXlFO1FBQ3pFLDBFQUEwRTtRQUMxRSxpQkFBaUI7UUFDakIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUNFLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO1lBQ2xDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQ2hDLENBQUM7WUFDRCx5RUFBeUU7WUFDekUsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDcEQsQ0FBQyxDQUFDLEdBQUc7WUFDTCxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQy9CLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFlBQVk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLDRFQUE0RTtJQUM1RSxhQUFhO0lBQ0wsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWdCOztRQUM5QyxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixNQUFNLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQztRQUNyQyxPQUFPLENBQ0wsTUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQTJCLG1DQUN0RCxJQUFBLHlEQUFrQyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0RUQsMENBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgU3RhY2ssIFRva2VufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge0VmZmVjdCwgUG9saWN5U3RhdGVtZW50fSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHtJTG9nR3JvdXB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7QXdzQ3VzdG9tUmVzb3VyY2UsIHR5cGUgQXdzU2RrQ2FsbH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7Y29uZmlndXJlTG9nR3JvdXBGb3JDdXN0b21SZXNvdXJjZX0gZnJvbSAnLi4vLi4vYXdzLWxhbWJkYS9saWIvZnVuY3Rpb24tbG9nLW9wdGlvbnMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFBhcmFtZXRlclJlYWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlclJlYWRlclByb3BzIHtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZTogc3RyaW5nO1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgdGltZW91dD86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIEN1c3RvbSByZXNvdXJjZSBhbGxvd2luZyBTU00gcGFyYW1ldGVyIHN0cmluZ3MgdG8gYmUgcmVhZCBhY3Jvc3MgcmVnaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclJlYWRlciBleHRlbmRzIEF3c0N1c3RvbVJlc291cmNlIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBhcmFtZXRlclJlYWRlclByb3BzKSB7XG4gICAgY29uc3QgY2FsbDogQXdzU2RrQ2FsbCA9IHtcbiAgICAgIHNlcnZpY2U6ICdTU00nLFxuICAgICAgYWN0aW9uOiAnZ2V0UGFyYW1ldGVyJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgTmFtZTogcHJvcHMucGFyYW1ldGVyTmFtZSxcbiAgICAgIH0sXG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDoge2lkOiBEYXRlLm5vdygpLnRvU3RyaW5nKCl9LFxuICAgIH07XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGluc3RhbGxMYXRlc3RBd3NTZGs6IGZhbHNlLFxuICAgICAgb25VcGRhdGU6IGNhbGwsXG4gICAgICBsb2dHcm91cDogUGFyYW1ldGVyUmVhZGVyLnByb3ZpZGVyTG9nR3JvdXAoc2NvcGUpLFxuICAgICAgcG9saWN5OiB7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIHJlc291cmNlczogW1BhcmFtZXRlclJlYWRlci5wYXJhbWV0ZXJBcm4oc2NvcGUsIHByb3BzKV0sXG4gICAgICAgICAgICBhY3Rpb25zOiBbJ3NzbTpHZXRQYXJhbWV0ZXInXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgPz8gRHVyYXRpb24ubWludXRlcygyKSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFN0cmluZ1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzcG9uc2VGaWVsZCgnUGFyYW1ldGVyLlZhbHVlJykudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHBhcmFtZXRlckFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHByb3BzOiBQYXJhbWV0ZXJSZWFkZXJQcm9wcyxcbiAgKTogc3RyaW5nIHtcbiAgICAvLyBBIG5hbWUgd2l0aCBhIGxlYWRpbmcgc2xhc2ggZHJvcHMgaXQgaW4gdGhlIEFSTiAocGFyYW1ldGVyL2EvYiksIHdoaWNoXG4gICAgLy8gY2Fubm90IGJlIGRlY2lkZWQgZm9yIGEgdG9rZW4sIHNvIGEgdG9rZW4gZmFsbHMgYmFjayB0byBldmVyeSBwYXJhbWV0ZXJcbiAgICAvLyBpbiB0aGUgcmVnaW9uLlxuICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSBwcm9wcy5wYXJhbWV0ZXJOYW1lO1xuICAgIGlmIChcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocGFyYW1ldGVyTmFtZSkgJiZcbiAgICAgIHBhcmFtZXRlck5hbWUuc3RhcnRzV2l0aCgnYXJuOicpXG4gICAgKSB7XG4gICAgICAvLyBTZWxlY3RvcnMgY2hvb3NlIGEgdmFsdWU7IElBTSBhdXRob3JpemVzIHRoZSB1bmRlcmx5aW5nIHBhcmFtZXRlciBBUk4uXG4gICAgICByZXR1cm4gcGFyYW1ldGVyTmFtZS5zcGxpdCgnOicpLnNsaWNlKDAsIDYpLmpvaW4oJzonKTtcbiAgICB9XG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gVG9rZW4uaXNVbnJlc29sdmVkKHBhcmFtZXRlck5hbWUpXG4gICAgICA/ICcqJ1xuICAgICAgOiBwYXJhbWV0ZXJOYW1lLnJlcGxhY2UoL15cXC8vLCAnJykuc3BsaXQoJzonKVswXTtcbiAgICByZXR1cm4gU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnc3NtJyxcbiAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgcmVzb3VyY2U6ICdwYXJhbWV0ZXInLFxuICAgICAgcmVzb3VyY2VOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gRXZlcnkgQXdzQ3VzdG9tUmVzb3VyY2UgaW4gYSBzdGFjayBydW5zIG9uIG9uZSBzaW5nbGV0b24gcHJvdmlkZXIgZnVuY3Rpb25cbiAgLy8gdGhhdCBrZWVwcyB0aGUgbG9nIGdyb3VwIG9mIHRoZSBmaXJzdCBvbmUgY3JlYXRlZCwgc28gb25lIGdyb3VwIHBlciBzdGFja1xuICAvLyBpcyBlbm91Z2guXG4gIHByaXZhdGUgc3RhdGljIHByb3ZpZGVyTG9nR3JvdXAoc2NvcGU6IENvbnN0cnVjdCk6IElMb2dHcm91cCB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG4gICAgY29uc3QgaWQgPSAnUGFyYW1ldGVyUmVhZGVyTG9nR3JvdXAnO1xuICAgIHJldHVybiAoXG4gICAgICAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoaWQpIGFzIElMb2dHcm91cCB8IHVuZGVmaW5lZCkgPz9cbiAgICAgIGNvbmZpZ3VyZUxvZ0dyb3VwRm9yQ3VzdG9tUmVzb3VyY2Uoc3RhY2ssIGlkLCB7fSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type RemovalPolicy } from 'aws-cdk-lib';
|
|
1
2
|
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
2
3
|
import { CfnRuleGroup, CfnWebACL } from 'aws-cdk-lib/aws-wafv2';
|
|
3
|
-
import type { Construct } from 'constructs
|
|
4
|
+
import type { Construct } from 'constructs';
|
|
4
5
|
import { ExtendedConstruct } from '../../aws-cdk/index';
|
|
5
6
|
export type cloudFrontBlockMode = 'count' | 'active';
|
|
6
7
|
/**
|
|
@@ -23,6 +24,13 @@ export interface CloudFrontSecurityBaselineWebAclProps {
|
|
|
23
24
|
* The number of days log events are kept in CloudWatch Logs. Default is 1 year.
|
|
24
25
|
*/
|
|
25
26
|
readonly logRetention?: RetentionDays;
|
|
27
|
+
/**
|
|
28
|
+
* The removal policy of the WAF log group. Its name is fixed, so a retained
|
|
29
|
+
* group must be deleted before the construct can be deployed again.
|
|
30
|
+
*
|
|
31
|
+
* @default RemovalPolicy.RETAIN
|
|
32
|
+
*/
|
|
33
|
+
readonly logRemovalPolicy?: RemovalPolicy;
|
|
26
34
|
/**
|
|
27
35
|
* The country codes to match against.
|
|
28
36
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CloudFrontSecurityBaselineWebAcl = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
4
5
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
5
6
|
const aws_wafv2_1 = require("aws-cdk-lib/aws-wafv2");
|
|
6
7
|
const index_1 = require("../../aws-cdk/index");
|
|
@@ -194,15 +195,27 @@ class CloudFrontSecurityBaselineWebAcl extends index_1.ExtendedConstruct {
|
|
|
194
195
|
],
|
|
195
196
|
});
|
|
196
197
|
this.webAcl.addPropertyOverride('Rules.3.Statement.ManagedRuleGroupStatement.RuleActionOverrides', [{ Name: 'HostingProviderIPList', ActionToUse: { Count: {} } }]);
|
|
198
|
+
const logGroupName = `aws-waf-logs-global-waf-acl-logs-${this.node.addr}`;
|
|
197
199
|
const wafLogGroup = new aws_logs_1.LogGroup(this, 'WafLogGroup', {
|
|
198
|
-
logGroupName
|
|
200
|
+
logGroupName,
|
|
199
201
|
retention: (_j = props === null || props === void 0 ? void 0 : props.logRetention) !== null && _j !== void 0 ? _j : aws_logs_1.RetentionDays.ONE_YEAR,
|
|
202
|
+
removalPolicy: props === null || props === void 0 ? void 0 : props.logRemovalPolicy,
|
|
200
203
|
});
|
|
201
|
-
new aws_wafv2_1.CfnLoggingConfiguration(this, 'LoggingConfig', {
|
|
204
|
+
const loggingConfig = new aws_wafv2_1.CfnLoggingConfiguration(this, 'LoggingConfig', {
|
|
202
205
|
resourceArn: this.webAcl.attrArn,
|
|
203
|
-
|
|
206
|
+
// logGroupArn ends in ':*'; AWS WAF documents the log group ARN without it.
|
|
207
|
+
logDestinationConfigs: [
|
|
208
|
+
aws_cdk_lib_1.Stack.of(this).formatArn({
|
|
209
|
+
service: 'logs',
|
|
210
|
+
resource: 'log-group',
|
|
211
|
+
resourceName: logGroupName,
|
|
212
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
213
|
+
}),
|
|
214
|
+
],
|
|
204
215
|
});
|
|
216
|
+
// The ARN is built from the name, so CloudFormation no longer infers the order.
|
|
217
|
+
loggingConfig.node.addDependency(wafLogGroup);
|
|
205
218
|
}
|
|
206
219
|
}
|
|
207
220
|
exports.CloudFrontSecurityBaselineWebAcl = CloudFrontSecurityBaselineWebAcl;
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtc2VjdXJpdHktYmFzZWxpbmUtd2ViLWFjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mtd2FmdjIvbGliL2Nsb3VkLWZyb250LXNlY3VyaXR5LWJhc2VsaW5lLXdlYi1hY2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZEO0FBQzdELHFEQUkrQjtBQUUvQiwrQ0FBc0Q7QUE4Q3REOztHQUVHO0FBQ0gsTUFBYSxnQ0FBaUMsU0FBUSx5QkFBaUI7SUFHckUsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBNkM7O1FBRTdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHdCQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNuRCxJQUFJLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxtQ0FBSSwyQkFBMkI7WUFDaEQsS0FBSyxFQUFFLFlBQVk7WUFDbkIsUUFBUSxFQUFFLEdBQUc7WUFDYixnQkFBZ0IsRUFBRTtnQkFDaEIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsVUFBVSxFQUFFLGlDQUFpQztnQkFDN0Msc0JBQXNCLEVBQUUsSUFBSTthQUM3QjtZQUNELEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixRQUFRLEVBQUUsQ0FBQztvQkFDWCxNQUFNLEVBQUU7d0JBQ04sQ0FBQyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxnQkFBZ0IsbUNBQUksT0FBTyxDQUFDLEVBQUUsRUFBRTtxQkFDekM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGtCQUFrQixFQUFFOzRCQUNsQixLQUFLLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsbUJBQW1CLG1DQUFJLEdBQUc7NEJBQ3hDLGdCQUFnQixFQUFFLElBQUk7NEJBQ3RCLG1CQUFtQixFQUFFLEdBQUc7NEJBQ3hCLGtCQUFrQixFQUFFO2dDQUNsQixZQUFZLEVBQUU7b0NBQ1osVUFBVSxFQUFFO3dDQUNWOzRDQUNFLGtCQUFrQixFQUFFO2dEQUNsQixZQUFZLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxtQ0FBSSxZQUFZO2dEQUNqRCxZQUFZLEVBQUU7b0RBQ1osT0FBTyxFQUFFLEVBQUU7aURBQ1o7Z0RBQ0Qsb0JBQW9CLEVBQUUsU0FBUztnREFDL0IsbUJBQW1CLEVBQUU7b0RBQ25CO3dEQUNFLFFBQVEsRUFBRSxDQUFDO3dEQUNYLElBQUksRUFBRSxNQUFNO3FEQUNiO2lEQUNGOzZDQUNGO3lDQUNGO3dDQUNEOzRDQUNFLGlCQUFpQixFQUFFO2dEQUNqQixZQUFZLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxtQ0FBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7NkNBQ2xEO3lDQUNGO3FDQUNGO2lDQUNGOzZCQUNGO3lCQUNGO3FCQUNGO29CQUNELGdCQUFnQixFQUFFO3dCQUNoQixzQkFBc0IsRUFBRSxJQUFJO3dCQUM1Qix3QkFBd0IsRUFBRSxJQUFJO3dCQUM5QixVQUFVLEVBQUUsbUJBQW1CO3FCQUNoQztpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixRQUFRLEVBQUUsQ0FBQyxFQUFFLHVEQUF1RDtvQkFDcEUsTUFBTSxFQUFFO3dCQUNOLEtBQUssRUFBRSxFQUFFO3FCQUNWO29CQUNELFNBQVMsRUFBRTt3QkFDVCxrQkFBa0IsRUFBRTs0QkFDbEIsS0FBSyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGtCQUFrQixtQ0FBSSxHQUFHOzRCQUN2QyxnQkFBZ0IsRUFBRSxJQUFJOzRCQUN0QixtQkFBbUIsRUFBRSxHQUFHOzRCQUN4QixrQkFBa0IsRUFBRTtnQ0FDbEIsa0JBQWtCLEVBQUU7b0NBQ2xCLFlBQVksRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLG1DQUFJLFlBQVk7b0NBQ2pELFlBQVksRUFBRTt3Q0FDWixPQUFPLEVBQUUsRUFBRTtxQ0FDWjtvQ0FDRCxtQkFBbUIsRUFBRTt3Q0FDbkI7NENBQ0UsUUFBUSxFQUFFLENBQUM7NENBQ1gsSUFBSSxFQUFFLE1BQU07eUNBQ2I7cUNBQ0Y7b0NBQ0Qsb0JBQW9CLEVBQUUsYUFBYTtpQ0FDcEM7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsZ0JBQWdCLEVBQUU7d0JBQ2hCLHNCQUFzQixFQUFFLElBQUk7d0JBQzVCLHdCQUF3QixFQUFFLElBQUk7d0JBQzlCLFVBQVUsRUFBRSx1QkFBdUI7cUJBQ3BDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUkscUJBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzFDLElBQUksRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxVQUFVLG1DQUFJLHdCQUF3QjtZQUNuRCxhQUFhLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDO1lBQzFCLEtBQUssRUFBRSxZQUFZO1lBQ25CLGdCQUFnQixFQUFFO2dCQUNoQix3QkFBd0IsRUFBRSxJQUFJO2dCQUM5QixVQUFVLEVBQUUsb0JBQW9CO2dCQUNoQyxzQkFBc0IsRUFBRSxJQUFJO2FBQzdCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxrQ0FBa0M7b0JBQ3hDLFFBQVEsRUFBRSxDQUFDO29CQUNYLGNBQWMsRUFBRSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLE1BQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDO29CQUNuRSxTQUFTLEVBQUU7d0JBQ1QseUJBQXlCLEVBQUU7NEJBQ3pCLFVBQVUsRUFBRSxLQUFLOzRCQUNqQixJQUFJLEVBQUUsOEJBQThCO3lCQUNyQztxQkFDRjtvQkFDRCxnQkFBZ0IsRUFBRTt3QkFDaEIsd0JBQXdCLEVBQUUsSUFBSTt3QkFDOUIsVUFBVSxFQUFFLG9DQUFvQzt3QkFDaEQsc0JBQXNCLEVBQUUsSUFBSTtxQkFDN0I7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtvQkFDakMsUUFBUSxFQUFFLENBQUM7b0JBQ1gsY0FBYyxFQUFFLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksTUFBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUM7b0JBQ25FLFNBQVMsRUFBRTt3QkFDVCwyQkFBMkIsRUFBRTs0QkFDM0IsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTzt5QkFDNUI7cUJBQ0Y7b0JBQ0QsZ0JBQWdCLEVBQUU7d0JBQ2hCLHdCQUF3QixFQUFFLElBQUk7d0JBQzlCLFVBQVUsRUFBRSxpQ0FBaUM7d0JBQzdDLHNCQUFzQixFQUFFLElBQUk7cUJBQzdCO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSwwQ0FBMEM7b0JBQ2hELFFBQVEsRUFBRSxDQUFDO29CQUNYLGNBQWMsRUFBRSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLE1BQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDO29CQUNuRSxTQUFTLEVBQUU7d0JBQ1QseUJBQXlCLEVBQUU7NEJBQ3pCLFVBQVUsRUFBRSxLQUFLOzRCQUNqQixJQUFJLEVBQUUsc0NBQXNDO3lCQUM3QztxQkFDRjtvQkFDRCxnQkFBZ0IsRUFBRTt3QkFDaEIsd0JBQXdCLEVBQUUsSUFBSTt3QkFDOUIsVUFBVSxFQUFFLDRDQUE0Qzt3QkFDeEQsc0JBQXNCLEVBQUUsSUFBSTtxQkFDN0I7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLG9DQUFvQztvQkFDMUMsUUFBUSxFQUFFLENBQUM7b0JBQ1gsY0FBYyxFQUFFLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksTUFBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUM7b0JBQ25FLFNBQVMsRUFBRTt3QkFDVCx5QkFBeUIsRUFBRTs0QkFDekIsVUFBVSxFQUFFLEtBQUs7NEJBQ2pCLElBQUksRUFBRSxnQ0FBZ0M7eUJBQ3ZDO3FCQUNGO29CQUNELGdCQUFnQixFQUFFO3dCQUNoQix3QkFBd0IsRUFBRSxJQUFJO3dCQUM5QixVQUFVLEVBQUUsc0NBQXNDO3dCQUNsRCxzQkFBc0IsRUFBRSxJQUFJO3FCQUM3QjtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsMkNBQTJDO29CQUNqRCxRQUFRLEVBQUUsQ0FBQztvQkFDWCxjQUFjLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxNQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQztvQkFDbkUsU0FBUyxFQUFFO3dCQUNULHlCQUF5QixFQUFFOzRCQUN6QixVQUFVLEVBQUUsS0FBSzs0QkFDakIsSUFBSSxFQUFFLHVDQUF1Qzt5QkFDOUM7cUJBQ0Y7b0JBQ0QsZ0JBQWdCLEVBQUU7d0JBQ2hCLHdCQUF3QixFQUFFLElBQUk7d0JBQzlCLFVBQVUsRUFBRSw2Q0FBNkM7d0JBQ3pELHNCQUFzQixFQUFFLElBQUk7cUJBQzdCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUM3QixpRUFBaUUsRUFDakUsQ0FBQyxFQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLEVBQUMsQ0FBQyxDQUM1RCxDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDcEQsWUFBWSxFQUFFLG9DQUFvQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNsRSxTQUFTLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxtQ0FBSSx3QkFBYSxDQUFDLFFBQVE7U0FDekQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtQ0FBdUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ2pELFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDaEMscUJBQXFCLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO1NBQ2pELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpORCw0RUFpTkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ0dyb3VwLCBSZXRlbnRpb25EYXlzfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQge1xuICBDZm5Mb2dnaW5nQ29uZmlndXJhdGlvbixcbiAgQ2ZuUnVsZUdyb3VwLFxuICBDZm5XZWJBQ0wsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy13YWZ2Mic7XG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzL2xpYi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdH0gZnJvbSAnLi4vLi4vYXdzLWNkay9pbmRleCc7XG5cbmV4cG9ydCB0eXBlIGNsb3VkRnJvbnRCbG9ja01vZGUgPSAnY291bnQnIHwgJ2FjdGl2ZSc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQ2xvdWRGcm9udFNlY3VyaXR5QmFzZWxpbmVXZWJBY2wuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udFNlY3VyaXR5QmFzZWxpbmVXZWJBY2xQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbW9kZSBvZiB0aGUgcnVsZSBncm91cC4gVG8gQmxvY2sgb3IgdG8gQ291bnQuIEJ5IGRlZmF1bHQgaXQgaXMgc2V0IHRvIGNvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZT86IGNsb3VkRnJvbnRCbG9ja01vZGU7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd2ViQWNsLlxuICAgKi9cbiAgcmVhZG9ubHkgd2ViQWNsTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBydWxlIGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF5cyBsb2cgZXZlbnRzIGFyZSBrZXB0IGluIENsb3VkV2F0Y2ggTG9ncy4gRGVmYXVsdCBpcyAxIHllYXIuXG4gICAqL1xuICByZWFkb25seSBsb2dSZXRlbnRpb24/OiBSZXRlbnRpb25EYXlzO1xuICAvKipcbiAgICogVGhlIGNvdW50cnkgY29kZXMgdG8gbWF0Y2ggYWdhaW5zdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvdW50cnlDb2Rlczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBzZWFyY2hTdHJpbmc6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGxpbWl0IGZvciBjb3VudHJ5IGJhc2VkIHJhdGUgYmFzZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHVyaUNvdW50cnlSdWxlTGltaXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdGFrZSBvbiB0aGUgVVJJIGNvdW50cnkgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHVyaUNvdW50cnlBY3Rpb24/OiAnY291bnQnIHwgJ2Jsb2NrJztcbiAgLyoqXG4gICAqIFRoZSBsaW1pdCBmb3IgdGhlIHJhdGUgYmFzZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJhdGVCYXNlZFJ1bGVMaW1pdDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBydWxlIGdyb3VwIGFuZCB3ZWIgQUNMIGZvciBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbnMgdG8gdXNlLlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udFNlY3VyaXR5QmFzZWxpbmVXZWJBY2wgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHJ1bGVHcm91cDogQ2ZuUnVsZUdyb3VwO1xuICByZWFkb25seSB3ZWJBY2w6IENmbldlYkFDTDtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzPzogQ2xvdWRGcm9udFNlY3VyaXR5QmFzZWxpbmVXZWJBY2xQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucnVsZUdyb3VwID0gbmV3IENmblJ1bGVHcm91cCh0aGlzLCAnUnVsZUdyb3VwJywge1xuICAgICAgbmFtZTogcHJvcHM/Lm5hbWUgPz8gJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXAnLFxuICAgICAgc2NvcGU6ICdDTE9VREZST05UJyxcbiAgICAgIGNhcGFjaXR5OiA1MDAsXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXBNZXRyaWMnLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVXJpQ291bnRyeUJhc2VkJyxcbiAgICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICAgIFtwcm9wcz8udXJpQ291bnRyeUFjdGlvbiA/PyAnY291bnQnXToge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIHJhdGVCYXNlZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBsaW1pdDogcHJvcHM/LnVyaUNvdW50cnlSdWxlTGltaXQgPz8gMjAwLFxuICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uV2luZG93U2VjOiAzMDAsXG4gICAgICAgICAgICAgIHNjb3BlRG93blN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGFuZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgYnl0ZU1hdGNoU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdHJpbmc6IHByb3BzPy5zZWFyY2hTdHJpbmcgPz8gJy9hcGkvbG9naW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUb01hdGNoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVyaVBhdGg6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uYWxDb25zdHJhaW50OiAnRVhBQ1RMWScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnTk9ORScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGVzOiBwcm9wcz8uY291bnRyeUNvZGVzID8/IFsnQ04nLCAnUlUnXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAndXJpLWNvdW50cnktYmFzZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnTG9naW5SYXRlTGltaXRSdWxlJyxcbiAgICAgICAgICBwcmlvcml0eTogMCwgLy8gRW5zdXJlIHByaW9yaXRpZXMgZG8gbm90IG92ZXJsYXAgd2l0aCBleGlzdGluZyBydWxlc1xuICAgICAgICAgIGFjdGlvbjoge1xuICAgICAgICAgICAgYmxvY2s6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICByYXRlQmFzZWRTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgbGltaXQ6IHByb3BzPy5yYXRlQmFzZWRSdWxlTGltaXQgPz8gMzAwLFxuICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uV2luZG93U2VjOiAzMDAsXG4gICAgICAgICAgICAgIHNjb3BlRG93blN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGJ5dGVNYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgc2VhcmNoU3RyaW5nOiBwcm9wcz8uc2VhcmNoU3RyaW5nID8/ICcvYXBpL2xvZ2luJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkVG9NYXRjaDoge1xuICAgICAgICAgICAgICAgICAgICB1cmlQYXRoOiB7fSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnTk9ORScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25hbENvbnN0cmFpbnQ6ICdTVEFSVFNfV0lUSCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ2xvZ2luLXJhdGUtbGltaXQtcnVsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLndlYkFjbCA9IG5ldyBDZm5XZWJBQ0wodGhpcywgJ1dlYkFjbCcsIHtcbiAgICAgIG5hbWU6IHByb3BzPy53ZWJBY2xOYW1lID8/ICdTZWN1cml0eUJhc2VsaW5lV2ViQUNMJyxcbiAgICAgIGRlZmF1bHRBY3Rpb246IHthbGxvdzoge319LFxuICAgICAgc2NvcGU6ICdDTE9VREZST05UJyxcbiAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICBtZXRyaWNOYW1lOiAnZ2xvYmFsV2ViQWNsTWV0cmljJyxcbiAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyxcbiAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICBvdmVycmlkZUFjdGlvbjogcHJvcHM/Lm1vZGUgPT09ICdhY3RpdmUnID8ge25vbmU6IHt9fSA6IHtjb3VudDoge319LFxuICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgbWFuYWdlZFJ1bGVHcm91cFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJyxcbiAgICAgICAgICAgICAgbmFtZTogJ0FXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0TWV0cmljJyxcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZWN1cml0eUJhc2VsaW5lUnVsZUdyb3VwJyxcbiAgICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgICBvdmVycmlkZUFjdGlvbjogcHJvcHM/Lm1vZGUgPT09ICdhY3RpdmUnID8ge25vbmU6IHt9fSA6IHtjb3VudDoge319LFxuICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgcnVsZUdyb3VwUmVmZXJlbmNlU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIGFybjogdGhpcy5ydWxlR3JvdXAuYXR0ckFybixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnU2VjdXJpdHlCYXNlbGluZVJ1bGVHcm91cE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0tub3duQmFkSW5wdXRzUnVsZVNldCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDIsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXRNZXRyaWMnLFxuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNBbm9ueW1vdXNJcExpc3QnLFxuICAgICAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0TWV0cmljJyxcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy53ZWJBY2wuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgICdSdWxlcy4zLlN0YXRlbWVudC5NYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50LlJ1bGVBY3Rpb25PdmVycmlkZXMnLFxuICAgICAgW3tOYW1lOiAnSG9zdGluZ1Byb3ZpZGVySVBMaXN0JywgQWN0aW9uVG9Vc2U6IHtDb3VudDoge319fV0sXG4gICAgKTtcblxuICAgIGNvbnN0IHdhZkxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdXYWZMb2dHcm91cCcsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogYGF3cy13YWYtbG9ncy1nbG9iYWwtd2FmLWFjbC1sb2dzLSR7dGhpcy5ub2RlLmFkZHJ9YCxcbiAgICAgIHJldGVudGlvbjogcHJvcHM/LmxvZ1JldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLk9ORV9ZRUFSLFxuICAgIH0pO1xuXG4gICAgbmV3IENmbkxvZ2dpbmdDb25maWd1cmF0aW9uKHRoaXMsICdMb2dnaW5nQ29uZmlnJywge1xuICAgICAgcmVzb3VyY2VBcm46IHRoaXMud2ViQWNsLmF0dHJBcm4sXG4gICAgICBsb2dEZXN0aW5hdGlvbkNvbmZpZ3M6IFt3YWZMb2dHcm91cC5sb2dHcm91cEFybl0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtc2VjdXJpdHktYmFzZWxpbmUtd2ViLWFjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mtd2FmdjIvbGliL2Nsb3VkLWZyb250LXNlY3VyaXR5LWJhc2VsaW5lLXdlYi1hY2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlFO0FBQ2pFLG1EQUE2RDtBQUM3RCxxREFJK0I7QUFFL0IsK0NBQXNEO0FBcUR0RDs7R0FFRztBQUNILE1BQWEsZ0NBQWlDLFNBQVEseUJBQWlCO0lBR3JFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTZDOztRQUU3QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSx3QkFBWSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDbkQsSUFBSSxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksbUNBQUksMkJBQTJCO1lBQ2hELEtBQUssRUFBRSxZQUFZO1lBQ25CLFFBQVEsRUFBRSxHQUFHO1lBQ2IsZ0JBQWdCLEVBQUU7Z0JBQ2hCLHdCQUF3QixFQUFFLElBQUk7Z0JBQzlCLFVBQVUsRUFBRSxpQ0FBaUM7Z0JBQzdDLHNCQUFzQixFQUFFLElBQUk7YUFDN0I7WUFDRCxLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxFQUFFO3dCQUNOLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLG1DQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUU7cUJBQ3pDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxrQkFBa0IsRUFBRTs0QkFDbEIsS0FBSyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxH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bUIsQ0FDN0IsaUVBQWlFLEVBQ2pFLENBQUMsRUFBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxFQUFDLENBQUMsQ0FDNUQsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLG9DQUFvQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFFLE1BQU0sV0FBVyxHQUFHLElBQUksbUJBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3BELFlBQVk7WUFDWixTQUFTLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxtQ0FBSSx3QkFBYSxDQUFDLFFBQVE7WUFDeEQsYUFBYSxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxnQkFBZ0I7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQ0FBdUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3ZFLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDaEMsNEVBQTRFO1lBQzVFLHFCQUFxQixFQUFFO2dCQUNyQixtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxNQUFNO29CQUNmLFFBQVEsRUFBRSxXQUFXO29CQUNyQixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsU0FBUyxFQUFFLHVCQUFTLENBQUMsbUJBQW1CO2lCQUN6QyxDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFDSCxnRkFBZ0Y7UUFDaEYsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBN05ELDRFQTZOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJuRm9ybWF0LCB0eXBlIFJlbW92YWxQb2xpY3ksIFN0YWNrfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge0xvZ0dyb3VwLCBSZXRlbnRpb25EYXlzfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQge1xuICBDZm5Mb2dnaW5nQ29uZmlndXJhdGlvbixcbiAgQ2ZuUnVsZUdyb3VwLFxuICBDZm5XZWJBQ0wsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy13YWZ2Mic7XG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7RXh0ZW5kZWRDb25zdHJ1Y3R9IGZyb20gJy4uLy4uL2F3cy1jZGsvaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBjbG91ZEZyb250QmxvY2tNb2RlID0gJ2NvdW50JyB8ICdhY3RpdmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENsb3VkRnJvbnRTZWN1cml0eUJhc2VsaW5lV2ViQWNsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRTZWN1cml0eUJhc2VsaW5lV2ViQWNsUHJvcHMge1xuICAvKipcbiAgICogVGhlIG1vZGUgb2YgdGhlIHJ1bGUgZ3JvdXAuIFRvIEJsb2NrIG9yIHRvIENvdW50LiBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byBjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU/OiBjbG91ZEZyb250QmxvY2tNb2RlO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdlYkFjbC5cbiAgICovXG4gIHJlYWRvbmx5IHdlYkFjbE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVsZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgbG9nIGV2ZW50cyBhcmUga2VwdCBpbiBDbG91ZFdhdGNoIExvZ3MuIERlZmF1bHQgaXMgMSB5ZWFyLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcbiAgLyoqXG4gICAqIFRoZSByZW1vdmFsIHBvbGljeSBvZiB0aGUgV0FGIGxvZyBncm91cC4gSXRzIG5hbWUgaXMgZml4ZWQsIHNvIGEgcmV0YWluZWRcbiAgICogZ3JvdXAgbXVzdCBiZSBkZWxldGVkIGJlZm9yZSB0aGUgY29uc3RydWN0IGNhbiBiZSBkZXBsb3llZCBhZ2Fpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuICAvKipcbiAgICogVGhlIGNvdW50cnkgY29kZXMgdG8gbWF0Y2ggYWdhaW5zdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvdW50cnlDb2Rlczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBzZWFyY2hTdHJpbmc6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGxpbWl0IGZvciBjb3VudHJ5IGJhc2VkIHJhdGUgYmFzZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHVyaUNvdW50cnlSdWxlTGltaXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdGFrZSBvbiB0aGUgVVJJIGNvdW50cnkgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHVyaUNvdW50cnlBY3Rpb24/OiAnY291bnQnIHwgJ2Jsb2NrJztcbiAgLyoqXG4gICAqIFRoZSBsaW1pdCBmb3IgdGhlIHJhdGUgYmFzZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJhdGVCYXNlZFJ1bGVMaW1pdDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBydWxlIGdyb3VwIGFuZCB3ZWIgQUNMIGZvciBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbnMgdG8gdXNlLlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udFNlY3VyaXR5QmFzZWxpbmVXZWJBY2wgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHJ1bGVHcm91cDogQ2ZuUnVsZUdyb3VwO1xuICByZWFkb25seSB3ZWJBY2w6IENmbldlYkFDTDtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzPzogQ2xvdWRGcm9udFNlY3VyaXR5QmFzZWxpbmVXZWJBY2xQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucnVsZUdyb3VwID0gbmV3IENmblJ1bGVHcm91cCh0aGlzLCAnUnVsZUdyb3VwJywge1xuICAgICAgbmFtZTogcHJvcHM/Lm5hbWUgPz8gJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXAnLFxuICAgICAgc2NvcGU6ICdDTE9VREZST05UJyxcbiAgICAgIGNhcGFjaXR5OiA1MDAsXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXBNZXRyaWMnLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVXJpQ291bnRyeUJhc2VkJyxcbiAgICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICAgIFtwcm9wcz8udXJpQ291bnRyeUFjdGlvbiA/PyAnY291bnQnXToge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIHJhdGVCYXNlZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBsaW1pdDogcHJvcHM/LnVyaUNvdW50cnlSdWxlTGltaXQgPz8gMjAwLFxuICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uV2luZG93U2VjOiAzMDAsXG4gICAgICAgICAgICAgIHNjb3BlRG93blN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGFuZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgYnl0ZU1hdGNoU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdHJpbmc6IHByb3BzPy5zZWFyY2hTdHJpbmcgPz8gJy9hcGkvbG9naW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUb01hdGNoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVyaVBhdGg6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uYWxDb25zdHJhaW50OiAnRVhBQ1RMWScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnTk9ORScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGVzOiBwcm9wcz8uY291bnRyeUNvZGVzID8/IFsnQ04nLCAnUlUnXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAndXJpLWNvdW50cnktYmFzZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnTG9naW5SYXRlTGltaXRSdWxlJyxcbiAgICAgICAgICBwcmlvcml0eTogMCwgLy8gRW5zdXJlIHByaW9yaXRpZXMgZG8gbm90IG92ZXJsYXAgd2l0aCBleGlzdGluZyBydWxlc1xuICAgICAgICAgIGFjdGlvbjoge1xuICAgICAgICAgICAgYmxvY2s6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICByYXRlQmFzZWRTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgbGltaXQ6IHByb3BzPy5yYXRlQmFzZWRSdWxlTGltaXQgPz8gMzAwLFxuICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uV2luZG93U2VjOiAzMDAsXG4gICAgICAgICAgICAgIHNjb3BlRG93blN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGJ5dGVNYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgc2VhcmNoU3RyaW5nOiBwcm9wcz8uc2VhcmNoU3RyaW5nID8/ICcvYXBpL2xvZ2luJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkVG9NYXRjaDoge1xuICAgICAgICAgICAgICAgICAgICB1cmlQYXRoOiB7fSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnTk9ORScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25hbENvbnN0cmFpbnQ6ICdTVEFSVFNfV0lUSCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ2xvZ2luLXJhdGUtbGltaXQtcnVsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLndlYkFjbCA9IG5ldyBDZm5XZWJBQ0wodGhpcywgJ1dlYkFjbCcsIHtcbiAgICAgIG5hbWU6IHByb3BzPy53ZWJBY2xOYW1lID8/ICdTZWN1cml0eUJhc2VsaW5lV2ViQUNMJyxcbiAgICAgIGRlZmF1bHRBY3Rpb246IHthbGxvdzoge319LFxuICAgICAgc2NvcGU6ICdDTE9VREZST05UJyxcbiAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICBtZXRyaWNOYW1lOiAnZ2xvYmFsV2ViQWNsTWV0cmljJyxcbiAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyxcbiAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICBvdmVycmlkZUFjdGlvbjogcHJvcHM/Lm1vZGUgPT09ICdhY3RpdmUnID8ge25vbmU6IHt9fSA6IHtjb3VudDoge319LFxuICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgbWFuYWdlZFJ1bGVHcm91cFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJyxcbiAgICAgICAgICAgICAgbmFtZTogJ0FXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0TWV0cmljJyxcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZWN1cml0eUJhc2VsaW5lUnVsZUdyb3VwJyxcbiAgICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgICBvdmVycmlkZUFjdGlvbjogcHJvcHM/Lm1vZGUgPT09ICdhY3RpdmUnID8ge25vbmU6IHt9fSA6IHtjb3VudDoge319LFxuICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgcnVsZUdyb3VwUmVmZXJlbmNlU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIGFybjogdGhpcy5ydWxlR3JvdXAuYXR0ckFybixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnU2VjdXJpdHlCYXNlbGluZVJ1bGVHcm91cE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0tub3duQmFkSW5wdXRzUnVsZVNldCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDIsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXRNZXRyaWMnLFxuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNBbm9ueW1vdXNJcExpc3QnLFxuICAgICAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0TWV0cmljJyxcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy53ZWJBY2wuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgICdSdWxlcy4zLlN0YXRlbWVudC5NYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50LlJ1bGVBY3Rpb25PdmVycmlkZXMnLFxuICAgICAgW3tOYW1lOiAnSG9zdGluZ1Byb3ZpZGVySVBMaXN0JywgQWN0aW9uVG9Vc2U6IHtDb3VudDoge319fV0sXG4gICAgKTtcblxuICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGBhd3Mtd2FmLWxvZ3MtZ2xvYmFsLXdhZi1hY2wtbG9ncy0ke3RoaXMubm9kZS5hZGRyfWA7XG4gICAgY29uc3Qgd2FmTG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ1dhZkxvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgcmV0ZW50aW9uOiBwcm9wcz8ubG9nUmV0ZW50aW9uID8/IFJldGVudGlvbkRheXMuT05FX1lFQVIsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcz8ubG9nUmVtb3ZhbFBvbGljeSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvZ2dpbmdDb25maWcgPSBuZXcgQ2ZuTG9nZ2luZ0NvbmZpZ3VyYXRpb24odGhpcywgJ0xvZ2dpbmdDb25maWcnLCB7XG4gICAgICByZXNvdXJjZUFybjogdGhpcy53ZWJBY2wuYXR0ckFybixcbiAgICAgIC8vIGxvZ0dyb3VwQXJuIGVuZHMgaW4gJzoqJzsgQVdTIFdBRiBkb2N1bWVudHMgdGhlIGxvZyBncm91cCBBUk4gd2l0aG91dCBpdC5cbiAgICAgIGxvZ0Rlc3RpbmF0aW9uQ29uZmlnczogW1xuICAgICAgICBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICByZXNvdXJjZTogJ2xvZy1ncm91cCcsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiBsb2dHcm91cE5hbWUsXG4gICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICAgIC8vIFRoZSBBUk4gaXMgYnVpbHQgZnJvbSB0aGUgbmFtZSwgc28gQ2xvdWRGb3JtYXRpb24gbm8gbG9uZ2VyIGluZmVycyB0aGUgb3JkZXIuXG4gICAgbG9nZ2luZ0NvbmZpZy5ub2RlLmFkZERlcGVuZGVuY3kod2FmTG9nR3JvdXApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type RemovalPolicy } from 'aws-cdk-lib';
|
|
1
2
|
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
2
3
|
import { CfnRuleGroup, CfnWebACL } from 'aws-cdk-lib/aws-wafv2';
|
|
3
|
-
import type { Construct } from 'constructs
|
|
4
|
+
import type { Construct } from 'constructs';
|
|
4
5
|
import { ExtendedConstruct } from '../../aws-cdk/index';
|
|
5
6
|
export type regionalBlockMode = 'count' | 'active';
|
|
6
7
|
export interface RegionalSecurityBaselineWebAclProps {
|
|
@@ -20,6 +21,13 @@ export interface RegionalSecurityBaselineWebAclProps {
|
|
|
20
21
|
* The number of days log events are kept in CloudWatch Logs. Default is 1 year.
|
|
21
22
|
*/
|
|
22
23
|
readonly logRetention?: RetentionDays;
|
|
24
|
+
/**
|
|
25
|
+
* The removal policy of the WAF log group. Its name is fixed, so a retained
|
|
26
|
+
* group must be deleted before the construct can be deployed again.
|
|
27
|
+
*
|
|
28
|
+
* @default RemovalPolicy.RETAIN
|
|
29
|
+
*/
|
|
30
|
+
readonly logRemovalPolicy?: RemovalPolicy;
|
|
23
31
|
/**
|
|
24
32
|
* The country codes to match against.
|
|
25
33
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RegionalSecurityBaselineWebAcl = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
4
5
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
5
6
|
const aws_wafv2_1 = require("aws-cdk-lib/aws-wafv2");
|
|
6
7
|
const index_1 = require("../../aws-cdk/index");
|
|
@@ -200,15 +201,27 @@ class RegionalSecurityBaselineWebAcl extends index_1.ExtendedConstruct {
|
|
|
200
201
|
],
|
|
201
202
|
});
|
|
202
203
|
this.regionalWebAcl.addPropertyOverride('Rules.3.Statement.ManagedRuleGroupStatement.RuleActionOverrides', [{ Name: 'HostingProviderIPList', ActionToUse: { Count: {} } }]);
|
|
204
|
+
const logGroupName = `aws-waf-logs-regional-waf-acl-logs-${this.node.addr}`;
|
|
203
205
|
const wafRegionalLogGroup = new aws_logs_1.LogGroup(this, 'RegionalWafLogGroup', {
|
|
204
|
-
logGroupName
|
|
206
|
+
logGroupName,
|
|
205
207
|
retention: (_j = props === null || props === void 0 ? void 0 : props.logRetention) !== null && _j !== void 0 ? _j : aws_logs_1.RetentionDays.ONE_YEAR,
|
|
208
|
+
removalPolicy: props === null || props === void 0 ? void 0 : props.logRemovalPolicy,
|
|
206
209
|
});
|
|
207
|
-
new aws_wafv2_1.CfnLoggingConfiguration(this, 'RegionalLoggingConfig', {
|
|
210
|
+
const loggingConfig = new aws_wafv2_1.CfnLoggingConfiguration(this, 'RegionalLoggingConfig', {
|
|
208
211
|
resourceArn: this.regionalWebAcl.attrArn,
|
|
209
|
-
|
|
212
|
+
// logGroupArn ends in ':*'; AWS WAF documents the log group ARN without it.
|
|
213
|
+
logDestinationConfigs: [
|
|
214
|
+
aws_cdk_lib_1.Stack.of(this).formatArn({
|
|
215
|
+
service: 'logs',
|
|
216
|
+
resource: 'log-group',
|
|
217
|
+
resourceName: logGroupName,
|
|
218
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
219
|
+
}),
|
|
220
|
+
],
|
|
210
221
|
});
|
|
222
|
+
// The ARN is built from the name, so CloudFormation no longer infers the order.
|
|
223
|
+
loggingConfig.node.addDependency(wafRegionalLogGroup);
|
|
211
224
|
}
|
|
212
225
|
}
|
|
213
226
|
exports.RegionalSecurityBaselineWebAcl = RegionalSecurityBaselineWebAcl;
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uYWwtc2VjdXJpdHktYmFzZWxpbmUtd2ViLWFjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mtd2FmdjIvbGliL3JlZ2lvbmFsLXNlY3VyaXR5LWJhc2VsaW5lLXdlYi1hY2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTZEO0FBQzdELHFEQUkrQjtBQUUvQiwrQ0FBc0Q7QUEyQ3REOzs7O0dBSUc7QUFDSCxNQUFhLDhCQUErQixTQUFRLHlCQUFpQjtJQUduRSxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUEyQzs7UUFFM0MsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx3QkFBWSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUNuRSxJQUFJLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxtQ0FBSSwyQkFBMkI7WUFDaEQsS0FBSyxFQUFFLFVBQVU7WUFDakIsUUFBUSxFQUFFLEdBQUc7WUFDYixnQkFBZ0IsRUFBRTtnQkFDaEIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsVUFBVSxFQUFFLGlDQUFpQztnQkFDN0Msc0JBQXNCLEVBQUUsSUFBSTthQUM3QjtZQUNELEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixRQUFRLEVBQUUsQ0FBQztvQkFDWCxNQUFNLEVBQUU7d0JBQ04sQ0FBQyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxnQkFBZ0IsbUNBQUksT0FBTyxDQUFDLEVBQUUsRUFBRTtxQkFDekM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGtCQUFrQixFQUFFOzRCQUNsQixLQUFLLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsbUJBQW1CLG1DQUFJLEdBQUc7NEJBQ3hDLGdC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cUJBQzdCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUNyQyxpRUFBaUUsRUFDakUsQ0FBQyxFQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLEVBQUMsQ0FBQyxDQUM1RCxDQUFDO1FBRUYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFRLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQ3BFLFlBQVksRUFBRSxzQ0FBc0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDcEUsU0FBUyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksbUNBQUksd0JBQWEsQ0FBQyxRQUFRO1NBQ3pELENBQUMsQ0FBQztRQUVILElBQUksbUNBQXVCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ3pELFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU87WUFDeEMscUJBQXFCLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7U0FDekQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBck5ELHdFQXFOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nR3JvdXAsIFJldGVudGlvbkRheXN9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7XG4gIENmbkxvZ2dpbmdDb25maWd1cmF0aW9uLFxuICBDZm5SdWxlR3JvdXAsXG4gIENmbldlYkFDTCxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXdhZnYyJztcbmltcG9ydCB0eXBlIHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMvbGliL2NvbnN0cnVjdCc7XG5pbXBvcnQge0V4dGVuZGVkQ29uc3RydWN0fSBmcm9tICcuLi8uLi9hd3MtY2RrL2luZGV4JztcblxuZXhwb3J0IHR5cGUgcmVnaW9uYWxCbG9ja01vZGUgPSAnY291bnQnIHwgJ2FjdGl2ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uYWxTZWN1cml0eUJhc2VsaW5lV2ViQWNsUHJvcHMge1xuICAvKipcbiAgICogVGhlIG1vZGUgb2YgdGhlIHJ1bGUgZ3JvdXAuIFRvIEJsb2NrIG9yIHRvIENvdW50LiBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byBjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU/OiByZWdpb25hbEJsb2NrTW9kZTtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3ZWJBY2wuXG4gICAqL1xuICByZWFkb25seSB3ZWJBY2xOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJ1bGUgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIGxvZyBldmVudHMgYXJlIGtlcHQgaW4gQ2xvdWRXYXRjaCBMb2dzLiBEZWZhdWx0IGlzIDEgeWVhci5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IFJldGVudGlvbkRheXM7XG4gIC8qKlxuICAgKiBUaGUgY291bnRyeSBjb2RlcyB0byBtYXRjaCBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgY291bnRyeUNvZGVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBzdHJpbmcgdG8gc2VhcmNoIGZvciBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHJlYWRvbmx5IHNlYXJjaFN0cmluZzogc3RyaW5nO1xuICAvKipcbiAgICogVGhpcyBpcyB0aGUgbGltaXQgZm9yIGNvdW50cnkgYmFzZWQgcmF0ZSBiYXNlZCBydWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJpQ291bnRyeVJ1bGVMaW1pdDogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byB0YWtlIG9uIHRoZSBVUkkgY291bnRyeSBydWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJpQ291bnRyeUFjdGlvbj86ICdjb3VudCcgfCAnYmxvY2snO1xuICAvKipcbiAgICogVGhlIGxpbWl0IGZvciB0aGUgcmF0ZSBiYXNlZCBydWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmF0ZUJhc2VkUnVsZUxpbWl0OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGBSZWdpb25hbFNlY3VyaXR5QmFzZWxpbmVXZWJBY2xgIGNsYXNzIHJlcHJlc2VudHMgYSByZWdpb25hbCBzZWN1cml0eSBiYXNlbGluZSBXZWIgQWNjZXNzIENvbnRyb2wgTGlzdCAoV2ViQUNMKS5cbiAqIFRoaXMgV2ViQUNMIGlzIGRlc2lnbmVkIHRvIHByb3ZpZGUgYSBiYXNlbGluZSBsZXZlbCBvZiBzZWN1cml0eSBmb3IgeW91ciByZWdpb25hbCByZXNvdXJjZXMuXG4gKiBJdCBpbmNsdWRlcyBydWxlcyBmb3IgYmxvY2tpbmcgb3IgY291bnRpbmcgcmVxdWVzdHMgYmFzZWQgb24gdmFyaW91cyBjb25kaXRpb25zIHN1Y2ggYXMgdGhlIGNvdW50cnkgb2Ygb3JpZ2luIGFuZCB0aGUgcmVxdWVzdCByYXRlLlxuICovXG5leHBvcnQgY2xhc3MgUmVnaW9uYWxTZWN1cml0eUJhc2VsaW5lV2ViQWNsIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuICByZWFkb25seSByZWdpb25hbFJ1bGVHcm91cDogQ2ZuUnVsZUdyb3VwO1xuICByZWFkb25seSByZWdpb25hbFdlYkFjbDogQ2ZuV2ViQUNMO1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM/OiBSZWdpb25hbFNlY3VyaXR5QmFzZWxpbmVXZWJBY2xQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucmVnaW9uYWxSdWxlR3JvdXAgPSBuZXcgQ2ZuUnVsZUdyb3VwKHRoaXMsICdSZWdpb25hbFJ1bGVHcm91cCcsIHtcbiAgICAgIG5hbWU6IHByb3BzPy5uYW1lID8/ICdTZWN1cml0eUJhc2VsaW5lUnVsZUdyb3VwJyxcbiAgICAgIHNjb3BlOiAnUkVHSU9OQUwnLFxuICAgICAgY2FwYWNpdHk6IDUwMCxcbiAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICBtZXRyaWNOYW1lOiAnU2VjdXJpdHlCYXNlbGluZVJ1bGVHcm91cE1ldHJpYycsXG4gICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdVcmlDb3VudHJ5QmFzZWQnLFxuICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgIGFjdGlvbjoge1xuICAgICAgICAgICAgW3Byb3BzPy51cmlDb3VudHJ5QWN0aW9uID8/ICdjb3VudCddOiB7fSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgcmF0ZUJhc2VkU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIGxpbWl0OiBwcm9wcz8udXJpQ291bnRyeVJ1bGVMaW1pdCA/PyAyMDAsXG4gICAgICAgICAgICAgIGFnZ3JlZ2F0ZUtleVR5cGU6ICdJUCcsXG4gICAgICAgICAgICAgIGV2YWx1YXRpb25XaW5kb3dTZWM6IDMwMCxcbiAgICAgICAgICAgICAgc2NvcGVEb3duU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgYW5kU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBieXRlTWF0Y2hTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFN0cmluZzogcHJvcHM/LnNlYXJjaFN0cmluZyA/PyAnL2FwaS9sb2dpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFRvTWF0Y2g6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpUGF0aDoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25hbENvbnN0cmFpbnQ6ICdFWEFDVExZJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRUcmFuc2Zvcm1hdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdOT05FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGdlb01hdGNoU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZXM6IHByb3BzPy5jb3VudHJ5Q29kZXMgPz8gWydDTicsICdSVSddLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICd1cmktY291bnRyeS1iYXNlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdMb2dpblJhdGVMaW1pdFJ1bGUnLFxuICAgICAgICAgIHByaW9yaXR5OiAwLCAvLyBFbnN1cmUgcHJpb3JpdGllcyBkbyBub3Qgb3ZlcmxhcCB3aXRoIGV4aXN0aW5nIHJ1bGVzXG4gICAgICAgICAgYWN0aW9uOiB7XG4gICAgICAgICAgICBibG9jazoge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIHJhdGVCYXNlZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBsaW1pdDogcHJvcHM/LnJhdGVCYXNlZFJ1bGVMaW1pdCA/PyAzMDAsXG4gICAgICAgICAgICAgIGFnZ3JlZ2F0ZUtleVR5cGU6ICdGT1JXQVJERURfSVAnLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uV2luZG93U2VjOiAzMDAsXG4gICAgICAgICAgICAgIGZvcndhcmRlZElwQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1gtRm9yd2FyZGVkLUZvcicsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tCZWhhdmlvcjogJ05PX01BVENIJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2NvcGVEb3duU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgYnl0ZU1hdGNoU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgICBzZWFyY2hTdHJpbmc6IHByb3BzPy5zZWFyY2hTdHJpbmcgPz8gJy9hcGkvbG9naW4nLFxuICAgICAgICAgICAgICAgICAgZmllbGRUb01hdGNoOiB7XG4gICAgICAgICAgICAgICAgICAgIHVyaVBhdGg6IHt9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHRleHRUcmFuc2Zvcm1hdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdOT05FJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmFsQ29uc3RyYWludDogJ1NUQVJUU19XSVRIJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnbG9naW4tcmF0ZS1saW1pdC1ydWxlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVnaW9uYWxXZWJBY2wgPSBuZXcgQ2ZuV2ViQUNMKHRoaXMsICdXZWJBY2wnLCB7XG4gICAgICBuYW1lOiBwcm9wcz8ud2ViQWNsTmFtZSA/PyAnUmVnaW9uYWxTZWN1cml0eUJhc2VsaW5lV2ViQUNMJyxcbiAgICAgIGRlZmF1bHRBY3Rpb246IHthbGxvdzoge319LFxuICAgICAgc2NvcGU6ICdSRUdJT05BTCcsXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogJ2dsb2JhbFdlYkFjbE1ldHJpYycsXG4gICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2VjdXJpdHlCYXNlbGluZVJ1bGVHcm91cCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIHJ1bGVHcm91cFJlZmVyZW5jZVN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBhcm46IHRoaXMucmVnaW9uYWxSdWxlR3JvdXAuYXR0ckFybixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnU2VjdXJpdHlCYXNlbGluZVJ1bGVHcm91cE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0tub3duQmFkSW5wdXRzUnVsZVNldCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDIsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIG1ldHJpY05hbWU6ICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXRNZXRyaWMnLFxuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNBbm9ueW1vdXNJcExpc3QnLFxuICAgICAgICAgIHByaW9yaXR5OiAzLFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0TWV0cmljJyxcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICAgICAgb3ZlcnJpZGVBY3Rpb246IHByb3BzPy5tb2RlID09PSAnYWN0aXZlJyA/IHtub25lOiB7fX0gOiB7Y291bnQ6IHt9fSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUycsXG4gICAgICAgICAgICAgIG5hbWU6ICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpb25hbFdlYkFjbC5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgJ1J1bGVzLjMuU3RhdGVtZW50Lk1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQuUnVsZUFjdGlvbk92ZXJyaWRlcycsXG4gICAgICBbe05hbWU6ICdIb3N0aW5nUHJvdmlkZXJJUExpc3QnLCBBY3Rpb25Ub1VzZToge0NvdW50OiB7fX19XSxcbiAgICApO1xuXG4gICAgY29uc3Qgd2FmUmVnaW9uYWxMb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCAnUmVnaW9uYWxXYWZMb2dHcm91cCcsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogYGF3cy13YWYtbG9ncy1yZWdpb25hbC13YWYtYWNsLWxvZ3MtJHt0aGlzLm5vZGUuYWRkcn1gLFxuICAgICAgcmV0ZW50aW9uOiBwcm9wcz8ubG9nUmV0ZW50aW9uID8/IFJldGVudGlvbkRheXMuT05FX1lFQVIsXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuTG9nZ2luZ0NvbmZpZ3VyYXRpb24odGhpcywgJ1JlZ2lvbmFsTG9nZ2luZ0NvbmZpZycsIHtcbiAgICAgIHJlc291cmNlQXJuOiB0aGlzLnJlZ2lvbmFsV2ViQWNsLmF0dHJBcm4sXG4gICAgICBsb2dEZXN0aW5hdGlvbkNvbmZpZ3M6IFt3YWZSZWdpb25hbExvZ0dyb3VwLmxvZ0dyb3VwQXJuXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uYWwtc2VjdXJpdHktYmFzZWxpbmUtd2ViLWFjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mtd2FmdjIvbGliL3JlZ2lvbmFsLXNlY3VyaXR5LWJhc2VsaW5lLXdlYi1hY2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlFO0FBQ2pFLG1EQUE2RDtBQUM3RCxxREFJK0I7QUFFL0IsK0NBQXNEO0FBa0R0RDs7OztHQUlHO0FBQ0gsTUFBYSw4QkFBK0IsU0FBUSx5QkFBaUI7SUFHbkUsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBMkM7O1FBRTNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksd0JBQVksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDbkUsSUFBSSxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksbUNBQUksMkJBQTJCO1lBQ2hELEtBQUssRUFBRSxVQUFVO1lBQ2pCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsZ0JBQWdCLEVBQUU7Z0JBQ2hCLHdCQUF3QixFQUFFLElBQUk7Z0JBQzlCLFVBQVUsRUFBRSxpQ0FBaUM7Z0JBQzdDLHNCQUFzQixFQUFFLElBQUk7YUFDN0I7WUFDRCxLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxFQUFFO3dCQUNOLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLG1DQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUU7cUJBQ3pDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxrQkFBa0IsRUFBRTs0QkFDbEIsS0FBSyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxH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cG9ydCB7QXJuRm9ybWF0LCB0eXBlIFJlbW92YWxQb2xpY3ksIFN0YWNrfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge0xvZ0dyb3VwLCBSZXRlbnRpb25EYXlzfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQge1xuICBDZm5Mb2dnaW5nQ29uZmlndXJhdGlvbixcbiAgQ2ZuUnVsZUdyb3VwLFxuICBDZm5XZWJBQ0wsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy13YWZ2Mic7XG5pbXBvcnQgdHlwZSB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7RXh0ZW5kZWRDb25zdHJ1Y3R9IGZyb20gJy4uLy4uL2F3cy1jZGsvaW5kZXgnO1xuXG5leHBvcnQgdHlwZSByZWdpb25hbEJsb2NrTW9kZSA9ICdjb3VudCcgfCAnYWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWdpb25hbFNlY3VyaXR5QmFzZWxpbmVXZWJBY2xQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbW9kZSBvZiB0aGUgcnVsZSBncm91cC4gVG8gQmxvY2sgb3IgdG8gQ291bnQuIEJ5IGRlZmF1bHQgaXQgaXMgc2V0IHRvIGNvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZT86IHJlZ2lvbmFsQmxvY2tNb2RlO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdlYkFjbC5cbiAgICovXG4gIHJlYWRvbmx5IHdlYkFjbE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVsZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgbG9nIGV2ZW50cyBhcmUga2VwdCBpbiBDbG91ZFdhdGNoIExvZ3MuIERlZmF1bHQgaXMgMSB5ZWFyLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcbiAgLyoqXG4gICAqIFRoZSByZW1vdmFsIHBvbGljeSBvZiB0aGUgV0FGIGxvZyBncm91cC4gSXRzIG5hbWUgaXMgZml4ZWQsIHNvIGEgcmV0YWluZWRcbiAgICogZ3JvdXAgbXVzdCBiZSBkZWxldGVkIGJlZm9yZSB0aGUgY29uc3RydWN0IGNhbiBiZSBkZXBsb3llZCBhZ2Fpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuICAvKipcbiAgICogVGhlIGNvdW50cnkgY29kZXMgdG8gbWF0Y2ggYWdhaW5zdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvdW50cnlDb2Rlczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBzZWFyY2hTdHJpbmc6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGxpbWl0IGZvciBjb3VudHJ5IGJhc2VkIHJhdGUgYmFzZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHVyaUNvdW50cnlSdWxlTGltaXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdGFrZSBvbiB0aGUgVVJJIGNvdW50cnkgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHVyaUNvdW50cnlBY3Rpb24/OiAnY291bnQnIHwgJ2Jsb2NrJztcbiAgLyoqXG4gICAqIFRoZSBsaW1pdCBmb3IgdGhlIHJhdGUgYmFzZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHJhdGVCYXNlZFJ1bGVMaW1pdDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBgUmVnaW9uYWxTZWN1cml0eUJhc2VsaW5lV2ViQWNsYCBjbGFzcyByZXByZXNlbnRzIGEgcmVnaW9uYWwgc2VjdXJpdHkgYmFzZWxpbmUgV2ViIEFjY2VzcyBDb250cm9sIExpc3QgKFdlYkFDTCkuXG4gKiBUaGlzIFdlYkFDTCBpcyBkZXNpZ25lZCB0byBwcm92aWRlIGEgYmFzZWxpbmUgbGV2ZWwgb2Ygc2VjdXJpdHkgZm9yIHlvdXIgcmVnaW9uYWwgcmVzb3VyY2VzLlxuICogSXQgaW5jbHVkZXMgcnVsZXMgZm9yIGJsb2NraW5nIG9yIGNvdW50aW5nIHJlcXVlc3RzIGJhc2VkIG9uIHZhcmlvdXMgY29uZGl0aW9ucyBzdWNoIGFzIHRoZSBjb3VudHJ5IG9mIG9yaWdpbiBhbmQgdGhlIHJlcXVlc3QgcmF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlZ2lvbmFsU2VjdXJpdHlCYXNlbGluZVdlYkFjbCBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcmVnaW9uYWxSdWxlR3JvdXA6IENmblJ1bGVHcm91cDtcbiAgcmVhZG9ubHkgcmVnaW9uYWxXZWJBY2w6IENmbldlYkFDTDtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzPzogUmVnaW9uYWxTZWN1cml0eUJhc2VsaW5lV2ViQWNsUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnJlZ2lvbmFsUnVsZUdyb3VwID0gbmV3IENmblJ1bGVHcm91cCh0aGlzLCAnUmVnaW9uYWxSdWxlR3JvdXAnLCB7XG4gICAgICBuYW1lOiBwcm9wcz8ubmFtZSA/PyAnU2VjdXJpdHlCYXNlbGluZVJ1bGVHcm91cCcsXG4gICAgICBzY29wZTogJ1JFR0lPTkFMJyxcbiAgICAgIGNhcGFjaXR5OiA1MDAsXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXBNZXRyaWMnLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVXJpQ291bnRyeUJhc2VkJyxcbiAgICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICAgIFtwcm9wcz8udXJpQ291bnRyeUFjdGlvbiA/PyAnY291bnQnXToge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgIHJhdGVCYXNlZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBsaW1pdDogcHJvcHM/LnVyaUNvdW50cnlSdWxlTGltaXQgPz8gMjAwLFxuICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuICAgICAgICAgICAgICBldmFsdWF0aW9uV2luZG93U2VjOiAzMDAsXG4gICAgICAgICAgICAgIHNjb3BlRG93blN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGFuZFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgYnl0ZU1hdGNoU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hTdHJpbmc6IHByb3BzPy5zZWFyY2hTdHJpbmcgPz8gJy9hcGkvbG9naW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRUb01hdGNoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVyaVBhdGg6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uYWxDb25zdHJhaW50OiAnRVhBQ1RMWScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnTk9ORScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGVzOiBwcm9wcz8uY291bnRyeUNvZGVzID8/IFsnQ04nLCAnUlUnXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAndXJpLWNvdW50cnktYmFzZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnTG9naW5SYXRlTGltaXRSdWxlJyxcbiAgICAgICAgICBwcmlvcml0eTogMCwgLy8gRW5zdXJlIHByaW9yaXRpZXMgZG8gbm90IG92ZXJsYXAgd2l0aCBleGlzdGluZyBydWxlc1xuICAgICAgICAgIGFjdGlvbjoge1xuICAgICAgICAgICAgYmxvY2s6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICByYXRlQmFzZWRTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgbGltaXQ6IHByb3BzPy5yYXRlQmFzZWRSdWxlTGltaXQgPz8gMzAwLFxuICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnRk9SV0FSREVEX0lQJyxcbiAgICAgICAgICAgICAgZXZhbHVhdGlvbldpbmRvd1NlYzogMzAwLFxuICAgICAgICAgICAgICBmb3J3YXJkZWRJcENvbmZpZzoge1xuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdYLUZvcndhcmRlZC1Gb3InLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrQmVoYXZpb3I6ICdOT19NQVRDSCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHNjb3BlRG93blN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgIGJ5dGVNYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICAgICAgc2VhcmNoU3RyaW5nOiBwcm9wcz8uc2VhcmNoU3RyaW5nID8/ICcvYXBpL2xvZ2luJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkVG9NYXRjaDoge1xuICAgICAgICAgICAgICAgICAgICB1cmlQYXRoOiB7fSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtYXRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnTk9ORScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25hbENvbnN0cmFpbnQ6ICdTVEFSVFNfV0lUSCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ2xvZ2luLXJhdGUtbGltaXQtcnVsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ2lvbmFsV2ViQWNsID0gbmV3IENmbldlYkFDTCh0aGlzLCAnV2ViQWNsJywge1xuICAgICAgbmFtZTogcHJvcHM/LndlYkFjbE5hbWUgPz8gJ1JlZ2lvbmFsU2VjdXJpdHlCYXNlbGluZVdlYkFDTCcsXG4gICAgICBkZWZhdWx0QWN0aW9uOiB7YWxsb3c6IHt9fSxcbiAgICAgIHNjb3BlOiAnUkVHSU9OQUwnLFxuICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1ldHJpY05hbWU6ICdnbG9iYWxXZWJBY2xNZXRyaWMnLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXQnLFxuICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ0FXU01hbmFnZWRSdWxlc0NvbW1vblJ1bGVTZXRNZXRyaWMnLFxuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXAnLFxuICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBydWxlR3JvdXBSZWZlcmVuY2VTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICAgICAgYXJuOiB0aGlzLnJlZ2lvbmFsUnVsZUdyb3VwLmF0dHJBcm4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ1NlY3VyaXR5QmFzZWxpbmVSdWxlR3JvdXBNZXRyaWMnLFxuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0FXUy1BV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnLFxuICAgICAgICAgIHByaW9yaXR5OiAyLFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzS25vd25CYWRJbnB1dHNSdWxlU2V0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiAnQVdTTWFuYWdlZFJ1bGVzS25vd25CYWRJbnB1dHNSdWxlU2V0TWV0cmljJyxcbiAgICAgICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdBV1MtQVdTTWFuYWdlZFJ1bGVzQW5vbnltb3VzSXBMaXN0JyxcbiAgICAgICAgICBwcmlvcml0eTogMyxcbiAgICAgICAgICBvdmVycmlkZUFjdGlvbjogcHJvcHM/Lm1vZGUgPT09ICdhY3RpdmUnID8ge25vbmU6IHt9fSA6IHtjb3VudDoge319LFxuICAgICAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICAgICAgbWFuYWdlZFJ1bGVHcm91cFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJyxcbiAgICAgICAgICAgICAgbmFtZTogJ0FXU01hbmFnZWRSdWxlc0Fub255bW91c0lwTGlzdCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ0FXU01hbmFnZWRSdWxlc0Fub255bW91c0lwTGlzdE1ldHJpYycsXG4gICAgICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQVdTLUFXU01hbmFnZWRSdWxlc0FtYXpvbklwUmVwdXRhdGlvbkxpc3QnLFxuICAgICAgICAgIHByaW9yaXR5OiA0LFxuICAgICAgICAgIG92ZXJyaWRlQWN0aW9uOiBwcm9wcz8ubW9kZSA9PT0gJ2FjdGl2ZScgPyB7bm9uZToge319IDoge2NvdW50OiB7fX0sXG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgICAgIHZlbmRvck5hbWU6ICdBV1MnLFxuICAgICAgICAgICAgICBuYW1lOiAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogJ0FXU01hbmFnZWRSdWxlc0FtYXpvbklwUmVwdXRhdGlvbkxpc3RNZXRyaWMnLFxuICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVnaW9uYWxXZWJBY2wuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgICdSdWxlcy4zLlN0YXRlbWVudC5NYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50LlJ1bGVBY3Rpb25PdmVycmlkZXMnLFxuICAgICAgW3tOYW1lOiAnSG9zdGluZ1Byb3ZpZGVySVBMaXN0JywgQWN0aW9uVG9Vc2U6IHtDb3VudDoge319fV0sXG4gICAgKTtcblxuICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGBhd3Mtd2FmLWxvZ3MtcmVnaW9uYWwtd2FmLWFjbC1sb2dzLSR7dGhpcy5ub2RlLmFkZHJ9YDtcbiAgICBjb25zdCB3YWZSZWdpb25hbExvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdSZWdpb25hbFdhZkxvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgcmV0ZW50aW9uOiBwcm9wcz8ubG9nUmV0ZW50aW9uID8/IFJldGVudGlvbkRheXMuT05FX1lFQVIsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcz8ubG9nUmVtb3ZhbFBvbGljeSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvZ2dpbmdDb25maWcgPSBuZXcgQ2ZuTG9nZ2luZ0NvbmZpZ3VyYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJ1JlZ2lvbmFsTG9nZ2luZ0NvbmZpZycsXG4gICAgICB7XG4gICAgICAgIHJlc291cmNlQXJuOiB0aGlzLnJlZ2lvbmFsV2ViQWNsLmF0dHJBcm4sXG4gICAgICAgIC8vIGxvZ0dyb3VwQXJuIGVuZHMgaW4gJzoqJzsgQVdTIFdBRiBkb2N1bWVudHMgdGhlIGxvZyBncm91cCBBUk4gd2l0aG91dCBpdC5cbiAgICAgICAgbG9nRGVzdGluYXRpb25Db25maWdzOiBbXG4gICAgICAgICAgU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICAgIHJlc291cmNlOiAnbG9nLWdyb3VwJyxcbiAgICAgICAgICAgIHJlc291cmNlTmFtZTogbG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICAvLyBUaGUgQVJOIGlzIGJ1aWx0IGZyb20gdGhlIG5hbWUsIHNvIENsb3VkRm9ybWF0aW9uIG5vIGxvbmdlciBpbmZlcnMgdGhlIG9yZGVyLlxuICAgIGxvZ2dpbmdDb25maWcubm9kZS5hZGREZXBlbmRlbmN5KHdhZlJlZ2lvbmFsTG9nR3JvdXApO1xuICB9XG59XG4iXX0=
|