@fjall/components-infrastructure 0.88.3 → 0.88.4
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/lib/app.d.ts +33 -10
- package/dist/lib/app.js +79 -36
- package/dist/lib/aspects/index.d.ts +1 -0
- package/dist/lib/aspects/index.js +6 -0
- package/dist/lib/config/aws/accountAuditRole.d.ts +20 -0
- package/dist/lib/config/aws/accountAuditRole.js +38 -0
- package/dist/lib/config/aws/accountMonitoringRole.d.ts +22 -0
- package/dist/lib/config/aws/accountMonitoringRole.js +133 -0
- package/dist/lib/config/aws/cloudTrail.d.ts +0 -3
- package/dist/lib/config/aws/cloudTrail.js +2 -2
- package/dist/lib/config/aws/disasterRecovery.js +26 -14
- package/dist/lib/config/aws/ecrDefaultImage.js +4 -3
- package/dist/lib/config/aws/index.d.ts +4 -0
- package/dist/lib/config/aws/index.js +5 -1
- package/dist/lib/config/aws/oidcConnector.d.ts +8 -0
- package/dist/lib/config/aws/oidcConnector.js +46 -0
- package/dist/lib/config/aws/platform.d.ts +2 -0
- package/dist/lib/config/aws/platform.js +6 -0
- package/dist/lib/config/index.d.ts +2 -0
- package/dist/lib/config/index.js +21 -0
- package/dist/lib/patterns/aws/account.js +22 -10
- package/dist/lib/patterns/aws/cdn.d.ts +19 -40
- package/dist/lib/patterns/aws/cdn.js +21 -17
- package/dist/lib/patterns/aws/compute.d.ts +6 -7
- package/dist/lib/patterns/aws/compute.js +7 -9
- package/dist/lib/patterns/aws/database.d.ts +7 -87
- package/dist/lib/patterns/aws/database.js +15 -38
- package/dist/lib/patterns/aws/index.d.ts +1 -1
- package/dist/lib/patterns/aws/index.js +2 -2
- package/dist/lib/patterns/aws/interfaces/cdn.d.ts +26 -0
- package/dist/lib/patterns/aws/interfaces/cdn.js +14 -0
- package/dist/lib/patterns/aws/interfaces/connector.d.ts +4 -181
- package/dist/lib/patterns/aws/interfaces/connector.js +16 -113
- package/dist/lib/patterns/aws/interfaces/index.d.ts +1 -0
- package/dist/lib/patterns/aws/interfaces/index.js +5 -2
- package/dist/lib/patterns/aws/interfaces/pattern.d.ts +6 -6
- package/dist/lib/patterns/aws/interfaces/pattern.js +1 -1
- package/dist/lib/patterns/aws/network.js +6 -9
- package/dist/lib/patterns/aws/organisation.d.ts +4 -2
- package/dist/lib/patterns/aws/organisation.js +21 -8
- package/dist/lib/patterns/aws/payload.js +11 -12
- package/dist/lib/patterns/aws/storage.d.ts +3 -2
- package/dist/lib/patterns/aws/storage.js +1 -1
- package/dist/lib/resources/aws/audit/auditRole.js +4 -4
- package/dist/lib/resources/aws/audit/index.d.ts +1 -0
- package/dist/lib/resources/aws/audit/index.js +6 -0
- package/dist/lib/resources/aws/backup/backupPlan.js +3 -2
- package/dist/lib/resources/aws/backup/backupVault.js +5 -3
- package/dist/lib/resources/aws/base/awsStack.d.ts +4 -2
- package/dist/lib/resources/aws/base/awsStack.js +8 -2
- package/dist/lib/resources/aws/cdn/cloudFront.d.ts +14 -0
- package/dist/lib/resources/aws/cdn/cloudFront.js +52 -18
- package/dist/lib/resources/aws/compute/ec2.js +18 -22
- package/dist/lib/resources/aws/compute/ecs.d.ts +9 -8
- package/dist/lib/resources/aws/compute/ecs.js +53 -41
- package/dist/lib/resources/aws/compute/index.d.ts +1 -0
- package/dist/lib/resources/aws/compute/index.js +2 -1
- package/dist/lib/resources/aws/compute/lambda.d.ts +0 -2
- package/dist/lib/resources/aws/compute/lambda.js +12 -27
- package/dist/lib/resources/aws/database/dynamodb.js +3 -13
- package/dist/lib/resources/aws/database/index.d.ts +8 -2
- package/dist/lib/resources/aws/database/index.js +19 -3
- package/dist/lib/resources/aws/database/rdsAurora.d.ts +2 -3
- package/dist/lib/resources/aws/database/rdsAurora.js +32 -68
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +6 -6
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +25 -29
- package/dist/lib/resources/aws/database/rdsDefaults.d.ts +11 -0
- package/dist/lib/resources/aws/database/rdsDefaults.js +15 -0
- package/dist/lib/resources/aws/database/rdsHelpers.d.ts +39 -0
- package/dist/lib/resources/aws/database/rdsHelpers.js +75 -0
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +7 -8
- package/dist/lib/resources/aws/database/rdsInstance.js +40 -84
- package/dist/lib/resources/aws/database/rdsProxyOutput.d.ts +7 -0
- package/dist/lib/resources/aws/database/rdsProxyOutput.js +18 -0
- package/dist/lib/resources/aws/iam/index.d.ts +0 -1
- package/dist/lib/resources/aws/iam/index.js +1 -2
- package/dist/lib/resources/aws/index.d.ts +0 -1
- package/dist/lib/resources/aws/index.js +1 -2
- package/dist/lib/resources/aws/logging/cloudTrail.js +13 -3
- package/dist/lib/resources/aws/logging/index.d.ts +2 -0
- package/dist/lib/resources/aws/logging/index.js +19 -0
- package/dist/lib/resources/aws/messaging/index.d.ts +3 -2
- package/dist/lib/resources/aws/messaging/index.js +4 -3
- package/dist/lib/resources/aws/messaging/sqs.js +14 -11
- package/dist/lib/resources/aws/messaging/utils.d.ts +1 -2
- package/dist/lib/resources/aws/messaging/utils.js +3 -4
- package/dist/lib/resources/aws/monitoring/index.d.ts +0 -1
- package/dist/lib/resources/aws/monitoring/index.js +4 -17
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +28 -0
- package/dist/lib/resources/aws/networking/hostedZone.js +153 -0
- package/dist/lib/resources/aws/networking/index.d.ts +2 -0
- package/dist/lib/resources/aws/networking/index.js +3 -1
- package/dist/lib/resources/aws/networking/ipamPool.js +57 -31
- package/dist/lib/resources/aws/networking/securityGroup.d.ts +5 -0
- package/dist/lib/resources/aws/networking/securityGroup.js +14 -0
- package/dist/lib/resources/aws/networking/vpc.js +9 -4
- package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +17 -0
- package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +66 -0
- package/dist/lib/resources/aws/organisation/index.d.ts +1 -0
- package/dist/lib/resources/aws/organisation/index.js +4 -2
- package/dist/lib/resources/aws/secrets/index.d.ts +0 -1
- package/dist/lib/resources/aws/secrets/index.js +1 -2
- package/dist/lib/resources/aws/storage/ecr.d.ts +0 -1
- package/dist/lib/resources/aws/storage/ecr.js +5 -5
- package/dist/lib/resources/aws/storage/s3.d.ts +3 -3
- package/dist/lib/resources/aws/storage/s3.js +1 -1
- package/dist/lib/resources/aws/utilities/index.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/index.js +22 -0
- package/dist/lib/utils/backupTierMapping.d.ts +11 -0
- package/dist/lib/utils/backupTierMapping.js +17 -0
- package/dist/lib/utils/capitaliseString.d.ts +6 -0
- package/dist/lib/utils/capitaliseString.js +10 -1
- package/dist/lib/utils/connections.d.ts +46 -0
- package/dist/lib/utils/connections.js +159 -0
- package/dist/lib/utils/connector.d.ts +183 -0
- package/dist/lib/utils/connector.js +117 -0
- package/dist/lib/utils/databaseTypes.d.ts +85 -0
- package/dist/lib/utils/databaseTypes.js +34 -0
- package/dist/lib/utils/env.d.ts +42 -0
- package/dist/lib/utils/env.js +128 -0
- package/dist/lib/utils/getConfig.d.ts +0 -5
- package/dist/lib/utils/getConfig.js +1 -4
- package/dist/lib/utils/index.d.ts +6 -0
- package/dist/lib/utils/index.js +7 -1
- package/dist/lib/utils/removalPolicy.d.ts +2 -0
- package/dist/lib/utils/removalPolicy.js +16 -0
- package/dist/lib/utils/standardTagsAspect.d.ts +4 -0
- package/dist/lib/utils/standardTagsAspect.js +8 -8
- package/dist/lib/utils/vpcUtils.d.ts +14 -0
- package/dist/lib/utils/vpcUtils.js +28 -0
- package/package.json +6 -6
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountMonitoringRole = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
const platform_1 = require("./platform");
|
|
8
|
+
/**
|
|
9
|
+
* Per-account monitoring role for the Fjall platform.
|
|
10
|
+
*
|
|
11
|
+
* Creates a single `FjallMonitoring` IAM role per AWS account (in the Account stack)
|
|
12
|
+
* that grants the Fjall platform read access to CloudWatch metrics, ECS, RDS, S3,
|
|
13
|
+
* Lambda, ALB, CloudWatch Logs, and Cost Explorer.
|
|
14
|
+
*
|
|
15
|
+
* This replaces the previous per-app `FjallMonitoring-{appName}` roles.
|
|
16
|
+
*/
|
|
17
|
+
class AccountMonitoringRole extends constructs_1.Construct {
|
|
18
|
+
constructor(scope, id, props) {
|
|
19
|
+
super(scope, id);
|
|
20
|
+
this.role = new aws_iam_1.Role(this, "Role", {
|
|
21
|
+
roleName: "FjallMonitoring",
|
|
22
|
+
path: "/",
|
|
23
|
+
assumedBy: new aws_iam_1.AccountPrincipal(platform_1.FJALL_PLATFORM_ACCOUNT_ID),
|
|
24
|
+
description: "Cross-account monitoring role for the Fjall platform. Grants read access to CloudWatch, ECS, RDS, S3, Lambda, ALB, Logs, and Cost Explorer.",
|
|
25
|
+
...(props?.fjallOrgId ? { externalIds: [props.fjallOrgId] } : {})
|
|
26
|
+
});
|
|
27
|
+
// CloudWatch Metrics
|
|
28
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
29
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
30
|
+
actions: [
|
|
31
|
+
"cloudwatch:GetMetricData",
|
|
32
|
+
"cloudwatch:GetMetricStatistics",
|
|
33
|
+
"cloudwatch:ListMetrics"
|
|
34
|
+
],
|
|
35
|
+
resources: ["*"]
|
|
36
|
+
}));
|
|
37
|
+
// ECS
|
|
38
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
39
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
40
|
+
actions: [
|
|
41
|
+
"ecs:DescribeServices",
|
|
42
|
+
"ecs:DescribeTasks",
|
|
43
|
+
"ecs:ListTasks",
|
|
44
|
+
"ecs:DescribeClusters",
|
|
45
|
+
"ecs:ListServices"
|
|
46
|
+
],
|
|
47
|
+
resources: ["*"]
|
|
48
|
+
}));
|
|
49
|
+
// RDS
|
|
50
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
51
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
52
|
+
actions: [
|
|
53
|
+
"rds:DescribeDBInstances",
|
|
54
|
+
"rds:DescribeDBClusters",
|
|
55
|
+
"rds:DescribeDBProxies",
|
|
56
|
+
"rds:ListTagsForResource"
|
|
57
|
+
],
|
|
58
|
+
resources: ["*"]
|
|
59
|
+
}));
|
|
60
|
+
// S3
|
|
61
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
62
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
63
|
+
actions: [
|
|
64
|
+
"s3:GetBucketLocation",
|
|
65
|
+
"s3:GetBucketMetricsConfiguration",
|
|
66
|
+
"s3:GetBucketTagging",
|
|
67
|
+
"s3:ListBucket",
|
|
68
|
+
"s3:ListAllMyBuckets"
|
|
69
|
+
],
|
|
70
|
+
resources: ["*"]
|
|
71
|
+
}));
|
|
72
|
+
// Lambda
|
|
73
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
74
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
75
|
+
actions: [
|
|
76
|
+
"lambda:GetFunction",
|
|
77
|
+
"lambda:GetFunctionConfiguration",
|
|
78
|
+
"lambda:ListFunctions",
|
|
79
|
+
"lambda:ListTags"
|
|
80
|
+
],
|
|
81
|
+
resources: ["*"]
|
|
82
|
+
}));
|
|
83
|
+
// Application Load Balancer
|
|
84
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
85
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
86
|
+
actions: [
|
|
87
|
+
"elasticloadbalancing:DescribeLoadBalancers",
|
|
88
|
+
"elasticloadbalancing:DescribeTargetGroups",
|
|
89
|
+
"elasticloadbalancing:DescribeTargetHealth",
|
|
90
|
+
"elasticloadbalancing:DescribeTags"
|
|
91
|
+
],
|
|
92
|
+
resources: ["*"]
|
|
93
|
+
}));
|
|
94
|
+
// CloudWatch Logs
|
|
95
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
96
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
97
|
+
actions: [
|
|
98
|
+
"logs:FilterLogEvents",
|
|
99
|
+
"logs:GetLogEvents",
|
|
100
|
+
"logs:DescribeLogGroups",
|
|
101
|
+
"logs:DescribeLogStreams"
|
|
102
|
+
],
|
|
103
|
+
resources: ["*"]
|
|
104
|
+
}));
|
|
105
|
+
// Cost Explorer
|
|
106
|
+
this.role.addToPolicy(new aws_iam_1.PolicyStatement({
|
|
107
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
108
|
+
actions: [
|
|
109
|
+
"ce:GetCostAndUsage",
|
|
110
|
+
"ce:GetCostAndUsageWithResources",
|
|
111
|
+
"ce:GetCostForecast",
|
|
112
|
+
"ce:GetCostCategories",
|
|
113
|
+
"ce:GetSavingsPlansUtilization",
|
|
114
|
+
"ce:GetSavingsPlansUtilizationDetails",
|
|
115
|
+
"ce:GetSavingsPlansCoverage",
|
|
116
|
+
"ce:GetSavingsPlansPurchaseRecommendation",
|
|
117
|
+
"ce:GetReservationUtilization",
|
|
118
|
+
"ce:GetReservationCoverage",
|
|
119
|
+
"ce:GetReservationPurchaseRecommendation",
|
|
120
|
+
"ce:GetRightsizingRecommendation"
|
|
121
|
+
],
|
|
122
|
+
resources: ["*"]
|
|
123
|
+
}));
|
|
124
|
+
new aws_cdk_lib_1.CfnOutput(this, "FjallMonitoringRoleArn", {
|
|
125
|
+
key: "FjallMonitoringRoleArn",
|
|
126
|
+
value: this.role.roleArn,
|
|
127
|
+
description: "ARN of the per-account Fjall monitoring role",
|
|
128
|
+
exportName: "FjallMonitoringRoleArn"
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.AccountMonitoringRole = AccountMonitoringRole;
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudE1vbml0b3JpbmdSb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvYWNjb3VudE1vbml0b3JpbmdSb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3QztBQUN4QyxpREFLNkI7QUFDN0IsMkNBQXVDO0FBQ3ZDLHlDQUF1RDtBQVV2RDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUFHbEQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBa0M7UUFFbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksY0FBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDakMsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixJQUFJLEVBQUUsR0FBRztZQUNULFNBQVMsRUFBRSxJQUFJLDBCQUFnQixDQUFDLG9DQUF5QixDQUFDO1lBQzFELFdBQVcsRUFDVCw2SUFBNkk7WUFDL0ksR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRSxDQUFDLENBQUM7UUFFSCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQ25CLElBQUkseUJBQWUsQ0FBQztZQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sRUFBRTtnQkFDUCwwQkFBMEI7Z0JBQzFCLGdDQUFnQztnQkFDaEMsd0JBQXdCO2FBQ3pCO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBRUYsTUFBTTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUNuQixJQUFJLHlC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ckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBbkpELHNEQW1KQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgUm9sZSxcbiAgQWNjb3VudFByaW5jaXBhbCxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBFZmZlY3Rcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBGSkFMTF9QTEFURk9STV9BQ0NPVU5UX0lEIH0gZnJvbSBcIi4vcGxhdGZvcm1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50TW9uaXRvcmluZ1JvbGVQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBGamFsbCBvcmdhbmlzYXRpb24gSUQuIFdoZW4gcHJvdmlkZWQsIHVzZWQgYXMgdGhlIEV4dGVybmFsSWRcbiAgICogY29uZGl0aW9uIGZvciBhZGRpdGlvbmFsIGFzc3VtZS1yb2xlIHNlY3VyaXR5LlxuICAgKi9cbiAgZmphbGxPcmdJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQZXItYWNjb3VudCBtb25pdG9yaW5nIHJvbGUgZm9yIHRoZSBGamFsbCBwbGF0Zm9ybS5cbiAqXG4gKiBDcmVhdGVzIGEgc2luZ2xlIGBGamFsbE1vbml0b3JpbmdgIElBTSByb2xlIHBlciBBV1MgYWNjb3VudCAoaW4gdGhlIEFjY291bnQgc3RhY2spXG4gKiB0aGF0IGdyYW50cyB0aGUgRmphbGwgcGxhdGZvcm0gcmVhZCBhY2Nlc3MgdG8gQ2xvdWRXYXRjaCBtZXRyaWNzLCBFQ1MsIFJEUywgUzMsXG4gKiBMYW1iZGEsIEFMQiwgQ2xvdWRXYXRjaCBMb2dzLCBhbmQgQ29zdCBFeHBsb3Jlci5cbiAqXG4gKiBUaGlzIHJlcGxhY2VzIHRoZSBwcmV2aW91cyBwZXItYXBwIGBGamFsbE1vbml0b3Jpbmcte2FwcE5hbWV9YCByb2xlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnRNb25pdG9yaW5nUm9sZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IEFjY291bnRNb25pdG9yaW5nUm9sZVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnJvbGUgPSBuZXcgUm9sZSh0aGlzLCBcIlJvbGVcIiwge1xuICAgICAgcm9sZU5hbWU6IFwiRmphbGxNb25pdG9yaW5nXCIsXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICAgIGFzc3VtZWRCeTogbmV3IEFjY291bnRQcmluY2lwYWwoRkpBTExfUExBVEZPUk1fQUNDT1VOVF9JRCksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJDcm9zcy1hY2NvdW50IG1vbml0b3Jpbmcgcm9sZSBmb3IgdGhlIEZqYWxsIHBsYXRmb3JtLiBHcmFudHMgcmVhZCBhY2Nlc3MgdG8gQ2xvdWRXYXRjaCwgRUNTLCBSRFMsIFMzLCBMYW1iZGEsIEFMQiwgTG9ncywgYW5kIENvc3QgRXhwbG9yZXIuXCIsXG4gICAgICAuLi4ocHJvcHM/LmZqYWxsT3JnSWQgPyB7IGV4dGVybmFsSWRzOiBbcHJvcHMuZmphbGxPcmdJZF0gfSA6IHt9KVxuICAgIH0pO1xuXG4gICAgLy8gQ2xvdWRXYXRjaCBNZXRyaWNzXG4gICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJjbG91ZHdhdGNoOkdldE1ldHJpY0RhdGFcIixcbiAgICAgICAgICBcImNsb3Vkd2F0Y2g6R2V0TWV0cmljU3RhdGlzdGljc1wiLFxuICAgICAgICAgIFwiY2xvdWR3YXRjaDpMaXN0TWV0cmljc1wiXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gRUNTXG4gICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJlY3M6RGVzY3JpYmVTZXJ2aWNlc1wiLFxuICAgICAgICAgIFwiZWNzOkRlc2NyaWJlVGFza3NcIixcbiAgICAgICAgICBcImVjczpMaXN0VGFza3NcIixcbiAgICAgICAgICBcImVjczpEZXNjcmliZUNsdXN0ZXJzXCIsXG4gICAgICAgICAgXCJlY3M6TGlzdFNlcnZpY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBSRFNcbiAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcInJkczpEZXNjcmliZURCSW5zdGFuY2VzXCIsXG4gICAgICAgICAgXCJyZHM6RGVzY3JpYmVEQkNsdXN0ZXJzXCIsXG4gICAgICAgICAgXCJyZHM6RGVzY3JpYmVEQlByb3hpZXNcIixcbiAgICAgICAgICBcInJkczpMaXN0VGFnc0ZvclJlc291cmNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBTM1xuICAgIHRoaXMucm9sZS5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiczM6R2V0QnVja2V0TG9jYXRpb25cIixcbiAgICAgICAgICBcInMzOkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgXCJzMzpHZXRCdWNrZXRUYWdnaW5nXCIsXG4gICAgICAgICAgXCJzMzpMaXN0QnVja2V0XCIsXG4gICAgICAgICAgXCJzMzpMaXN0QWxsTXlCdWNrZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBMYW1iZGFcbiAgICB0aGlzLnJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImxhbWJkYTpHZXRGdW5jdGlvblwiLFxuICAgICAgICAgIFwibGFtYmRhOkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgIFwibGFtYmRhOkxpc3RGdW5jdGlvbnNcIixcbiAgICAgICAgICBcImxhbWJkYTpMaXN0VGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclxuICAgIHRoaXMucm9sZS5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6RGVzY3JpYmVMb2FkQmFsYW5jZXJzXCIsXG4gICAgICAgICAgXCJlbGFzdGljbG9hZGJhbGFuY2luZzpEZXNjcmliZVRhcmdldEdyb3Vwc1wiLFxuICAgICAgICAgIFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6RGVzY3JpYmVUYXJnZXRIZWFsdGhcIixcbiAgICAgICAgICBcImVsYXN0aWNsb2FkYmFsYW5jaW5nOkRlc2NyaWJlVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gQ2xvdWRXYXRjaCBMb2dzXG4gICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJsb2dzOkZpbHRlckxvZ0V2ZW50c1wiLFxuICAgICAgICAgIFwibG9nczpHZXRMb2dFdmVudHNcIixcbiAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dHcm91cHNcIixcbiAgICAgICAgICBcImxvZ3M6RGVzY3JpYmVMb2dTdHJlYW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBDb3N0IEV4cGxvcmVyXG4gICAgdGhpcy5yb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJjZTpHZXRDb3N0QW5kVXNhZ2VcIixcbiAgICAgICAgICBcImNlOkdldENvc3RBbmRVc2FnZVdpdGhSZXNvdXJjZXNcIixcbiAgICAgICAgICBcImNlOkdldENvc3RGb3JlY2FzdFwiLFxuICAgICAgICAgIFwiY2U6R2V0Q29zdENhdGVnb3JpZXNcIixcbiAgICAgICAgICBcImNlOkdldFNhdmluZ3NQbGFuc1V0aWxpemF0aW9uXCIsXG4gICAgICAgICAgXCJjZTpHZXRTYXZpbmdzUGxhbnNVdGlsaXphdGlvbkRldGFpbHNcIixcbiAgICAgICAgICBcImNlOkdldFNhdmluZ3NQbGFuc0NvdmVyYWdlXCIsXG4gICAgICAgICAgXCJjZTpHZXRTYXZpbmdzUGxhbnNQdXJjaGFzZVJlY29tbWVuZGF0aW9uXCIsXG4gICAgICAgICAgXCJjZTpHZXRSZXNlcnZhdGlvblV0aWxpemF0aW9uXCIsXG4gICAgICAgICAgXCJjZTpHZXRSZXNlcnZhdGlvbkNvdmVyYWdlXCIsXG4gICAgICAgICAgXCJjZTpHZXRSZXNlcnZhdGlvblB1cmNoYXNlUmVjb21tZW5kYXRpb25cIixcbiAgICAgICAgICBcImNlOkdldFJpZ2h0c2l6aW5nUmVjb21tZW5kYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJGamFsbE1vbml0b3JpbmdSb2xlQXJuXCIsIHtcbiAgICAgIGtleTogXCJGamFsbE1vbml0b3JpbmdSb2xlQXJuXCIsXG4gICAgICB2YWx1ZTogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICBkZXNjcmlwdGlvbjogXCJBUk4gb2YgdGhlIHBlci1hY2NvdW50IEZqYWxsIG1vbml0b3Jpbmcgcm9sZVwiLFxuICAgICAgZXhwb3J0TmFtZTogXCJGamFsbE1vbml0b3JpbmdSb2xlQXJuXCJcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { type CfnOutput } from "aws-cdk-lib";
|
|
2
1
|
import { Construct } from "constructs";
|
|
3
2
|
export interface ManagementEventsTrailProps {
|
|
4
3
|
accountId: string;
|
|
5
4
|
region: string;
|
|
6
5
|
}
|
|
7
6
|
export declare class ManagementEventsTrail extends Construct {
|
|
8
|
-
readonly defaultEventBusName: CfnOutput;
|
|
9
|
-
readonly defaultEventBusArn: CfnOutput;
|
|
10
7
|
constructor(scope: Construct, id: string, props: ManagementEventsTrailProps);
|
|
11
8
|
}
|
|
@@ -7,11 +7,11 @@ class ManagementEventsTrail extends constructs_1.Construct {
|
|
|
7
7
|
constructor(scope, id, props) {
|
|
8
8
|
super(scope, id);
|
|
9
9
|
new cloudTrail_1.Trail(this, "managementEventsTrail", {
|
|
10
|
-
bucketName: `cloudtrail-management-events-${props.accountId}-${props.region
|
|
10
|
+
bucketName: `cloudtrail-management-events-${props.accountId}-${props.region}`,
|
|
11
11
|
trailName: "managementEvents",
|
|
12
12
|
isMultiRegionTrail: true
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
exports.ManagementEventsTrail = ManagementEventsTrail;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRUcmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2Nsb3VkVHJhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLHVFQUErRDtBQU8vRCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBQ2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLGtCQUFLLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ3ZDLFVBQVUsRUFBRSxnQ0FBZ0MsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzdFLFNBQVMsRUFBRSxrQkFBa0I7WUFDN0Isa0JBQWtCLEVBQUUsSUFBSTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFWRCxzREFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUcmFpbCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2xvZ2dpbmcvY2xvdWRUcmFpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZW1lbnRFdmVudHNUcmFpbFByb3BzIHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWFuYWdlbWVudEV2ZW50c1RyYWlsIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1hbmFnZW1lbnRFdmVudHNUcmFpbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBUcmFpbCh0aGlzLCBcIm1hbmFnZW1lbnRFdmVudHNUcmFpbFwiLCB7XG4gICAgICBidWNrZXROYW1lOiBgY2xvdWR0cmFpbC1tYW5hZ2VtZW50LWV2ZW50cy0ke3Byb3BzLmFjY291bnRJZH0tJHtwcm9wcy5yZWdpb259YCxcbiAgICAgIHRyYWlsTmFtZTogXCJtYW5hZ2VtZW50RXZlbnRzXCIsXG4gICAgICBpc011bHRpUmVnaW9uVHJhaWw6IHRydWVcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -17,6 +17,18 @@ const RETENTION_PERIODS = {
|
|
|
17
17
|
COLD_STORAGE_MINIMUM: 90, // AWS minimum
|
|
18
18
|
COLD_STORAGE_ONE_YEAR: 365
|
|
19
19
|
};
|
|
20
|
+
// Backup window constants
|
|
21
|
+
const BACKUP_WINDOWS = {
|
|
22
|
+
START: aws_cdk_lib_1.Duration.minutes(60),
|
|
23
|
+
COMPLETION: aws_cdk_lib_1.Duration.hours(12),
|
|
24
|
+
COMPLETION_SHORT: aws_cdk_lib_1.Duration.hours(2)
|
|
25
|
+
};
|
|
26
|
+
// Vault lock constants
|
|
27
|
+
const VAULT_LOCK = {
|
|
28
|
+
MIN_RETENTION: aws_cdk_lib_1.Duration.days(365),
|
|
29
|
+
MAX_RETENTION: aws_cdk_lib_1.Duration.days(36500),
|
|
30
|
+
GRACE_PERIOD: aws_cdk_lib_1.Duration.days(3)
|
|
31
|
+
};
|
|
20
32
|
class DisasterRecovery extends constructs_1.Construct {
|
|
21
33
|
constructor(scope, id, props) {
|
|
22
34
|
super(scope, id);
|
|
@@ -38,15 +50,15 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
38
50
|
// Compliance accounts get vault locks for protection
|
|
39
51
|
const lockConfiguration = isComplianceAccount
|
|
40
52
|
? {
|
|
41
|
-
minRetention:
|
|
42
|
-
maxRetention:
|
|
43
|
-
changeableFor:
|
|
53
|
+
minRetention: VAULT_LOCK.MIN_RETENTION,
|
|
54
|
+
maxRetention: VAULT_LOCK.MAX_RETENTION,
|
|
55
|
+
changeableFor: VAULT_LOCK.GRACE_PERIOD
|
|
44
56
|
}
|
|
45
57
|
: undefined;
|
|
46
58
|
// Create primary backup vault
|
|
47
59
|
this.backupVault = new backup_1.BackupVault(this, "BackupVault", {
|
|
48
60
|
vaultName: "backupVault",
|
|
49
|
-
removalPolicy: aws_cdk_lib_1.RemovalPolicy.
|
|
61
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
50
62
|
lockConfiguration: lockConfiguration
|
|
51
63
|
});
|
|
52
64
|
// Configure cross-account access policies
|
|
@@ -110,7 +122,7 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
110
122
|
new aws_cdk_lib_1.CfnOutput(this, "ReplicationRegion", {
|
|
111
123
|
key: "ReplicationRegion",
|
|
112
124
|
value: disasterRecoveryRegion,
|
|
113
|
-
exportName: "
|
|
125
|
+
exportName: "ReplicationRegion"
|
|
114
126
|
});
|
|
115
127
|
}
|
|
116
128
|
if (isComplianceAccount) {
|
|
@@ -127,8 +139,8 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
127
139
|
ruleName: `${planName}Daily`,
|
|
128
140
|
scheduleExpression: events.Schedule.cron({ hour: "2", minute: "0" }), // 2 AM daily
|
|
129
141
|
deleteAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.STANDARD),
|
|
130
|
-
startWindow:
|
|
131
|
-
completionWindow:
|
|
142
|
+
startWindow: BACKUP_WINDOWS.START,
|
|
143
|
+
completionWindow: BACKUP_WINDOWS.COMPLETION
|
|
132
144
|
})
|
|
133
145
|
];
|
|
134
146
|
}
|
|
@@ -140,8 +152,8 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
140
152
|
scheduleExpression: events.Schedule.cron({ hour: "2", minute: "0" }), // 2 AM daily
|
|
141
153
|
deleteAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_CONTINUOUS),
|
|
142
154
|
enableContinuousBackup: true,
|
|
143
|
-
startWindow:
|
|
144
|
-
completionWindow:
|
|
155
|
+
startWindow: BACKUP_WINDOWS.START,
|
|
156
|
+
completionWindow: BACKUP_WINDOWS.COMPLETION,
|
|
145
157
|
copyActions
|
|
146
158
|
})
|
|
147
159
|
];
|
|
@@ -156,8 +168,8 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
156
168
|
scheduleExpression: events.Schedule.cron({ hour: "2", minute: "0" }), // Daily for continuous backup
|
|
157
169
|
deleteAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_CONTINUOUS),
|
|
158
170
|
enableContinuousBackup: true,
|
|
159
|
-
startWindow:
|
|
160
|
-
completionWindow:
|
|
171
|
+
startWindow: BACKUP_WINDOWS.START,
|
|
172
|
+
completionWindow: BACKUP_WINDOWS.COMPLETION,
|
|
161
173
|
copyActions: continuousCopyActions
|
|
162
174
|
}),
|
|
163
175
|
// Hourly snapshots for long-term compliance (7 years)
|
|
@@ -166,8 +178,8 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
166
178
|
scheduleExpression: events.Schedule.cron({ minute: "0" }), // Every hour
|
|
167
179
|
deleteAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.ENTERPRISE_COMPLIANCE),
|
|
168
180
|
moveToColdStorageAfter: aws_cdk_lib_1.Duration.days(RETENTION_PERIODS.COLD_STORAGE_ONE_YEAR),
|
|
169
|
-
startWindow:
|
|
170
|
-
completionWindow:
|
|
181
|
+
startWindow: BACKUP_WINDOWS.START,
|
|
182
|
+
completionWindow: BACKUP_WINDOWS.COMPLETION_SHORT,
|
|
171
183
|
copyActions: complianceCopyActions
|
|
172
184
|
})
|
|
173
185
|
];
|
|
@@ -206,4 +218,4 @@ class DisasterRecovery extends constructs_1.Construct {
|
|
|
206
218
|
}
|
|
207
219
|
}
|
|
208
220
|
exports.DisasterRecovery = DisasterRecovery;
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYXN0ZXJSZWNvdmVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2Rpc2FzdGVyUmVjb3ZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlFO0FBQ2pFLDJDQUF1QztBQUN2Qyx1REFBcUU7QUFDckUsdURBSWdDO0FBQ2hDLGlEQUFpRDtBQUNqRCxpREFBZ0Y7QUFDaEYsc0NBQW9EO0FBRXBELHVDQUF1QztBQUN2QyxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsZ0NBQWdDO0lBQzNELHFCQUFxQixFQUFFLElBQUksRUFBRSxVQUFVO0lBQ3ZDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxjQUFjO0lBQ3hDLHFCQUFxQixFQUFFLEdBQUc7Q0FDbEIsQ0FBQztBQWNYLE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFTN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLGFBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU3Qyw0Q0FBNEM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxXQUFXLEtBQUssWUFBWSxDQUFDO1FBRWxFLHVCQUF1QjtRQUN2QixNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRXZFLDJEQUEyRDtRQUMzRCw0REFBNEQ7UUFDNUQsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUI7WUFDakQsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsV0FBVyxDQUFDLHVC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QUNwQjtnQkFDRCxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7Z0JBQ25DLG9EQUFvRDtnQkFDcEQsR0FBRyxDQUFDLHNCQUFzQjtvQkFDMUIsc0JBQXNCLENBQUMsTUFBTSxFQUFFO3dCQUM3QixpQkFBaUIsQ0FBQyxvQkFBb0I7b0JBQ3RDLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixFQUFFO29CQUM1QixDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1IsQ0FBQztZQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksd0JBQXdCLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBOEI7Z0JBQzFDLHNCQUFzQixFQUFFLHdCQUFLLENBQUMsa0JBQWtCLENBQzlDLElBQUksRUFDSixHQUFHLFFBQVEsMEJBQTBCLEVBQ3JDLHdCQUF3QixDQUN6QjtnQkFDRCxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7Z0JBQ25DLG9EQUFvRDtnQkFDcEQsR0FBRyxDQUFDLHNCQUFzQjtvQkFDMUIsc0JBQXNCLENBQUMsTUFBTSxFQUFFO3dCQUM3QixpQkFBaUIsQ0FBQyxvQkFBb0I7b0JBQ3RDLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixFQUFFO29CQUM1QixDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1IsQ0FBQztZQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQW5SRCw0Q0FtUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQmFja3VwVmF1bHQsIEJhY2t1cFBsYW4gfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9iYWNrdXBcIjtcbmltcG9ydCB7XG4gIEJhY2t1cFBsYW5SdWxlLFxuICB0eXBlIEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMsXG4gIEJhY2t1cFZhdWx0IGFzIFZhdWx0XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmFja3VwXCI7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IEFjY291bnRQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbmZpZyBhcyBGamFsbENvbmZpZyB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG4vLyBCYWNrdXAgcmV0ZW50aW9uIGNvbnN0YW50cyAoaW4gZGF5cylcbmNvbnN0IFJFVEVOVElPTl9QRVJJT0RTID0ge1xuICBTVEFOREFSRDogOTAsXG4gIFJFU0lMSUVOVDogMzY1LFxuICBFTlRFUlBSSVNFX0NPTlRJTlVPVVM6IDM1LCAvLyBBV1MgbWF4IGZvciBjb250aW51b3VzIGJhY2t1cFxuICBFTlRFUlBSSVNFX0NPTVBMSUFOQ0U6IDI1NTUsIC8vIDcgeWVhcnNcbiAgQ09MRF9TVE9SQUdFX01JTklNVU06IDkwLCAvLyBBV1MgbWluaW11bVxuICBDT0xEX1NUT1JBR0VfT05FX1lFQVI6IDM2NVxufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21CYWNrdXBQbGFuQ29uZmlnIHtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgcnVsZXM6IEJhY2t1cFBsYW5SdWxlW107XG4gIHRhZ1ZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzYXN0ZXJSZWNvdmVyeVByb3BzIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBjdXN0b21CYWNrdXBQbGFucz86IEN1c3RvbUJhY2t1cFBsYW5Db25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIERpc2FzdGVyUmVjb3ZlcnkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYmFja3VwVmF1bHQ6IEJhY2t1cFZhdWx0O1xuICBwdWJsaWMgcmVhZG9ubHkgYmFja3VwUGxhbnM6IHtcbiAgICBzdGFuZGFyZDogQmFja3VwUGxhbjtcbiAgICByZXNpbGllbnQ6IEJhY2t1cFBsYW47XG4gICAgZW50ZXJwcmlzZTogQmFja3VwUGxhbjtcbiAgfTtcbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbUJhY2t1cFBsYW5zPzogQmFja3VwUGxhbltdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEaXNhc3RlclJlY292ZXJ5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZmphbGxDb25maWcgPSBGamFsbENvbmZpZy5sb2FkQ29uZmlnKCk7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIGNvbXBsaWFuY2UgYWNjb3VudFxuICAgIGNvbnN0IGFjY291bnQgPSBmamFsbENvbmZpZy5nZXRQcm92aWRlckFjY291bnRCeUlkKHByb3BzLmFjY291bnRJZCk7XG4gICAgY29uc3QgaXNDb21wbGlhbmNlQWNjb3VudCA9IGFjY291bnQ/LmVudmlyb25tZW50ID09PSBcImNvbXBsaWFuY2VcIjtcblxuICAgIC8vIEdldCBEUiBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiA9IGZqYWxsQ29uZmlnLmdldERpc2FzdGVyUmVjb3ZlcnlSZWdpb24oKTtcblxuICAgIC8vIExvb2sgdXAgY29tcGxpYW5jZSBhY2NvdW50IGZvciBjcm9zcy1hY2NvdW50IHJlcGxpY2F0aW9uXG4gICAgLy8gU2tpcCBpZiB0aGUgY29tcGxpYW5jZSBhY2NvdW50IChwcmV2ZW50IHNlbGYtcmVwbGljYXRpb24pXG4gICAgY29uc3QgZGlzYXN0ZXJSZWNvdmVyeUFjY291bnQgPSBpc0NvbXBsaWFuY2VBY2NvdW50XG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBmamFsbENvbmZpZy5nZXRBY2NvdW50QnlFbnZpcm9ubWVudChcImNvbXBsaWFuY2VcIik7XG5cbiAgICAvLyBDb25zdHJ1Y3QgY3Jvc3MtYWNjb3VudCBEUiB2YXVsdCBBUk4gKGNvbXBsaWFuY2UgYWNjb3VudCBpbiBEUiByZWdpb24pXG4gICAgY29uc3QgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuID1cbiAgICAgIGRpc2FzdGVyUmVjb3ZlcnlBY2NvdW50ICYmIGRpc2FzdGVyUmVjb3ZlcnlSZWdpb25cbiAgICAgICAgPyBgYXJuOmF3czpiYWNrdXA6JHtkaXNhc3RlclJlY292ZXJ5UmVnaW9ufToke2Rpc2FzdGVyUmVjb3ZlcnlBY2NvdW50LmlkfTpiYWNrdXAtdmF1bHQ6YmFja3VwVmF1bHRgXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ29tcGxpYW5jZSBhY2NvdW50cyBnZXQgdmF1bHQgbG9ja3MgZm9yIHByb3RlY3Rpb25cbiAgICBjb25zdCBsb2NrQ29uZmlndXJhdGlvbiA9IGlzQ29tcGxpYW5jZUFjY291bnRcbiAgICAgID8ge1xuICAgICAgICAgIG1pblJldGVudGlvbjogRHVyYXRpb24uZGF5cygzNjUpLCAvLyBNaW5pbXVtIDEgeWVhciByZXRlbnRpb25cbiAgICAgICAgICBtYXhSZXRlbnRpb246IER1cmF0aW9uLmRheXMoMzY1MDApLCAvLyBNYXhpbXVtIH4xMDAgeWVhcnNcbiAgICAgICAgICBjaGFuZ2VhYmxlRm9yOiBEdXJhdGlvbi5kYXlzKDMpIC8vIDMtZGF5IGdyYWNlIHBlcmlvZCB0byBtb2RpZnkgbG9ja1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENyZWF0ZSBwcmltYXJ5IGJhY2t1cCB2YXVsdFxuICAgIHRoaXMuYmFja3VwVmF1bHQgPSBuZXcgQmFja3VwVmF1bHQodGhpcywgXCJCYWNrdXBWYXVsdFwiLCB7XG4gICAgICB2YXVsdE5hbWU6IFwiYmFja3VwVmF1bHRcIixcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgICAgbG9ja0NvbmZpZ3VyYXRpb246IGxvY2tDb25maWd1cmF0aW9uXG4gICAgfSk7XG5cbiAgICAvLyBDb25maWd1cmUgY3Jvc3MtYWNjb3VudCBhY2Nlc3MgcG9saWNpZXNcblxuICAgIGlmIChpc0NvbXBsaWFuY2VBY2NvdW50KSB7XG4gICAgICBjb25zdCBhbGxBY2NvdW50cyA9IGZqYWxsQ29uZmlnLnJvb3RDb25maWcucHJvdmlkZXJBY2NvdW50cyB8fCBbXTtcbiAgICAgIGNvbnN0IHByb2R1Y3Rpb25BY2NvdW50cyA9IGFsbEFjY291bnRzLmZpbHRlcihcbiAgICAgICAgKGFjYykgPT4gYWNjLmVudmlyb25tZW50ID09PSBcInByb2R1Y3Rpb25cIlxuICAgICAgKTtcblxuICAgICAgaWYgKHByb2R1Y3Rpb25BY2NvdW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGNvcHlTdGF0ZW1lbnQgPSBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICBwcmluY2lwYWxzOiBwcm9kdWN0aW9uQWNjb3VudHMubWFwKFxuICAgICAgICAgICAgKGFjYykgPT4gbmV3IEFjY291bnRQcmluY2lwYWwoYWNjLmlkKVxuICAgICAgICAgICksXG4gICAgICAgICAgYWN0aW9uczogW1wiYmFja3VwOkNvcHlJbnRvQmFja3VwVmF1bHRcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJhY2t1cFZhdWx0LnZhdWx0LmFkZFRvQWNjZXNzUG9saWN5KGNvcHlTdGF0ZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbnN0cnVjdCBjcm9zcy1yZWdpb24gcmVwbGljYXRpb24gdmF1bHQgQVJOIChzYW1lIGFjY291bnQsIERSIHJlZ2lvbilcbiAgICAvLyBPbmx5IHJlcGxpY2F0ZSBpZiBEUiByZWdpb24gZXhpc3RzIEFORCBpcyBkaWZmZXJlbnQgZnJvbSBjdXJyZW50IHJlZ2lvblxuICAgIGNvbnN0IHJlcGxpY2F0aW9uVmF1bHRBcm4gPVxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiAmJiBkaXNhc3RlclJlY292ZXJ5UmVnaW9uICE9PSBwcm9wcy5yZWdpb25cbiAgICAgICAgPyBgYXJuOmF3czpiYWNrdXA6JHtkaXNhc3RlclJlY292ZXJ5UmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06YmFja3VwLXZhdWx0OmJhY2t1cFZhdWx0YFxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENyZWF0ZSBhbGwgdGhyZWUgYmFja3VwIHBsYW5zXG4gICAgdGhpcy5iYWNrdXBQbGFucyA9IHtcbiAgICAgIHN0YW5kYXJkOiBuZXcgQmFja3VwUGxhbih0aGlzLCBcIlN0YW5kYXJkQmFja3VwUGxhblwiLCB7XG4gICAgICAgIHBsYW5OYW1lOiBcInN0YW5kYXJkXCIsXG4gICAgICAgIHJ1bGVzOiB0aGlzLmNyZWF0ZVN0YW5kYXJkQmFja3VwUnVsZXMoXCJzdGFuZGFyZFwiKSxcbiAgICAgICAgdGFnVmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgfSksXG4gICAgICByZXNpbGllbnQ6IG5ldyBCYWNrdXBQbGFuKHRoaXMsIFwiUmVzaWxpZW50QmFja3VwUGxhblwiLCB7XG4gICAgICAgIHBsYW5OYW1lOiBcInJlc2lsaWVudFwiLFxuICAgICAgICBydWxlczogdGhpcy5jcmVhdGVSZXNpbGllbnRCYWNrdXBSdWxlcyhcbiAgICAgICAgICBcInJlc2lsaWVudFwiLFxuICAgICAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgdGFnVmFsdWU6IFwicmVzaWxpZW50XCIsXG4gICAgICAgIGJhY2t1cFZhdWx0OiB0aGlzLmJhY2t1cFZhdWx0XG4gICAgICB9KSxcbiAgICAgIGVudGVycHJpc2U6IG5ldyBCYWNrdXBQbGFuKHRoaXMsIFwiRW50ZXJwcmlzZUJhY2t1cFBsYW5cIiwge1xuICAgICAgICBwbGFuTmFtZTogXCJlbnRlcnByaXNlXCIsXG4gICAgICAgIHJ1bGVzOiB0aGlzLmNyZWF0ZUVudGVycHJpc2VCYWNrdXBSdWxlcyhcbiAgICAgICAgICBcImVudGVycHJpc2VcIixcbiAgICAgICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFyblxuICAgICAgICApLFxuICAgICAgICB0YWdWYWx1ZTogXCJlbnRlcnByaXNlXCIsXG4gICAgICAgIGJhY2t1cFZhdWx0OiB0aGlzLmJhY2t1cFZhdWx0XG4gICAgICB9KVxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgY3VzdG9tIGJhY2t1cCBwbGFucyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5jdXN0b21CYWNrdXBQbGFucyAmJiBwcm9wcy5jdXN0b21CYWNrdXBQbGFucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmN1c3RvbUJhY2t1cFBsYW5zID0gcHJvcHMuY3VzdG9tQmFja3VwUGxhbnMubWFwKChjb25maWcsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFja3VwUGxhbih0aGlzLCBgQ3VzdG9tQmFja3VwUGxhbiR7aW5kZXh9YCwge1xuICAgICAgICAgIHBsYW5OYW1lOiBjb25maWcucGxhbk5hbWUsXG4gICAgICAgICAgcnVsZXM6IGNvbmZpZy5ydWxlcyxcbiAgICAgICAgICB0YWdWYWx1ZTogY29uZmlnLnRhZ1ZhbHVlLFxuICAgICAgICAgIGJhY2t1cFZhdWx0OiB0aGlzLmJhY2t1cFZhdWx0XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gRXhwb3J0IGRpc2FzdGVyIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb25cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiRGlzYXN0ZXJSZWNvdmVyeUVuYWJsZWRcIiwge1xuICAgICAga2V5OiBcIkRpc2FzdGVyUmVjb3ZlcnlFbmFibGVkXCIsXG4gICAgICB2YWx1ZTogXCJ0cnVlXCIsXG4gICAgICBleHBvcnROYW1lOiBcIkRpc2FzdGVyUmVjb3ZlcnlFbmFibGVkXCJcbiAgICB9KTtcblxuICAgIGlmIChkaXNhc3RlclJlY292ZXJ5UmVnaW9uKSB7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiUmVwbGljYXRpb25SZWdpb25cIiwge1xuICAgICAgICBrZXk6IFwiUmVwbGljYXRpb25SZWdpb25cIixcbiAgICAgICAgdmFsdWU6IGRpc2FzdGVyUmVjb3ZlcnlSZWdpb24sXG4gICAgICAgIGV4cG9ydE5hbWU6IFwiQmFja3VwUmVwbGljYXRpb25SZWdpb25cIlxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQ29tcGxpYW5jZUFjY291bnQpIHtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJWYXVsdExvY2tFbmFibGVkXCIsIHtcbiAgICAgICAga2V5OiBcIlZhdWx0TG9ja0VuYWJsZWRcIixcbiAgICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxuICAgICAgICBleHBvcnROYW1lOiBcIlZhdWx0TG9ja0VuYWJsZWRcIlxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGFuZGFyZEJhY2t1cFJ1bGVzKHBsYW5OYW1lOiBzdHJpbmcpOiBCYWNrdXBQbGFuUnVsZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfURhaWx5YCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IGhvdXI6IFwiMlwiLCBtaW51dGU6IFwiMFwiIH0pLCAvLyAyIEFNIGRhaWx5XG4gICAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLlNUQU5EQVJEKSxcbiAgICAgICAgc3RhcnRXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgICBjb21wbGV0aW9uV2luZG93OiBEdXJhdGlvbi5ob3VycygxMilcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzaWxpZW50QmFja3VwUnVsZXMoXG4gICAgcGxhbk5hbWU6IHN0cmluZyxcbiAgICByZXBsaWNhdGlvblZhdWx0QXJuPzogc3RyaW5nXG4gICk6IEJhY2t1cFBsYW5SdWxlW10ge1xuICAgIGNvbnN0IGNvcHlBY3Rpb25zID0gdGhpcy5jcmVhdGVDb3B5QWN0aW9ucyhcbiAgICAgIHBsYW5OYW1lLFxuICAgICAgcmVwbGljYXRpb25WYXVsdEFybixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT05USU5VT1VTKSxcbiAgICAgIHVuZGVmaW5lZFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfURhaWx5YCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IGhvdXI6IFwiMlwiLCBtaW51dGU6IFwiMFwiIH0pLCAvLyAyIEFNIGRhaWx5XG4gICAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09OVElOVU9VUyksXG4gICAgICAgIGVuYWJsZUNvbnRpbnVvdXNCYWNrdXA6IHRydWUsXG4gICAgICAgIHN0YXJ0V2luZG93OiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgICAgY29tcGxldGlvbldpbmRvdzogRHVyYXRpb24uaG91cnMoMTIpLFxuICAgICAgICBjb3B5QWN0aW9uc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFbnRlcnByaXNlQmFja3VwUnVsZXMoXG4gICAgcGxhbk5hbWU6IHN0cmluZyxcbiAgICByZXBsaWNhdGlvblZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybj86IHN0cmluZ1xuICApOiBCYWNrdXBQbGFuUnVsZVtdIHtcbiAgICBjb25zdCBjb250aW51b3VzQ29weUFjdGlvbnMgPSB0aGlzLmNyZWF0ZUNvcHlBY3Rpb25zKFxuICAgICAgYCR7cGxhbk5hbWV9Q29udGludW91c2AsXG4gICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuLFxuICAgICAgRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBsaWFuY2VDb3B5QWN0aW9ucyA9IHRoaXMuY3JlYXRlQ29weUFjdGlvbnMoXG4gICAgICBgJHtwbGFuTmFtZX1Db21wbGlhbmNlYCxcbiAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4sXG4gICAgICBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm4sXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09NUExJQU5DRSksXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkNPTERfU1RPUkFHRV9PTkVfWUVBUilcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIENvbnRpbnVvdXMgYmFja3VwICgzNS1kYXkgbWF4IFBJVFIgd2luZG93KVxuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfUNvbnRpbnVvdXNgLFxuICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246IGV2ZW50cy5TY2hlZHVsZS5jcm9uKHsgaG91cjogXCIyXCIsIG1pbnV0ZTogXCIwXCIgfSksIC8vIERhaWx5IGZvciBjb250aW51b3VzIGJhY2t1cFxuICAgICAgICBkZWxldGVBZnRlcjogRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgICBlbmFibGVDb250aW51b3VzQmFja3VwOiB0cnVlLFxuICAgICAgICBzdGFydFdpbmRvdzogRHVyYXRpb24ubWludXRlcyg2MCksXG4gICAgICAgIGNvbXBsZXRpb25XaW5kb3c6IER1cmF0aW9uLmhvdXJzKDEyKSxcbiAgICAgICAgY29weUFjdGlvbnM6IGNvbnRpbnVvdXNDb3B5QWN0aW9uc1xuICAgICAgfSksXG4gICAgICAvLyBIb3VybHkgc25hcHNob3RzIGZvciBsb25nLXRlcm0gY29tcGxpYW5jZSAoNyB5ZWFycylcbiAgICAgIG5ldyBCYWNrdXBQbGFuUnVsZSh7XG4gICAgICAgIHJ1bGVOYW1lOiBgJHtwbGFuTmFtZX1Ib3VybHlDb21wbGlhbmNlYCxcbiAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uOiBldmVudHMuU2NoZWR1bGUuY3Jvbih7IG1pbnV0ZTogXCIwXCIgfSksIC8vIEV2ZXJ5IGhvdXJcbiAgICAgICAgZGVsZXRlQWZ0ZXI6IER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT01QTElBTkNFKSxcbiAgICAgICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlcjogRHVyYXRpb24uZGF5cyhcbiAgICAgICAgICBSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfT05FX1lFQVJcbiAgICAgICAgKSxcbiAgICAgICAgc3RhcnRXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoNjApLFxuICAgICAgICBjb21wbGV0aW9uV2luZG93OiBEdXJhdGlvbi5ob3VycygyKSxcbiAgICAgICAgY29weUFjdGlvbnM6IGNvbXBsaWFuY2VDb3B5QWN0aW9uc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb3B5QWN0aW9ucyhcbiAgICBwbGFuTmFtZTogc3RyaW5nLFxuICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4/OiBzdHJpbmcsXG4gICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRlbGV0ZUFmdGVyPzogRHVyYXRpb24sXG4gICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlcj86IER1cmF0aW9uXG4gICk6IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHNbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYWN0aW9uczogQmFja3VwUGxhbkNvcHlBY3Rpb25Qcm9wc1tdID0gW107XG5cbiAgICAvLyBDcm9zcy1yZWdpb24gcmVwbGljYXRpb25cbiAgICBpZiAocmVwbGljYXRpb25WYXVsdEFybikge1xuICAgICAgY29uc3QgcmVwbGljYXRpb25BY3Rpb246IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIGRlc3RpbmF0aW9uQmFja3VwVmF1bHQ6IFZhdWx0LmZyb21CYWNrdXBWYXVsdEFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3BsYW5OYW1lfVJlcGxpY2F0aW9uVmF1bHRSZWZgLFxuICAgICAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgLi4uKGRlbGV0ZUFmdGVyICYmIHsgZGVsZXRlQWZ0ZXIgfSksXG4gICAgICAgIC8vIE9ubHkgYWRkIGNvbGQgc3RvcmFnZSBpZiBzcGVjaWZpZWQgYW5kID49IDkwIGRheXNcbiAgICAgICAgLi4uKG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIgJiZcbiAgICAgICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlci50b0RheXMoKSA+PVxuICAgICAgICAgIFJFVEVOVElPTl9QRVJJT0RTLkNPTERfU1RPUkFHRV9NSU5JTVVNXG4gICAgICAgICAgPyB7IG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIgfVxuICAgICAgICAgIDoge30pXG4gICAgICB9O1xuICAgICAgYWN0aW9ucy5wdXNoKHJlcGxpY2F0aW9uQWN0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBDcm9zcy1hY2NvdW50IERSIHZhdWx0XG4gICAgaWYgKGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybikge1xuICAgICAgY29uc3QgZHJBY3Rpb246IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIGRlc3RpbmF0aW9uQmFja3VwVmF1bHQ6IFZhdWx0LmZyb21CYWNrdXBWYXVsdEFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3BsYW5OYW1lfURpc2FzdGVyUmVjb3ZlcnlWYXVsdFJlZmAsXG4gICAgICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuXG4gICAgICAgICksXG4gICAgICAgIC4uLihkZWxldGVBZnRlciAmJiB7IGRlbGV0ZUFmdGVyIH0pLFxuICAgICAgICAvLyBPbmx5IGFkZCBjb2xkIHN0b3JhZ2UgaWYgc3BlY2lmaWVkIGFuZCA+PSA5MCBkYXlzXG4gICAgICAgIC4uLihtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyICYmXG4gICAgICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIudG9EYXlzKCkgPj1cbiAgICAgICAgICBSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfTUlOSU1VTVxuICAgICAgICAgID8geyBtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyIH1cbiAgICAgICAgICA6IHt9KVxuICAgICAgfTtcbiAgICAgIGFjdGlvbnMucHVzaChkckFjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbnMubGVuZ3RoID4gMCA/IGFjdGlvbnMgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYXN0ZXJSZWNvdmVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL2Rpc2FzdGVyUmVjb3ZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWlFO0FBQ2pFLDJDQUF1QztBQUN2Qyx1REFBcUU7QUFDckUsdURBSWdDO0FBQ2hDLGlEQUFpRDtBQUNqRCxpREFBZ0Y7QUFDaEYsc0NBQW9EO0FBRXBELHVDQUF1QztBQUN2QyxNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsZ0NBQWdDO0lBQzNELHFCQUFxQixFQUFFLElBQUksRUFBRSxVQUFVO0lBQ3ZDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxjQUFjO0lBQ3hDLHFCQUFxQixFQUFFLEdBQUc7Q0FDbEIsQ0FBQztBQUVYLDBCQUEwQjtBQUMxQixNQUFNLGNBQWMsR0FBRztJQUNyQixLQUFLLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLFVBQVUsRUFBRSxzQkFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDOUIsZ0JBQWdCLEVBQUUsc0JBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0NBQzNCLENBQUM7QUFFWCx1QkFBdUI7QUFDdkIsTUFBTSxVQUFVLEdBQUc7SUFDakIsYUFBYSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNqQyxhQUFhLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ25DLFlBQVksRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Q0FDdEIsQ0FBQztBQWNYLE1BQWEsZ0JBQWlCLFNBQVEsc0JBQVM7SUFTN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMs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QyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQW5SRCw0Q0FtUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQmFja3VwVmF1bHQsIEJhY2t1cFBsYW4gfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9iYWNrdXBcIjtcbmltcG9ydCB7XG4gIEJhY2t1cFBsYW5SdWxlLFxuICB0eXBlIEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMsXG4gIEJhY2t1cFZhdWx0IGFzIFZhdWx0XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmFja3VwXCI7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCB7IEFjY291bnRQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbmZpZyBhcyBGamFsbENvbmZpZyB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG4vLyBCYWNrdXAgcmV0ZW50aW9uIGNvbnN0YW50cyAoaW4gZGF5cylcbmNvbnN0IFJFVEVOVElPTl9QRVJJT0RTID0ge1xuICBTVEFOREFSRDogOTAsXG4gIFJFU0lMSUVOVDogMzY1LFxuICBFTlRFUlBSSVNFX0NPTlRJTlVPVVM6IDM1LCAvLyBBV1MgbWF4IGZvciBjb250aW51b3VzIGJhY2t1cFxuICBFTlRFUlBSSVNFX0NPTVBMSUFOQ0U6IDI1NTUsIC8vIDcgeWVhcnNcbiAgQ09MRF9TVE9SQUdFX01JTklNVU06IDkwLCAvLyBBV1MgbWluaW11bVxuICBDT0xEX1NUT1JBR0VfT05FX1lFQVI6IDM2NVxufSBhcyBjb25zdDtcblxuLy8gQmFja3VwIHdpbmRvdyBjb25zdGFudHNcbmNvbnN0IEJBQ0tVUF9XSU5ET1dTID0ge1xuICBTVEFSVDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gIENPTVBMRVRJT046IER1cmF0aW9uLmhvdXJzKDEyKSxcbiAgQ09NUExFVElPTl9TSE9SVDogRHVyYXRpb24uaG91cnMoMilcbn0gYXMgY29uc3Q7XG5cbi8vIFZhdWx0IGxvY2sgY29uc3RhbnRzXG5jb25zdCBWQVVMVF9MT0NLID0ge1xuICBNSU5fUkVURU5USU9OOiBEdXJhdGlvbi5kYXlzKDM2NSksXG4gIE1BWF9SRVRFTlRJT046IER1cmF0aW9uLmRheXMoMzY1MDApLFxuICBHUkFDRV9QRVJJT0Q6IER1cmF0aW9uLmRheXMoMylcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQmFja3VwUGxhbkNvbmZpZyB7XG4gIHBsYW5OYW1lOiBzdHJpbmc7XG4gIHJ1bGVzOiBCYWNrdXBQbGFuUnVsZVtdO1xuICB0YWdWYWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc2FzdGVyUmVjb3ZlcnlQcm9wcyB7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgY3VzdG9tQmFja3VwUGxhbnM/OiBDdXN0b21CYWNrdXBQbGFuQ29uZmlnW107XG59XG5cbmV4cG9ydCBjbGFzcyBEaXNhc3RlclJlY292ZXJ5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGJhY2t1cFZhdWx0OiBCYWNrdXBWYXVsdDtcbiAgcHVibGljIHJlYWRvbmx5IGJhY2t1cFBsYW5zOiB7XG4gICAgc3RhbmRhcmQ6IEJhY2t1cFBsYW47XG4gICAgcmVzaWxpZW50OiBCYWNrdXBQbGFuO1xuICAgIGVudGVycHJpc2U6IEJhY2t1cFBsYW47XG4gIH07XG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21CYWNrdXBQbGFucz86IEJhY2t1cFBsYW5bXTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGlzYXN0ZXJSZWNvdmVyeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGZqYWxsQ29uZmlnID0gRmphbGxDb25maWcubG9hZENvbmZpZygpO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBjb21wbGlhbmNlIGFjY291bnRcbiAgICBjb25zdCBhY2NvdW50ID0gZmphbGxDb25maWcuZ2V0UHJvdmlkZXJBY2NvdW50QnlJZChwcm9wcy5hY2NvdW50SWQpO1xuICAgIGNvbnN0IGlzQ29tcGxpYW5jZUFjY291bnQgPSBhY2NvdW50Py5lbnZpcm9ubWVudCA9PT0gXCJjb21wbGlhbmNlXCI7XG5cbiAgICAvLyBHZXQgRFIgY29uZmlndXJhdGlvblxuICAgIGNvbnN0IGRpc2FzdGVyUmVjb3ZlcnlSZWdpb24gPSBmamFsbENvbmZpZy5nZXREaXNhc3RlclJlY292ZXJ5UmVnaW9uKCk7XG5cbiAgICAvLyBMb29rIHVwIGNvbXBsaWFuY2UgYWNjb3VudCBmb3IgY3Jvc3MtYWNjb3VudCByZXBsaWNhdGlvblxuICAgIC8vIFNraXAgaWYgdGhlIGNvbXBsaWFuY2UgYWNjb3VudCAocHJldmVudCBzZWxmLXJlcGxpY2F0aW9uKVxuICAgIGNvbnN0IGRpc2FzdGVyUmVjb3ZlcnlBY2NvdW50ID0gaXNDb21wbGlhbmNlQWNjb3VudFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogZmphbGxDb25maWcuZ2V0QWNjb3VudEJ5RW52aXJvbm1lbnQoXCJjb21wbGlhbmNlXCIpO1xuXG4gICAgLy8gQ29uc3RydWN0IGNyb3NzLWFjY291bnQgRFIgdmF1bHQgQVJOIChjb21wbGlhbmNlIGFjY291bnQgaW4gRFIgcmVnaW9uKVxuICAgIGNvbnN0IGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybiA9XG4gICAgICBkaXNhc3RlclJlY292ZXJ5QWNjb3VudCAmJiBkaXNhc3RlclJlY292ZXJ5UmVnaW9uXG4gICAgICAgID8gYGFybjphd3M6YmFja3VwOiR7ZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbn06JHtkaXNhc3RlclJlY292ZXJ5QWNjb3VudC5pZH06YmFja3VwLXZhdWx0OmJhY2t1cFZhdWx0YFxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENvbXBsaWFuY2UgYWNjb3VudHMgZ2V0IHZhdWx0IGxvY2tzIGZvciBwcm90ZWN0aW9uXG4gICAgY29uc3QgbG9ja0NvbmZpZ3VyYXRpb24gPSBpc0NvbXBsaWFuY2VBY2NvdW50XG4gICAgICA/IHtcbiAgICAgICAgICBtaW5SZXRlbnRpb246IFZBVUxUX0xPQ0suTUlOX1JFVEVOVElPTixcbiAgICAgICAgICBtYXhSZXRlbnRpb246IFZBVUxUX0xPQ0suTUFYX1JFVEVOVElPTixcbiAgICAgICAgICBjaGFuZ2VhYmxlRm9yOiBWQVVMVF9MT0NLLkdSQUNFX1BFUklPRFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENyZWF0ZSBwcmltYXJ5IGJhY2t1cCB2YXVsdFxuICAgIHRoaXMuYmFja3VwVmF1bHQgPSBuZXcgQmFja3VwVmF1bHQodGhpcywgXCJCYWNrdXBWYXVsdFwiLCB7XG4gICAgICB2YXVsdE5hbWU6IFwiYmFja3VwVmF1bHRcIixcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGxvY2tDb25maWd1cmF0aW9uOiBsb2NrQ29uZmlndXJhdGlvblxuICAgIH0pO1xuXG4gICAgLy8gQ29uZmlndXJlIGNyb3NzLWFjY291bnQgYWNjZXNzIHBvbGljaWVzXG5cbiAgICBpZiAoaXNDb21wbGlhbmNlQWNjb3VudCkge1xuICAgICAgY29uc3QgYWxsQWNjb3VudHMgPSBmamFsbENvbmZpZy5yb290Q29uZmlnLnByb3ZpZGVyQWNjb3VudHMgfHwgW107XG4gICAgICBjb25zdCBwcm9kdWN0aW9uQWNjb3VudHMgPSBhbGxBY2NvdW50cy5maWx0ZXIoXG4gICAgICAgIChhY2MpID0+IGFjYy5lbnZpcm9ubWVudCA9PT0gXCJwcm9kdWN0aW9uXCJcbiAgICAgICk7XG5cbiAgICAgIGlmIChwcm9kdWN0aW9uQWNjb3VudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjb3B5U3RhdGVtZW50ID0gbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcHJpbmNpcGFsczogcHJvZHVjdGlvbkFjY291bnRzLm1hcChcbiAgICAgICAgICAgIChhY2MpID0+IG5ldyBBY2NvdW50UHJpbmNpcGFsKGFjYy5pZClcbiAgICAgICAgICApLFxuICAgICAgICAgIGFjdGlvbnM6IFtcImJhY2t1cDpDb3B5SW50b0JhY2t1cFZhdWx0XCJdLFxuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5iYWNrdXBWYXVsdC52YXVsdC5hZGRUb0FjY2Vzc1BvbGljeShjb3B5U3RhdGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb25zdHJ1Y3QgY3Jvc3MtcmVnaW9uIHJlcGxpY2F0aW9uIHZhdWx0IEFSTiAoc2FtZSBhY2NvdW50LCBEUiByZWdpb24pXG4gICAgLy8gT25seSByZXBsaWNhdGUgaWYgRFIgcmVnaW9uIGV4aXN0cyBBTkQgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudCByZWdpb25cbiAgICBjb25zdCByZXBsaWNhdGlvblZhdWx0QXJuID1cbiAgICAgIGRpc2FzdGVyUmVjb3ZlcnlSZWdpb24gJiYgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiAhPT0gcHJvcHMucmVnaW9uXG4gICAgICAgID8gYGFybjphd3M6YmFja3VwOiR7ZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbn06JHtwcm9wcy5hY2NvdW50SWR9OmJhY2t1cC12YXVsdDpiYWNrdXBWYXVsdGBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDcmVhdGUgYWxsIHRocmVlIGJhY2t1cCBwbGFuc1xuICAgIHRoaXMuYmFja3VwUGxhbnMgPSB7XG4gICAgICBzdGFuZGFyZDogbmV3IEJhY2t1cFBsYW4odGhpcywgXCJTdGFuZGFyZEJhY2t1cFBsYW5cIiwge1xuICAgICAgICBwbGFuTmFtZTogXCJzdGFuZGFyZFwiLFxuICAgICAgICBydWxlczogdGhpcy5jcmVhdGVTdGFuZGFyZEJhY2t1cFJ1bGVzKFwic3RhbmRhcmRcIiksXG4gICAgICAgIHRhZ1ZhbHVlOiBcImRlZmF1bHRcIixcbiAgICAgICAgYmFja3VwVmF1bHQ6IHRoaXMuYmFja3VwVmF1bHRcbiAgICAgIH0pLFxuICAgICAgcmVzaWxpZW50OiBuZXcgQmFja3VwUGxhbih0aGlzLCBcIlJlc2lsaWVudEJhY2t1cFBsYW5cIiwge1xuICAgICAgICBwbGFuTmFtZTogXCJyZXNpbGllbnRcIixcbiAgICAgICAgcnVsZXM6IHRoaXMuY3JlYXRlUmVzaWxpZW50QmFja3VwUnVsZXMoXG4gICAgICAgICAgXCJyZXNpbGllbnRcIixcbiAgICAgICAgICByZXBsaWNhdGlvblZhdWx0QXJuXG4gICAgICAgICksXG4gICAgICAgIHRhZ1ZhbHVlOiBcInJlc2lsaWVudFwiLFxuICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgfSksXG4gICAgICBlbnRlcnByaXNlOiBuZXcgQmFja3VwUGxhbih0aGlzLCBcIkVudGVycHJpc2VCYWNrdXBQbGFuXCIsIHtcbiAgICAgICAgcGxhbk5hbWU6IFwiZW50ZXJwcmlzZVwiLFxuICAgICAgICBydWxlczogdGhpcy5jcmVhdGVFbnRlcnByaXNlQmFja3VwUnVsZXMoXG4gICAgICAgICAgXCJlbnRlcnByaXNlXCIsXG4gICAgICAgICAgcmVwbGljYXRpb25WYXVsdEFybixcbiAgICAgICAgICBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgdGFnVmFsdWU6IFwiZW50ZXJwcmlzZVwiLFxuICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgfSlcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIGN1c3RvbSBiYWNrdXAgcGxhbnMgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuY3VzdG9tQmFja3VwUGxhbnMgJiYgcHJvcHMuY3VzdG9tQmFja3VwUGxhbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jdXN0b21CYWNrdXBQbGFucyA9IHByb3BzLmN1c3RvbUJhY2t1cFBsYW5zLm1hcCgoY29uZmlnLCBpbmRleCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhY2t1cFBsYW4odGhpcywgYEN1c3RvbUJhY2t1cFBsYW4ke2luZGV4fWAsIHtcbiAgICAgICAgICBwbGFuTmFtZTogY29uZmlnLnBsYW5OYW1lLFxuICAgICAgICAgIHJ1bGVzOiBjb25maWcucnVsZXMsXG4gICAgICAgICAgdGFnVmFsdWU6IGNvbmZpZy50YWdWYWx1ZSxcbiAgICAgICAgICBiYWNrdXBWYXVsdDogdGhpcy5iYWNrdXBWYXVsdFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEV4cG9ydCBkaXNhc3RlciByZWNvdmVyeSBjb25maWd1cmF0aW9uXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIkRpc2FzdGVyUmVjb3ZlcnlFbmFibGVkXCIsIHtcbiAgICAgIGtleTogXCJEaXNhc3RlclJlY292ZXJ5RW5hYmxlZFwiLFxuICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxuICAgICAgZXhwb3J0TmFtZTogXCJEaXNhc3RlclJlY292ZXJ5RW5hYmxlZFwiXG4gICAgfSk7XG5cbiAgICBpZiAoZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbikge1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlJlcGxpY2F0aW9uUmVnaW9uXCIsIHtcbiAgICAgICAga2V5OiBcIlJlcGxpY2F0aW9uUmVnaW9uXCIsXG4gICAgICAgIHZhbHVlOiBkaXNhc3RlclJlY292ZXJ5UmVnaW9uLFxuICAgICAgICBleHBvcnROYW1lOiBcIlJlcGxpY2F0aW9uUmVnaW9uXCJcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc0NvbXBsaWFuY2VBY2NvdW50KSB7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiVmF1bHRMb2NrRW5hYmxlZFwiLCB7XG4gICAgICAgIGtleTogXCJWYXVsdExvY2tFbmFibGVkXCIsXG4gICAgICAgIHZhbHVlOiBcInRydWVcIixcbiAgICAgICAgZXhwb3J0TmFtZTogXCJWYXVsdExvY2tFbmFibGVkXCJcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3RhbmRhcmRCYWNrdXBSdWxlcyhwbGFuTmFtZTogc3RyaW5nKTogQmFja3VwUGxhblJ1bGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBCYWNrdXBQbGFuUnVsZSh7XG4gICAgICAgIHJ1bGVOYW1lOiBgJHtwbGFuTmFtZX1EYWlseWAsXG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogZXZlbnRzLlNjaGVkdWxlLmNyb24oeyBob3VyOiBcIjJcIiwgbWludXRlOiBcIjBcIiB9KSwgLy8gMiBBTSBkYWlseVxuICAgICAgICBkZWxldGVBZnRlcjogRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5TVEFOREFSRCksXG4gICAgICAgIHN0YXJ0V2luZG93OiBCQUNLVVBfV0lORE9XUy5TVEFSVCxcbiAgICAgICAgY29tcGxldGlvbldpbmRvdzogQkFDS1VQX1dJTkRPV1MuQ09NUExFVElPTlxuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXNpbGllbnRCYWNrdXBSdWxlcyhcbiAgICBwbGFuTmFtZTogc3RyaW5nLFxuICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4/OiBzdHJpbmdcbiAgKTogQmFja3VwUGxhblJ1bGVbXSB7XG4gICAgY29uc3QgY29weUFjdGlvbnMgPSB0aGlzLmNyZWF0ZUNvcHlBY3Rpb25zKFxuICAgICAgcGxhbk5hbWUsXG4gICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICBuZXcgQmFja3VwUGxhblJ1bGUoe1xuICAgICAgICBydWxlTmFtZTogYCR7cGxhbk5hbWV9RGFpbHlgLFxuICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246IGV2ZW50cy5TY2hlZHVsZS5jcm9uKHsgaG91cjogXCIyXCIsIG1pbnV0ZTogXCIwXCIgfSksIC8vIDIgQU0gZGFpbHlcbiAgICAgICAgZGVsZXRlQWZ0ZXI6IER1cmF0aW9uLmRheXMoUkVURU5USU9OX1BFUklPRFMuRU5URVJQUklTRV9DT05USU5VT1VTKSxcbiAgICAgICAgZW5hYmxlQ29udGludW91c0JhY2t1cDogdHJ1ZSxcbiAgICAgICAgc3RhcnRXaW5kb3c6IEJBQ0tVUF9XSU5ET1dTLlNUQVJULFxuICAgICAgICBjb21wbGV0aW9uV2luZG93OiBCQUNLVVBfV0lORE9XUy5DT01QTEVUSU9OLFxuICAgICAgICBjb3B5QWN0aW9uc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFbnRlcnByaXNlQmFja3VwUnVsZXMoXG4gICAgcGxhbk5hbWU6IHN0cmluZyxcbiAgICByZXBsaWNhdGlvblZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybj86IHN0cmluZ1xuICApOiBCYWNrdXBQbGFuUnVsZVtdIHtcbiAgICBjb25zdCBjb250aW51b3VzQ29weUFjdGlvbnMgPSB0aGlzLmNyZWF0ZUNvcHlBY3Rpb25zKFxuICAgICAgYCR7cGxhbk5hbWV9Q29udGludW91c2AsXG4gICAgICByZXBsaWNhdGlvblZhdWx0QXJuLFxuICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuLFxuICAgICAgRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBsaWFuY2VDb3B5QWN0aW9ucyA9IHRoaXMuY3JlYXRlQ29weUFjdGlvbnMoXG4gICAgICBgJHtwbGFuTmFtZX1Db21wbGlhbmNlYCxcbiAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4sXG4gICAgICBkaXNhc3RlclJlY292ZXJ5VmF1bHRBcm4sXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09NUExJQU5DRSksXG4gICAgICBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkNPTERfU1RPUkFHRV9PTkVfWUVBUilcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIENvbnRpbnVvdXMgYmFja3VwICgzNS1kYXkgbWF4IFBJVFIgd2luZG93KVxuICAgICAgbmV3IEJhY2t1cFBsYW5SdWxlKHtcbiAgICAgICAgcnVsZU5hbWU6IGAke3BsYW5OYW1lfUNvbnRpbnVvdXNgLFxuICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb246IGV2ZW50cy5TY2hlZHVsZS5jcm9uKHsgaG91cjogXCIyXCIsIG1pbnV0ZTogXCIwXCIgfSksIC8vIERhaWx5IGZvciBjb250aW51b3VzIGJhY2t1cFxuICAgICAgICBkZWxldGVBZnRlcjogRHVyYXRpb24uZGF5cyhSRVRFTlRJT05fUEVSSU9EUy5FTlRFUlBSSVNFX0NPTlRJTlVPVVMpLFxuICAgICAgICBlbmFibGVDb250aW51b3VzQmFja3VwOiB0cnVlLFxuICAgICAgICBzdGFydFdpbmRvdzogQkFDS1VQX1dJTkRPV1MuU1RBUlQsXG4gICAgICAgIGNvbXBsZXRpb25XaW5kb3c6IEJBQ0tVUF9XSU5ET1dTLkNPTVBMRVRJT04sXG4gICAgICAgIGNvcHlBY3Rpb25zOiBjb250aW51b3VzQ29weUFjdGlvbnNcbiAgICAgIH0pLFxuICAgICAgLy8gSG91cmx5IHNuYXBzaG90cyBmb3IgbG9uZy10ZXJtIGNvbXBsaWFuY2UgKDcgeWVhcnMpXG4gICAgICBuZXcgQmFja3VwUGxhblJ1bGUoe1xuICAgICAgICBydWxlTmFtZTogYCR7cGxhbk5hbWV9SG91cmx5Q29tcGxpYW5jZWAsXG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogZXZlbnRzLlNjaGVkdWxlLmNyb24oeyBtaW51dGU6IFwiMFwiIH0pLCAvLyBFdmVyeSBob3VyXG4gICAgICAgIGRlbGV0ZUFmdGVyOiBEdXJhdGlvbi5kYXlzKFJFVEVOVElPTl9QRVJJT0RTLkVOVEVSUFJJU0VfQ09NUExJQU5DRSksXG4gICAgICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXI6IER1cmF0aW9uLmRheXMoXG4gICAgICAgICAgUkVURU5USU9OX1BFUklPRFMuQ09MRF9TVE9SQUdFX09ORV9ZRUFSXG4gICAgICAgICksXG4gICAgICAgIHN0YXJ0V2luZG93OiBCQUNLVVBfV0lORE9XUy5TVEFSVCxcbiAgICAgICAgY29tcGxldGlvbldpbmRvdzogQkFDS1VQX1dJTkRPV1MuQ09NUExFVElPTl9TSE9SVCxcbiAgICAgICAgY29weUFjdGlvbnM6IGNvbXBsaWFuY2VDb3B5QWN0aW9uc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb3B5QWN0aW9ucyhcbiAgICBwbGFuTmFtZTogc3RyaW5nLFxuICAgIHJlcGxpY2F0aW9uVmF1bHRBcm4/OiBzdHJpbmcsXG4gICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuPzogc3RyaW5nLFxuICAgIGRlbGV0ZUFmdGVyPzogRHVyYXRpb24sXG4gICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlcj86IER1cmF0aW9uXG4gICk6IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHNbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYWN0aW9uczogQmFja3VwUGxhbkNvcHlBY3Rpb25Qcm9wc1tdID0gW107XG5cbiAgICAvLyBDcm9zcy1yZWdpb24gcmVwbGljYXRpb25cbiAgICBpZiAocmVwbGljYXRpb25WYXVsdEFybikge1xuICAgICAgY29uc3QgcmVwbGljYXRpb25BY3Rpb246IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIGRlc3RpbmF0aW9uQmFja3VwVmF1bHQ6IFZhdWx0LmZyb21CYWNrdXBWYXVsdEFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3BsYW5OYW1lfVJlcGxpY2F0aW9uVmF1bHRSZWZgLFxuICAgICAgICAgIHJlcGxpY2F0aW9uVmF1bHRBcm5cbiAgICAgICAgKSxcbiAgICAgICAgLi4uKGRlbGV0ZUFmdGVyICYmIHsgZGVsZXRlQWZ0ZXIgfSksXG4gICAgICAgIC8vIE9ubHkgYWRkIGNvbGQgc3RvcmFnZSBpZiBzcGVjaWZpZWQgYW5kID49IDkwIGRheXNcbiAgICAgICAgLi4uKG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIgJiZcbiAgICAgICAgbW92ZVRvQ29sZFN0b3JhZ2VBZnRlci50b0RheXMoKSA+PVxuICAgICAgICAgIFJFVEVOVElPTl9QRVJJT0RTLkNPTERfU1RPUkFHRV9NSU5JTVVNXG4gICAgICAgICAgPyB7IG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIgfVxuICAgICAgICAgIDoge30pXG4gICAgICB9O1xuICAgICAgYWN0aW9ucy5wdXNoKHJlcGxpY2F0aW9uQWN0aW9uKTtcbiAgICB9XG5cbiAgICAvLyBDcm9zcy1hY2NvdW50IERSIHZhdWx0XG4gICAgaWYgKGRpc2FzdGVyUmVjb3ZlcnlWYXVsdEFybikge1xuICAgICAgY29uc3QgZHJBY3Rpb246IEJhY2t1cFBsYW5Db3B5QWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIGRlc3RpbmF0aW9uQmFja3VwVmF1bHQ6IFZhdWx0LmZyb21CYWNrdXBWYXVsdEFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3BsYW5OYW1lfURpc2FzdGVyUmVjb3ZlcnlWYXVsdFJlZmAsXG4gICAgICAgICAgZGlzYXN0ZXJSZWNvdmVyeVZhdWx0QXJuXG4gICAgICAgICksXG4gICAgICAgIC4uLihkZWxldGVBZnRlciAmJiB7IGRlbGV0ZUFmdGVyIH0pLFxuICAgICAgICAvLyBPbmx5IGFkZCBjb2xkIHN0b3JhZ2UgaWYgc3BlY2lmaWVkIGFuZCA+PSA5MCBkYXlzXG4gICAgICAgIC4uLihtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyICYmXG4gICAgICAgIG1vdmVUb0NvbGRTdG9yYWdlQWZ0ZXIudG9EYXlzKCkgPj1cbiAgICAgICAgICBSRVRFTlRJT05fUEVSSU9EUy5DT0xEX1NUT1JBR0VfTUlOSU1VTVxuICAgICAgICAgID8geyBtb3ZlVG9Db2xkU3RvcmFnZUFmdGVyIH1cbiAgICAgICAgICA6IHt9KVxuICAgICAgfTtcbiAgICAgIGFjdGlvbnMucHVzaChkckFjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbnMubGVuZ3RoID4gMCA/IGFjdGlvbnMgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -75,8 +75,9 @@ class EcrDefaultImage extends constructs_1.Construct {
|
|
|
75
75
|
commands: [
|
|
76
76
|
// Login to private ECR
|
|
77
77
|
`aws ecr get-login-password --region ${props.region} | docker login --username AWS --password-stdin ${props.accountId}.dkr.ecr.${props.region}.amazonaws.com`,
|
|
78
|
-
// Copy multi-arch
|
|
79
|
-
"docker buildx imagetools create --tag $ECR_REPOSITORY:latest public.ecr.aws/fjall/welcome:latest"
|
|
78
|
+
// Copy multi-arch manifests directly (preserves all architectures)
|
|
79
|
+
"docker buildx imagetools create --tag $ECR_REPOSITORY:latest public.ecr.aws/fjall/welcome:latest",
|
|
80
|
+
"docker buildx imagetools create --tag $ECR_REPOSITORY:backend public.ecr.aws/fjall/welcome:backend"
|
|
80
81
|
]
|
|
81
82
|
}
|
|
82
83
|
}
|
|
@@ -121,4 +122,4 @@ class EcrDefaultImage extends constructs_1.Construct {
|
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
124
|
exports.EcrDefaultImage = EcrDefaultImage;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyRGVmYXVsdEltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvZWNyRGVmYXVsdEltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF1QztBQUN2Qyx1RUFBMkU7QUFDM0UsNkRBQXNEO0FBQ3RELG1FQUFnRTtBQUNoRSw2Q0FBNkQ7QUFDN0QsdURBQW9EO0FBQ3BELGlEQUk2QjtBQUM3Qix1REFLZ0M7QUFDaEMsMERBQTBEO0FBUTFELE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUM1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ25ELFlBQVksRUFBRSxrQkFBa0IsRUFBRSxHQUFHO1lBQ3JDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87U0FDckMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtZQUN0RCxRQUFRLEVBQUUsdUJBQXVCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNqRSxXQUFXLEVBQUUsdURBQXVEO1lBQ3BFLFNBQVMsRUFBRSxJQUFJLDBCQUFnQixDQUFDLHlCQUF5QixDQUFDO1lBQzFELGNBQWMsRUFBRTtnQkFDZCxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksd0JBQWMsQ0FBQztvQkFDbkMsVUFBVSxFQUFFO3dCQUNWLElBQUkseUJBQWUsQ0FBQzs0QkFDbEIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7NEJBQ3RDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzt5QkFDakIsQ0FBQzt3QkFDRixJQUFJLHlCQUFlLENBQUM7NEJBQ2xCLE9BQU8sRUFBRTtnQ0FDUCxtQkFBbUI7Z0NBQ25CLDRCQUE0QjtnQ0FDNUIsaUNBQWlDO2dDQUNqQyx5QkFBeUI7Z0NBQ3pCLHFCQUFxQjtnQ0FDckIseUJBQXlCO2dDQUN6QixjQUFjOzZCQUNmOzRCQUNELFNBQVMsRUFBRTtnQ0FDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsZUFBZTs2QkFDOUQ7eUJBQ0YsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2dCQUNGLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSx3QkFBYyxDQUFDO29CQUNoQyxVQUFVLEVBQUU7d0JBQ1YsSUFBSSx5QkFBZSxDQUFDOzRCQUNsQixPQUFPLEVBQUU7Z0NBQ1AscUJBQXFCO2dDQUNyQixzQkFBc0I7Z0NBQ3RCLG1CQUFtQjs2QkFDcEI7NEJBQ0QsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQzt5QkFDbEMsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUFHLElBQUksNEJBQWdCLENBQzNDLElBQUksRUFDSixHQUFHLEVBQUUsa0JBQWtCLEVBQ3ZCO1lBQ0UsV0FBVyxFQUFFLDBEQUEwRDtZQUN2RSxXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFNBQVMsRUFBRSx5QkFBUyxDQUFDLFVBQVUsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLEdBQUc7Z0JBQ1osTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRTt3QkFDUCxRQUFRLEVBQUU7NEJBQ1IsbUVBQW1FOzRCQUNuRSw2RUFBNkU7NEJBQzdFLHNWQUFzVjt5QkFDdlY7cUJBQ0Y7b0JBQ0QsS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRTs0QkFDUix1QkFBdUI7NEJBQ3ZCLHVDQUF1QyxLQUFLLENBQUMsTUFBTSxtREFBbUQsS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUMsTUFBTSxnQkFBZ0I7NEJBQzdKLGtFQUFrRTs0QkFDbEUsa0dBQWtHO3lCQUNuRztxQkFDRjtpQkFDRjthQUNGLENBQUM7WUFDRixPQUFPLEVBQUU7Z0JBQ1AsVUFBVSxFQUFFO29CQUNWLFFBQVEsRUFBRSxRQUFRO2lCQUNuQjthQUNGO1lBQ0QsSUFBSSxFQUFFLG1CQUFtQjtTQUMxQixDQUNGLENBQUM7UUFFRixNQUFNLGlCQUFpQixHQUFHO1lBQ3hCLGFBQWEsRUFBRSx1QkFBVSxDQUFDLFFBQVEsQ0FDaEMsb0RBQW9ELENBQ3JEO1NBQ0YsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsNEJBQTRCLEVBQUU7Z0JBQzVCO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxhQUFhO2lCQUN2QzthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksaUJBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRTtZQUMvQixRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFdBQVcsRUFDVCxzRUFBc0U7WUFDeEUsT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUscUJBQVEsQ0FBQyxlQUFlLENBQ2hDLElBQUksRUFDSixHQUFHLEVBQUUsVUFBVSxFQUNmLEtBQUssQ0FBQyxXQUFXLENBQ2xCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsVUFBVSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzNDLE1BQU0sRUFBRTtvQkFDTixXQUFXLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbEMsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDO2FBQ0Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO29CQUNyRCxLQUFLLEVBQUUsNEJBQWUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7aUJBQ3RELENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTlIRCwwQ0E4SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29kZUJ1aWxkUHJvamVjdCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jb2RlQnVpbGRcIjtcbmltcG9ydCB7IEJ1aWxkU3BlYyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkXCI7XG5pbXBvcnQgeyBMb2dHcm91cCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2xvZ2dpbmcvbG9nR3JvdXBcIjtcbmltcG9ydCB7IFJlbW92YWxQb2xpY3ksIHR5cGUgU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbS9yb2xlXCI7XG5pbXBvcnQge1xuICBQb2xpY3lEb2N1bWVudCxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBTZXJ2aWNlUHJpbmNpcGFsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQge1xuICBFdmVudEJ1cyxcbiAgRXZlbnRGaWVsZCxcbiAgUnVsZSxcbiAgUnVsZVRhcmdldElucHV0XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5pbXBvcnQgKiBhcyBUYXJnZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHNcIjtcblxuaW50ZXJmYWNlIEVjckRlZmF1bHRJbWFnZVByb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgZXZlbnRCdXNBcm46IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEVjckRlZmF1bHRJbWFnZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFY3JEZWZhdWx0SW1hZ2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBsb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCBgJHtpZH1Mb2dHcm91cGAsIHtcbiAgICAgIGxvZ0dyb3VwTmFtZTogYC92cGMvY29kZWJ1aWxkLyR7aWR9L2AsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICB9KTtcblxuICAgIGNvbnN0IGVjckRlZmF1bHRJbWFnZVJvbGUgPSBuZXcgUm9sZSh0aGlzLCBgJHtpZH1Sb2xlYCwge1xuICAgICAgcm9sZU5hbWU6IGBlY3JEZWZhdWx0SW1hZ2VSb2xlLSR7cHJvcHMucmVnaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJvbGUgdG8gcHVzaCBkZWZhdWx0IEVDUiBpbWFnZXMgaW50byBuZXcgcmVwb3NpdG9yaWVzXCIsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiY29kZWJ1aWxkLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBbXCJwdXNoRWNySW1hZ2VcIl06IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcImVjcjpHZXRBdXRob3JpemF0aW9uVG9rZW5cIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIFwiZWNyOkJhdGNoR2V0SW1hZ2VcIixcbiAgICAgICAgICAgICAgICBcImVjcjpHZXREb3dubG9hZFVybEZvckxheWVyXCIsXG4gICAgICAgICAgICAgICAgXCJlY3I6QmF0Y2hDaGVja0xheWVyQXZhaWxhYmlsaXR5XCIsXG4gICAgICAgICAgICAgICAgXCJlY3I6SW5pdGlhdGVMYXllclVwbG9hZFwiLFxuICAgICAgICAgICAgICAgIFwiZWNyOlVwbG9hZExheWVyUGFydFwiLFxuICAgICAgICAgICAgICAgIFwiZWNyOkNvbXBsZXRlTGF5ZXJVcGxvYWRcIixcbiAgICAgICAgICAgICAgICBcImVjcjpQdXRJbWFnZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIGBhcm46YXdzOmVjcjoke3Byb3BzLnJlZ2lvbn06JHtwcm9wcy5hY2NvdW50SWR9OnJlcG9zaXRvcnkvKmBcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIH0pLFxuICAgICAgICBbXCJ3cml0ZUxvZ3NcIl06IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBcImxvZ3M6Q3JlYXRlTG9nR3JvdXBcIixcbiAgICAgICAgICAgICAgICBcImxvZ3M6Q3JlYXRlTG9nU3RyZWFtXCIsXG4gICAgICAgICAgICAgICAgXCJsb2dzOlB1dExvZ0V2ZW50c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW2xvZ0dyb3VwLmxvZ0dyb3VwQXJuXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBjb2RlQnVpbGRQcm9qZWN0ID0gbmV3IENvZGVCdWlsZFByb2plY3QoXG4gICAgICB0aGlzLFxuICAgICAgYCR7aWR9Q29kZUJ1aWxkUHJvamVjdGAsXG4gICAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkJ1aWxkIGFuZCBwdXNoIHRoZSBkZWZhdWx0IEVDUiBpbWFnZSB0byBuZXcgcmVwb3NpdG9yaWVzXCIsXG4gICAgICAgIHByb2plY3ROYW1lOiBcImVjckRlZmF1bHRJbWFnZVwiLFxuICAgICAgICBidWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHtcbiAgICAgICAgICB2ZXJzaW9uOiAwLjIsXG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgLy8gRW5zdXJlIGJ1aWxkeCBpcyBhdmFpbGFibGUgKGluc3RhbGxzIGxhdGVzdCBpZiBtaXNzaW5nL291dGRhdGVkKVxuICAgICAgICAgICAgICAgIC8vIERldGVjdCBhcmNoaXRlY3R1cmUgZHluYW1pY2FsbHkgdG8gc3VwcG9ydCBib3RoIHg4Nl82NCBhbmQgQVJNNjQgQ29kZUJ1aWxkXG4gICAgICAgICAgICAgICAgXCJkb2NrZXIgYnVpbGR4IHZlcnNpb24gfHwgKG1rZGlyIC1wIH4vLmRvY2tlci9jbGktcGx1Z2lucyAmJiBBUkNIPSQodW5hbWUgLW0gfCBzZWQgJ3MveDg2XzY0L2FtZDY0LycgfCBzZWQgJ3MvYWFyY2g2NC9hcm02NC8nKSAmJiBjdXJsIC1zU0wgaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci9idWlsZHgvcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL2J1aWxkeC0kKHVuYW1lIC1zIHwgdHIgJ1s6dXBwZXI6XScgJ1s6bG93ZXI6XScpLSR7QVJDSH0gLW8gfi8uZG9ja2VyL2NsaS1wbHVnaW5zL2RvY2tlci1idWlsZHggJiYgY2htb2QgK3ggfi8uZG9ja2VyL2NsaS1wbHVnaW5zL2RvY2tlci1idWlsZHgpXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkOiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgLy8gTG9naW4gdG8gcHJpdmF0ZSBFQ1JcbiAgICAgICAgICAgICAgICBgYXdzIGVjciBnZXQtbG9naW4tcGFzc3dvcmQgLS1yZWdpb24gJHtwcm9wcy5yZWdpb259IHwgZG9ja2VyIGxvZ2luIC0tdXNlcm5hbWUgQVdTIC0tcGFzc3dvcmQtc3RkaW4gJHtwcm9wcy5hY2NvdW50SWR9LmRrci5lY3IuJHtwcm9wcy5yZWdpb259LmFtYXpvbmF3cy5jb21gLFxuICAgICAgICAgICAgICAgIC8vIENvcHkgbXVsdGktYXJjaCBtYW5pZmVzdCBkaXJlY3RseSAocHJlc2VydmVzIGFsbCBhcmNoaXRlY3R1cmVzKVxuICAgICAgICAgICAgICAgIFwiZG9ja2VyIGJ1aWxkeCBpbWFnZXRvb2xzIGNyZWF0ZSAtLXRhZyAkRUNSX1JFUE9TSVRPUlk6bGF0ZXN0IHB1YmxpYy5lY3IuYXdzL2ZqYWxsL3dlbGNvbWU6bGF0ZXN0XCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGxvZ2dpbmc6IHtcbiAgICAgICAgICBjbG91ZFdhdGNoOiB7XG4gICAgICAgICAgICBsb2dHcm91cDogbG9nR3JvdXBcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJvbGU6IGVjckRlZmF1bHRJbWFnZVJvbGVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgZXZlbnRJbnB1dE1hcHBpbmcgPSB7XG4gICAgICByZXBvc2l0b3J5VXJpOiBFdmVudEZpZWxkLmZyb21QYXRoKFxuICAgICAgICBcIiQuZGV0YWlsLnJlc3BvbnNlRWxlbWVudHMucmVwb3NpdG9yeS5yZXBvc2l0b3J5VXJpXCJcbiAgICAgIClcbiAgICB9O1xuXG4gICAgY29uc3QgZXZlbnRJbnB1dFRlbXBsYXRlID0ge1xuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXNPdmVycmlkZTogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJFQ1JfUkVQT1NJVE9SWVwiLFxuICAgICAgICAgIHZhbHVlOiBldmVudElucHV0TWFwcGluZy5yZXBvc2l0b3J5VXJpXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgbmV3IFJ1bGUodGhpcywgYCR7aWR9RXZlbnRSdWxlYCwge1xuICAgICAgcnVsZU5hbWU6IFwiZWNyQ3JlYXRpb25SdWxlXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUcmlnZ2VyIHRoZSBkZWZhdWx0IEVDUiBpbWFnZSBidWlsZCB3aGVuIGEgbmV3IHJlcG9zaXRvcnkgaXMgY3JlYXRlZFwiLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIGV2ZW50QnVzOiBFdmVudEJ1cy5mcm9tRXZlbnRCdXNBcm4oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke2lkfUV2ZW50QnVzYCxcbiAgICAgICAgcHJvcHMuZXZlbnRCdXNBcm5cbiAgICAgICksXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbXCJhd3MuZWNyXCJdLFxuICAgICAgICBkZXRhaWxUeXBlOiBbXCJBV1MgQVBJIENhbGwgdmlhIENsb3VkVHJhaWxcIl0sXG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGV2ZW50U291cmNlOiBbXCJlY3IuYW1hem9uYXdzLmNvbVwiXSxcbiAgICAgICAgICBldmVudE5hbWU6IFtcIkNyZWF0ZVJlcG9zaXRvcnlcIl1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IFRhcmdldHMuQ29kZUJ1aWxkUHJvamVjdChjb2RlQnVpbGRQcm9qZWN0LnByb2plY3QsIHtcbiAgICAgICAgICBldmVudDogUnVsZVRhcmdldElucHV0LmZyb21PYmplY3QoZXZlbnRJbnB1dFRlbXBsYXRlKVxuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyRGVmYXVsdEltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbmZpZy9hd3MvZWNyRGVmYXVsdEltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF1QztBQUN2Qyx1RUFBMkU7QUFDM0UsNkRBQXNEO0FBQ3RELG1FQUFnRTtBQUNoRSw2Q0FBNkQ7QUFDN0QsdURBQW9EO0FBQ3BELGlEQUk2QjtBQUM3Qix1REFLZ0M7QUFDaEMsMERBQTBEO0FBUTFELE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUM1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ25ELFlBQVksRUFBRSxrQkFBa0IsRUFBRSxHQUFHO1lBQ3JDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87U0FDckMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtZQUN0RCxRQUFRLEVBQUUsdUJBQXVCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNqRSxXQUFXLEVBQUUsdURBQXVEO1lBQ3BFLFNBQVMsRUFBRSxJQUFJLDBCQUFnQixDQUFDLHlCQUF5QixDQUFDO1lBQzFELGNBQWMsRUFBRTtnQkFDZCxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksd0JBQWMsQ0FBQztvQkFDbkMsVUFBVSxFQUFFO3dCQUNWLElBQUkseUJBQWUsQ0FBQzs0QkFDbEIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7NEJBQ3RDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzt5QkFDakIsQ0FB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Q0wsQ0FBQztDQUNGO0FBL0hELDBDQStIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDb2RlQnVpbGRQcm9qZWN0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2NvZGVCdWlsZFwiO1xuaW1wb3J0IHsgQnVpbGRTcGVjIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IExvZ0dyb3VwIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvbG9nZ2luZy9sb2dHcm91cFwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgdHlwZSBTdGFja1Byb3BzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtL3JvbGVcIjtcbmltcG9ydCB7XG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnQsXG4gIFNlcnZpY2VQcmluY2lwYWxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEV2ZW50QnVzLFxuICBFdmVudEZpZWxkLFxuICBSdWxlLFxuICBSdWxlVGFyZ2V0SW5wdXRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcbmltcG9ydCAqIGFzIFRhcmdldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuXG5pbnRlcmZhY2UgRWNyRGVmYXVsdEltYWdlUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGFjY291bnRJZDogc3RyaW5nO1xuICBldmVudEJ1c0Fybjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRWNyRGVmYXVsdEltYWdlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVjckRlZmF1bHRJbWFnZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsIGAke2lkfUxvZ0dyb3VwYCwge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL3ZwYy9jb2RlYnVpbGQvJHtpZH0vYCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgIH0pO1xuXG4gICAgY29uc3QgZWNyRGVmYXVsdEltYWdlUm9sZSA9IG5ldyBSb2xlKHRoaXMsIGAke2lkfVJvbGVgLCB7XG4gICAgICByb2xlTmFtZTogYGVjckRlZmF1bHRJbWFnZVJvbGUtJHtwcm9wcy5yZWdpb24ucmVwbGFjZSgvLS9nLCBcIlwiKX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiUm9sZSB0byBwdXNoIGRlZmF1bHQgRUNSIGltYWdlcyBpbnRvIG5ldyByZXBvc2l0b3JpZXNcIixcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJjb2RlYnVpbGQuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIFtcInB1c2hFY3JJbWFnZVwiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wiZWNyOkdldEF1dGhvcml6YXRpb25Ub2tlblwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgXCJlY3I6QmF0Y2hHZXRJbWFnZVwiLFxuICAgICAgICAgICAgICAgIFwiZWNyOkdldERvd25sb2FkVXJsRm9yTGF5ZXJcIixcbiAgICAgICAgICAgICAgICBcImVjcjpCYXRjaENoZWNrTGF5ZXJBdmFpbGFiaWxpdHlcIixcbiAgICAgICAgICAgICAgICBcImVjcjpJbml0aWF0ZUxheWVyVXBsb2FkXCIsXG4gICAgICAgICAgICAgICAgXCJlY3I6VXBsb2FkTGF5ZXJQYXJ0XCIsXG4gICAgICAgICAgICAgICAgXCJlY3I6Q29tcGxldGVMYXllclVwbG9hZFwiLFxuICAgICAgICAgICAgICAgIFwiZWNyOlB1dEltYWdlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgYGFybjphd3M6ZWNyOiR7cHJvcHMucmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06cmVwb3NpdG9yeS8qYFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcIndyaXRlTG9nc1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIFwibG9nczpDcmVhdGVMb2dHcm91cFwiLFxuICAgICAgICAgICAgICAgIFwibG9nczpDcmVhdGVMb2dTdHJlYW1cIixcbiAgICAgICAgICAgICAgICBcImxvZ3M6UHV0TG9nRXZlbnRzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbbG9nR3JvdXAubG9nR3JvdXBBcm5dXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGNvZGVCdWlsZFByb2plY3QgPSBuZXcgQ29kZUJ1aWxkUHJvamVjdChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtpZH1Db2RlQnVpbGRQcm9qZWN0YCxcbiAgICAgIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQnVpbGQgYW5kIHB1c2ggdGhlIGRlZmF1bHQgRUNSIGltYWdlIHRvIG5ldyByZXBvc2l0b3JpZXNcIixcbiAgICAgICAgcHJvamVjdE5hbWU6IFwiZWNyRGVmYXVsdEltYWdlXCIsXG4gICAgICAgIGJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIHZlcnNpb246IDAuMixcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgICAvLyBFbnN1cmUgYnVpbGR4IGlzIGF2YWlsYWJsZSAoaW5zdGFsbHMgbGF0ZXN0IGlmIG1pc3Npbmcvb3V0ZGF0ZWQpXG4gICAgICAgICAgICAgICAgLy8gRGV0ZWN0IGFyY2hpdGVjdHVyZSBkeW5hbWljYWxseSB0byBzdXBwb3J0IGJvdGggeDg2XzY0IGFuZCBBUk02NCBDb2RlQnVpbGRcbiAgICAgICAgICAgICAgICBcImRvY2tlciBidWlsZHggdmVyc2lvbiB8fCAobWtkaXIgLXAgfi8uZG9ja2VyL2NsaS1wbHVnaW5zICYmIEFSQ0g9JCh1bmFtZSAtbSB8IHNlZCAncy94ODZfNjQvYW1kNjQvJyB8IHNlZCAncy9hYXJjaDY0L2FybTY0LycpICYmIGN1cmwgLXNTTCBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyL2J1aWxkeC9yZWxlYXNlcy9sYXRlc3QvZG93bmxvYWQvYnVpbGR4LSQodW5hbWUgLXMgfCB0ciAnWzp1cHBlcjpdJyAnWzpsb3dlcjpdJyktJHtBUkNIfSAtbyB+Ly5kb2NrZXIvY2xpLXBsdWdpbnMvZG9ja2VyLWJ1aWxkeCAmJiBjaG1vZCAreCB+Ly5kb2NrZXIvY2xpLXBsdWdpbnMvZG9ja2VyLWJ1aWxkeClcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgICAvLyBMb2dpbiB0byBwcml2YXRlIEVDUlxuICAgICAgICAgICAgICAgIGBhd3MgZWNyIGdldC1sb2dpbi1wYXNzd29yZCAtLXJlZ2lvbiAke3Byb3BzLnJlZ2lvbn0gfCBkb2NrZXIgbG9naW4gLS11c2VybmFtZSBBV1MgLS1wYXNzd29yZC1zdGRpbiAke3Byb3BzLmFjY291bnRJZH0uZGtyLmVjci4ke3Byb3BzLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWAsXG4gICAgICAgICAgICAgICAgLy8gQ29weSBtdWx0aS1hcmNoIG1hbmlmZXN0cyBkaXJlY3RseSAocHJlc2VydmVzIGFsbCBhcmNoaXRlY3R1cmVzKVxuICAgICAgICAgICAgICAgIFwiZG9ja2VyIGJ1aWxkeCBpbWFnZXRvb2xzIGNyZWF0ZSAtLXRhZyAkRUNSX1JFUE9TSVRPUlk6bGF0ZXN0IHB1YmxpYy5lY3IuYXdzL2ZqYWxsL3dlbGNvbWU6bGF0ZXN0XCIsXG4gICAgICAgICAgICAgICAgXCJkb2NrZXIgYnVpbGR4IGltYWdldG9vbHMgY3JlYXRlIC0tdGFnICRFQ1JfUkVQT1NJVE9SWTpiYWNrZW5kIHB1YmxpYy5lY3IuYXdzL2ZqYWxsL3dlbGNvbWU6YmFja2VuZFwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBsb2dnaW5nOiB7XG4gICAgICAgICAgY2xvdWRXYXRjaDoge1xuICAgICAgICAgICAgbG9nR3JvdXA6IGxvZ0dyb3VwXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByb2xlOiBlY3JEZWZhdWx0SW1hZ2VSb2xlXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IGV2ZW50SW5wdXRNYXBwaW5nID0ge1xuICAgICAgcmVwb3NpdG9yeVVyaTogRXZlbnRGaWVsZC5mcm9tUGF0aChcbiAgICAgICAgXCIkLmRldGFpbC5yZXNwb25zZUVsZW1lbnRzLnJlcG9zaXRvcnkucmVwb3NpdG9yeVVyaVwiXG4gICAgICApXG4gICAgfTtcblxuICAgIGNvbnN0IGV2ZW50SW5wdXRUZW1wbGF0ZSA9IHtcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVzT3ZlcnJpZGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiRUNSX1JFUE9TSVRPUllcIixcbiAgICAgICAgICB2YWx1ZTogZXZlbnRJbnB1dE1hcHBpbmcucmVwb3NpdG9yeVVyaVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcblxuICAgIG5ldyBSdWxlKHRoaXMsIGAke2lkfUV2ZW50UnVsZWAsIHtcbiAgICAgIHJ1bGVOYW1lOiBcImVjckNyZWF0aW9uUnVsZVwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVHJpZ2dlciB0aGUgZGVmYXVsdCBFQ1IgaW1hZ2UgYnVpbGQgd2hlbiBhIG5ldyByZXBvc2l0b3J5IGlzIGNyZWF0ZWRcIixcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBldmVudEJ1czogRXZlbnRCdXMuZnJvbUV2ZW50QnVzQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHtpZH1FdmVudEJ1c2AsXG4gICAgICAgIHByb3BzLmV2ZW50QnVzQXJuXG4gICAgICApLFxuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogW1wiYXdzLmVjclwiXSxcbiAgICAgICAgZGV0YWlsVHlwZTogW1wiQVdTIEFQSSBDYWxsIHZpYSBDbG91ZFRyYWlsXCJdLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBldmVudFNvdXJjZTogW1wiZWNyLmFtYXpvbmF3cy5jb21cIl0sXG4gICAgICAgICAgZXZlbnROYW1lOiBbXCJDcmVhdGVSZXBvc2l0b3J5XCJdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbXG4gICAgICAgIG5ldyBUYXJnZXRzLkNvZGVCdWlsZFByb2plY3QoY29kZUJ1aWxkUHJvamVjdC5wcm9qZWN0LCB7XG4gICAgICAgICAgZXZlbnQ6IFJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KGV2ZW50SW5wdXRUZW1wbGF0ZSlcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -2,3 +2,7 @@ export * from "./identityCenter";
|
|
|
2
2
|
export * from "./ipam";
|
|
3
3
|
export * from "./ecrDefaultImage";
|
|
4
4
|
export * from "./eventBus";
|
|
5
|
+
export * from "./oidcConnector";
|
|
6
|
+
export * from "./platform";
|
|
7
|
+
export * from "./accountMonitoringRole";
|
|
8
|
+
export * from "./accountAuditRole";
|
|
@@ -18,4 +18,8 @@ __exportStar(require("./identityCenter"), exports);
|
|
|
18
18
|
__exportStar(require("./ipam"), exports);
|
|
19
19
|
__exportStar(require("./ecrDefaultImage"), exports);
|
|
20
20
|
__exportStar(require("./eventBus"), exports);
|
|
21
|
-
|
|
21
|
+
__exportStar(require("./oidcConnector"), exports);
|
|
22
|
+
__exportStar(require("./platform"), exports);
|
|
23
|
+
__exportStar(require("./accountMonitoringRole"), exports);
|
|
24
|
+
__exportStar(require("./accountAuditRole"), exports);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLHlDQUF1QjtBQUN2QixvREFBa0M7QUFDbEMsNkNBQTJCO0FBQzNCLGtEQUFnQztBQUNoQyw2Q0FBMkI7QUFDM0IsMERBQXdDO0FBQ3hDLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2lkZW50aXR5Q2VudGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lY3JEZWZhdWx0SW1hZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50QnVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vaWRjQ29ubmVjdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGF0Zm9ybVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWNjb3VudE1vbml0b3JpbmdSb2xlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hY2NvdW50QXVkaXRSb2xlXCI7XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
export interface OidcConnectorProps {
|
|
3
|
+
fjallOrgId: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class OidcConnector extends Construct {
|
|
6
|
+
readonly deployRoleArn: string;
|
|
7
|
+
constructor(scope: Construct, id: string, props: OidcConnectorProps);
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OidcConnector = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
class OidcConnector extends constructs_1.Construct {
|
|
8
|
+
constructor(scope, id, props) {
|
|
9
|
+
super(scope, id);
|
|
10
|
+
const issuerDomain = "fjall.io";
|
|
11
|
+
const issuerUrl = `https://${issuerDomain}`;
|
|
12
|
+
const provider = new iam.OpenIdConnectProvider(this, "OidcProvider", {
|
|
13
|
+
url: issuerUrl,
|
|
14
|
+
clientIds: ["sts.amazonaws.com"],
|
|
15
|
+
thumbprints: ["0000000000000000000000000000000000000000"]
|
|
16
|
+
});
|
|
17
|
+
const deployRole = new iam.Role(this, "DeployRole", {
|
|
18
|
+
roleName: `FjallDeploy${props.fjallOrgId}`,
|
|
19
|
+
maxSessionDuration: aws_cdk_lib_1.Duration.hours(1),
|
|
20
|
+
assumedBy: new iam.FederatedPrincipal(provider.openIdConnectProviderArn, {
|
|
21
|
+
StringEquals: { [`${issuerDomain}:aud`]: "sts.amazonaws.com" },
|
|
22
|
+
StringLike: {
|
|
23
|
+
[`${issuerDomain}:sub`]: `org:${props.fjallOrgId}:*`
|
|
24
|
+
}
|
|
25
|
+
}, "sts:AssumeRoleWithWebIdentity"),
|
|
26
|
+
managedPolicies: [
|
|
27
|
+
iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess")
|
|
28
|
+
]
|
|
29
|
+
});
|
|
30
|
+
this.deployRoleArn = deployRole.roleArn;
|
|
31
|
+
new aws_cdk_lib_1.CfnOutput(this, "OidcDeployRoleArn", {
|
|
32
|
+
key: "OidcDeployRoleArn",
|
|
33
|
+
value: deployRole.roleArn,
|
|
34
|
+
exportName: "OidcDeployRoleArn",
|
|
35
|
+
description: "ARN of the Fjall OIDC deploy role"
|
|
36
|
+
});
|
|
37
|
+
new aws_cdk_lib_1.CfnOutput(this, "OidcProviderArn", {
|
|
38
|
+
key: "OidcProviderArn",
|
|
39
|
+
value: provider.openIdConnectProviderArn,
|
|
40
|
+
exportName: "OidcProviderArn",
|
|
41
|
+
description: "ARN of the Fjall OIDC provider"
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.OidcConnector = OidcConnector;
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkY0Nvbm5lY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25maWcvYXdzL29pZGNDb25uZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWtEO0FBQ2xELDJDQUEyQztBQUMzQywyQ0FBdUM7QUFNdkMsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFHMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUNoQyxNQUFNLFNBQVMsR0FBRyxXQUFXLFlBQVksRUFBRSxDQUFDO1FBRTVDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDbkUsR0FBRyxFQUFFLFNBQVM7WUFDZCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNoQyxXQUFXLEVBQUUsQ0FBQywwQ0FBMEMsQ0FBQztTQUMxRCxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsRCxRQUFRLEVBQUUsY0FBYyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQzFDLGtCQUFrQixFQUFFLHNCQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyQyxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsa0JBQWtCLENBQ25DLFFBQVEsQ0FBQyx3QkFBd0IsRUFDakM7Z0JBQ0UsWUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLFlBQVksTUFBTSxDQUFDLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQzlELFVBQVUsRUFBRTtvQkFDVixDQUFDLEdBQUcsWUFBWSxNQUFNLENBQUMsRUFBRSxPQUFPLEtBQUssQ0FBQyxVQUFVLElBQUk7aUJBQ3JEO2FBQ0YsRUFDRCwrQkFBK0IsQ0FDaEM7WUFDRCxlQUFlLEVBQUU7Z0JBQ2YsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzthQUNsRTtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUV4QyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQ3ZDLEdBQUcsRUFBRSxtQkFBbUI7WUFDeEIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQ3pCLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsV0FBVyxFQUFFLG1DQUFtQztTQUNqRCxDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQ3JDLEdBQUcsRUFBRSxpQkFBaUI7WUFDdEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyx3QkFBd0I7WUFDeEMsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixXQUFXLEVBQUUsZ0NBQWdDO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpERCxzQ0FpREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2lkY0Nvbm5lY3RvclByb3BzIHtcbiAgZmphbGxPcmdJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgT2lkY0Nvbm5lY3RvciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBkZXBsb3lSb2xlQXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE9pZGNDb25uZWN0b3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBpc3N1ZXJEb21haW4gPSBcImZqYWxsLmlvXCI7XG4gICAgY29uc3QgaXNzdWVyVXJsID0gYGh0dHBzOi8vJHtpc3N1ZXJEb21haW59YDtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IGlhbS5PcGVuSWRDb25uZWN0UHJvdmlkZXIodGhpcywgXCJPaWRjUHJvdmlkZXJcIiwge1xuICAgICAgdXJsOiBpc3N1ZXJVcmwsXG4gICAgICBjbGllbnRJZHM6IFtcInN0cy5hbWF6b25hd3MuY29tXCJdLFxuICAgICAgdGh1bWJwcmludHM6IFtcIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIl1cbiAgICB9KTtcblxuICAgIGNvbnN0IGRlcGxveVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJEZXBsb3lSb2xlXCIsIHtcbiAgICAgIHJvbGVOYW1lOiBgRmphbGxEZXBsb3kke3Byb3BzLmZqYWxsT3JnSWR9YCxcbiAgICAgIG1heFNlc3Npb25EdXJhdGlvbjogRHVyYXRpb24uaG91cnMoMSksXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uRmVkZXJhdGVkUHJpbmNpcGFsKFxuICAgICAgICBwcm92aWRlci5vcGVuSWRDb25uZWN0UHJvdmlkZXJBcm4sXG4gICAgICAgIHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHsgW2Ake2lzc3VlckRvbWFpbn06YXVkYF06IFwic3RzLmFtYXpvbmF3cy5jb21cIiB9LFxuICAgICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICAgIFtgJHtpc3N1ZXJEb21haW59OnN1YmBdOiBgb3JnOiR7cHJvcHMuZmphbGxPcmdJZH06KmBcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwic3RzOkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIlxuICAgICAgKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXCJBZG1pbmlzdHJhdG9yQWNjZXNzXCIpXG4gICAgICBdXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcGxveVJvbGVBcm4gPSBkZXBsb3lSb2xlLnJvbGVBcm47XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiT2lkY0RlcGxveVJvbGVBcm5cIiwge1xuICAgICAga2V5OiBcIk9pZGNEZXBsb3lSb2xlQXJuXCIsXG4gICAgICB2YWx1ZTogZGVwbG95Um9sZS5yb2xlQXJuLFxuICAgICAgZXhwb3J0TmFtZTogXCJPaWRjRGVwbG95Um9sZUFyblwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQVJOIG9mIHRoZSBGamFsbCBPSURDIGRlcGxveSByb2xlXCJcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJPaWRjUHJvdmlkZXJBcm5cIiwge1xuICAgICAga2V5OiBcIk9pZGNQcm92aWRlckFyblwiLFxuICAgICAgdmFsdWU6IHByb3ZpZGVyLm9wZW5JZENvbm5lY3RQcm92aWRlckFybixcbiAgICAgIGV4cG9ydE5hbWU6IFwiT2lkY1Byb3ZpZGVyQXJuXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJBUk4gb2YgdGhlIEZqYWxsIE9JREMgcHJvdmlkZXJcIlxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FJALL_PLATFORM_ACCOUNT_ID = void 0;
|
|
4
|
+
/** AWS account ID of the Fjall platform (where the webapp runs). */
|
|
5
|
+
exports.FJALL_PLATFORM_ACCOUNT_ID = "985539798308";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29uZmlnL2F3cy9wbGF0Zm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvRUFBb0U7QUFDdkQsUUFBQSx5QkFBeUIsR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQVdTIGFjY291bnQgSUQgb2YgdGhlIEZqYWxsIHBsYXRmb3JtICh3aGVyZSB0aGUgd2ViYXBwIHJ1bnMpLiAqL1xuZXhwb3J0IGNvbnN0IEZKQUxMX1BMQVRGT1JNX0FDQ09VTlRfSUQgPSBcIjk4NTUzOTc5ODMwOFwiO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.FJALL_AUDIT_CONFIG = void 0;
|
|
18
|
+
var audit_1 = require("./audit");
|
|
19
|
+
Object.defineProperty(exports, "FJALL_AUDIT_CONFIG", { enumerable: true, get: function () { return audit_1.FJALL_AUDIT_CONFIG; } });
|
|
20
|
+
__exportStar(require("./aws"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQTZDO0FBQXBDLDJHQUFBLGtCQUFrQixPQUFBO0FBQzNCLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZKQUxMX0FVRElUX0NPTkZJRyB9IGZyb20gXCIuL2F1ZGl0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hd3NcIjtcbiJdfQ==
|