@mavogel/awscdk-rootmail 0.0.214 → 0.0.215
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/.jsii +26 -8
- package/API.md +14 -0
- package/CONTRIBUTING.md +3 -3
- package/README.md +3 -3
- package/integ-tests/README.md +11 -4
- package/integ-tests/common.ts +2 -0
- package/integ-tests/create-e2e-cfn-stack.bash +35 -0
- package/integ-tests/delete-e2e-cfn-stack.bash +26 -0
- package/integ-tests/integ.rootmail-custom-santa.ts +1 -2
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/RootmailIntegTestStack.assets.json +8 -8
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/RootmailIntegTestStack.template.json +4 -4
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/SetupTestIntegStackDefaultTestDeployAssert6EB6FF77.assets.json +2 -2
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/SetupTestIntegStackDefaultTestDeployAssert6EB6FF77.template.json +2 -2
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/{asset.0649b5bfaa322d6bd173d2daef3177389cf0778b556b300ac6bf451704cc3a49 → asset.97724f55c990db7c62d85b80d4afb032e60011490da173e3551e6a131013b79d}/index.js +17458 -464
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/{asset.f9b17c134d24cf60e1d26c033b5f4f247b759149619ac0aac341b950a10ccf14 → asset.f75274dd7677b6ef41f29d2dfc2c885b4f4e069d3fb8e67636bd89efd3f0fcad}/index.js +2 -0
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/manifest.json +2 -2
- package/integ-tests/integ.rootmail-custom-santa.ts.snapshot/tree.json +3 -3
- package/integ-tests/integ.rootmail.ts +1 -2
- package/integ-tests/integ.rootmail.ts.snapshot/RootmailIntegTestStack.assets.json +8 -8
- package/integ-tests/integ.rootmail.ts.snapshot/RootmailIntegTestStack.template.json +4 -4
- package/integ-tests/integ.rootmail.ts.snapshot/SetupTestIntegStackDefaultTestDeployAssert6EB6FF77.assets.json +2 -2
- package/integ-tests/integ.rootmail.ts.snapshot/SetupTestIntegStackDefaultTestDeployAssert6EB6FF77.template.json +3 -3
- package/integ-tests/integ.rootmail.ts.snapshot/{asset.de67316e819b929cc1aa19838de373be5c9ede7a11e8132fabd28dbc730a92fd → asset.3fe096136c1d1292627baeb9b860b3206032deebb5a03ea407d7d04833a222d7}/index.js +17489 -474
- package/integ-tests/integ.rootmail.ts.snapshot/{asset.f9b17c134d24cf60e1d26c033b5f4f247b759149619ac0aac341b950a10ccf14 → asset.f75274dd7677b6ef41f29d2dfc2c885b4f4e069d3fb8e67636bd89efd3f0fcad}/index.js +2 -0
- package/integ-tests/integ.rootmail.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.rootmail.ts.snapshot/manifest.json +2 -2
- package/integ-tests/integ.rootmail.ts.snapshot/tree.json +3 -3
- package/lib/rootmail.d.ts +7 -1
- package/lib/rootmail.js +4 -2
- package/lib/ses-receive.js +1 -1
- package/lib/ses-receive.ops-santa-handler.js +32 -11
- package/package.json +1 -1
|
@@ -54,6 +54,8 @@ async function handler(event) {
|
|
|
54
54
|
[ATTR_DKIM_TOKENS]: dkimTokens
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
|
+
// TODO check if delete should do nothing: https://github.com/superwerker/superwerker/blob/main/templates/rootmail.yaml#L170
|
|
58
|
+
// we store in Parameter Store as well
|
|
57
59
|
case "Delete":
|
|
58
60
|
console.log(`Deleting Domain identity for domain '${domain}' with PhysicalResourceId '${event.PhysicalResourceId}'`);
|
|
59
61
|
const deleteResponse = await ses.deleteIdentity({ Identity: domain });
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"validateOnSynth": false,
|
|
18
18
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
|
|
19
19
|
"cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
|
|
20
|
-
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/
|
|
20
|
+
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/0c6695535d361eb1b54f0d030f4fe10d11036cab6772ade6d1a74e5662d811fc.json",
|
|
21
21
|
"requiresBootstrapStackVersion": 6,
|
|
22
22
|
"bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
|
|
23
23
|
"additionalDependencies": [
|
|
@@ -670,7 +670,7 @@
|
|
|
670
670
|
"validateOnSynth": false,
|
|
671
671
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}",
|
|
672
672
|
"cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}",
|
|
673
|
-
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/
|
|
673
|
+
"stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/da70fb6c6f4ab07690ab5aad465c70e2b8caca384237a5407a691c1e9f2aff78.json",
|
|
674
674
|
"requiresBootstrapStackVersion": 6,
|
|
675
675
|
"bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version",
|
|
676
676
|
"additionalDependencies": [
|
|
@@ -785,7 +785,7 @@
|
|
|
785
785
|
"s3Bucket": {
|
|
786
786
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
|
|
787
787
|
},
|
|
788
|
-
"s3Key": "
|
|
788
|
+
"s3Key": "3fe096136c1d1292627baeb9b860b3206032deebb5a03ea407d7d04833a222d7.zip"
|
|
789
789
|
},
|
|
790
790
|
"environment": {
|
|
791
791
|
"variables": {
|
|
@@ -1060,7 +1060,7 @@
|
|
|
1060
1060
|
"s3Bucket": {
|
|
1061
1061
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
|
|
1062
1062
|
},
|
|
1063
|
-
"s3Key": "
|
|
1063
|
+
"s3Key": "f75274dd7677b6ef41f29d2dfc2c885b4f4e069d3fb8e67636bd89efd3f0fcad.zip"
|
|
1064
1064
|
},
|
|
1065
1065
|
"environment": {
|
|
1066
1066
|
"variables": {
|
|
@@ -1862,7 +1862,7 @@
|
|
|
1862
1862
|
"route53:ListResourceRecordSets"
|
|
1863
1863
|
],
|
|
1864
1864
|
"Effect": "Allow",
|
|
1865
|
-
"Resource": "arn:aws:route53:::hostedzone/
|
|
1865
|
+
"Resource": "arn:aws:route53:::hostedzone/Z01336592122MNIWKOZSV"
|
|
1866
1866
|
}
|
|
1867
1867
|
],
|
|
1868
1868
|
"Version": "2012-10-17"
|
package/lib/rootmail.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Duration, aws_lambda as lambda, aws_s3 as s3 } from 'aws-cdk-lib';
|
|
1
|
+
import { Duration, aws_lambda as lambda, aws_s3 as s3, RemovalPolicy } from 'aws-cdk-lib';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
3
|
export interface RootmailProps {
|
|
4
4
|
/**
|
|
@@ -28,6 +28,12 @@ export interface RootmailProps {
|
|
|
28
28
|
* The custom SES receive function to use
|
|
29
29
|
*/
|
|
30
30
|
readonly customSesReceiveFunction?: lambda.Function;
|
|
31
|
+
/**
|
|
32
|
+
* The removal policy for the email bucket
|
|
33
|
+
*
|
|
34
|
+
* @default RemovalPolicy.RETAIN
|
|
35
|
+
*/
|
|
36
|
+
readonly emailBucketDeletePolicy?: RemovalPolicy;
|
|
31
37
|
/**
|
|
32
38
|
* Whether to set all removal policies to DESTROY. This is useful for integration testing purposes.
|
|
33
39
|
*
|
package/lib/rootmail.js
CHANGED
|
@@ -18,6 +18,7 @@ class Rootmail extends constructs_1.Construct {
|
|
|
18
18
|
const totalTimeToWireDNS = props.totalTimeToWireDNS ?? aws_cdk_lib_1.Duration.hours(2);
|
|
19
19
|
const wireDNSToHostedZoneID = props.wireDNSToHostedZoneID ?? undefined;
|
|
20
20
|
const setDestroyPolicyToAllResources = props.setDestroyPolicyToAllResources ?? false;
|
|
21
|
+
const emailBucketDeletePolicy = props.emailBucketDeletePolicy ?? aws_cdk_lib_1.RemovalPolicy.RETAIN;
|
|
21
22
|
const deployRegion = aws_cdk_lib_1.Stack.of(this).region;
|
|
22
23
|
console.log(`Deploy region is ${deployRegion}`);
|
|
23
24
|
if (!(0, common_1.isSESEnabledRegion)(deployRegion)) {
|
|
@@ -29,6 +30,7 @@ class Rootmail extends constructs_1.Construct {
|
|
|
29
30
|
this.emailBucket = new aws_cdk_lib_1.aws_s3.Bucket(this, 'EmailBucket', {
|
|
30
31
|
blockPublicAccess: aws_cdk_lib_1.aws_s3.BlockPublicAccess.BLOCK_ALL,
|
|
31
32
|
encryption: aws_cdk_lib_1.aws_s3.BucketEncryption.S3_MANAGED,
|
|
33
|
+
removalPolicy: emailBucketDeletePolicy,
|
|
32
34
|
});
|
|
33
35
|
cdk_nag_1.NagSuppressions.addResourceSuppressions([
|
|
34
36
|
this.emailBucket,
|
|
@@ -74,7 +76,7 @@ class Rootmail extends constructs_1.Construct {
|
|
|
74
76
|
}
|
|
75
77
|
exports.Rootmail = Rootmail;
|
|
76
78
|
_a = JSII_RTTI_SYMBOL_1;
|
|
77
|
-
Rootmail[_a] = { fqn: "@mavogel/awscdk-rootmail.Rootmail", version: "0.0.
|
|
79
|
+
Rootmail[_a] = { fqn: "@mavogel/awscdk-rootmail.Rootmail", version: "0.0.215" };
|
|
78
80
|
/**
|
|
79
81
|
* Aspect for setting all removal policies to DESTROY
|
|
80
82
|
*/
|
|
@@ -85,4 +87,4 @@ class ApplyDestroyPolicyAspect {
|
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdG1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcm9vdG1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FZcUI7QUFDckIscUNBQTBDO0FBQzFDLDJDQUFtRDtBQUNuRCxxQ0FBaUU7QUFDakUseURBQW9EO0FBQ3BELCtDQUEyQztBQWtEM0MsTUFBYSxRQUFTLFNBQVEsc0JBQVM7SUFJckMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyx1QkFBdUIsR0FBRywrQkFBK0IsQ0FBQztRQUUvRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQzNDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixJQUFJLHNCQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixJQUFJLFNBQVMsQ0FBQztRQUN2RSxNQUFNLDhCQUE4QixHQUFHLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxLQUFLLENBQUM7UUFDckYsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQXVCLElBQUksMkJBQWEsQ0FBQyxNQUFNLENBQUM7UUFFdEYsTUFBTSxZQUFZLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUEsMkJBQWtCLEVBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxZQUFZLHVDQUF1QywwQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZJLENBQUM7UUFFRDs7V0FFRztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3BELGlCQUFpQixFQUFFLG9CQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztZQUNqRCxVQUFVLEVBQUUsb0JBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO1lBQzFDLGFBQWEsRUFBRSx1QkFBdUI7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gseUJBQWUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVztTQUNqQixFQUFFO1lBQ0QsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLDhCQUE4QixFQUFFO1lBQ2pFLEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRTtTQUMzRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxxQkFBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFdkYseUJBQWUsQ0FBQyx1QkFBdUIsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU87U0FDekIsRUFBRTtZQUNELEVBQUUsRUFBRSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRTtTQUMzRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVQ7O1dBRUc7UUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLHlCQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDeEQsUUFBUSxFQUFFLEdBQUcsU0FBUyxJQUFJLE1BQU0sRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFFSCxNQUFNLHNCQUFzQixHQUFHLElBQUkscUJBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDekYsYUFBYSxFQUFFLElBQUksQ0FBQyx1QkFBdUI7WUFDM0MsZUFBZSxFQUFFLFVBQVUsQ0FBQyxxQkFBcUIsSUFBSSxFQUFFO1NBQ3hELENBQUMsQ0FBQztRQUVILElBQUksaUNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDekMsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsVUFBVTtZQUN0QixxQkFBcUIsRUFBRSxxQkFBcUI7WUFDNUMsc0JBQXNCLEVBQUUsc0JBQXNCO1lBQzlDLGtCQUFrQixFQUFFLGtCQUFrQjtTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNqQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3Qix3QkFBd0IsRUFBRSxLQUFLLENBQUMsd0JBQXdCO1NBQ3pELENBQUMsQ0FBQztRQUVILHVDQUF1QztRQUN2QyxJQUFJLDhCQUE4QixFQUFFLENBQUM7WUFDbkMscUJBQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDOztBQTNFSCw0QkE2RUM7OztBQUVEOztHQUVHO0FBQ0gsTUFBTSx3QkFBd0I7SUFDckIsS0FBSyxDQUFDLElBQWdCO1FBQzNCLElBQUksSUFBSSxZQUFZLHlCQUFXLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRHVyYXRpb24sXG4gIFN0YWNrLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19yb3V0ZTUzIGFzIHI1MyxcbiAgYXdzX3MzIGFzIHMzLFxuICBhd3Nfc3NtIGFzIHNzbSxcbiAgQ2ZuUmVzb3VyY2UsXG4gIElBc3BlY3QsXG4gIFJlbW92YWxQb2xpY3ksXG4gIEFzcGVjdHMsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IE5hZ1N1cHByZXNzaW9ucyB9IGZyb20gJ2Nkay1uYWcnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBpc1NFU0VuYWJsZWRSZWdpb24sIHNlc0VuYWJsZWRSZWdpb25zIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgSG9zdGVkWm9uZURraW0gfSBmcm9tICcuL2hvc3RlZC16b25lLWRraW0nO1xuaW1wb3J0IHsgU0VTUmVjZWl2ZSB9IGZyb20gJy4vc2VzLXJlY2VpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvb3RtYWlsUHJvcHMge1xuICAvKipcbiAgICogRG9tYWluIHVzZWQgZm9yIHJvb3QgbWFpbCBmZWF0dXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1YmRvbWFpbiB1c2VkIGZvciByb290IG1haWwgZmVhdHVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2F3cydcbiAgICovXG4gIHJlYWRvbmx5IHN1YmRvbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRvdGFsIHRpbWUgdG8gd2FpdCBmb3IgdGhlIEROUyByZWNvcmRzIHRvIGJlIGF2YWlsYWJsZS93aXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uaG91cnMoMilcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsVGltZVRvV2lyZUROUz86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdGVkIHpvbmUgSUQgb2YgdGhlIGRvbWFpbiB0aGF0IGlzIHJlZ2lzdGVyZWQgUm91dGU1MyBBTkQgaW4gdGhlIHNhbWUgQVdTIGFjY291bnRcbiAgICogdG8gZW5hYmxlIGF1dG93aXJpbmcgb2YgdGhlIEROUyByZWNvcmRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHdpcmVETlNUb0hvc3RlZFpvbmVJRD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1c3RvbSBTRVMgcmVjZWl2ZSBmdW5jdGlvbiB0byB1c2VcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVNlc1JlY2VpdmVGdW5jdGlvbj86IGxhbWJkYS5GdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIHJlbW92YWwgcG9saWN5IGZvciB0aGUgZW1haWwgYnVja2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSBlbWFpbEJ1Y2tldERlbGV0ZVBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2V0IGFsbCByZW1vdmFsIHBvbGljaWVzIHRvIERFU1RST1kuIFRoaXMgaXMgdXNlZnVsIGZvciBpbnRlZ3JhdGlvbiB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RGVzdHJveVBvbGljeVRvQWxsUmVzb3VyY2VzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJvb3RtYWlsIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RlZFpvbmVQYXJhbWV0ZXJOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBlbWFpbEJ1Y2tldDogczMuQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSb290bWFpbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmhvc3RlZFpvbmVQYXJhbWV0ZXJOYW1lID0gJy9yb290bWFpbC9kb21haW5fbmFtZV9zZXJ2ZXJzJztcblxuICAgIGNvbnN0IGRvbWFpbiA9IHByb3BzLmRvbWFpbjtcbiAgICBjb25zdCBzdWJkb21haW4gPSBwcm9wcy5zdWJkb21haW4gPz8gJ2F3cyc7XG4gICAgY29uc3QgdG90YWxUaW1lVG9XaXJlRE5TID0gcHJvcHMudG90YWxUaW1lVG9XaXJlRE5TID8/IER1cmF0aW9uLmhvdXJzKDIpO1xuICAgIGNvbnN0IHdpcmVETlNUb0hvc3RlZFpvbmVJRCA9IHByb3BzLndpcmVETlNUb0hvc3RlZFpvbmVJRCA/PyB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2V0RGVzdHJveVBvbGljeVRvQWxsUmVzb3VyY2VzID0gcHJvcHMuc2V0RGVzdHJveVBvbGljeVRvQWxsUmVzb3VyY2VzID8/IGZhbHNlO1xuICAgIGNvbnN0IGVtYWlsQnVja2V0RGVsZXRlUG9saWN5ID0gcHJvcHMuZW1haWxCdWNrZXREZWxldGVQb2xpY3kgPz8gUmVtb3ZhbFBvbGljeS5SRVRBSU47XG5cbiAgICBjb25zdCBkZXBsb3lSZWdpb24gPSBTdGFjay5vZih0aGlzKS5yZWdpb247XG4gICAgY29uc29sZS5sb2coYERlcGxveSByZWdpb24gaXMgJHtkZXBsb3lSZWdpb259YCk7XG4gICAgaWYgKCFpc1NFU0VuYWJsZWRSZWdpb24oZGVwbG95UmVnaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTRVMgaXMgbm90IGF2YWlsYWJsZSBpbiByZWdpb24gJHtkZXBsb3lSZWdpb259LiBVc2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVnaW9uczogJHtzZXNFbmFibGVkUmVnaW9ucy5qb2luKCcsICcpfWApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVNQUlMIEJ1Y2tldFxuICAgICAqL1xuICAgIHRoaXMuZW1haWxCdWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdFbWFpbEJ1Y2tldCcsIHtcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICByZW1vdmFsUG9saWN5OiBlbWFpbEJ1Y2tldERlbGV0ZVBvbGljeSxcbiAgICB9KTtcbiAgICBOYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoW1xuICAgICAgdGhpcy5lbWFpbEJ1Y2tldCxcbiAgICBdLCBbXG4gICAgICB7IGlkOiAnQXdzU29sdXRpb25zLVMxJywgcmVhc29uOiAnbm8gc2VydmVyIGFjY2VzcyBsb2dzIG5lZWRlZCcgfSxcbiAgICAgIHsgaWQ6ICdBd3NTb2x1dGlvbnMtUzEwJywgcmVhc29uOiAnbm8gU1NMIGFjY2VzcyBuZWVkZWQnIH0sXG4gICAgXSwgdHJ1ZSk7XG4gICAgdGhpcy5lbWFpbEJ1Y2tldC5ncmFudFB1dChuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3Nlcy5hbWF6b25hd3MuY29tJyksICdSb290TWFpbC8qJyk7XG5cbiAgICBOYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoW1xuICAgICAgdGhpcy5lbWFpbEJ1Y2tldC5wb2xpY3khLFxuICAgIF0sIFtcbiAgICAgIHsgaWQ6ICdBd3NTb2x1dGlvbnMtUzEwJywgcmVhc29uOiAnbm8gU1NMIGFjY2VzcyBuZWVkZWQnIH0sXG4gICAgXSwgdHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBIT1NURUQgWk9ORVxuICAgICAqL1xuICAgIGNvbnN0IGhvc3RlZFpvbmUgPSBuZXcgcjUzLkhvc3RlZFpvbmUodGhpcywgJ0hvc3RlZFpvbmUnLCB7XG4gICAgICB6b25lTmFtZTogYCR7c3ViZG9tYWlufS4ke2RvbWFpbn1gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZVNTTVBhcmFtZXRlciA9IG5ldyBzc20uU3RyaW5nTGlzdFBhcmFtZXRlcih0aGlzLCAnSG9zdGVkWm9uZVNTTVBhcmFtZXRlcicsIHtcbiAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuaG9zdGVkWm9uZVBhcmFtZXRlck5hbWUsXG4gICAgICBzdHJpbmdMaXN0VmFsdWU6IGhvc3RlZFpvbmUuaG9zdGVkWm9uZU5hbWVTZXJ2ZXJzIHx8IFtdLFxuICAgIH0pO1xuXG4gICAgbmV3IEhvc3RlZFpvbmVEa2ltKHRoaXMsICdIb3N0ZWRab25lRGtpbScsIHtcbiAgICAgIGRvbWFpbjogZG9tYWluLFxuICAgICAgc3ViZG9tYWluOiBzdWJkb21haW4sXG4gICAgICBob3N0ZWRab25lOiBob3N0ZWRab25lLFxuICAgICAgd2lyZUROU1RvSG9zdGVkWm9uZUlEOiB3aXJlRE5TVG9Ib3N0ZWRab25lSUQsXG4gICAgICBob3N0ZWRab25lU1NNUGFyYW1ldGVyOiBob3N0ZWRab25lU1NNUGFyYW1ldGVyLFxuICAgICAgdG90YWxUaW1lVG9XaXJlRE5TOiB0b3RhbFRpbWVUb1dpcmVETlMsXG4gICAgfSk7XG5cbiAgICBuZXcgU0VTUmVjZWl2ZSh0aGlzLCAnU0VTUmVjZWl2ZScsIHtcbiAgICAgIGRvbWFpbjogZG9tYWluLFxuICAgICAgc3ViZG9tYWluOiBzdWJkb21haW4sXG4gICAgICBlbWFpbGJ1Y2tldDogdGhpcy5lbWFpbEJ1Y2tldCxcbiAgICAgIGN1c3RvbVNlc1JlY2VpdmVGdW5jdGlvbjogcHJvcHMuY3VzdG9tU2VzUmVjZWl2ZUZ1bmN0aW9uLFxuICAgIH0pO1xuXG4gICAgLy8gSWYgRGVzdHJveSBQb2xpY3kgQXNwZWN0IGlzIHByZXNlbnQ6XG4gICAgaWYgKHNldERlc3Ryb3lQb2xpY3lUb0FsbFJlc291cmNlcykge1xuICAgICAgQXNwZWN0cy5vZih0aGlzKS5hZGQobmV3IEFwcGx5RGVzdHJveVBvbGljeUFzcGVjdCgpKTtcbiAgICB9XG4gIH1cblxufVxuXG4vKipcbiAqIEFzcGVjdCBmb3Igc2V0dGluZyBhbGwgcmVtb3ZhbCBwb2xpY2llcyB0byBERVNUUk9ZXG4gKi9cbmNsYXNzIEFwcGx5RGVzdHJveVBvbGljeUFzcGVjdCBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICBwdWJsaWMgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgQ2ZuUmVzb3VyY2UpIHtcbiAgICAgIG5vZGUuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgfVxuICB9XG59Il19
|
package/lib/ses-receive.js
CHANGED
|
@@ -129,7 +129,7 @@ class SESReceive extends constructs_1.Construct {
|
|
|
129
129
|
}
|
|
130
130
|
exports.SESReceive = SESReceive;
|
|
131
131
|
_a = JSII_RTTI_SYMBOL_1;
|
|
132
|
-
SESReceive[_a] = { fqn: "@mavogel/awscdk-rootmail.SESReceive", version: "0.0.
|
|
132
|
+
SESReceive[_a] = { fqn: "@mavogel/awscdk-rootmail.SESReceive", version: "0.0.215" };
|
|
133
133
|
/**
|
|
134
134
|
* Aspect for setting all removal policies to DESTROY
|
|
135
135
|
*/
|
|
@@ -32,21 +32,42 @@ const handler = async (event) => {
|
|
|
32
32
|
});
|
|
33
33
|
const verdicts = {
|
|
34
34
|
dkim: receipt.dkimVerdict.status,
|
|
35
|
+
dmarc: receipt.dmarcVerdict.status,
|
|
35
36
|
spam: receipt.spamVerdict.status,
|
|
36
37
|
spf: receipt.spfVerdict.status,
|
|
37
38
|
virus: receipt.virusVerdict.status,
|
|
38
39
|
};
|
|
39
40
|
for (const [k, v] of Object.entries(verdicts)) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
switch (k) {
|
|
42
|
+
case 'dkim':
|
|
43
|
+
case 'dmarc':
|
|
44
|
+
if (v !== 'PASS' && v !== 'GRAY') {
|
|
45
|
+
log({
|
|
46
|
+
class: k,
|
|
47
|
+
value: v,
|
|
48
|
+
id: id,
|
|
49
|
+
key: key,
|
|
50
|
+
level: 'warn',
|
|
51
|
+
msg: 'verdict failed - ops santa item skipped',
|
|
52
|
+
});
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
case 'spam':
|
|
57
|
+
case 'spf':
|
|
58
|
+
case 'virus':
|
|
59
|
+
if (v !== 'PASS') {
|
|
60
|
+
log({
|
|
61
|
+
class: k,
|
|
62
|
+
value: v,
|
|
63
|
+
id: id,
|
|
64
|
+
key: key,
|
|
65
|
+
level: 'warn',
|
|
66
|
+
msg: 'verdict failed - ops santa item skipped',
|
|
67
|
+
});
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
50
71
|
}
|
|
51
72
|
}
|
|
52
73
|
const response = await s3.getObject({ Bucket: emailBucket, Key: key });
|
|
@@ -154,4 +175,4 @@ exports.handler = handler;
|
|
|
154
175
|
function log(msg) {
|
|
155
176
|
console.log(JSON.stringify(msg));
|
|
156
177
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLXJlY2VpdmUub3BzLXNhbnRhLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VzLXJlY2VpdmUub3BzLXNhbnRhLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXdDO0FBQ3hDLG9EQUE0RDtBQUM1RCwyQ0FBMEM7QUFFMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztBQUNsRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztBQUM3QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0FBQ3BELE1BQU0sRUFBRSxHQUFHLElBQUksY0FBRSxFQUFFLENBQUM7QUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxnQkFBRyxDQUFDO0lBQ2xCLE1BQU0sRUFBRSxNQUFNO0NBQ2YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxxQkFBcUIsR0FBRztJQUM1Qiw2Q0FBNkM7SUFDN0MsZ0NBQWdDO0NBQ2pDLENBQUM7QUFpRUssTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQThCLEVBQUUsRUFBRTtJQUU5RCxHQUFHLENBQUM7UUFDRixLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssRUFBRSxPQUFPO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsS0FBSyxNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFbkMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLFlBQVksRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFFbkMsR0FBRyxDQUFDO1lBQ0YsRUFBRSxFQUFFLEVBQUU7WUFDTixLQUFLLEVBQUUsT0FBTztZQUNk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QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFMzIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcbmltcG9ydCB7IE9wc0l0ZW1EYXRhVmFsdWUsIFNTTSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zc20nO1xuaW1wb3J0IHsgc2ltcGxlUGFyc2VyIH0gZnJvbSAnbWFpbHBhcnNlcic7XG5cbmNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52LlJPT1RNQUlMX0RFUExPWV9SRUdJT047XG5jb25zdCBlbWFpbEJ1Y2tldCA9IHByb2Nlc3MuZW52LkVNQUlMX0JVQ0tFVDtcbmNvbnN0IGVtYWlsQnVja2V0QXJuID0gcHJvY2Vzcy5lbnYuRU1BSUxfQlVDS0VUX0FSTjtcbmNvbnN0IHMzID0gbmV3IFMzKCk7XG5jb25zdCBzc20gPSBuZXcgU1NNKHtcbiAgcmVnaW9uOiByZWdpb24sXG59KTtcblxuY29uc3QgZmlsdGVyZWRFbWFpbFN1YmplY3RzID0gW1xuICAnWW91ciBBV1MgQWNjb3VudCBpcyBSZWFkeSAtIEdldCBTdGFydGVkIE5vdycsXG4gICdXZWxjb21lIHRvIEFtYXpvbiBXZWIgU2VydmljZXMnLFxuXTtcblxuLy8gZnJvbSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VzL2xhdGVzdC9kZy9yZWNlaXZpbmctZW1haWwtYWN0aW9uLWxhbWJkYS1ldmVudC5odG1sXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UmVjb3JkIHtcbiAgZXZlbnRTb3VyY2U6IHN0cmluZztcbiAgZXZlbnRWZXJzaW9uOiBzdHJpbmc7XG4gIHNlczogU2VzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcyB7XG4gIG1haWw6IE1haWw7XG4gIHJlY2VpcHQ6IFJlY2VpcHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbCB7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmdbXTtcbiAgaGVhZGVyc1RydW5jYXRlZDogYm9vbGVhbjtcbiAgaGVhZGVyczogSGVhZGVyW107XG4gIGNvbW1vbkhlYWRlcnM6IENvbW1vbkhlYWRlcnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vbkhlYWRlcnMge1xuICByZXR1cm5QYXRoOiBzdHJpbmc7XG4gIGZyb206IHN0cmluZ1tdO1xuICBkYXRlOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmdbXTtcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gIHN1YmplY3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNlaXB0IHtcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIHByb2Nlc3NpbmdUaW1lTWlsbGlzOiBudW1iZXI7XG4gIHJlY2lwaWVudHM6IHN0cmluZ1tdO1xuICBzcGFtVmVyZGljdDogVmVyZGljdDtcbiAgdmlydXNWZXJkaWN0OiBWZXJkaWN0O1xuICBzcGZWZXJkaWN0OiBWZXJkaWN0O1xuICBka2ltVmVyZGljdDogVmVyZGljdDtcbiAgZG1hcmNWZXJkaWN0OiBWZXJkaWN0O1xuICBhY3Rpb246IEFjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJkaWN0IHtcbiAgc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbiAgdHlwZTogc3RyaW5nO1xuICBmdW5jdGlvbkFybjogc3RyaW5nO1xuICBpbnZvY2F0aW9uVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNFU0V2ZW50UmVjb3Jkc1RvTGFtYmRhIHtcbiAgUmVjb3JkczogRXZlbnRSZWNvcmRbXTtcbn1cblxuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogU0VTRXZlbnRSZWNvcmRzVG9MYW1iZGEpID0+IHtcblxuICBsb2coe1xuICAgIGV2ZW50OiBldmVudCxcbiAgICBsZXZlbDogJ2RlYnVnJyxcbiAgfSk7XG5cbiAgZm9yIChjb25zdCByZWNvcmQgb2YgZXZlbnQuUmVjb3Jkcykge1xuXG4gICAgY29uc3QgaWQgPSByZWNvcmQuc2VzLm1haWwubWVzc2FnZUlkO1xuICAgIGNvbnN0IGtleSA9IGBSb290TWFpbC8ke2lkfWA7XG4gICAgY29uc3QgcmVjZWlwdCA9IHJlY29yZC5zZXMucmVjZWlwdDtcblxuICAgIGxvZyh7XG4gICAgICBpZDogaWQsXG4gICAgICBsZXZlbDogJ2RlYnVnJyxcbiAgICAgIGtleToga2V5LFxuICAgICAgbXNnOiAncHJvY2Vzc2luZyBtYWlsJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZlcmRpY3RzID0ge1xuICAgICAgZGtpbTogcmVjZWlwdC5ka2ltVmVyZGljdC5zdGF0dXMsXG4gICAgICBzcGFtOiByZWNlaXB0LnNwYW1WZXJkaWN0LnN0YXR1cyxcbiAgICAgIHNwZjogcmVjZWlwdC5zcGZWZXJkaWN0LnN0YXR1cyxcbiAgICAgIHZpcnVzOiByZWNlaXB0LnZpcnVzVmVyZGljdC5zdGF0dXMsXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZlcmRpY3RzKSkge1xuXG4gICAgICBpZiAodiAhPT0gJ1BBU1MnKSB7XG5cbiAgICAgICAgbG9nKHtcbiAgICAgICAgICBjbGFzczogayxcbiAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgbGV2ZWw6ICd3YXJuJyxcbiAgICAgICAgICBtc2c6ICd2ZXJkaWN0IGZhaWxlZCAtIG9wcyBzYW50YSBpdGVtIHNraXBwZWQnLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzMy5nZXRPYmplY3QoeyBCdWNrZXQ6IGVtYWlsQnVja2V0IGFzIHN0cmluZywgS2V5OiBrZXkgfSk7XG5cbiAgICBjb25zdCBtc2cgPSBhd2FpdCBzaW1wbGVQYXJzZXIocmVzcG9uc2UuQm9keSBhcyB1bmtub3duIGFzIEJ1ZmZlcik7XG5cbiAgICBsZXQgdGl0bGUgPSBtc2cuc3ViamVjdDtcblxuICAgIGlmICh0aXRsZSA9PT0gdW5kZWZpbmVkIHx8IHRpdGxlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIGxvZyh7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIGxldmVsOiAnd2FybicsXG4gICAgICAgIG1zZzogJ25vIHN1YmplY3QgZm91bmQnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcmVkRW1haWxTdWJqZWN0cy5pbmNsdWRlcyh0aXRsZSkpIHtcbiAgICAgIGxvZyh7XG4gICAgICAgIGxldmVsOiAnaW5mbycsXG4gICAgICAgIG1zZzogJ2ZpbHRlcmVkIGVtYWlsJyxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlID0gcmVjb3JkLnNlcy5tYWlsLmRlc3RpbmF0aW9uWzBdO1xuXG4gICAgaWYgKHRpdGxlID09PSAnQW1hem9uIFdlYiBTZXJ2aWNlcyBQYXNzd29yZCBBc3Npc3RhbmNlJykge1xuICAgICAgaWYgKG1zZy5odG1sID09PSBmYWxzZSkge1xuICAgICAgICBsb2coe1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICBsZXZlbDogJ3dhcm4nLFxuICAgICAgICAgIG1zZzogJ25vIGh0bWwgYm9keSBmb3VuZCBpbiBwYXNzd29yZCBhc3Npc3RhbmNlIGVtYWlsJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbXNnLmh0bWw7XG4gICAgICBjb25zdCBwd19yZXNldF9saW5rID0gZGVzY3JpcHRpb24ubWF0Y2goL2h0dHBzOlxcL1xcL3NpZ25pbi5hd3MuYW1hem9uLmNvbVxcL3Jlc2V0cGFzc3dvcmQoLio/KSg/PTxicj4pLyk/LlswXSB8fCAnbm8gcGFzc3NvcmQgcmVzZXQgbGluayc7XG4gICAgICBjb25zdCByb290bWFpbF9pZGVudGlmaWVyID0gYC9yb290bWFpbC9wd19yZXNldF9saW5rLyR7c291cmNlLnNwbGl0KCdAJylbMF0uc3BsaXQoJ3Jvb3QrJylbMV19YDtcbiAgICAgIGF3YWl0IHNzbS5wdXRQYXJhbWV0ZXIoe1xuICAgICAgICBOYW1lOiByb290bWFpbF9pZGVudGlmaWVyLFxuICAgICAgICBWYWx1ZTogcHdfcmVzZXRfbGluayxcbiAgICAgICAgT3ZlcndyaXRlOiB0cnVlLFxuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgVGllcjogJ0FkdmFuY2VkJyxcbiAgICAgICAgUG9saWNpZXM6IEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBUeXBlOiAnRXhwaXJhdGlvbicsXG4gICAgICAgICAgICBWZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgICAgIEF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgVGltZXN0YW1wOiBuZXcgRGF0ZShEYXRlLm5vdygpICsgMTAgKiA2MCAqIDEwMDApLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLFxuICAgICAgfSk7XG4gICAgICBsb2coe1xuICAgICAgICBpZDogaWQsXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgICBtc2c6IGBjcmVhdGVkIHNzbSBwYXJhbSBzdG9yZSBlbnRyeSAnJHtyb290bWFpbF9pZGVudGlmaWVyfScgZm9yIHBhc3N3b3JkIGFzc2lzdGFuY2UgZW1haWxgLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47IC8vIG5vIG9wcyBpdGVtIGZvciBub3dcbiAgICB9XG5cbiAgICBsZXQgZGVzY3JpcHRpb24gPSBtc2cudGV4dCB8fCBtc2cuaHRtbDtcbiAgICBpZiAoIWRlc2NyaXB0aW9uKSB7XG4gICAgICBsb2coe1xuICAgICAgICBpZDogaWQsXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBsZXZlbDogJ3dhcm4nLFxuICAgICAgICBtc2c6ICdubyB0ZXh0IG9yIGh0bWwgYm9keSBmb3VuZCcsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aXRsZSA9IHRpdGxlLnN1YnN0cmluZygwLCAxMDIwKSArICh0aXRsZS5sZW5ndGggPiAxMDIwID8gJyAuLi4nIDogJycpO1xuXG4gICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgMTAyMCkgKyAoZGVzY3JpcHRpb24ubGVuZ3RoID4gMTAyMCA/ICcgLi4uJyA6ICcnKTtcblxuICAgIGNvbnN0IHNvdXJjZVRydW5jYXRlZCA9IHNvdXJjZS5zdWJzdHJpbmcoMCwgNjApICsgKHNvdXJjZS5sZW5ndGggPiA2MCA/ICcgLi4uJyA6ICcnKTtcblxuICAgIGNvbnN0IG9wZXJhdGlvbmFsX2RhdGE6IFJlY29yZDxzdHJpbmcsIE9wc0l0ZW1EYXRhVmFsdWU+ID0ge1xuICAgICAgJy9hd3MvZGVkdXAnOiB7XG4gICAgICAgIFZhbHVlOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZWR1cFN0cmluZzogaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgVHlwZTogJ1NlYXJjaGFibGVTdHJpbmcnLFxuICAgICAgfSxcbiAgICAgICcvYXdzL3Jlc291cmNlcyc6IHtcbiAgICAgICAgVmFsdWU6IEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcm46IGAke2VtYWlsQnVja2V0QXJufS8ke2tleX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLFxuICAgICAgICBUeXBlOiAnU2VhcmNoYWJsZVN0cmluZycsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBhd2FpdCBzc20uY3JlYXRlT3BzSXRlbSh7XG4gICAgICBEZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sXG4gICAgICBPcGVyYXRpb25hbERhdGE6IG9wZXJhdGlvbmFsX2RhdGEsXG4gICAgICBTb3VyY2U6IHNvdXJjZVRydW5jYXRlZCxcbiAgICAgIFRpdGxlOiB0aXRsZSxcbiAgICB9KTtcbiAgICBsb2coe1xuICAgICAgaWQ6IGlkLFxuICAgICAga2V5OiBrZXksXG4gICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgbXNnOiBgY3JlYXRlZCBvcHMgaXRlbSB3aXRoIHRpdGxlICcke3RpdGxlfSdgLFxuICAgIH0pO1xuICB9XG59O1xuXG5mdW5jdGlvbiBsb2cobXNnOiBvYmplY3QpIHtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkobXNnKSk7XG59XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLXJlY2VpdmUub3BzLXNhbnRhLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VzLXJlY2VpdmUub3BzLXNhbnRhLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXdDO0FBQ3hDLG9EQUE0RDtBQUM1RCwyQ0FBMEM7QUFFMUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztBQUNsRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztBQUM3QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO0FBQ3BELE1BQU0sRUFBRSxHQUFHLElBQUksY0FBRSxFQUFFLENBQUM7QUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxnQkFBRyxDQUFDO0lBQ2xCLE1BQU0sRUFBRSxNQUFNO0NBQ2YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxxQkFBcUIsR0FBRztJQUM1Qiw2Q0FBNkM7SUFDN0MsZ0NBQWdDO0NBQ2pDLENBQUM7QUFpRUssTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQThCLEVBQUUsRUFBRTtJQUU5RCxHQUFHLENBQUM7UUFDRixLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssRUFBRSxPQUFPO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsS0FBSyxNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFbkMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLFlBQVksRUFBRSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFFbkMsR0FBRyxDQUFDO1lBQ0YsRUFBRSxFQUFFLEVBQUU7WUFDTixLQUFLLEVBQUUsT0FBTztZQUNk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QUM7Z0JBQ0YsSUFBSSxFQUFFLGtCQUFrQjthQUN6QjtTQUNGLENBQUM7UUFFRixNQUFNLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDdEIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyxNQUFNLEVBQUUsZUFBZTtZQUN2QixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQztZQUNGLEVBQUUsRUFBRSxFQUFFO1lBQ04sR0FBRyxFQUFFLEdBQUc7WUFDUixLQUFLLEVBQUUsTUFBTTtZQUNiLEdBQUcsRUFBRSxnQ0FBZ0MsS0FBSyxHQUFHO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUM7QUFsTFcsUUFBQSxPQUFPLFdBa0xsQjtBQUVGLFNBQVMsR0FBRyxDQUFDLEdBQVc7SUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFMzIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcbmltcG9ydCB7IE9wc0l0ZW1EYXRhVmFsdWUsIFNTTSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zc20nO1xuaW1wb3J0IHsgc2ltcGxlUGFyc2VyIH0gZnJvbSAnbWFpbHBhcnNlcic7XG5cbmNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52LlJPT1RNQUlMX0RFUExPWV9SRUdJT047XG5jb25zdCBlbWFpbEJ1Y2tldCA9IHByb2Nlc3MuZW52LkVNQUlMX0JVQ0tFVDtcbmNvbnN0IGVtYWlsQnVja2V0QXJuID0gcHJvY2Vzcy5lbnYuRU1BSUxfQlVDS0VUX0FSTjtcbmNvbnN0IHMzID0gbmV3IFMzKCk7XG5jb25zdCBzc20gPSBuZXcgU1NNKHtcbiAgcmVnaW9uOiByZWdpb24sXG59KTtcblxuY29uc3QgZmlsdGVyZWRFbWFpbFN1YmplY3RzID0gW1xuICAnWW91ciBBV1MgQWNjb3VudCBpcyBSZWFkeSAtIEdldCBTdGFydGVkIE5vdycsXG4gICdXZWxjb21lIHRvIEFtYXpvbiBXZWIgU2VydmljZXMnLFxuXTtcblxuLy8gZnJvbSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VzL2xhdGVzdC9kZy9yZWNlaXZpbmctZW1haWwtYWN0aW9uLWxhbWJkYS1ldmVudC5odG1sXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UmVjb3JkIHtcbiAgZXZlbnRTb3VyY2U6IHN0cmluZztcbiAgZXZlbnRWZXJzaW9uOiBzdHJpbmc7XG4gIHNlczogU2VzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcyB7XG4gIG1haWw6IE1haWw7XG4gIHJlY2VpcHQ6IFJlY2VpcHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbCB7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmdbXTtcbiAgaGVhZGVyc1RydW5jYXRlZDogYm9vbGVhbjtcbiAgaGVhZGVyczogSGVhZGVyW107XG4gIGNvbW1vbkhlYWRlcnM6IENvbW1vbkhlYWRlcnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vbkhlYWRlcnMge1xuICByZXR1cm5QYXRoOiBzdHJpbmc7XG4gIGZyb206IHN0cmluZ1tdO1xuICBkYXRlOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmdbXTtcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gIHN1YmplY3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNlaXB0IHtcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIHByb2Nlc3NpbmdUaW1lTWlsbGlzOiBudW1iZXI7XG4gIHJlY2lwaWVudHM6IHN0cmluZ1tdO1xuICBzcGFtVmVyZGljdDogVmVyZGljdDtcbiAgdmlydXNWZXJkaWN0OiBWZXJkaWN0O1xuICBzcGZWZXJkaWN0OiBWZXJkaWN0O1xuICBka2ltVmVyZGljdDogVmVyZGljdDtcbiAgZG1hcmNWZXJkaWN0OiBWZXJkaWN0O1xuICBhY3Rpb246IEFjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJkaWN0IHtcbiAgc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbiAgdHlwZTogc3RyaW5nO1xuICBmdW5jdGlvbkFybjogc3RyaW5nO1xuICBpbnZvY2F0aW9uVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNFU0V2ZW50UmVjb3Jkc1RvTGFtYmRhIHtcbiAgUmVjb3JkczogRXZlbnRSZWNvcmRbXTtcbn1cblxuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9IGFzeW5jIChldmVudDogU0VTRXZlbnRSZWNvcmRzVG9MYW1iZGEpID0+IHtcblxuICBsb2coe1xuICAgIGV2ZW50OiBldmVudCxcbiAgICBsZXZlbDogJ2RlYnVnJyxcbiAgfSk7XG5cbiAgZm9yIChjb25zdCByZWNvcmQgb2YgZXZlbnQuUmVjb3Jkcykge1xuXG4gICAgY29uc3QgaWQgPSByZWNvcmQuc2VzLm1haWwubWVzc2FnZUlkO1xuICAgIGNvbnN0IGtleSA9IGBSb290TWFpbC8ke2lkfWA7XG4gICAgY29uc3QgcmVjZWlwdCA9IHJlY29yZC5zZXMucmVjZWlwdDtcblxuICAgIGxvZyh7XG4gICAgICBpZDogaWQsXG4gICAgICBsZXZlbDogJ2RlYnVnJyxcbiAgICAgIGtleToga2V5LFxuICAgICAgbXNnOiAncHJvY2Vzc2luZyBtYWlsJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZlcmRpY3RzID0ge1xuICAgICAgZGtpbTogcmVjZWlwdC5ka2ltVmVyZGljdC5zdGF0dXMsXG4gICAgICBkbWFyYzogcmVjZWlwdC5kbWFyY1ZlcmRpY3Quc3RhdHVzLFxuICAgICAgc3BhbTogcmVjZWlwdC5zcGFtVmVyZGljdC5zdGF0dXMsXG4gICAgICBzcGY6IHJlY2VpcHQuc3BmVmVyZGljdC5zdGF0dXMsXG4gICAgICB2aXJ1czogcmVjZWlwdC52aXJ1c1ZlcmRpY3Quc3RhdHVzLFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyh2ZXJkaWN0cykpIHtcbiAgICAgIHN3aXRjaCAoaykge1xuICAgICAgICBjYXNlICdka2ltJzpcbiAgICAgICAgY2FzZSAnZG1hcmMnOlxuICAgICAgICAgIGlmICh2ICE9PSAnUEFTUycgJiYgdiAhPT0gJ0dSQVknKSB7XG4gICAgICAgICAgICBsb2coe1xuICAgICAgICAgICAgICBjbGFzczogayxcbiAgICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICAgIGxldmVsOiAnd2FybicsXG4gICAgICAgICAgICAgIG1zZzogJ3ZlcmRpY3QgZmFpbGVkIC0gb3BzIHNhbnRhIGl0ZW0gc2tpcHBlZCcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3BhbSc6XG4gICAgICAgIGNhc2UgJ3NwZic6XG4gICAgICAgIGNhc2UgJ3ZpcnVzJzpcbiAgICAgICAgICBpZiAodiAhPT0gJ1BBU1MnKSB7XG4gICAgICAgICAgICBsb2coe1xuICAgICAgICAgICAgICBjbGFzczogayxcbiAgICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICAgIGxldmVsOiAnd2FybicsXG4gICAgICAgICAgICAgIG1zZzogJ3ZlcmRpY3QgZmFpbGVkIC0gb3BzIHNhbnRhIGl0ZW0gc2tpcHBlZCcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHMzLmdldE9iamVjdCh7IEJ1Y2tldDogZW1haWxCdWNrZXQgYXMgc3RyaW5nLCBLZXk6IGtleSB9KTtcblxuICAgIGNvbnN0IG1zZyA9IGF3YWl0IHNpbXBsZVBhcnNlcihyZXNwb25zZS5Cb2R5IGFzIHVua25vd24gYXMgQnVmZmVyKTtcblxuICAgIGxldCB0aXRsZSA9IG1zZy5zdWJqZWN0O1xuXG4gICAgaWYgKHRpdGxlID09PSB1bmRlZmluZWQgfHwgdGl0bGUudHJpbSgpID09PSAnJykge1xuICAgICAgbG9nKHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgbGV2ZWw6ICd3YXJuJyxcbiAgICAgICAgbXNnOiAnbm8gc3ViamVjdCBmb3VuZCcsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyZWRFbWFpbFN1YmplY3RzLmluY2x1ZGVzKHRpdGxlKSkge1xuICAgICAgbG9nKHtcbiAgICAgICAgbGV2ZWw6ICdpbmZvJyxcbiAgICAgICAgbXNnOiAnZmlsdGVyZWQgZW1haWwnLFxuICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2UgPSByZWNvcmQuc2VzLm1haWwuZGVzdGluYXRpb25bMF07XG5cbiAgICBpZiAodGl0bGUgPT09ICdBbWF6b24gV2ViIFNlcnZpY2VzIFBhc3N3b3JkIEFzc2lzdGFuY2UnKSB7XG4gICAgICBpZiAobXNnLmh0bWwgPT09IGZhbHNlKSB7XG4gICAgICAgIGxvZyh7XG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgIGxldmVsOiAnd2FybicsXG4gICAgICAgICAgbXNnOiAnbm8gaHRtbCBib2R5IGZvdW5kIGluIHBhc3N3b3JkIGFzc2lzdGFuY2UgZW1haWwnLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBtc2cuaHRtbDtcbiAgICAgIGNvbnN0IHB3X3Jlc2V0X2xpbmsgPSBkZXNjcmlwdGlvbi5tYXRjaCgvaHR0cHM6XFwvXFwvc2lnbmluLmF3cy5hbWF6b24uY29tXFwvcmVzZXRwYXNzd29yZCguKj8pKD89PGJyPikvKT8uWzBdIHx8ICdubyBwYXNzc29yZCByZXNldCBsaW5rJztcbiAgICAgIGNvbnN0IHJvb3RtYWlsX2lkZW50aWZpZXIgPSBgL3Jvb3RtYWlsL3B3X3Jlc2V0X2xpbmsvJHtzb3VyY2Uuc3BsaXQoJ0AnKVswXS5zcGxpdCgncm9vdCsnKVsxXX1gO1xuICAgICAgYXdhaXQgc3NtLnB1dFBhcmFtZXRlcih7XG4gICAgICAgIE5hbWU6IHJvb3RtYWlsX2lkZW50aWZpZXIsXG4gICAgICAgIFZhbHVlOiBwd19yZXNldF9saW5rLFxuICAgICAgICBPdmVyd3JpdGU6IHRydWUsXG4gICAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgICBUaWVyOiAnQWR2YW5jZWQnLFxuICAgICAgICBQb2xpY2llczogSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFR5cGU6ICdFeHBpcmF0aW9uJyxcbiAgICAgICAgICAgIFZlcnNpb246ICcxLjAnLFxuICAgICAgICAgICAgQXR0cmlidXRlczoge1xuICAgICAgICAgICAgICBUaW1lc3RhbXA6IG5ldyBEYXRlKERhdGUubm93KCkgKyAxMCAqIDYwICogMTAwMCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSksXG4gICAgICB9KTtcbiAgICAgIGxvZyh7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIGxldmVsOiAnaW5mbycsXG4gICAgICAgIG1zZzogYGNyZWF0ZWQgc3NtIHBhcmFtIHN0b3JlIGVudHJ5ICcke3Jvb3RtYWlsX2lkZW50aWZpZXJ9JyBmb3IgcGFzc3dvcmQgYXNzaXN0YW5jZSBlbWFpbGAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjsgLy8gbm8gb3BzIGl0ZW0gZm9yIG5vd1xuICAgIH1cblxuICAgIGxldCBkZXNjcmlwdGlvbiA9IG1zZy50ZXh0IHx8IG1zZy5odG1sO1xuICAgIGlmICghZGVzY3JpcHRpb24pIHtcbiAgICAgIGxvZyh7XG4gICAgICAgIGlkOiBpZCxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIGxldmVsOiAnd2FybicsXG4gICAgICAgIG1zZzogJ25vIHRleHQgb3IgaHRtbCBib2R5IGZvdW5kJyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRpdGxlID0gdGl0bGUuc3Vic3RyaW5nKDAsIDEwMjApICsgKHRpdGxlLmxlbmd0aCA+IDEwMjAgPyAnIC4uLicgOiAnJyk7XG5cbiAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCAxMDIwKSArIChkZXNjcmlwdGlvbi5sZW5ndGggPiAxMDIwID8gJyAuLi4nIDogJycpO1xuXG4gICAgY29uc3Qgc291cmNlVHJ1bmNhdGVkID0gc291cmNlLnN1YnN0cmluZygwLCA2MCkgKyAoc291cmNlLmxlbmd0aCA+IDYwID8gJyAuLi4nIDogJycpO1xuXG4gICAgY29uc3Qgb3BlcmF0aW9uYWxfZGF0YTogUmVjb3JkPHN0cmluZywgT3BzSXRlbURhdGFWYWx1ZT4gPSB7XG4gICAgICAnL2F3cy9kZWR1cCc6IHtcbiAgICAgICAgVmFsdWU6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlZHVwU3RyaW5nOiBpZCxcbiAgICAgICAgICB9LFxuICAgICAgICApLFxuICAgICAgICBUeXBlOiAnU2VhcmNoYWJsZVN0cmluZycsXG4gICAgICB9LFxuICAgICAgJy9hd3MvcmVzb3VyY2VzJzoge1xuICAgICAgICBWYWx1ZTogSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFybjogYCR7ZW1haWxCdWNrZXRBcm59LyR7a2V5fWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSksXG4gICAgICAgIFR5cGU6ICdTZWFyY2hhYmxlU3RyaW5nJyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGF3YWl0IHNzbS5jcmVhdGVPcHNJdGVtKHtcbiAgICAgIERlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbixcbiAgICAgIE9wZXJhdGlvbmFsRGF0YTogb3BlcmF0aW9uYWxfZGF0YSxcbiAgICAgIFNvdXJjZTogc291cmNlVHJ1bmNhdGVkLFxuICAgICAgVGl0bGU6IHRpdGxlLFxuICAgIH0pO1xuICAgIGxvZyh7XG4gICAgICBpZDogaWQsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIGxldmVsOiAnaW5mbycsXG4gICAgICBtc2c6IGBjcmVhdGVkIG9wcyBpdGVtIHdpdGggdGl0bGUgJyR7dGl0bGV9J2AsXG4gICAgfSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGxvZyhtc2c6IG9iamVjdCkge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShtc2cpKTtcbn1cbiJdfQ==
|