truemark-cdk-lib 1.0.1 → 1.0.2-alpha.11
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/aws-codepipeline/lib/cdk-pipeline.d.ts +19 -6
- package/aws-codepipeline/lib/cdk-pipeline.js +43 -18
- package/aws-codepipeline/lib/enums.d.ts +5 -0
- package/aws-codepipeline/lib/enums.js +10 -0
- package/aws-codepipeline/lib/index.d.ts +1 -0
- package/aws-codepipeline/lib/index.js +2 -1
- package/aws-ecs/index.d.ts +1 -0
- package/aws-ecs/index.js +14 -0
- package/aws-ecs/lib/index.d.ts +5 -0
- package/aws-ecs/lib/index.js +18 -0
- package/aws-ecs/lib/log-configuration.d.ts +33 -0
- package/aws-ecs/lib/log-configuration.js +3 -0
- package/aws-ecs/lib/standard-application-fargate-service.d.ts +137 -0
- package/aws-ecs/lib/standard-application-fargate-service.js +98 -0
- package/aws-ecs/lib/standard-fargate-cluster.d.ts +92 -0
- package/aws-ecs/lib/standard-fargate-cluster.js +84 -0
- package/aws-ecs/lib/standard-fargate-service.d.ts +246 -0
- package/aws-ecs/lib/standard-fargate-service.js +186 -0
- package/aws-ecs/lib/standard-network-fargate-service.d.ts +101 -0
- package/aws-ecs/lib/standard-network-fargate-service.js +69 -0
- package/aws-route53/lib/domain-name.d.ts +7 -0
- package/aws-route53/lib/domain-name.js +14 -1
- package/aws-sqs/lib/extended-queue.d.ts +9 -1
- package/aws-sqs/lib/extended-queue.js +15 -1
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/package.json +3 -2
- package/test/aws-codepipeline/cdk-pipeline.test.js +2 -2
- package/test/aws-route53/domain-name.test.js +6 -3
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Construct } from "constructs";
|
|
2
|
-
import { AddStageOpts, CodePipeline, StageDeployment, Wave, WaveOptions } from "aws-cdk-lib/pipelines";
|
|
2
|
+
import { AddStageOpts, CodePipeline, IFileSetProducer, StageDeployment, Wave, WaveOptions } from "aws-cdk-lib/pipelines";
|
|
3
3
|
import { ComputeType, IBuildImage } from "aws-cdk-lib/aws-codebuild";
|
|
4
4
|
import { PipelineNotificationRule } from "./pipeline-notification-rule";
|
|
5
5
|
import { Stage } from "aws-cdk-lib";
|
|
6
|
-
import {
|
|
6
|
+
import { NodePackageManager } from "./enums";
|
|
7
7
|
/**
|
|
8
8
|
* Properties for CdkPipeline
|
|
9
9
|
*/
|
|
@@ -19,13 +19,14 @@ export interface CdkPipelineProps {
|
|
|
19
19
|
*/
|
|
20
20
|
readonly accountIds?: string[];
|
|
21
21
|
/**
|
|
22
|
-
* Arn of the CodeStar connection used to access the source code repository.
|
|
22
|
+
* Arn of the CodeStar connection used to access the source code repository. If not set, this
|
|
23
|
+
* construct assumes the repository is in AWS CodeCommit.
|
|
23
24
|
*/
|
|
24
|
-
readonly connectionArn
|
|
25
|
+
readonly connectionArn?: string;
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
+
* Source code repository.
|
|
27
28
|
*/
|
|
28
|
-
readonly
|
|
29
|
+
readonly repository: string;
|
|
29
30
|
/**
|
|
30
31
|
* Branch to use inside the source code repository.
|
|
31
32
|
*/
|
|
@@ -80,6 +81,18 @@ export interface CdkPipelineProps {
|
|
|
80
81
|
* Public assets in multiple CodeBuild projects. Default is false.
|
|
81
82
|
*/
|
|
82
83
|
readonly publishAssetsInParallel?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Package manager to use when executing CDK.
|
|
86
|
+
*
|
|
87
|
+
* @default NodePackageManager.PNPM
|
|
88
|
+
*/
|
|
89
|
+
readonly packageManager?: NodePackageManager;
|
|
90
|
+
/**
|
|
91
|
+
* The directory the CDK project is located in the repo.
|
|
92
|
+
*
|
|
93
|
+
* @default - "."
|
|
94
|
+
*/
|
|
95
|
+
readonly cdkDirectory?: string;
|
|
83
96
|
}
|
|
84
97
|
/**
|
|
85
98
|
* An abstraction to ease CDK pipeline creation and configuration.
|
|
@@ -9,6 +9,8 @@ const pipelines_1 = require("aws-cdk-lib/pipelines");
|
|
|
9
9
|
const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
|
|
10
10
|
const pipeline_notification_rule_1 = require("./pipeline-notification-rule");
|
|
11
11
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
12
|
+
const aws_codecommit_1 = require("aws-cdk-lib/aws-codecommit");
|
|
13
|
+
const enums_1 = require("./enums");
|
|
12
14
|
/**
|
|
13
15
|
* An abstraction to ease CDK pipeline creation and configuration.
|
|
14
16
|
*/
|
|
@@ -24,28 +26,51 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
24
26
|
const underlyingPipeline = new aws_codepipeline_1.Pipeline(this, 'Pipeline', {
|
|
25
27
|
artifactBucket
|
|
26
28
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
let input;
|
|
30
|
+
if (props.connectionArn !== undefined) {
|
|
31
|
+
input = pipelines_1.CodePipelineSource.connection(props.repository, props.branch, {
|
|
32
|
+
connectionArn: props.connectionArn
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const repository = props.repository.startsWith("arn:")
|
|
37
|
+
? aws_codecommit_1.Repository.fromRepositoryArn(this, "Repository", props.repository)
|
|
38
|
+
: aws_codecommit_1.Repository.fromRepositoryName(this, "Repository", props.repository);
|
|
39
|
+
input = pipelines_1.CodePipelineSource.codeCommit(repository, props.branch);
|
|
40
|
+
}
|
|
30
41
|
const stackName = aws_cdk_lib_1.Stack.of(this).stackName;
|
|
42
|
+
const cdkDirectory = (_a = props.cdkDirectory) !== null && _a !== void 0 ? _a : ".";
|
|
43
|
+
let commands = props.commands;
|
|
44
|
+
if (commands === undefined && props.packageManager === enums_1.NodePackageManager.PNPM) {
|
|
45
|
+
commands = [
|
|
46
|
+
`cd ${cdkDirectory !== null && cdkDirectory !== void 0 ? cdkDirectory : "."}`,
|
|
47
|
+
'npm -g install pnpm',
|
|
48
|
+
'pnpm install --frozen-lockfile --prefer-offline',
|
|
49
|
+
'pnpm run build',
|
|
50
|
+
'pnpm run test',
|
|
51
|
+
`pnpx cdk synth ${stackName}`
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
else if (commands === undefined) {
|
|
55
|
+
commands = [
|
|
56
|
+
`cd ${cdkDirectory !== null && cdkDirectory !== void 0 ? cdkDirectory : "."}`,
|
|
57
|
+
'npm config set fund false',
|
|
58
|
+
'npm ci --prefer-offline',
|
|
59
|
+
'npm run build',
|
|
60
|
+
'npm run test',
|
|
61
|
+
`npx cdk synth ${stackName}`
|
|
62
|
+
];
|
|
63
|
+
}
|
|
31
64
|
this.pipeline = new pipelines_1.CodePipeline(this, 'CodePipeline', {
|
|
32
65
|
codePipeline: underlyingPipeline,
|
|
33
|
-
selfMutation: (
|
|
34
|
-
dockerEnabledForSynth: (
|
|
35
|
-
dockerEnabledForSelfMutation: (
|
|
36
|
-
publishAssetsInParallel: (
|
|
66
|
+
selfMutation: (_b = props.selfMutation) !== null && _b !== void 0 ? _b : true,
|
|
67
|
+
dockerEnabledForSynth: (_c = props.dockerEnabledForSynth) !== null && _c !== void 0 ? _c : true,
|
|
68
|
+
dockerEnabledForSelfMutation: (_d = props.dockerEnabledForSelfMutation) !== null && _d !== void 0 ? _d : true,
|
|
69
|
+
publishAssetsInParallel: (_e = props.publishAssetsInParallel) !== null && _e !== void 0 ? _e : false,
|
|
37
70
|
synth: new pipelines_1.ShellStep('Synth', {
|
|
38
|
-
primaryOutputDirectory:
|
|
71
|
+
primaryOutputDirectory: `${cdkDirectory}/cdk.out`,
|
|
39
72
|
input,
|
|
40
|
-
commands
|
|
41
|
-
'mkdir /tmp/npm-cache',
|
|
42
|
-
'npm config set fund false',
|
|
43
|
-
'npm config set cache /tmp/npm-cache --location=global',
|
|
44
|
-
'npm ci --prefer-offline',
|
|
45
|
-
'npm run build',
|
|
46
|
-
'npm run test',
|
|
47
|
-
`npx cdk synth ${stackName}`
|
|
48
|
-
],
|
|
73
|
+
commands,
|
|
49
74
|
additionalInputs: (_f = props.additionalInputs) !== null && _f !== void 0 ? _f : {}
|
|
50
75
|
}),
|
|
51
76
|
synthCodeBuildDefaults: {
|
|
@@ -100,4 +125,4 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
100
125
|
}
|
|
101
126
|
}
|
|
102
127
|
exports.CdkPipeline = CdkPipeline;
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLXBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQyxtRUFBc0Q7QUFDdEQsaURBQXdDO0FBQ3hDLHVEQUFpRDtBQUNqRCxxREFRK0I7QUFDL0IsNkRBQStGO0FBQy9GLDZFQUFzRTtBQUN0RSw2Q0FBeUM7QUFpR3pDOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFLeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1Qjs7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGFBQWEsR0FBRyxhQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFFLE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDaEUsYUFBYTtZQUNiLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixHQUFHLElBQUksMkJBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3hELGNBQWM7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLEtBQUssR0FBRyw4QkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3BFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHdCQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNyRCxZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLFlBQVksUUFBRSxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJO1lBQ3hDLHFCQUFxQixRQUFFLEtBQUssQ0FBQyxxQkFBcUIsbUNBQUksSUFBSTtZQUMxRCw0QkFBNEIsUUFBRSxLQUFLLENBQUMsNEJBQTRCLG1DQUFJLElBQUk7WUFDeEUsdUJBQXVCLFFBQUUsS0FBSyxDQUFDLHVCQUF1QixtQ0FBSSxLQUFLO1lBQy9ELEtBQUssRUFBRSxJQUFJLHFCQUFTLENBQUMsT0FBTyxFQUFFO2dCQUM1QixzQkFBc0IsRUFBRSxTQUFTO2dCQUNqQyxLQUFLO2dCQUNMLFFBQVEsUUFBRSxLQUFLLENBQUMsUUFBUSxtQ0FBRTtvQkFDeEIsc0JBQXNCO29CQUN0QiwyQkFBMkI7b0JBQzNCLHVEQUF1RDtvQkFDdkQseUJBQXlCO29CQUN6QixlQUFlO29CQUNmLGNBQWM7b0JBQ2QsaUJBQWlCLFNBQVMsRUFBRTtpQkFDN0I7Z0JBQ0QsZ0JBQWdCLFFBQUUsS0FBSyxDQUFDLGdCQUFnQixtQ0FBRSxFQUFFO2FBQzdDLENBQUM7WUFDRixzQkFBc0IsRUFBRTtnQkFDdEIscURBQXFEO2dCQUNyRCxnQkFBZ0IsRUFBRSx5QkFBUyxDQUFDLFVBQVUsQ0FBQztvQkFDckMsc0NBQXNDO29CQUN0QyxLQUFLLEVBQUU7d0JBQ0wsS0FBSyxFQUFFLGdCQUFnQjtxQkFDeEI7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRTs0QkFDUCxRQUFRLEVBQUU7Z0NBQ1IsTUFBTTtnQ0FDTiwyQ0FBMkMsQ0FBQywwQkFBMEI7NkJBQ3ZFO3lCQUNGO3FCQUNGO2lCQUNGLENBQUM7Z0JBQ0YsZ0JBQWdCLEVBQUU7b0JBQ2hCLFdBQVcsUUFBRSxLQUFLLENBQUMsV0FBVyxtQ0FBSSwyQkFBVyxDQUFDLEtBQUs7b0JBQ25ELFVBQVUsUUFBRSxLQUFLLENBQUMsVUFBVSxtQ0FBSSwrQkFBZSxDQUFDLGdCQUFnQjtpQkFDakU7YUFDRjtZQUNELGdDQUFnQyxFQUFFO2dCQUNoQyxnQkFBZ0IsRUFBRTtvQkFDaEIsVUFBVSxFQUFFLCtCQUFlLENBQUMsZ0JBQWdCO2lCQUM3QzthQUNGO1lBQ0QsNkJBQTZCLEVBQUU7Z0JBQzdCLGdCQUFnQixFQUFFO29CQUNoQixVQUFVLEVBQUUsK0JBQWUsQ0FBQyxnQkFBZ0I7aUJBQzdDO2FBQ0Y7WUFDRCxpQkFBaUIsRUFBRTtnQkFDakIsZ0JBQWdCLEVBQUU7b0JBQ2hCLFVBQVUsRUFBRSwrQkFBZSxDQUFDLGdCQUFnQjtpQkFDN0M7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksS0FBSyxDQUFDLDRCQUE0QixFQUFFO1lBQ3RDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLHFEQUF3QixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7Z0JBQ2pGLE1BQU0sRUFBRSxrQkFBa0I7Z0JBQzFCLDRCQUE0QixFQUFFLEtBQUssQ0FBQyw0QkFBNEI7YUFDakUsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVksRUFBRSxPQUFzQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVUsRUFBRSxPQUFxQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFqR0Qsa0NBaUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1BpcGVsaW5lfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiO1xuaW1wb3J0IHtLZXl9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQge0FydGlmYWN0QnVja2V0fSBmcm9tIFwiLi9hcnRpZmFjdC1idWNrZXRcIjtcbmltcG9ydCB7XG4gIEFkZFN0YWdlT3B0cyxcbiAgQ29kZVBpcGVsaW5lLFxuICBDb2RlUGlwZWxpbmVTb3VyY2UsXG4gIFNoZWxsU3RlcCxcbiAgU3RhZ2VEZXBsb3ltZW50LFxuICBXYXZlLFxuICBXYXZlT3B0aW9uc1xufSBmcm9tIFwiYXdzLWNkay1saWIvcGlwZWxpbmVzXCI7XG5pbXBvcnQge0J1aWxkU3BlYywgQ29tcHV0ZVR5cGUsIElCdWlsZEltYWdlLCBMaW51eEJ1aWxkSW1hZ2V9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQge1BpcGVsaW5lTm90aWZpY2F0aW9uUnVsZX0gZnJvbSBcIi4vcGlwZWxpbmUtbm90aWZpY2F0aW9uLXJ1bGVcIjtcbmltcG9ydCB7U3RhY2ssIFN0YWdlfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7SUZpbGVTZXRQcm9kdWNlcn0gZnJvbSBcImF3cy1jZGstbGliL3BpcGVsaW5lc1wiO1xuaW1wb3J0IHtDYWNoZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBDZGtQaXBlbGluZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENka1BpcGVsaW5lUHJvcHMge1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBDREsgd2lsbCBjcmVhdGUgS01TIGtleXMgZm9yIGNyb3NzIGFjY291bnQgZGVwbG95bWVudHMuIFRoaXNcbiAgICogY2FuIGJlIGNvc3RseSBpZiB5b3UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiBwaXBlbGluZXMuIFRoaXMgcHJvcGVydHlcbiAgICogYWxsb3dzIGEgY29tbW9uIGtleSB0byBiZSBzaGFyZWQgYWNyb3NzIHBpcGVsaW5lcy5cbiAgICovXG4gIHJlYWRvbmx5IGtleUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjY291bnQgSURzIHRoaXMgcGlwZWxpbmUgd2lsbCBkZXBsb3kgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQXJuIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHVzZWQgdG8gYWNjZXNzIHRoZSBzb3VyY2UgY29kZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBzb3VyY2UgY29kZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdXNlIGluc2lkZSB0aGUgc291cmNlIGNvZGUgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzZWxmLW11dGF0aW9uLiBVc2VmdWwgZm9yIGNkayBwaXBlbGluZSBkZXZlbG9wbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZk11dGF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGRvY2tlciBmb3IgdGhlICdzeW50aCcgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyRW5hYmxlZEZvclN5bnRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGRvY2tlciBmb3IgdGhlIHNlbGYtbXV0YXRlIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIGNvbXB1dGUgdG8gdXNlIGZvciB0aGlzIGJ1aWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDb21wdXRlVHlwZS5TTUFMTFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHV0ZVR5cGU/OiBDb21wdXRlVHlwZTtcblxuICAvKipcbiAgICogVGhlIGltYWdlIHRvIHVzZSBmb3IgYnVpbGRzLiBEZWZhdWx0IGlzIExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80XG4gICAqL1xuICByZWFkb25seSBidWlsZEltYWdlPzogSUJ1aWxkSW1hZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSBTbGFjayBjaGFubmVsIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygbm90aWZpY2F0aW9uIGV2ZW50cyB0byByZWNlaXZlLiBCeSBkZWZhdWx0LCB0aGlzIGlzIGFsbCBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kdGNvbnNvbGUvbGF0ZXN0L3VzZXJndWlkZS9jb25jZXB0cy5odG1sI2V2ZW50cy1yZWYtcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkV2ZW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIEZpbGVTZXRzIHRvIHB1dCBpbiBvdGhlciBkaXJlY3Rvcmllc1xuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElucHV0cz86IFJlY29yZDxzdHJpbmcsIElGaWxlU2V0UHJvZHVjZXI+O1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgZGVmYXVsdCBjb21tYW5kcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBhc3NldHMgaW4gbXVsdGlwbGUgQ29kZUJ1aWxkIHByb2plY3RzLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaEFzc2V0c0luUGFyYWxsZWw/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIGFic3RyYWN0aW9uIHRvIGVhc2UgQ0RLIHBpcGVsaW5lIGNyZWF0aW9uIGFuZCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrUGlwZWxpbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHJlYWRvbmx5IHBpcGVsaW5lOiBDb2RlUGlwZWxpbmU7XG4gIHJlYWRvbmx5IHBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZTogUGlwZWxpbmVOb3RpZmljYXRpb25SdWxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZGtQaXBlbGluZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBLZXkuZnJvbUtleUFybih0aGlzLCAnRW5jcnlwdGlvbktleScsIHByb3BzLmtleUFybik7XG5cbiAgICBjb25zdCBhcnRpZmFjdEJ1Y2tldCA9IG5ldyBBcnRpZmFjdEJ1Y2tldCh0aGlzLCAnQXJ0aWZhY3RCdWNrZXQnLCB7XG4gICAgICBlbmNyeXB0aW9uS2V5LFxuICAgICAgYWNjb3VudElkczogcHJvcHMuYWNjb3VudElkc1xuICAgIH0pO1xuXG4gICAgY29uc3QgdW5kZXJseWluZ1BpcGVsaW5lID0gbmV3IFBpcGVsaW5lKHRoaXMsICdQaXBlbGluZScsIHtcbiAgICAgIGFydGlmYWN0QnVja2V0XG4gICAgfSk7XG5cbiAgICBjb25zdCBpbnB1dCA9IENvZGVQaXBlbGluZVNvdXJjZS5jb25uZWN0aW9uKHByb3BzLnJlcG8sIHByb3BzLmJyYW5jaCwge1xuICAgICAgY29ubmVjdGlvbkFybjogcHJvcHMuY29ubmVjdGlvbkFyblxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhY2tOYW1lID0gU3RhY2sub2YodGhpcykuc3RhY2tOYW1lO1xuXG4gICAgdGhpcy5waXBlbGluZSA9IG5ldyBDb2RlUGlwZWxpbmUodGhpcywgJ0NvZGVQaXBlbGluZScsIHtcbiAgICAgIGNvZGVQaXBlbGluZTogdW5kZXJseWluZ1BpcGVsaW5lLFxuICAgICAgc2VsZk11dGF0aW9uOiBwcm9wcy5zZWxmTXV0YXRpb24gPz8gdHJ1ZSxcbiAgICAgIGRvY2tlckVuYWJsZWRGb3JTeW50aDogcHJvcHMuZG9ja2VyRW5hYmxlZEZvclN5bnRoID8/IHRydWUsXG4gICAgICBkb2NrZXJFbmFibGVkRm9yU2VsZk11dGF0aW9uOiBwcm9wcy5kb2NrZXJFbmFibGVkRm9yU2VsZk11dGF0aW9uID8/IHRydWUsXG4gICAgICBwdWJsaXNoQXNzZXRzSW5QYXJhbGxlbDogcHJvcHMucHVibGlzaEFzc2V0c0luUGFyYWxsZWwgPz8gZmFsc2UsXG4gICAgICBzeW50aDogbmV3IFNoZWxsU3RlcCgnU3ludGgnLCB7XG4gICAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6ICdjZGsub3V0JyxcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGNvbW1hbmRzOiBwcm9wcy5jb21tYW5kcz8/W1xuICAgICAgICAgICdta2RpciAvdG1wL25wbS1jYWNoZScsXG4gICAgICAgICAgJ25wbSBjb25maWcgc2V0IGZ1bmQgZmFsc2UnLFxuICAgICAgICAgICducG0gY29uZmlnIHNldCBjYWNoZSAvdG1wL25wbS1jYWNoZSAtLWxvY2F0aW9uPWdsb2JhbCcsXG4gICAgICAgICAgJ25wbSBjaSAtLXByZWZlci1vZmZsaW5lJyxcbiAgICAgICAgICAnbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICAgJ25wbSBydW4gdGVzdCcsXG4gICAgICAgICAgYG5weCBjZGsgc3ludGggJHtzdGFja05hbWV9YFxuICAgICAgICBdLFxuICAgICAgICBhZGRpdGlvbmFsSW5wdXRzOiBwcm9wcy5hZGRpdGlvbmFsSW5wdXRzPz97fVxuICAgICAgfSksXG4gICAgICBzeW50aENvZGVCdWlsZERlZmF1bHRzOiB7XG4gICAgICAgIC8vIGNhY2hlOiBDYWNoZS5sb2NhbCgpLCAvLyBUT0RPIE5vdCBzdXBwb3J0ZWQgb24gQVJNXG4gICAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICAgICAgICAvLyBUT0RPIE5lZWQgdG8gbG9vayBpbnRvIHRoaXMgZnVydGhlclxuICAgICAgICAgIGNhY2hlOiB7XG4gICAgICAgICAgICBwYXRoczogXCIvdG1wL25wbS1jYWNoZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgICBcIm4gMTZcIiwgLy8gSW5zdGFsbCBOb2RlIHYxNlxuICAgICAgICAgICAgICAgIFwibnBtIGkgLS1sb2NhdGlvbj1nbG9iYWwgLS1uby1mdW5kIGVzYnVpbGRcIiAvLyBJbnN0YWxsIGVzYnVpbGQgbG9jYWxseVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNvbXB1dGVUeXBlOiBwcm9wcy5jb21wdXRlVHlwZSA/PyBDb21wdXRlVHlwZS5TTUFMTCxcbiAgICAgICAgICBidWlsZEltYWdlOiBwcm9wcy5idWlsZEltYWdlID8/IExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBhc3NldFB1Ymxpc2hpbmdDb2RlQnVpbGREZWZhdWx0czoge1xuICAgICAgICBidWlsZEVudmlyb25tZW50OiB7XG4gICAgICAgICAgYnVpbGRJbWFnZTogTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNlbGZNdXRhdGlvbkNvZGVCdWlsZERlZmF1bHRzOiB7XG4gICAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfNFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybikge1xuICAgICAgdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUgPSBuZXcgUGlwZWxpbmVOb3RpZmljYXRpb25SdWxlKHRoaXMsICdOb3RpZmljYXRpb24nLCB7XG4gICAgICAgIHNvdXJjZTogdW5kZXJseWluZ1BpcGVsaW5lLFxuICAgICAgICBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuOiBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhZGRTdGFnZShzdGFnZTogU3RhZ2UsIG9wdGlvbnM/OiBBZGRTdGFnZU9wdHMpOiBTdGFnZURlcGxveW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBpcGVsaW5lLmFkZFN0YWdlKHN0YWdlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFkZFdhdmUoaWQ6IHN0cmluZywgb3B0aW9ucz86IFdhdmVPcHRpb25zKTogV2F2ZSB7XG4gICAgcmV0dXJuIHRoaXMucGlwZWxpbmUuYWRkV2F2ZShpZCwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLXBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQyxtRUFBc0Q7QUFDdEQsaURBQXdDO0FBQ3hDLHVEQUFpRDtBQUNqRCxxREFTK0I7QUFDL0IsNkRBQStGO0FBQy9GLDZFQUFzRTtBQUN0RSw2Q0FBeUM7QUFDekMsK0RBQXNEO0FBQ3RELG1DQUEyQztBQThHM0M7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUt4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCOztRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sYUFBYSxHQUFHLGFBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxnQ0FBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNoRSxhQUFhO1lBQ2IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUMsQ0FBQztRQUVILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEQsY0FBYztTQUNmLENBQUMsQ0FBQztRQUVILElBQUksS0FBeUIsQ0FBQztRQUM5QixJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO1lBQ3JDLEtBQUssR0FBRyw4QkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNwRSxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7YUFDbkMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FB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Q0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLGdCQUFnQixFQUFFO29CQUNoQixVQUFVLEVBQUUsK0JBQWUsQ0FBQyxnQkFBZ0I7aUJBQzdDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsRUFBRTtZQUN0QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxxREFBd0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO2dCQUNqRixNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQiw0QkFBNEIsRUFBRSxLQUFLLENBQUMsNEJBQTRCO2FBQ2pFLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZLEVBQUUsT0FBc0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVLEVBQUUsT0FBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBdkhELGtDQXVIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtQaXBlbGluZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmltcG9ydCB7S2V5fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0IHtBcnRpZmFjdEJ1Y2tldH0gZnJvbSBcIi4vYXJ0aWZhY3QtYnVja2V0XCI7XG5pbXBvcnQge1xuICBBZGRTdGFnZU9wdHMsXG4gIENvZGVQaXBlbGluZSxcbiAgQ29kZVBpcGVsaW5lU291cmNlLFxuICBJRmlsZVNldFByb2R1Y2VyLFxuICBTaGVsbFN0ZXAsXG4gIFN0YWdlRGVwbG95bWVudCxcbiAgV2F2ZSxcbiAgV2F2ZU9wdGlvbnNcbn0gZnJvbSBcImF3cy1jZGstbGliL3BpcGVsaW5lc1wiO1xuaW1wb3J0IHtCdWlsZFNwZWMsIENvbXB1dGVUeXBlLCBJQnVpbGRJbWFnZSwgTGludXhCdWlsZEltYWdlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHtQaXBlbGluZU5vdGlmaWNhdGlvblJ1bGV9IGZyb20gXCIuL3BpcGVsaW5lLW5vdGlmaWNhdGlvbi1ydWxlXCI7XG5pbXBvcnQge1N0YWNrLCBTdGFnZX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1JlcG9zaXRvcnl9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdFwiO1xuaW1wb3J0IHtOb2RlUGFja2FnZU1hbmFnZXJ9IGZyb20gXCIuL2VudW1zXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQ2RrUGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtQaXBlbGluZVByb3BzIHtcblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgQ0RLIHdpbGwgY3JlYXRlIEtNUyBrZXlzIGZvciBjcm9zcyBhY2NvdW50IGRlcGxveW1lbnRzLiBUaGlzXG4gICAqIGNhbiBiZSBjb3N0bHkgaWYgeW91IGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcGlwZWxpbmVzLiBUaGlzIHByb3BlcnR5XG4gICAqIGFsbG93cyBhIGNvbW1vbiBrZXkgdG8gYmUgc2hhcmVkIGFjcm9zcyBwaXBlbGluZXMuXG4gICAqL1xuICByZWFkb25seSBrZXlBcm46IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBhY2NvdW50IElEcyB0aGlzIHBpcGVsaW5lIHdpbGwgZGVwbG95IGludG8uXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFybiBvZiB0aGUgQ29kZVN0YXIgY29ubmVjdGlvbiB1c2VkIHRvIGFjY2VzcyB0aGUgc291cmNlIGNvZGUgcmVwb3NpdG9yeS4gSWYgbm90IHNldCwgdGhpc1xuICAgKiBjb25zdHJ1Y3QgYXNzdW1lcyB0aGUgcmVwb3NpdG9yeSBpcyBpbiBBV1MgQ29kZUNvbW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNvdXJjZSBjb2RlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB1c2UgaW5zaWRlIHRoZSBzb3VyY2UgY29kZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHNlbGYtbXV0YXRpb24uIFVzZWZ1bCBmb3IgY2RrIHBpcGVsaW5lIGRldmVsb3BtZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzZWxmTXV0YXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZG9ja2VyIGZvciB0aGUgJ3N5bnRoJyBzdGVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJFbmFibGVkRm9yU3ludGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZG9ja2VyIGZvciB0aGUgc2VsZi1tdXRhdGUgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyRW5hYmxlZEZvclNlbGZNdXRhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgY29tcHV0ZSB0byB1c2UgZm9yIHRoaXMgYnVpbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IENvbXB1dGVUeXBlLlNNQUxMXG4gICAqL1xuICByZWFkb25seSBjb21wdXRlVHlwZT86IENvbXB1dGVUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdG8gdXNlIGZvciBidWlsZHMuIERlZmF1bHQgaXMgTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2U/OiBJQnVpbGRJbWFnZTtcblxuICAvKipcbiAgICogVGhlIFNsYWNrIGNoYW5uZWwgY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBub3RpZmljYXRpb24gZXZlbnRzIHRvIHJlY2VpdmUuIEJ5IGRlZmF1bHQsIHRoaXMgaXMgYWxsIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL2NvbmNlcHRzLmh0bWwjZXZlbnRzLXJlZi1waXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uRXZlbnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgRmlsZVNldHMgdG8gcHV0IGluIG90aGVyIGRpcmVjdG9yaWVzXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSW5wdXRzPzogUmVjb3JkPHN0cmluZywgSUZpbGVTZXRQcm9kdWNlcj47XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBkZWZhdWx0IGNvbW1hbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHVibGljIGFzc2V0cyBpbiBtdWx0aXBsZSBDb2RlQnVpbGQgcHJvamVjdHMuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoQXNzZXRzSW5QYXJhbGxlbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgbWFuYWdlciB0byB1c2Ugd2hlbiBleGVjdXRpbmcgQ0RLLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI/OiBOb2RlUGFja2FnZU1hbmFnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdGhlIENESyBwcm9qZWN0IGlzIGxvY2F0ZWQgaW4gdGhlIHJlcG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gXCIuXCJcbiAgICovXG4gIHJlYWRvbmx5IGNka0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdGlvbiB0byBlYXNlIENESyBwaXBlbGluZSBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICByZWFkb25seSBwaXBlbGluZTogQ29kZVBpcGVsaW5lO1xuICByZWFkb25seSBwaXBlbGluZU5vdGlmaWNhdGlvblJ1bGU6IFBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2RrUGlwZWxpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBlbmNyeXB0aW9uS2V5ID0gS2V5LmZyb21LZXlBcm4odGhpcywgJ0VuY3J5cHRpb25LZXknLCBwcm9wcy5rZXlBcm4pO1xuXG4gICAgY29uc3QgYXJ0aWZhY3RCdWNrZXQgPSBuZXcgQXJ0aWZhY3RCdWNrZXQodGhpcywgJ0FydGlmYWN0QnVja2V0Jywge1xuICAgICAgZW5jcnlwdGlvbktleSxcbiAgICAgIGFjY291bnRJZHM6IHByb3BzLmFjY291bnRJZHNcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuZGVybHlpbmdQaXBlbGluZSA9IG5ldyBQaXBlbGluZSh0aGlzLCAnUGlwZWxpbmUnLCB7XG4gICAgICBhcnRpZmFjdEJ1Y2tldFxuICAgIH0pO1xuXG4gICAgbGV0IGlucHV0OiBDb2RlUGlwZWxpbmVTb3VyY2U7XG4gICAgaWYgKHByb3BzLmNvbm5lY3Rpb25Bcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5wdXQgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihwcm9wcy5yZXBvc2l0b3J5LCBwcm9wcy5icmFuY2gsIHtcbiAgICAgICAgY29ubmVjdGlvbkFybjogcHJvcHMuY29ubmVjdGlvbkFyblxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBwcm9wcy5yZXBvc2l0b3J5LnN0YXJ0c1dpdGgoXCJhcm46XCIpXG4gICAgICAgID8gUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeUFybih0aGlzLCBcIlJlcG9zaXRvcnlcIiwgcHJvcHMucmVwb3NpdG9yeSlcbiAgICAgICAgOiBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZSh0aGlzLCBcIlJlcG9zaXRvcnlcIiwgcHJvcHMucmVwb3NpdG9yeSlcbiAgICAgIGlucHV0ID0gQ29kZVBpcGVsaW5lU291cmNlLmNvZGVDb21taXQocmVwb3NpdG9yeSwgcHJvcHMuYnJhbmNoKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja05hbWUgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgY29uc3QgY2RrRGlyZWN0b3J5ID0gcHJvcHMuY2RrRGlyZWN0b3J5ID8/IFwiLlwiO1xuXG4gICAgbGV0IGNvbW1hbmRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCA9IHByb3BzLmNvbW1hbmRzO1xuICAgIGlmIChjb21tYW5kcyA9PT0gdW5kZWZpbmVkICYmIHByb3BzLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSkge1xuICAgICAgY29tbWFuZHMgPSBbXG4gICAgICAgIGBjZCAke2Nka0RpcmVjdG9yeSA/PyBcIi5cIn1gLFxuICAgICAgICAnbnBtIC1nIGluc3RhbGwgcG5wbScsXG4gICAgICAgICdwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUgLS1wcmVmZXItb2ZmbGluZScsXG4gICAgICAgICdwbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICdwbnBtIHJ1biB0ZXN0JyxcbiAgICAgICAgYHBucHggY2RrIHN5bnRoICR7c3RhY2tOYW1lfWBcbiAgICAgIF1cbiAgICB9IGVsc2UgaWYgKGNvbW1hbmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbW1hbmRzID0gW1xuICAgICAgICBgY2QgJHtjZGtEaXJlY3RvcnkgPz8gXCIuXCJ9YCxcbiAgICAgICAgJ25wbSBjb25maWcgc2V0IGZ1bmQgZmFsc2UnLFxuICAgICAgICAnbnBtIGNpIC0tcHJlZmVyLW9mZmxpbmUnLFxuICAgICAgICAnbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICducG0gcnVuIHRlc3QnLFxuICAgICAgICBgbnB4IGNkayBzeW50aCAke3N0YWNrTmFtZX1gXG4gICAgICBdXG4gICAgfVxuXG4gICAgdGhpcy5waXBlbGluZSA9IG5ldyBDb2RlUGlwZWxpbmUodGhpcywgJ0NvZGVQaXBlbGluZScsIHtcbiAgICAgIGNvZGVQaXBlbGluZTogdW5kZXJseWluZ1BpcGVsaW5lLFxuICAgICAgc2VsZk11dGF0aW9uOiBwcm9wcy5zZWxmTXV0YXRpb24gPz8gdHJ1ZSxcbiAgICAgIGRvY2tlckVuYWJsZWRGb3JTeW50aDogcHJvcHMuZG9ja2VyRW5hYmxlZEZvclN5bnRoID8/IHRydWUsXG4gICAgICBkb2NrZXJFbmFibGVkRm9yU2VsZk11dGF0aW9uOiBwcm9wcy5kb2NrZXJFbmFibGVkRm9yU2VsZk11dGF0aW9uID8/IHRydWUsXG4gICAgICBwdWJsaXNoQXNzZXRzSW5QYXJhbGxlbDogcHJvcHMucHVibGlzaEFzc2V0c0luUGFyYWxsZWwgPz8gZmFsc2UsXG4gICAgICBzeW50aDogbmV3IFNoZWxsU3RlcCgnU3ludGgnLCB7XG4gICAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IGAke2Nka0RpcmVjdG9yeX0vY2RrLm91dGAsXG4gICAgICAgIGlucHV0LFxuICAgICAgICBjb21tYW5kcyxcbiAgICAgICAgYWRkaXRpb25hbElucHV0czogcHJvcHMuYWRkaXRpb25hbElucHV0cz8/e31cbiAgICAgIH0pLFxuICAgICAgc3ludGhDb2RlQnVpbGREZWZhdWx0czoge1xuICAgICAgICAvLyBjYWNoZTogQ2FjaGUubG9jYWwoKSwgLy8gVE9ETyBOb3Qgc3VwcG9ydGVkIG9uIEFSTVxuICAgICAgICBwYXJ0aWFsQnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgICAgLy8gVE9ETyBOZWVkIHRvIGxvb2sgaW50byB0aGlzIGZ1cnRoZXJcbiAgICAgICAgICBjYWNoZToge1xuICAgICAgICAgICAgcGF0aHM6IFwiL3RtcC9ucG0tY2FjaGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgXCJuIDE2XCIsIC8vIEluc3RhbGwgTm9kZSB2MTZcbiAgICAgICAgICAgICAgICBcIm5wbSBpIC0tbG9jYXRpb249Z2xvYmFsIC0tbm8tZnVuZCBlc2J1aWxkXCIgLy8gSW5zdGFsbCBlc2J1aWxkIGxvY2FsbHlcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjb21wdXRlVHlwZTogcHJvcHMuY29tcHV0ZVR5cGUgPz8gQ29tcHV0ZVR5cGUuU01BTEwsXG4gICAgICAgICAgYnVpbGRJbWFnZTogcHJvcHMuYnVpbGRJbWFnZSA/PyBMaW51eEJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfNFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYXNzZXRQdWJsaXNoaW5nQ29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIGJ1aWxkSW1hZ2U6IExpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl80XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxmTXV0YXRpb25Db2RlQnVpbGREZWZhdWx0czoge1xuICAgICAgICBidWlsZEVudmlyb25tZW50OiB7XG4gICAgICAgICAgYnVpbGRJbWFnZTogTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNvZGVCdWlsZERlZmF1bHRzOiB7XG4gICAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfNFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4pIHtcbiAgICAgIHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlID0gbmV3IFBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZSh0aGlzLCAnTm90aWZpY2F0aW9uJywge1xuICAgICAgICBzb3VyY2U6IHVuZGVybHlpbmdQaXBlbGluZSxcbiAgICAgICAgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybjogcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFyblxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWRkU3RhZ2Uoc3RhZ2U6IFN0YWdlLCBvcHRpb25zPzogQWRkU3RhZ2VPcHRzKTogU3RhZ2VEZXBsb3ltZW50IHtcbiAgICByZXR1cm4gdGhpcy5waXBlbGluZS5hZGRTdGFnZShzdGFnZSwgb3B0aW9ucyk7XG4gIH1cblxuICBhZGRXYXZlKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBXYXZlT3B0aW9ucyk6IFdhdmUge1xuICAgIHJldHVybiB0aGlzLnBpcGVsaW5lLmFkZFdhdmUoaWQsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodePackageManager = void 0;
|
|
4
|
+
var NodePackageManager;
|
|
5
|
+
(function (NodePackageManager) {
|
|
6
|
+
NodePackageManager["NPM"] = "npm";
|
|
7
|
+
NodePackageManager["YARN"] = "yarn";
|
|
8
|
+
NodePackageManager["PNPM"] = "pnpm";
|
|
9
|
+
})(NodePackageManager = exports.NodePackageManager || (exports.NodePackageManager = {}));
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsaUNBQVcsQ0FBQTtJQUNYLG1DQUFhLENBQUE7SUFDYixtQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBSTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTm9kZVBhY2thZ2VNYW5hZ2VyIHtcbiAgTlBNID0gXCJucG1cIixcbiAgWUFSTiA9IFwieWFyblwiLFxuICBQTlBNID0gXCJwbnBtXCJcbn1cbiJdfQ==
|
|
@@ -14,4 +14,5 @@ __exportStar(require("./artifact-bucket"), exports);
|
|
|
14
14
|
__exportStar(require("./cdk-pipeline"), exports);
|
|
15
15
|
__exportStar(require("./extended-stack"), exports);
|
|
16
16
|
__exportStar(require("./pipeline-notification-rule"), exports);
|
|
17
|
-
|
|
17
|
+
__exportStar(require("./enums"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxvREFBa0M7QUFDbEMsaURBQStCO0FBQy9CLG1EQUFpQztBQUNqQywrREFBNEM7QUFDNUMsMENBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYXJ0aWZhY3QtYnVja2V0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jZGstcGlwZWxpbmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4dGVuZGVkLXN0YWNrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9waXBlbGluZS1ub3RpZmljYXRpb24tcnVsZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9lbnVtc1wiXG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
package/aws-ecs/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./lib"), exports);
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./log-configuration"), exports);
|
|
14
|
+
__exportStar(require("./standard-fargate-cluster"), exports);
|
|
15
|
+
__exportStar(require("./standard-fargate-service"), exports);
|
|
16
|
+
__exportStar(require("./standard-application-fargate-service"), exports);
|
|
17
|
+
__exportStar(require("./standard-network-fargate-service"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsNkRBQTJDO0FBQzNDLDZEQUEyQztBQUMzQyx5RUFBdUQ7QUFDdkQscUVBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbG9nLWNvbmZpZ3VyYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLWZhcmdhdGUtY2x1c3RlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtZmFyZ2F0ZS1zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1hcHBsaWNhdGlvbi1mYXJnYXRlLXNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YW5kYXJkLW5ldHdvcmstZmFyZ2F0ZS1zZXJ2aWNlXCI7XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { RetentionDays } from "aws-cdk-lib/aws-logs";
|
|
2
|
+
import { RemovalPolicy } from "aws-cdk-lib";
|
|
3
|
+
import { IKey } from "aws-cdk-lib/aws-kms";
|
|
4
|
+
/**
|
|
5
|
+
* Standard log configuration for ECS services.
|
|
6
|
+
*/
|
|
7
|
+
export interface LogConfiguration {
|
|
8
|
+
/** Enables logging to CloudWatch.
|
|
9
|
+
*
|
|
10
|
+
* @default - true
|
|
11
|
+
*/
|
|
12
|
+
readonly enabled?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The KMS customer managed key to encrypt the log group with.
|
|
15
|
+
*/
|
|
16
|
+
readonly encryptionKey?: IKey;
|
|
17
|
+
/**
|
|
18
|
+
* Name of the log group. Best practice is to not set this field.
|
|
19
|
+
*/
|
|
20
|
+
readonly logGroupName?: string;
|
|
21
|
+
/**
|
|
22
|
+
* How long, in days, the log contents will be retained.
|
|
23
|
+
*
|
|
24
|
+
* @default - RetentionDays.FIVE_DAYS
|
|
25
|
+
*/
|
|
26
|
+
readonly retention?: RetentionDays;
|
|
27
|
+
/**
|
|
28
|
+
* Determine the removal policy of this log group
|
|
29
|
+
*
|
|
30
|
+
* @default - RemovalPolicy.DESTROY
|
|
31
|
+
*/
|
|
32
|
+
readonly removalPolicy?: RemovalPolicy;
|
|
33
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2ctY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZXRlbnRpb25EYXlzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7UmVtb3ZhbFBvbGljeX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0lLZXl9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5cbi8qKlxuICogU3RhbmRhcmQgbG9nIGNvbmZpZ3VyYXRpb24gZm9yIEVDUyBzZXJ2aWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dDb25maWd1cmF0aW9uIHtcblxuICAvKiogRW5hYmxlcyBsb2dnaW5nIHRvIENsb3VkV2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMgY3VzdG9tZXIgbWFuYWdlZCBrZXkgdG8gZW5jcnlwdCB0aGUgbG9nIGdyb3VwIHdpdGguXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5PzogSUtleTtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgbG9nIGdyb3VwLiBCZXN0IHByYWN0aWNlIGlzIHRvIG5vdCBzZXQgdGhpcyBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IGxvbmcsIGluIGRheXMsIHRoZSBsb2cgY29udGVudHMgd2lsbCBiZSByZXRhaW5lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZXRlbnRpb25EYXlzLkZJVkVfREFZU1xuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHRoZSByZW1vdmFsIHBvbGljeSBvZiB0aGlzIGxvZyBncm91cFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG4iXX0=
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { StandardFargateService, StandardFargateServiceProps } from "./standard-fargate-service";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { Duration } from "aws-cdk-lib";
|
|
4
|
+
import { ApplicationProtocol, IApplicationListener, IApplicationLoadBalancer, TargetGroupLoadBalancingAlgorithmType } from "aws-cdk-lib/aws-elasticloadbalancingv2";
|
|
5
|
+
import { ARecord, IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
6
|
+
import { DomainName } from "../../aws-route53";
|
|
7
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
|
8
|
+
/**
|
|
9
|
+
* Properties for StandardApplicationFargateService
|
|
10
|
+
*/
|
|
11
|
+
export interface StandardApplicationFargateServiceProps extends StandardFargateServiceProps {
|
|
12
|
+
/**
|
|
13
|
+
* The name of an application-based stickiness cookie.
|
|
14
|
+
*
|
|
15
|
+
* @default - lb_affinity
|
|
16
|
+
*/
|
|
17
|
+
readonly stickinessCookieName?: string;
|
|
18
|
+
/**
|
|
19
|
+
* The stickiness cookie expiration period. Set to 0 to disable.
|
|
20
|
+
*
|
|
21
|
+
* @default - Duration.days(1)
|
|
22
|
+
*/
|
|
23
|
+
readonly stickinessCookieDuration?: Duration;
|
|
24
|
+
/**
|
|
25
|
+
* The time period during which the load balancer sends a newly registered target a
|
|
26
|
+
* linearly increasing share of the traffic to the target group. Set this to 0
|
|
27
|
+
* to disable.
|
|
28
|
+
*
|
|
29
|
+
* @default - Duration.seconds(30)
|
|
30
|
+
*/
|
|
31
|
+
readonly slowStart?: Duration;
|
|
32
|
+
/**
|
|
33
|
+
* The protocol used by the application in the container.
|
|
34
|
+
*
|
|
35
|
+
* @default - ApplicationProtocol.HTTP
|
|
36
|
+
*/
|
|
37
|
+
readonly applicationProtocol?: ApplicationProtocol;
|
|
38
|
+
/**
|
|
39
|
+
* The amount of time for Elastic Load Balancing to wait before deregistering a target.
|
|
40
|
+
*
|
|
41
|
+
* @default - Duration.seconds(10)
|
|
42
|
+
*/
|
|
43
|
+
readonly deregistrationDelay?: Duration;
|
|
44
|
+
/**
|
|
45
|
+
* The approximate number of seconds between health checks for an individual target.
|
|
46
|
+
*
|
|
47
|
+
* @default - Duration.seconds(10)
|
|
48
|
+
*/
|
|
49
|
+
readonly healthCheckInterval?: Duration;
|
|
50
|
+
/**
|
|
51
|
+
* The ping path destination where Elastic Load Balancing sends health check requests.
|
|
52
|
+
*
|
|
53
|
+
* @default - /health
|
|
54
|
+
*/
|
|
55
|
+
readonly healthCheckPath?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The amount of time, in seconds, during which no response from a target means a failed health check
|
|
58
|
+
*
|
|
59
|
+
* @default - Duration.seconds(3)
|
|
60
|
+
*/
|
|
61
|
+
readonly healthCheckTimeout?: Duration;
|
|
62
|
+
/**
|
|
63
|
+
* The number of consecutive health checks successes required before considering an unhealthy target healthy.
|
|
64
|
+
*
|
|
65
|
+
* @default - 2
|
|
66
|
+
*/
|
|
67
|
+
readonly healthyThresholdCount?: number;
|
|
68
|
+
/**
|
|
69
|
+
* The number of consecutive health check failures required before considering a target unhealthy.
|
|
70
|
+
*
|
|
71
|
+
* @default - 2
|
|
72
|
+
*/
|
|
73
|
+
readonly unhealthyThresholdCount?: number;
|
|
74
|
+
/**
|
|
75
|
+
* HTTP code to use when checking for a successful response from a target
|
|
76
|
+
*
|
|
77
|
+
* @default - 200-299
|
|
78
|
+
*/
|
|
79
|
+
readonly healthyHttpCodes?: string;
|
|
80
|
+
/**
|
|
81
|
+
* The load balancing algorithm to select targets for routing requests.
|
|
82
|
+
* To set this to LEAST_OUTSTANDING_REQUESTS, stickiness must be disabled.
|
|
83
|
+
*
|
|
84
|
+
* @default - ROUND_ROBIN
|
|
85
|
+
*/
|
|
86
|
+
readonly loadBalancingAlgorithmType?: TargetGroupLoadBalancingAlgorithmType;
|
|
87
|
+
/**
|
|
88
|
+
* The number of ALB requests to target for scaling.
|
|
89
|
+
* Disabled by default.
|
|
90
|
+
*/
|
|
91
|
+
readonly scaleRequestPerTarget?: number;
|
|
92
|
+
/**
|
|
93
|
+
* Domain name associated with this service.
|
|
94
|
+
*/
|
|
95
|
+
readonly domainName: string;
|
|
96
|
+
/**
|
|
97
|
+
* Path pattern to match on the load balancer.
|
|
98
|
+
*
|
|
99
|
+
* @default - ["/*"]
|
|
100
|
+
*/
|
|
101
|
+
readonly pathPattern?: string[];
|
|
102
|
+
/**
|
|
103
|
+
* Load balancer to attach this service to. If passed an ARN or name a lookup will be
|
|
104
|
+
* performed to locate the load balancer.
|
|
105
|
+
*/
|
|
106
|
+
readonly loadBalancer: IApplicationLoadBalancer | string;
|
|
107
|
+
/**
|
|
108
|
+
* The listener protocol to attach this service to.
|
|
109
|
+
*
|
|
110
|
+
* @default - ApplicationProtocol.HTTPS
|
|
111
|
+
*/
|
|
112
|
+
readonly listenerProtocol?: ApplicationProtocol;
|
|
113
|
+
/**
|
|
114
|
+
* The priority to give the target group on the ALB.
|
|
115
|
+
*
|
|
116
|
+
* @default - 1
|
|
117
|
+
*/
|
|
118
|
+
readonly targetGroupPriority?: number;
|
|
119
|
+
/**
|
|
120
|
+
* Zone of the domain name. If set, a route53 record is created for the service.
|
|
121
|
+
*/
|
|
122
|
+
readonly domainZone?: IHostedZone;
|
|
123
|
+
/**
|
|
124
|
+
* The VPC the services and load balancer are in.
|
|
125
|
+
*/
|
|
126
|
+
readonly vpc: IVpc;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Creates an ECS Fargate service and maps it to an Application Load Balancer (ALB).
|
|
130
|
+
*/
|
|
131
|
+
export declare class StandardApplicationFargateService extends StandardFargateService {
|
|
132
|
+
readonly loadBalancer: IApplicationLoadBalancer;
|
|
133
|
+
readonly listener: IApplicationListener;
|
|
134
|
+
readonly domainName?: DomainName;
|
|
135
|
+
readonly route53Record?: ARecord;
|
|
136
|
+
constructor(scope: Construct, id: string, props: StandardApplicationFargateServiceProps);
|
|
137
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardApplicationFargateService = void 0;
|
|
4
|
+
const standard_fargate_service_1 = require("./standard-fargate-service");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
const aws_elasticloadbalancingv2_1 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
7
|
+
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
8
|
+
const aws_route53_2 = require("../../aws-route53");
|
|
9
|
+
const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
|
|
10
|
+
/**
|
|
11
|
+
* Creates an ECS Fargate service and maps it to an Application Load Balancer (ALB).
|
|
12
|
+
*/
|
|
13
|
+
class StandardApplicationFargateService extends standard_fargate_service_1.StandardFargateService {
|
|
14
|
+
constructor(scope, id, props) {
|
|
15
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
16
|
+
super(scope, id, props);
|
|
17
|
+
let stickinessCookieDuration = (_a = props.stickinessCookieDuration) !== null && _a !== void 0 ? _a : aws_cdk_lib_1.Duration.days(1);
|
|
18
|
+
if (stickinessCookieDuration.toSeconds() === 0) {
|
|
19
|
+
stickinessCookieDuration = undefined;
|
|
20
|
+
}
|
|
21
|
+
let stickinessCookieName;
|
|
22
|
+
if (stickinessCookieDuration !== undefined) {
|
|
23
|
+
stickinessCookieName = (_b = props.stickinessCookieName) !== null && _b !== void 0 ? _b : "lb_affinity";
|
|
24
|
+
}
|
|
25
|
+
let slowStart = (_c = props.slowStart) !== null && _c !== void 0 ? _c : aws_cdk_lib_1.Duration.seconds(30);
|
|
26
|
+
if (slowStart.toSeconds() === 0) {
|
|
27
|
+
slowStart = undefined;
|
|
28
|
+
}
|
|
29
|
+
const targetGroup = new aws_elasticloadbalancingv2_1.ApplicationTargetGroup(this, "TargetGroup", {
|
|
30
|
+
targets: [this.service],
|
|
31
|
+
vpc: props.vpc,
|
|
32
|
+
port: this.port,
|
|
33
|
+
protocol: (_d = props.applicationProtocol) !== null && _d !== void 0 ? _d : aws_elasticloadbalancingv2_1.ApplicationProtocol.HTTP,
|
|
34
|
+
deregistrationDelay: (_e = props.deregistrationDelay) !== null && _e !== void 0 ? _e : aws_cdk_lib_1.Duration.seconds(10),
|
|
35
|
+
slowStart,
|
|
36
|
+
healthCheck: {
|
|
37
|
+
enabled: true,
|
|
38
|
+
interval: (_f = props.healthCheckInterval) !== null && _f !== void 0 ? _f : aws_cdk_lib_1.Duration.seconds(10),
|
|
39
|
+
path: (_g = props.healthCheckPath) !== null && _g !== void 0 ? _g : "/health",
|
|
40
|
+
timeout: (_h = props.healthCheckTimeout) !== null && _h !== void 0 ? _h : aws_cdk_lib_1.Duration.seconds(3),
|
|
41
|
+
healthyThresholdCount: (_j = props.healthyThresholdCount) !== null && _j !== void 0 ? _j : 2,
|
|
42
|
+
unhealthyThresholdCount: (_k = props.unhealthyThresholdCount) !== null && _k !== void 0 ? _k : 2,
|
|
43
|
+
healthyHttpCodes: (_l = props.healthyHttpCodes) !== null && _l !== void 0 ? _l : "200-299"
|
|
44
|
+
},
|
|
45
|
+
stickinessCookieName,
|
|
46
|
+
stickinessCookieDuration,
|
|
47
|
+
loadBalancingAlgorithmType: (_m = props.loadBalancingAlgorithmType) !== null && _m !== void 0 ? _m : aws_elasticloadbalancingv2_1.TargetGroupLoadBalancingAlgorithmType.ROUND_ROBIN
|
|
48
|
+
});
|
|
49
|
+
if (props.scaleRequestPerTarget !== undefined) {
|
|
50
|
+
this.scaling.scaleOnRequestCount("RequestCountScaling", {
|
|
51
|
+
scaleInCooldown: this.scaleInCooldown,
|
|
52
|
+
scaleOutCooldown: this.scaleOutCooldown,
|
|
53
|
+
targetGroup,
|
|
54
|
+
requestsPerTarget: props.scaleRequestPerTarget,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const targetGroupConditions = [];
|
|
58
|
+
targetGroupConditions.push(aws_elasticloadbalancingv2_1.ListenerCondition.pathPatterns((_o = props.pathPattern) !== null && _o !== void 0 ? _o : ["/*"]));
|
|
59
|
+
if (props.domainName !== undefined) {
|
|
60
|
+
targetGroupConditions.push(aws_elasticloadbalancingv2_1.ListenerCondition.hostHeaders([props.domainName]));
|
|
61
|
+
}
|
|
62
|
+
let loadBalancer;
|
|
63
|
+
if (typeof props.loadBalancer === "string") {
|
|
64
|
+
if (props.loadBalancer.startsWith("arn:")) {
|
|
65
|
+
loadBalancer = aws_elasticloadbalancingv2_1.ApplicationLoadBalancer.fromLookup(this, "LoadBalancer", {
|
|
66
|
+
loadBalancerArn: props.loadBalancer
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
loadBalancer = aws_elasticloadbalancingv2_1.ApplicationLoadBalancer.fromLookup(this, "LoadBalancer", {
|
|
71
|
+
loadBalancerTags: {
|
|
72
|
+
Name: props.loadBalancer
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
loadBalancer = props.loadBalancer;
|
|
79
|
+
}
|
|
80
|
+
const listener = aws_elasticloadbalancingv2_1.ApplicationListener.fromLookup(this, "Listener", {
|
|
81
|
+
loadBalancerArn: loadBalancer.loadBalancerArn,
|
|
82
|
+
listenerProtocol: (_p = props.listenerProtocol) !== null && _p !== void 0 ? _p : aws_elasticloadbalancingv2_1.ApplicationProtocol.HTTPS
|
|
83
|
+
});
|
|
84
|
+
listener.addTargetGroups(`${id}TargetGroups`, {
|
|
85
|
+
targetGroups: [targetGroup],
|
|
86
|
+
conditions: targetGroupConditions,
|
|
87
|
+
priority: (_q = props.targetGroupPriority) !== null && _q !== void 0 ? _q : 1
|
|
88
|
+
});
|
|
89
|
+
if (props.domainZone !== undefined) {
|
|
90
|
+
this.domainName = aws_route53_2.DomainName.fromFqdn(props.domainName, props.domainZone);
|
|
91
|
+
this.route53Record = this.domainName.createARecord(this, aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.LoadBalancerTarget(loadBalancer)));
|
|
92
|
+
}
|
|
93
|
+
this.loadBalancer = loadBalancer;
|
|
94
|
+
this.listener = listener;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.StandardApplicationFargateService = StandardApplicationFargateService;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtYXBwbGljYXRpb24tZmFyZ2F0ZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhcmQtYXBwbGljYXRpb24tZmFyZ2F0ZS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUErRjtBQUUvRiw2Q0FBcUM7QUFDckMsdUZBTWdEO0FBQ2hELHlEQUEyRTtBQUMzRSxtREFBNkM7QUFDN0MseUVBQW1FO0FBZ0puRTs7R0FFRztBQUNILE1BQWEsaUNBQWtDLFNBQVEsaURBQXNCO0lBTzNFLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkM7O1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksd0JBQXdCLFNBQXlCLEtBQUssQ0FBQyx3QkFBd0IsbUNBQUksc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEcsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxvQkFBd0MsQ0FBQztRQUM3QyxJQUFJLHdCQUF3QixLQUFLLFNBQVMsRUFBRTtZQUMxQyxvQkFBb0IsU0FBRyxLQUFLLENBQUMsb0JBQW9CLG1DQUFJLGFBQWEsQ0FBQTtTQUNuRTtRQUVELElBQUksU0FBUyxTQUF5QixLQUFLLENBQUMsU0FBUyxtQ0FBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDL0IsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUN2QjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksbURBQXNCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNsRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lB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QUFFO1lBQzVDLFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUMzQixVQUFVLEVBQUUscUJBQXFCO1lBQ2pDLFFBQVEsUUFBRSxLQUFLLENBQUMsbUJBQW1CLG1DQUFJLENBQUM7U0FDekMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLHdCQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUNyRCwwQkFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLHdDQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWxHRCw4RUFrR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0YW5kYXJkRmFyZ2F0ZVNlcnZpY2UsIFN0YW5kYXJkRmFyZ2F0ZVNlcnZpY2VQcm9wc30gZnJvbSBcIi4vc3RhbmRhcmQtZmFyZ2F0ZS1zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7RHVyYXRpb259IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25MaXN0ZW5lcixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsXG4gIEFwcGxpY2F0aW9uUHJvdG9jb2wsXG4gIEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAsIElBcHBsaWNhdGlvbkxpc3RlbmVyLCBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsIExpc3RlbmVyQ29uZGl0aW9uLFxuICBUYXJnZXRHcm91cExvYWRCYWxhbmNpbmdBbGdvcml0aG1UeXBlXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MlwiO1xuaW1wb3J0IHtBUmVjb3JkLCBJSG9zdGVkWm9uZSwgUmVjb3JkVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7RG9tYWluTmFtZX0gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0xvYWRCYWxhbmNlclRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7SVZwY30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBTdGFuZGFyZEFwcGxpY2F0aW9uRmFyZ2F0ZVNlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZEFwcGxpY2F0aW9uRmFyZ2F0ZVNlcnZpY2VQcm9wcyBleHRlbmRzIFN0YW5kYXJkRmFyZ2F0ZVNlcnZpY2VQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGFuIGFwcGxpY2F0aW9uLWJhc2VkIHN0aWNraW5lc3MgY29va2llLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGxiX2FmZmluaXR5XG4gICAqL1xuICByZWFkb25seSBzdGlja2luZXNzQ29va2llTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0aWNraW5lc3MgY29va2llIGV4cGlyYXRpb24gcGVyaW9kLiBTZXQgdG8gMCB0byBkaXNhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLmRheXMoMSlcbiAgICovXG4gIHJlYWRvbmx5IHN0aWNraW5lc3NDb29raWVEdXJhdGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBwZXJpb2QgZHVyaW5nIHdoaWNoIHRoZSBsb2FkIGJhbGFuY2VyIHNlbmRzIGEgbmV3bHkgcmVnaXN0ZXJlZCB0YXJnZXQgYVxuICAgKiBsaW5lYXJseSBpbmNyZWFzaW5nIHNoYXJlIG9mIHRoZSB0cmFmZmljIHRvIHRoZSB0YXJnZXQgZ3JvdXAuIFNldCB0aGlzIHRvIDBcbiAgICogdG8gZGlzYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEdXJhdGlvbi5zZWNvbmRzKDMwKVxuICAgKi9cbiAgcmVhZG9ubHkgc2xvd1N0YXJ0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBwcm90b2NvbCB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Qcm90b2NvbD86IEFwcGxpY2F0aW9uUHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSBmb3IgRWxhc3RpYyBMb2FkIEJhbGFuY2luZyB0byB3YWl0IGJlZm9yZSBkZXJlZ2lzdGVyaW5nIGEgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoMTApXG4gICAqL1xuICByZWFkb25seSBkZXJlZ2lzdHJhdGlvbkRlbGF5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhcHByb3hpbWF0ZSBudW1iZXIgb2Ygc2Vjb25kcyBiZXR3ZWVuIGhlYWx0aCBjaGVja3MgZm9yIGFuIGluZGl2aWR1YWwgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoMTApXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVja0ludGVydmFsPzogRHVyYXRpb25cblxuICAvKipcbiAgICogVGhlIHBpbmcgcGF0aCBkZXN0aW5hdGlvbiB3aGVyZSBFbGFzdGljIExvYWQgQmFsYW5jaW5nIHNlbmRzIGhlYWx0aCBjaGVjayByZXF1ZXN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAvaGVhbHRoXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVja1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gc2Vjb25kcywgZHVyaW5nIHdoaWNoIG5vIHJlc3BvbnNlIGZyb20gYSB0YXJnZXQgbWVhbnMgYSBmYWlsZWQgaGVhbHRoIGNoZWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uc2Vjb25kcygzKVxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2tUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUgaGVhbHRoIGNoZWNrcyBzdWNjZXNzZXMgcmVxdWlyZWQgYmVmb3JlIGNvbnNpZGVyaW5nIGFuIHVuaGVhbHRoeSB0YXJnZXQgaGVhbHRoeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAyXG4gICAqL1xuICByZWFkb25seSBoZWFsdGh5VGhyZXNob2xkQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUgaGVhbHRoIGNoZWNrIGZhaWx1cmVzIHJlcXVpcmVkIGJlZm9yZSBjb25zaWRlcmluZyBhIHRhcmdldCB1bmhlYWx0aHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMlxuICAgKi9cbiAgcmVhZG9ubHkgdW5oZWFsdGh5VGhyZXNob2xkQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhUVFAgY29kZSB0byB1c2Ugd2hlbiBjaGVja2luZyBmb3IgYSBzdWNjZXNzZnVsIHJlc3BvbnNlIGZyb20gYSB0YXJnZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSAyMDAtMjk5XG4gICAqL1xuICByZWFkb25seSBoZWFsdGh5SHR0cENvZGVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9hZCBiYWxhbmNpbmcgYWxnb3JpdGhtIHRvIHNlbGVjdCB0YXJnZXRzIGZvciByb3V0aW5nIHJlcXVlc3RzLlxuICAgKiBUbyBzZXQgdGhpcyB0byBMRUFTVF9PVVRTVEFORElOR19SRVFVRVNUUywgc3RpY2tpbmVzcyBtdXN0IGJlIGRpc2FibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJPVU5EX1JPQklOXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jaW5nQWxnb3JpdGhtVHlwZT86IFRhcmdldEdyb3VwTG9hZEJhbGFuY2luZ0FsZ29yaXRobVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgQUxCIHJlcXVlc3RzIHRvIHRhcmdldCBmb3Igc2NhbGluZy5cbiAgICogRGlzYWJsZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHNjYWxlUmVxdWVzdFBlclRhcmdldD86IG51bWJlcjtcblxuICAvKipcbiAgICogRG9tYWluIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCBwYXR0ZXJuIHRvIG1hdGNoIG9uIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFtcIi8qXCJdXG4gICAqL1xuICByZWFkb25seSBwYXRoUGF0dGVybj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIHRvIGF0dGFjaCB0aGlzIHNlcnZpY2UgdG8uIElmIHBhc3NlZCBhbiBBUk4gb3IgbmFtZSBhIGxvb2t1cCB3aWxsIGJlXG4gICAqIHBlcmZvcm1lZCB0byBsb2NhdGUgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciB8IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpc3RlbmVyIHByb3RvY29sIHRvIGF0dGFjaCB0aGlzIHNlcnZpY2UgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQU1xuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJQcm90b2NvbD86IEFwcGxpY2F0aW9uUHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSB0byBnaXZlIHRoZSB0YXJnZXQgZ3JvdXAgb24gdGhlIEFMQi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRHcm91cFByaW9yaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBab25lIG9mIHRoZSBkb21haW4gbmFtZS4gSWYgc2V0LCBhIHJvdXRlNTMgcmVjb3JkIGlzIGNyZWF0ZWQgZm9yIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluWm9uZT86IElIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHRoZSBzZXJ2aWNlcyBhbmQgbG9hZCBiYWxhbmNlciBhcmUgaW4uXG4gICAqL1xuICByZWFkb25seSB2cGM6IElWcGM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFQ1MgRmFyZ2F0ZSBzZXJ2aWNlIGFuZCBtYXBzIGl0IHRvIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgKEFMQikuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZEFwcGxpY2F0aW9uRmFyZ2F0ZVNlcnZpY2UgZXh0ZW5kcyBTdGFuZGFyZEZhcmdhdGVTZXJ2aWNlIHtcblxuICByZWFkb25seSBsb2FkQmFsYW5jZXI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbGlzdGVuZXI6IElBcHBsaWNhdGlvbkxpc3RlbmVyO1xuICByZWFkb25seSBkb21haW5OYW1lPzogRG9tYWluTmFtZTtcbiAgcmVhZG9ubHkgcm91dGU1M1JlY29yZD86IEFSZWNvcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YW5kYXJkQXBwbGljYXRpb25GYXJnYXRlU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBsZXQgc3RpY2tpbmVzc0Nvb2tpZUR1cmF0aW9uOiBEdXJhdGlvbiB8IHVuZGVmaW5lZCA9IHByb3BzLnN0aWNraW5lc3NDb29raWVEdXJhdGlvbiA/PyBEdXJhdGlvbi5kYXlzKDEpO1xuICAgIGlmIChzdGlja2luZXNzQ29va2llRHVyYXRpb24udG9TZWNvbmRzKCkgPT09IDApIHtcbiAgICAgIHN0aWNraW5lc3NDb29raWVEdXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgc3RpY2tpbmVzc0Nvb2tpZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoc3RpY2tpbmVzc0Nvb2tpZUR1cmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0aWNraW5lc3NDb29raWVOYW1lID0gcHJvcHMuc3RpY2tpbmVzc0Nvb2tpZU5hbWUgPz8gXCJsYl9hZmZpbml0eVwiXG4gICAgfVxuXG4gICAgbGV0IHNsb3dTdGFydDogRHVyYXRpb24gfCB1bmRlZmluZWQgPSBwcm9wcy5zbG93U3RhcnQgPz8gRHVyYXRpb24uc2Vjb25kcygzMCk7XG4gICAgaWYgKHNsb3dTdGFydC50b1NlY29uZHMoKSA9PT0gMCkge1xuICAgICAgc2xvd1N0YXJ0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEdyb3VwID0gbmV3IEFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgXCJUYXJnZXRHcm91cFwiLCB7XG4gICAgICB0YXJnZXRzOiBbdGhpcy5zZXJ2aWNlXSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgcHJvdG9jb2w6IHByb3BzLmFwcGxpY2F0aW9uUHJvdG9jb2wgPz8gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQLFxuICAgICAgZGVyZWdpc3RyYXRpb25EZWxheTogcHJvcHMuZGVyZWdpc3RyYXRpb25EZWxheSA/PyBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgIHNsb3dTdGFydCxcbiAgICAgIGhlYWx0aENoZWNrOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIGludGVydmFsOiBwcm9wcy5oZWFsdGhDaGVja0ludGVydmFsID8/IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgICBwYXRoOiBwcm9wcy5oZWFsdGhDaGVja1BhdGggPz8gXCIvaGVhbHRoXCIsXG4gICAgICAgIHRpbWVvdXQ6IHByb3BzLmhlYWx0aENoZWNrVGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDMpLFxuICAgICAgICBoZWFsdGh5VGhyZXNob2xkQ291bnQ6IHByb3BzLmhlYWx0aHlUaHJlc2hvbGRDb3VudCA/PyAyLFxuICAgICAgICB1bmhlYWx0aHlUaHJlc2hvbGRDb3VudDogcHJvcHMudW5oZWFsdGh5VGhyZXNob2xkQ291bnQgPz8gMixcbiAgICAgICAgaGVhbHRoeUh0dHBDb2RlczogcHJvcHMuaGVhbHRoeUh0dHBDb2RlcyA/PyBcIjIwMC0yOTlcIlxuICAgICAgfSxcbiAgICAgIHN0aWNraW5lc3NDb29raWVOYW1lLFxuICAgICAgc3RpY2tpbmVzc0Nvb2tpZUR1cmF0aW9uLFxuICAgICAgbG9hZEJhbGFuY2luZ0FsZ29yaXRobVR5cGU6IHByb3BzLmxvYWRCYWxhbmNpbmdBbGdvcml0aG1UeXBlID8/IFRhcmdldEdyb3VwTG9hZEJhbGFuY2luZ0FsZ29yaXRobVR5cGUuUk9VTkRfUk9CSU5cbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5zY2FsZVJlcXVlc3RQZXJUYXJnZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zY2FsaW5nLnNjYWxlT25SZXF1ZXN0Q291bnQoXCJSZXF1ZXN0Q291bnRTY2FsaW5nXCIsIHtcbiAgICAgICAgc2NhbGVJbkNvb2xkb3duOiB0aGlzLnNjYWxlSW5Db29sZG93bixcbiAgICAgICAgc2NhbGVPdXRDb29sZG93bjogdGhpcy5zY2FsZU91dENvb2xkb3duLFxuICAgICAgICB0YXJnZXRHcm91cCxcbiAgICAgICAgcmVxdWVzdHNQZXJUYXJnZXQ6IHByb3BzLnNjYWxlUmVxdWVzdFBlclRhcmdldCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEdyb3VwQ29uZGl0aW9uczogTGlzdGVuZXJDb25kaXRpb25bXSA9IFtdO1xuICAgIHRhcmdldEdyb3VwQ29uZGl0aW9ucy5wdXNoKExpc3RlbmVyQ29uZGl0aW9uLnBhdGhQYXR0ZXJucyhwcm9wcy5wYXRoUGF0dGVybiA/PyBbXCIvKlwiXSkpO1xuICAgIGlmIChwcm9wcy5kb21haW5OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldEdyb3VwQ29uZGl0aW9ucy5wdXNoKExpc3RlbmVyQ29uZGl0aW9uLmhvc3RIZWFkZXJzKFtwcm9wcy5kb21haW5OYW1lXSkpO1xuICAgIH1cblxuICAgIGxldCBsb2FkQmFsYW5jZXI6IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgICBpZiAodHlwZW9mIHByb3BzLmxvYWRCYWxhbmNlciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaWYgKHByb3BzLmxvYWRCYWxhbmNlci5zdGFydHNXaXRoKFwiYXJuOlwiKSkge1xuICAgICAgICBsb2FkQmFsYW5jZXIgPSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlci5mcm9tTG9va3VwKHRoaXMsIFwiTG9hZEJhbGFuY2VyXCIsIHtcbiAgICAgICAgICBsb2FkQmFsYW5jZXJBcm46IHByb3BzLmxvYWRCYWxhbmNlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvYWRCYWxhbmNlciA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLmZyb21Mb29rdXAodGhpcywgXCJMb2FkQmFsYW5jZXJcIiwge1xuICAgICAgICAgIGxvYWRCYWxhbmNlclRhZ3M6IHtcbiAgICAgICAgICAgIE5hbWU6IHByb3BzLmxvYWRCYWxhbmNlclxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRCYWxhbmNlciA9IHByb3BzLmxvYWRCYWxhbmNlcjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ZW5lciA9IEFwcGxpY2F0aW9uTGlzdGVuZXIuZnJvbUxvb2t1cCh0aGlzLCBcIkxpc3RlbmVyXCIsIHtcbiAgICAgIGxvYWRCYWxhbmNlckFybjogbG9hZEJhbGFuY2VyLmxvYWRCYWxhbmNlckFybixcbiAgICAgIGxpc3RlbmVyUHJvdG9jb2w6IHByb3BzLmxpc3RlbmVyUHJvdG9jb2wgPz8gQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQU1xuICAgIH0pO1xuXG4gICAgbGlzdGVuZXIuYWRkVGFyZ2V0R3JvdXBzKGAke2lkfVRhcmdldEdyb3Vwc2AsIHtcbiAgICAgIHRhcmdldEdyb3VwczogW3RhcmdldEdyb3VwXSxcbiAgICAgIGNvbmRpdGlvbnM6IHRhcmdldEdyb3VwQ29uZGl0aW9ucyxcbiAgICAgIHByaW9yaXR5OiBwcm9wcy50YXJnZXRHcm91cFByaW9yaXR5ID8/IDFcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5kb21haW5ab25lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZG9tYWluTmFtZSA9IERvbWFpbk5hbWUuZnJvbUZxZG4ocHJvcHMuZG9tYWluTmFtZSwgcHJvcHMuZG9tYWluWm9uZSk7XG4gICAgICB0aGlzLnJvdXRlNTNSZWNvcmQgPSB0aGlzLmRvbWFpbk5hbWUuY3JlYXRlQVJlY29yZCh0aGlzLFxuICAgICAgICBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBMb2FkQmFsYW5jZXJUYXJnZXQobG9hZEJhbGFuY2VyKSkpO1xuICAgIH1cblxuICAgIHRoaXMubG9hZEJhbGFuY2VyID0gbG9hZEJhbGFuY2VyO1xuICAgIHRoaXMubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgfVxufVxuIl19
|