@aws-solutions-constructs/core 2.32.0 → 2.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +1250 -247
- package/lib/alb-defaults.d.ts +3 -0
- package/lib/alb-defaults.js +8 -1
- package/lib/alb-helper.d.ts +29 -0
- package/lib/alb-helper.js +34 -9
- package/lib/apigateway-defaults.d.ts +10 -0
- package/lib/apigateway-defaults.js +15 -1
- package/lib/apigateway-helper.d.ts +43 -12
- package/lib/apigateway-helper.js +50 -46
- package/lib/cloudfront-distribution-defaults.d.ts +9 -0
- package/lib/cloudfront-distribution-defaults.js +10 -1
- package/lib/cloudfront-distribution-helper.d.ts +31 -3
- package/lib/cloudfront-distribution-helper.js +20 -4
- package/lib/cloudwatch-log-group-defaults.d.ts +3 -0
- package/lib/cloudwatch-log-group-defaults.js +8 -1
- package/lib/cloudwatch-log-group-helper.d.ts +3 -0
- package/lib/cloudwatch-log-group-helper.js +14 -7
- package/lib/cognito-defaults.d.ts +6 -0
- package/lib/cognito-defaults.js +7 -1
- package/lib/cognito-helper.d.ts +15 -0
- package/lib/cognito-helper.js +20 -1
- package/lib/dynamodb-table-defaults.js +5 -1
- package/lib/dynamodb-table-helper.d.ts +22 -2
- package/lib/dynamodb-table-helper.js +22 -6
- package/lib/elasticache-defaults.d.ts +6 -0
- package/lib/elasticache-defaults.js +11 -1
- package/lib/elasticache-helper.d.ts +9 -0
- package/lib/elasticache-helper.js +10 -1
- package/lib/elasticsearch-defaults.d.ts +3 -0
- package/lib/elasticsearch-defaults.js +4 -1
- package/lib/elasticsearch-helper.d.ts +11 -1
- package/lib/elasticsearch-helper.js +12 -2
- package/lib/eventbridge-helper.d.ts +3 -0
- package/lib/eventbridge-helper.js +4 -1
- package/lib/events-rule-defaults.d.ts +3 -0
- package/lib/events-rule-defaults.js +4 -1
- package/lib/fargate-defaults.d.ts +15 -0
- package/lib/fargate-defaults.js +16 -1
- package/lib/fargate-helper.d.ts +14 -1
- package/lib/fargate-helper.js +15 -4
- package/lib/glue-database-defaults.d.ts +1 -1
- package/lib/glue-database-defaults.js +2 -2
- package/lib/glue-database-helper.d.ts +2 -0
- package/lib/glue-database-helper.js +7 -1
- package/lib/glue-job-defaults.d.ts +3 -0
- package/lib/glue-job-defaults.js +4 -1
- package/lib/glue-job-helper.d.ts +26 -2
- package/lib/glue-job-helper.js +48 -34
- package/lib/glue-table-defaults.d.ts +3 -0
- package/lib/glue-table-defaults.js +4 -1
- package/lib/glue-table-helper.d.ts +2 -0
- package/lib/glue-table-helper.js +7 -1
- package/lib/input-validation.d.ts +6 -0
- package/lib/input-validation.js +7 -1
- package/lib/iot-topic-rule-defaults.d.ts +3 -0
- package/lib/iot-topic-rule-defaults.js +4 -1
- package/lib/kinesis-analytics-defaults.js +1 -1
- package/lib/kinesis-analytics-helper.d.ts +3 -0
- package/lib/kinesis-analytics-helper.js +8 -1
- package/lib/kinesis-firehose-s3-defaults.d.ts +3 -0
- package/lib/kinesis-firehose-s3-defaults.js +4 -1
- package/lib/kinesis-streams-defaults.js +5 -1
- package/lib/kinesis-streams-helper.d.ts +6 -0
- package/lib/kinesis-streams-helper.js +11 -1
- package/lib/kms-defaults.js +1 -1
- package/lib/kms-helper.d.ts +3 -0
- package/lib/kms-helper.js +8 -1
- package/lib/lambda-defaults.d.ts +3 -0
- package/lib/lambda-defaults.js +8 -1
- package/lib/lambda-event-source-mapping-defaults.d.ts +9 -0
- package/lib/lambda-event-source-mapping-defaults.js +14 -5
- package/lib/lambda-helper.d.ts +16 -0
- package/lib/lambda-helper.js +22 -5
- package/lib/mediastore-defaults.d.ts +3 -0
- package/lib/mediastore-defaults.js +8 -1
- package/lib/mediastore-helper.d.ts +3 -0
- package/lib/mediastore-helper.js +8 -1
- package/lib/opensearch-defaults.d.ts +3 -0
- package/lib/opensearch-defaults.js +4 -1
- package/lib/opensearch-helper.d.ts +11 -1
- package/lib/opensearch-helper.js +12 -2
- package/lib/override-warning-service.d.ts +2 -0
- package/lib/override-warning-service.js +7 -1
- package/lib/s3-bucket-defaults.d.ts +6 -0
- package/lib/s3-bucket-defaults.js +11 -1
- package/lib/s3-bucket-helper.d.ts +17 -1
- package/lib/s3-bucket-helper.js +14 -2
- package/lib/sagemaker-defaults.d.ts +12 -0
- package/lib/sagemaker-defaults.js +13 -1
- package/lib/sagemaker-helper.d.ts +36 -3
- package/lib/sagemaker-helper.js +44 -22
- package/lib/secretsmanager-defaults.js +1 -1
- package/lib/secretsmanager-helper.d.ts +2 -0
- package/lib/secretsmanager-helper.js +7 -1
- package/lib/security-group-helper.d.ts +6 -0
- package/lib/security-group-helper.js +11 -1
- package/lib/sns-defaults.js +1 -1
- package/lib/sns-helper.d.ts +8 -1
- package/lib/sns-helper.js +10 -3
- package/lib/sqs-defaults.d.ts +3 -0
- package/lib/sqs-defaults.js +8 -1
- package/lib/sqs-helper.d.ts +11 -1
- package/lib/sqs-helper.js +15 -5
- package/lib/ssm-string-parameter-helper.d.ts +2 -0
- package/lib/ssm-string-parameter-helper.js +7 -1
- package/lib/step-function-defaults.d.ts +3 -0
- package/lib/step-function-defaults.js +8 -1
- package/lib/step-function-helper.d.ts +10 -1
- package/lib/step-function-helper.js +42 -34
- package/lib/utils.d.ts +15 -1
- package/lib/utils.js +23 -3
- package/lib/vpc-defaults.d.ts +3 -3
- package/lib/vpc-defaults.js +8 -4
- package/lib/vpc-helper.d.ts +9 -0
- package/lib/vpc-helper.js +14 -1
- package/lib/waf-defaults.d.ts +9 -0
- package/lib/waf-defaults.js +10 -1
- package/lib/waf-helper.d.ts +3 -0
- package/lib/waf-helper.js +4 -1
- package/node_modules/deepmerge/.eslintcache +1 -0
- package/node_modules/deepmerge/changelog.md +4 -0
- package/node_modules/deepmerge/index.d.ts +5 -1
- package/node_modules/deepmerge/package.json +3 -4
- package/node_modules/deepmerge/readme.md +1 -1
- package/node_modules/readable-stream/README.md +2 -2
- package/node_modules/readable-stream/lib/_stream_readable.js +4 -4
- package/node_modules/readable-stream/lib/_stream_writable.js +6 -8
- package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -1
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +14 -4
- package/node_modules/readable-stream/package.json +1 -1
- package/package.json +4 -4
- package/test/alb-helper.test.js +3 -3
- package/test/apigateway-helper.test.js +24 -24
- package/test/cloudfront-distribution-api-gateway-helper.test.js +3 -3
- package/test/cloudfront-distribution-s3-helper.test.js +20 -20
- package/test/dynamo-table.test.js +22 -8
- package/test/elasticsearch-helper.test.js +25 -9
- package/test/fargate-helper.test.js +4 -2
- package/test/glue-job-helper.test.js +59 -58
- package/test/input-validation.test.js +3 -3
- package/test/lambda-helper.test.js +32 -1
- package/test/opensearch-helper.test.js +17 -11
- package/test/s3-bucket-helper.test.js +44 -15
- package/test/sagemaker-helper.test.js +26 -34
- package/test/sns-helper.test.js +10 -4
- package/test/sqs-helper.test.js +12 -23
- package/test/step-function-helper.test.js +74 -18
- package/test/utils.test.js +20 -16
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.CloudFrontOriginAccessIdentity = exports.CloudFrontDistributionForMediaStore = exports.CloudFrontDistributionForS3 = exports.CloudFrontDistributionForApiGateway = void 0;
|
|
16
|
+
/*
|
|
17
|
+
* The functions found here in the core library are for internal use and can be changed
|
|
18
|
+
* or removed outside of a major release. We recommend against calling them directly from client code.
|
|
19
|
+
*/
|
|
16
20
|
const cloudfront = require("aws-cdk-lib/aws-cloudfront");
|
|
17
21
|
const cdk = require("aws-cdk-lib");
|
|
18
22
|
const cloudfront_distribution_defaults_1 = require("./cloudfront-distribution-defaults");
|
|
@@ -50,6 +54,9 @@ function defaultCloudfrontFunction(scope) {
|
|
|
50
54
|
}")
|
|
51
55
|
});
|
|
52
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
59
|
+
*/
|
|
53
60
|
function CloudFrontDistributionForApiGateway(scope, apiEndPoint, cloudFrontDistributionProps, httpSecurityHeaders = true, cloudFrontLoggingBucketProps, responseHeadersPolicyProps) {
|
|
54
61
|
const cloudfrontFunction = getCloudfrontFunction(httpSecurityHeaders, scope);
|
|
55
62
|
const loggingBucket = getLoggingBucket(cloudFrontDistributionProps, scope, cloudFrontLoggingBucketProps);
|
|
@@ -58,9 +65,12 @@ function CloudFrontDistributionForApiGateway(scope, apiEndPoint, cloudFrontDistr
|
|
|
58
65
|
// Create the Cloudfront Distribution
|
|
59
66
|
const cfDistribution = new cloudfront.Distribution(scope, 'CloudFrontDistribution', cfprops);
|
|
60
67
|
updateSecurityPolicy(cfDistribution);
|
|
61
|
-
return
|
|
68
|
+
return { distribution: cfDistribution, cloudfrontFunction, loggingBucket };
|
|
62
69
|
}
|
|
63
70
|
exports.CloudFrontDistributionForApiGateway = CloudFrontDistributionForApiGateway;
|
|
71
|
+
/**
|
|
72
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
73
|
+
*/
|
|
64
74
|
function CloudFrontDistributionForS3(scope, sourceBucket, cloudFrontDistributionProps, httpSecurityHeaders = true, originPath, cloudFrontLoggingBucketProps, responseHeadersPolicyProps) {
|
|
65
75
|
const cloudfrontFunction = getCloudfrontFunction(httpSecurityHeaders, scope);
|
|
66
76
|
const loggingBucket = getLoggingBucket(cloudFrontDistributionProps, scope, cloudFrontLoggingBucketProps);
|
|
@@ -80,9 +90,12 @@ function CloudFrontDistributionForS3(scope, sourceBucket, cloudFrontDistribution
|
|
|
80
90
|
}
|
|
81
91
|
]);
|
|
82
92
|
}
|
|
83
|
-
return
|
|
93
|
+
return { distribution: cfDistribution, cloudfrontFunction, loggingBucket };
|
|
84
94
|
}
|
|
85
95
|
exports.CloudFrontDistributionForS3 = CloudFrontDistributionForS3;
|
|
96
|
+
/**
|
|
97
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
98
|
+
*/
|
|
86
99
|
function CloudFrontDistributionForMediaStore(scope, mediaStoreContainer, cloudFrontDistributionProps, httpSecurityHeaders = true, cloudFrontLoggingBucketProps, responseHeadersPolicyProps) {
|
|
87
100
|
let originRequestPolicy;
|
|
88
101
|
const loggingBucket = getLoggingBucket(cloudFrontDistributionProps, scope, cloudFrontLoggingBucketProps);
|
|
@@ -120,9 +133,12 @@ function CloudFrontDistributionForMediaStore(scope, mediaStoreContainer, cloudFr
|
|
|
120
133
|
// Create the CloudFront Distribution
|
|
121
134
|
const cfDistribution = new cloudfront.Distribution(scope, 'CloudFrontDistribution', cfprops);
|
|
122
135
|
updateSecurityPolicy(cfDistribution);
|
|
123
|
-
return
|
|
136
|
+
return { distribution: cfDistribution, loggingBucket, requestPolicy: originRequestPolicy, cloudfrontFunction };
|
|
124
137
|
}
|
|
125
138
|
exports.CloudFrontDistributionForMediaStore = CloudFrontDistributionForMediaStore;
|
|
139
|
+
/**
|
|
140
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
141
|
+
*/
|
|
126
142
|
function CloudFrontOriginAccessIdentity(scope, comment) {
|
|
127
143
|
return new cloudfront.OriginAccessIdentity(scope, 'CloudFrontOriginAccessIdentity', {
|
|
128
144
|
comment: comment ? comment : `access-identity-${cdk.Aws.REGION}-${cdk.Aws.STACK_NAME}`
|
|
@@ -142,4 +158,4 @@ function getLoggingBucket(cloudFrontDistributionProps, scope, cloudFrontLoggingB
|
|
|
142
158
|
function getCloudfrontFunction(httpSecurityHeaders, scope) {
|
|
143
159
|
return httpSecurityHeaders ? defaultCloudfrontFunction(scope) : undefined;
|
|
144
160
|
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgseURBQXlEO0FBRXpELG1DQUFtQztBQUduQyx5RkFJNEM7QUFDNUMsbUNBQStFO0FBQy9FLHlEQUF5RDtBQUN6RCw2REFBc0Q7QUFJdEQsb0dBQW9HO0FBQ3BHLFNBQVMsb0JBQW9CLENBQUMsY0FBdUM7SUFDbkUsMkJBQW1CLENBQUMsY0FBYyxFQUFFO1FBQ2xDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsc0tBQXNLO1NBQy9LO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELDJHQUEyRztBQUMzRyxzQ0FBc0M7QUFDdEMsU0FBUyx5QkFBeUIsQ0FBQyxLQUFnQjtJQUNqRCxxRUFBcUU7SUFDckUsc0VBQXNFO0lBQ3RFLGdEQUFnRDtJQUNoRCxrREFBa0Q7SUFDbEQsTUFBTSxVQUFVLEdBQUcseUJBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFOUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO1FBQzlELFlBQVksRUFBRSxVQUFVO1FBQ3hCLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7TUFRdkMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixtQ0FBbUMsQ0FBQyxLQUFnQixFQUNsRSxXQUF3QixFQUN4QiwyQkFBZ0UsRUFDaEUsc0JBQStCLElBQUksRUFDbkMsNEJBQTZDLEVBQzdDLDBCQUFrRTtJQUdsRSxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLG1CQUFtQixFQUFFLEtBQUss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Q0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0ICogYXMgbWVkaWFzdG9yZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFzdG9yZSc7XG5pbXBvcnQge1xuICBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvclMzUHJvcHMsXG4gIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVByb3BzLFxuICBEZWZhdWx0Q2xvdWRGcm9udERpc3JpYnV0aW9uRm9yTWVkaWFTdG9yZVByb3BzXG59IGZyb20gJy4vY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2luZ0J1Y2tldCB9IGZyb20gJy4vczMtYnVja2V0LWhlbHBlcic7XG5pbXBvcnQgeyBEZWZhdWx0UzNQcm9wcyB9IGZyb20gJy4vczMtYnVja2V0LWRlZmF1bHRzJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vLyBPdmVycmlkZSBDZm5fTmFnIHJ1bGU6IENsb3VkZnJvbnQgVExTLTEuMiBydWxlIChodHRwczovL2dpdGh1Yi5jb20vc3RlbGxpZ2VudC9jZm5fbmFnL2lzc3Vlcy8zODQpXG5mdW5jdGlvbiB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24pIHtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjZkRpc3RyaWJ1dGlvbiwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzcwJyxcbiAgICAgIHJlYXNvbjogYFNpbmNlIHRoZSBkaXN0cmlidXRpb24gdXNlcyB0aGUgQ2xvdWRGcm9udCBkb21haW4gbmFtZSwgQ2xvdWRGcm9udCBhdXRvbWF0aWNhbGx5IHNldHMgdGhlIHNlY3VyaXR5IHBvbGljeSB0byBUTFN2MSByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiBNaW5pbXVtUHJvdG9jb2xWZXJzaW9uYFxuICAgIH1cbiAgXSk7XG5cbiAgcmV0dXJuIGNmRGlzdHJpYnV0aW9uO1xufVxuXG4vLyBDbG91ZGZyb250IGZ1bmN0aW9uIHRvIGluc2VydCB0aGUgSFRUUCBTZWN1cml0eSBIZWFkZXJzIGludG8gdGhlIHJlc3BvbnNlIGNvbWluZyBmcm9tIHRoZSBvcmlnaW4gc2VydmVyc1xuLy8gYW5kIGJlZm9yZSBpdCBpcyBzZW50IHRvIHRoZSBjbGllbnRcbmZ1bmN0aW9uIGRlZmF1bHRDbG91ZGZyb250RnVuY3Rpb24oc2NvcGU6IENvbnN0cnVjdCk6IGNsb3VkZnJvbnQuRnVuY3Rpb24ge1xuICAvLyBnZW5lcmF0ZSBhIHN0YWJsZSB1bmlxdWUgaWQgZm9yIHRoZSBjbG91ZGZyb250IGZ1bmN0aW9uIGFuZCB1c2UgaXRcbiAgLy8gYm90aCBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBsb2dpY2FsIGlkIG9mIHRoZSBmdW5jdGlvbiBzbyBpZlxuICAvLyBpdCBpcyBjaGFuZ2VkIHRoZSBmdW5jdGlvbiB3aWxsIGJlIHJlY3JlYXRlZC5cbiAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTU1MjNcbiAgY29uc3QgZnVuY3Rpb25JZCA9IGBTZXRIdHRwU2VjdXJpdHlIZWFkZXJzJHtzY29wZS5ub2RlLmFkZHJ9YDtcblxuICByZXR1cm4gbmV3IGNsb3VkZnJvbnQuRnVuY3Rpb24oc2NvcGUsIFwiU2V0SHR0cFNlY3VyaXR5SGVhZGVyc1wiLCB7XG4gICAgZnVuY3Rpb25OYW1lOiBmdW5jdGlvbklkLFxuICAgIGNvZGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoXCJmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7IHZhciByZXNwb25zZSA9IGV2ZW50LnJlc3BvbnNlOyBcXFxuICAgICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOyBcXFxuICAgICAgaGVhZGVyc1snc3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSddID0geyB2YWx1ZTogJ21heC1hZ2U9NjMwNzIwMDA7IGluY2x1ZGVTdWJkb21haW5zOyBwcmVsb2FkJ307IFxcXG4gICAgICBoZWFkZXJzWydjb250ZW50LXNlY3VyaXR5LXBvbGljeSddID0geyB2YWx1ZTogXFxcImRlZmF1bHQtc3JjICdub25lJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnOyBvYmplY3Qtc3JjICdub25lJ1xcXCJ9OyBcXFxuICAgICAgaGVhZGVyc1sneC1jb250ZW50LXR5cGUtb3B0aW9ucyddID0geyB2YWx1ZTogJ25vc25pZmYnfTsgXFxcbiAgICAgIGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcXFxuICAgICAgaGVhZGVyc1sneC14c3MtcHJvdGVjdGlvbiddID0ge3ZhbHVlOiAnMTsgbW9kZT1ibG9jayd9OyBcXFxuICAgICAgcmV0dXJuIHJlc3BvbnNlOyBcXFxuICAgIH1cIilcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheShzY29wZTogQ29uc3RydWN0LFxuICBhcGlFbmRQb2ludDogYXBpLlJlc3RBcGksXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4gPSB0cnVlLFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wc1xuKTogW2Nsb3VkZnJvbnQuRGlzdHJpYnV0aW9uLCBjbG91ZGZyb250LkZ1bmN0aW9uPywgczMuQnVja2V0P10ge1xuXG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgY29uc3QgbG9nZ2luZ0J1Y2tldCA9IGdldExvZ2dpbmdCdWNrZXQoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLCBzY29wZSwgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgY29uc3QgZGVmYXVsdHByb3BzID0gRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JBcGlHYXRld2F5UHJvcHMoYXBpRW5kUG9pbnQsXG4gICAgbG9nZ2luZ0J1Y2tldCxcbiAgICBodHRwU2VjdXJpdHlIZWFkZXJzLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyA/IG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeShzY29wZSwgJ1Jlc3BvbnNlSGVhZGVyc1BvbGljeScsIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzKSA6IHVuZGVmaW5lZFxuICApO1xuXG4gIGNvbnN0IGNmcHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRwcm9wcywgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKTtcbiAgLy8gQ3JlYXRlIHRoZSBDbG91ZGZyb250IERpc3RyaWJ1dGlvblxuICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbihzY29wZSwgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCBjZnByb3BzKTtcbiAgdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb24pO1xuXG4gIHJldHVybiBbY2ZEaXN0cmlidXRpb24sIGNsb3VkZnJvbnRGdW5jdGlvbiwgbG9nZ2luZ0J1Y2tldF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHNvdXJjZUJ1Y2tldDogczMuSUJ1Y2tldCxcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiA9IHRydWUsXG4gIG9yaWdpblBhdGg/OiBzdHJpbmcsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzXG4pOiBbY2xvdWRmcm9udC5EaXN0cmlidXRpb24sIGNsb3VkZnJvbnQuRnVuY3Rpb24/LCBzMy5CdWNrZXQ/XSB7XG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgY29uc3QgbG9nZ2luZ0J1Y2tldCA9IGdldExvZ2dpbmdCdWNrZXQoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLCBzY29wZSwgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgY29uc3QgZGVmYXVsdHByb3BzID0gRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JTM1Byb3BzKHNvdXJjZUJ1Y2tldCxcbiAgICBsb2dnaW5nQnVja2V0LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgb3JpZ2luUGF0aCxcbiAgICBjbG91ZGZyb250RnVuY3Rpb24sXG4gICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgPyAgbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHNjb3BlLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5JywgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMpIDogdW5kZWZpbmVkXG4gICk7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuQnVja2V0UG9saWN5IGZyb20gdGhlIHNvdXJjZUJ1Y2tldFxuICBjb25zdCBidWNrZXRQb2xpY3kgPSBzb3VyY2VCdWNrZXQucG9saWN5IGFzIHMzLkJ1Y2tldFBvbGljeTtcbiAgLy8gdGhlIGxhY2sgb2YgYSBidWNrZXRQb2xpY3kgbWVhbnMgdGhlIGJ1Y2tldCB3YXMgaW1wb3J0ZWQgZnJvbSBvdXRzaWRlIHRoZSBzdGFjayBzbyB0aGUgbGFjayBvZiBjZm5fbmFnIHN1cHByZXNzaW9uIGlzIG5vdCBhbiBpc3N1ZVxuICBpZiAoYnVja2V0UG9saWN5KSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhidWNrZXRQb2xpY3ksIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdGMTYnLFxuICAgICAgICByZWFzb246IGBQdWJsaWMgd2Vic2l0ZSBidWNrZXQgcG9saWN5IHJlcXVpcmVzIGEgd2lsZGNhcmQgcHJpbmNpcGFsYFxuICAgICAgfVxuICAgIF0pO1xuICB9XG4gIHJldHVybiBbY2ZEaXN0cmlidXRpb24sIGNsb3VkZnJvbnRGdW5jdGlvbiwgbG9nZ2luZ0J1Y2tldF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZShzY29wZTogQ29uc3RydWN0LFxuICBtZWRpYVN0b3JlQ29udGFpbmVyOiBtZWRpYXN0b3JlLkNmbkNvbnRhaW5lcixcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiA9IHRydWUsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzXG4pOiBbY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gICAgczMuQnVja2V0IHwgdW5kZWZpbmVkLCBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3ksIGNsb3VkZnJvbnQuRnVuY3Rpb24/XSB7XG5cbiAgbGV0IG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeTtcblxuICBjb25zdCBsb2dnaW5nQnVja2V0ID0gZ2V0TG9nZ2luZ0J1Y2tldChjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsIHNjb3BlLCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBpZiAoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzXG4gICAgJiYgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmRlZmF1bHRCZWhhdmlvclxuICAgICYmIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5kZWZhdWx0QmVoYXZpb3Iub3JpZ2luUmVxdWVzdFBvbGljeSkge1xuICAgIG9yaWdpblJlcXVlc3RQb2xpY3kgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMuZGVmYXVsdEJlaGF2aW9yLm9yaWdpblJlcXVlc3RQb2xpY3k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgb3JpZ2luUmVxdWVzdFBvbGljeVByb3BzOiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGhlYWRlckJlaGF2aW9yOiB7XG4gICAgICAgIGJlaGF2aW9yOiAnd2hpdGVsaXN0JyxcbiAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLFxuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZCcsXG4gICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVyJyxcbiAgICAgICAgICAnT3JpZ2luJ1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ2FsbCdcbiAgICAgIH0sXG4gICAgICBjb29raWVCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ25vbmUnXG4gICAgICB9LFxuICAgICAgY29tbWVudDogJ1BvbGljeSBmb3IgQ29uc3RydWN0cyBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZScsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZTogYCR7Y2RrLkF3cy5TVEFDS19OQU1FfS0ke2Nkay5Bd3MuUkVHSU9OfS1DbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZWBcbiAgICB9O1xuXG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeSA9IG5ldyBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3koc2NvcGUsICdDbG91ZGZyb250T3JpZ2luUmVxdWVzdFBvbGljeScsIG9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyk7XG4gIH1cblxuICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVycywgc2NvcGUpO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250RGlzcmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHMoXG4gICAgbWVkaWFTdG9yZUNvbnRhaW5lcixcbiAgICBsb2dnaW5nQnVja2V0LFxuICAgIG9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVycyxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmN1c3RvbUhlYWRlcnMsXG4gICAgY2xvdWRmcm9udEZ1bmN0aW9uLFxuICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzID8gbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHNjb3BlLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5JywgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMpIDogdW5kZWZpbmVkXG4gICk7XG5cbiAgbGV0IGNmcHJvcHM6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHM7XG5cbiAgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgQ2xvdWRGcm9udCBEaXN0cmlidXRpb25cbiAgY29uc3QgY2ZEaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24oc2NvcGUsICdDbG91ZEZyb250RGlzdHJpYnV0aW9uJywgY2Zwcm9wcyk7XG4gIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uKTtcblxuICByZXR1cm4gW2NmRGlzdHJpYnV0aW9uLCBsb2dnaW5nQnVja2V0LCBvcmlnaW5SZXF1ZXN0UG9saWN5LCBjbG91ZGZyb250RnVuY3Rpb25dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHNjb3BlOiBDb25zdHJ1Y3QsIGNvbW1lbnQ/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBjbG91ZGZyb250Lk9yaWdpbkFjY2Vzc0lkZW50aXR5KHNjb3BlLCAnQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Jywge1xuICAgIGNvbW1lbnQ6IGNvbW1lbnQgPyBjb21tZW50IDogYGFjY2Vzcy1pZGVudGl0eS0ke2Nkay5Bd3MuUkVHSU9OfS0ke2Nkay5Bd3MuU1RBQ0tfTkFNRX1gXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRMb2dnaW5nQnVja2V0KFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wc1xuKTogczMuQnVja2V0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaXNMb2dnaW5nRGlzYWJsZWQgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmVuYWJsZUxvZ2dpbmcgPT09IGZhbHNlO1xuICBjb25zdCB1c2VyU3VwcGxpZWRMb2dCdWNrZXQgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmxvZ0J1Y2tldDtcblxuICBpZiAodXNlclN1cHBsaWVkTG9nQnVja2V0ICYmIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICB0aHJvdyBFcnJvcignRWl0aGVyIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5sb2dCdWNrZXQgb3IgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyBjYW4gYmUgc2V0LicpO1xuICB9XG5cbiAgcmV0dXJuIGlzTG9nZ2luZ0Rpc2FibGVkXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IHVzZXJTdXBwbGllZExvZ0J1Y2tldCA/PyBjcmVhdGVMb2dnaW5nQnVja2V0KFxuICAgICAgc2NvcGUsXG4gICAgICAnQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQnLFxuICAgICAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyA/IG92ZXJyaWRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcykgOiBEZWZhdWx0UzNQcm9wcygpKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4sIHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgcmV0dXJuIGh0dHBTZWN1cml0eUhlYWRlcnMgPyBkZWZhdWx0Q2xvdWRmcm9udEZ1bmN0aW9uKHNjb3BlKSA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgseURBQXlEO0FBRXpELG1DQUFtQztBQUduQyx5RkFJNEM7QUFDNUMsbUNBQStFO0FBQy9FLHlEQUF5RDtBQUN6RCw2REFBc0Q7QUFJdEQsb0dBQW9HO0FBQ3BHLFNBQVMsb0JBQW9CLENBQUMsY0FBdUM7SUFDbkUsMkJBQW1CLENBQUMsY0FBYyxFQUFFO1FBQ2xDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsc0tBQXNLO1NBQy9LO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELDJHQUEyRztBQUMzRyxzQ0FBc0M7QUFDdEMsU0FBUyx5QkFBeUIsQ0FBQyxLQUFnQjtJQUNqRCxxRUFBcUU7SUFDckUsc0VBQXNFO0lBQ3RFLGdEQUFnRDtJQUNoRCxrREFBa0Q7SUFDbEQsTUFBTSxVQUFVLEdBQUcseUJBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFOUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO1FBQzlELFlBQVksRUFBRSxVQUFVO1FBQ3hCLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7TUFRdkMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUM7QUFRRDs7R0FFRztBQUNILFNBQWdCLG1DQUFtQyxDQUFDLEtBQWdCLEVBQ2xFLFdBQXdCLEVBQ3hCLDJCQUFnRSxFQUNoRSxzQkFBK0IsSUFBSSxFQUNuQyw0QkFBNkMsRUFDN0MsMEJBQWtFO0lBR2xFLE1BQU0sa0JBQWtCLEdBQUcscUJBQXFC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LENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLG1CQUE0QixFQUFFLEtBQWdCO0lBQzNFLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgKiBhcyBtZWRpYXN0b3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYXN0b3JlJztcbmltcG9ydCB7XG4gIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyxcbiAgRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JBcGlHYXRld2F5UHJvcHMsXG4gIERlZmF1bHRDbG91ZEZyb250RGlzcmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHNcbn0gZnJvbSAnLi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnaW5nQnVja2V0IH0gZnJvbSAnLi9zMy1idWNrZXQtaGVscGVyJztcbmltcG9ydCB7IERlZmF1bHRTM1Byb3BzIH0gZnJvbSAnLi9zMy1idWNrZXQtZGVmYXVsdHMnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8vIE92ZXJyaWRlIENmbl9OYWcgcnVsZTogQ2xvdWRmcm9udCBUTFMtMS4yIHJ1bGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVsbGlnZW50L2Nmbl9uYWcvaXNzdWVzLzM4NClcbmZ1bmN0aW9uIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbikge1xuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGNmRGlzdHJpYnV0aW9uLCBbXG4gICAge1xuICAgICAgaWQ6ICdXNzAnLFxuICAgICAgcmVhc29uOiBgU2luY2UgdGhlIGRpc3RyaWJ1dGlvbiB1c2VzIHRoZSBDbG91ZEZyb250IGRvbWFpbiBuYW1lLCBDbG91ZEZyb250IGF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgc2VjdXJpdHkgcG9saWN5IHRvIFRMU3YxIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIE1pbmltdW1Qcm90b2NvbFZlcnNpb25gXG4gICAgfVxuICBdKTtcblxuICByZXR1cm4gY2ZEaXN0cmlidXRpb247XG59XG5cbi8vIENsb3VkZnJvbnQgZnVuY3Rpb24gdG8gaW5zZXJ0IHRoZSBIVFRQIFNlY3VyaXR5IEhlYWRlcnMgaW50byB0aGUgcmVzcG9uc2UgY29taW5nIGZyb20gdGhlIG9yaWdpbiBzZXJ2ZXJzXG4vLyBhbmQgYmVmb3JlIGl0IGlzIHNlbnQgdG8gdGhlIGNsaWVudFxuZnVuY3Rpb24gZGVmYXVsdENsb3VkZnJvbnRGdW5jdGlvbihzY29wZTogQ29uc3RydWN0KTogY2xvdWRmcm9udC5GdW5jdGlvbiB7XG4gIC8vIGdlbmVyYXRlIGEgc3RhYmxlIHVuaXF1ZSBpZCBmb3IgdGhlIGNsb3VkZnJvbnQgZnVuY3Rpb24gYW5kIHVzZSBpdFxuICAvLyBib3RoIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIGxvZ2ljYWwgaWQgb2YgdGhlIGZ1bmN0aW9uIHNvIGlmXG4gIC8vIGl0IGlzIGNoYW5nZWQgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgcmVjcmVhdGVkLlxuICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNTUyM1xuICBjb25zdCBmdW5jdGlvbklkID0gYFNldEh0dHBTZWN1cml0eUhlYWRlcnMke3Njb3BlLm5vZGUuYWRkcn1gO1xuXG4gIHJldHVybiBuZXcgY2xvdWRmcm9udC5GdW5jdGlvbihzY29wZSwgXCJTZXRIdHRwU2VjdXJpdHlIZWFkZXJzXCIsIHtcbiAgICBmdW5jdGlvbk5hbWU6IGZ1bmN0aW9uSWQsXG4gICAgY29kZTogY2xvdWRmcm9udC5GdW5jdGlvbkNvZGUuZnJvbUlubGluZShcImZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHsgdmFyIHJlc3BvbnNlID0gZXZlbnQucmVzcG9uc2U7IFxcXG4gICAgICB2YXIgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7IFxcXG4gICAgICBoZWFkZXJzWydzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5J10gPSB7IHZhbHVlOiAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnfTsgXFxcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5J10gPSB7IHZhbHVlOiBcXFwiZGVmYXVsdC1zcmMgJ25vbmUnOyBpbWctc3JjICdzZWxmJzsgc2NyaXB0LXNyYyAnc2VsZic7IHN0eWxlLXNyYyAnc2VsZic7IG9iamVjdC1zcmMgJ25vbmUnXFxcIn07IFxcXG4gICAgICBoZWFkZXJzWyd4LWNvbnRlbnQtdHlwZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnbm9zbmlmZid9OyBcXFxuICAgICAgaGVhZGVyc1sneC1mcmFtZS1vcHRpb25zJ10gPSB7dmFsdWU6ICdERU5ZJ307IFxcXG4gICAgICBoZWFkZXJzWyd4LXhzcy1wcm90ZWN0aW9uJ10gPSB7dmFsdWU6ICcxOyBtb2RlPWJsb2NrJ307IFxcXG4gICAgICByZXR1cm4gcmVzcG9uc2U7IFxcXG4gICAgfVwiKVxuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbixcbiAgcmVhZG9ubHkgY2xvdWRmcm9udEZ1bmN0aW9uPzogY2xvdWRmcm9udC5GdW5jdGlvbixcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheShzY29wZTogQ29uc3RydWN0LFxuICBhcGlFbmRQb2ludDogYXBpLlJlc3RBcGksXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4gPSB0cnVlLFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wc1xuKTogQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlSZXNwb25zZSB7XG5cbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBjb25zdCBsb2dnaW5nQnVja2V0ID0gZ2V0TG9nZ2luZ0J1Y2tldChjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsIHNjb3BlLCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvckFwaUdhdGV3YXlQcm9wcyhhcGlFbmRQb2ludCxcbiAgICBsb2dnaW5nQnVja2V0LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgY2xvdWRmcm9udEZ1bmN0aW9uLFxuICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzID8gbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHNjb3BlLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5JywgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMpIDogdW5kZWZpbmVkXG4gICk7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgcmV0dXJuIHsgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbiwgY2xvdWRmcm9udEZ1bmN0aW9uLCBsb2dnaW5nQnVja2V0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzNSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGNsb3VkZnJvbnRGdW5jdGlvbj86IGNsb3VkZnJvbnQuRnVuY3Rpb24sXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgc291cmNlQnVja2V0OiBzMy5JQnVja2V0LFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICBodHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSxcbiAgb3JpZ2luUGF0aD86IHN0cmluZyxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbik6IENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTM1Jlc3BvbnNlIHtcbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBjb25zdCBsb2dnaW5nQnVja2V0ID0gZ2V0TG9nZ2luZ0J1Y2tldChjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsIHNjb3BlLCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvclMzUHJvcHMoc291cmNlQnVja2V0LFxuICAgIGxvZ2dpbmdCdWNrZXQsXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVycyxcbiAgICBvcmlnaW5QYXRoLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyA/ICBuZXcgY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3koc2NvcGUsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcykgOiB1bmRlZmluZWRcbiAgKTtcblxuICBjb25zdCBjZnByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cHJvcHMsIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyk7XG4gIC8vIENyZWF0ZSB0aGUgQ2xvdWRmcm9udCBEaXN0cmlidXRpb25cbiAgY29uc3QgY2ZEaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24oc2NvcGUsICdDbG91ZEZyb250RGlzdHJpYnV0aW9uJywgY2Zwcm9wcyk7XG4gIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uKTtcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5CdWNrZXRQb2xpY3kgZnJvbSB0aGUgc291cmNlQnVja2V0XG4gIGNvbnN0IGJ1Y2tldFBvbGljeSA9IHNvdXJjZUJ1Y2tldC5wb2xpY3kgYXMgczMuQnVja2V0UG9saWN5O1xuICAvLyB0aGUgbGFjayBvZiBhIGJ1Y2tldFBvbGljeSBtZWFucyB0aGUgYnVja2V0IHdhcyBpbXBvcnRlZCBmcm9tIG91dHNpZGUgdGhlIHN0YWNrIHNvIHRoZSBsYWNrIG9mIGNmbl9uYWcgc3VwcHJlc3Npb24gaXMgbm90IGFuIGlzc3VlXG4gIGlmIChidWNrZXRQb2xpY3kpIHtcbiAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKGJ1Y2tldFBvbGljeSwgW1xuICAgICAge1xuICAgICAgICBpZDogJ0YxNicsXG4gICAgICAgIHJlYXNvbjogYFB1YmxpYyB3ZWJzaXRlIGJ1Y2tldCBwb2xpY3kgcmVxdWlyZXMgYSB3aWxkY2FyZCBwcmluY2lwYWxgXG4gICAgICB9XG4gICAgXSk7XG4gIH1cbiAgcmV0dXJuIHsgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbiwgY2xvdWRmcm9udEZ1bmN0aW9uLCBsb2dnaW5nQnVja2V0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZVJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbixcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgcmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICByZWFkb25seSBjbG91ZGZyb250RnVuY3Rpb24/OiBjbG91ZGZyb250LkZ1bmN0aW9uXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlKHNjb3BlOiBDb25zdHJ1Y3QsXG4gIG1lZGlhU3RvcmVDb250YWluZXI6IG1lZGlhc3RvcmUuQ2ZuQ29udGFpbmVyLFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICBodHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHNcbik6IENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlUmVzcG9uc2Uge1xuXG4gIGxldCBvcmlnaW5SZXF1ZXN0UG9saWN5OiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3k7XG5cbiAgY29uc3QgbG9nZ2luZ0J1Y2tldCA9IGdldExvZ2dpbmdCdWNrZXQoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLCBzY29wZSwgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgaWYgKGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wc1xuICAgICYmIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5kZWZhdWx0QmVoYXZpb3JcbiAgICAmJiBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMuZGVmYXVsdEJlaGF2aW9yLm9yaWdpblJlcXVlc3RQb2xpY3kpIHtcbiAgICBvcmlnaW5SZXF1ZXN0UG9saWN5ID0gY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmRlZmF1bHRCZWhhdmlvci5vcmlnaW5SZXF1ZXN0UG9saWN5O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG9yaWdpblJlcXVlc3RQb2xpY3lQcm9wczogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMgPSB7XG4gICAgICBoZWFkZXJCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ3doaXRlbGlzdCcsXG4gICAgICAgIGhlYWRlcnM6IFtcbiAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QnLFxuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcicsXG4gICAgICAgICAgJ09yaWdpbidcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IHtcbiAgICAgICAgYmVoYXZpb3I6ICdhbGwnXG4gICAgICB9LFxuICAgICAgY29va2llQmVoYXZpb3I6IHtcbiAgICAgICAgYmVoYXZpb3I6ICdub25lJ1xuICAgICAgfSxcbiAgICAgIGNvbW1lbnQ6ICdQb2xpY3kgZm9yIENvbnN0cnVjdHMgQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmUnLFxuICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeU5hbWU6IGAke2Nkay5Bd3MuU1RBQ0tfTkFNRX0tJHtjZGsuQXdzLlJFR0lPTn0tQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmVgXG4gICAgfTtcblxuICAgIG9yaWdpblJlcXVlc3RQb2xpY3kgPSBuZXcgY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5KHNjb3BlLCAnQ2xvdWRmcm9udE9yaWdpblJlcXVlc3RQb2xpY3knLCBvcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMpO1xuICB9XG5cbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udERpc3JpYnV0aW9uRm9yTWVkaWFTdG9yZVByb3BzKFxuICAgIG1lZGlhU3RvcmVDb250YWluZXIsXG4gICAgbG9nZ2luZ0J1Y2tldCxcbiAgICBvcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgIGh0dHBTZWN1cml0eUhlYWRlcnMsXG4gICAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPy5jdXN0b21IZWFkZXJzLFxuICAgIGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyA/IG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeShzY29wZSwgJ1Jlc3BvbnNlSGVhZGVyc1BvbGljeScsIHJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzKSA6IHVuZGVmaW5lZFxuICApO1xuXG4gIGxldCBjZnByb3BzOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzO1xuXG4gIGNmcHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRwcm9wcywgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgcmV0dXJuIHsgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbiwgbG9nZ2luZ0J1Y2tldCwgcmVxdWVzdFBvbGljeTogb3JpZ2luUmVxdWVzdFBvbGljeSwgY2xvdWRmcm9udEZ1bmN0aW9uIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eShzY29wZTogQ29uc3RydWN0LCBjb21tZW50Pzogc3RyaW5nKSB7XG4gIHJldHVybiBuZXcgY2xvdWRmcm9udC5PcmlnaW5BY2Nlc3NJZGVudGl0eShzY29wZSwgJ0Nsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsIHtcbiAgICBjb21tZW50OiBjb21tZW50ID8gY29tbWVudCA6IGBhY2Nlc3MtaWRlbnRpdHktJHtjZGsuQXdzLlJFR0lPTn0tJHtjZGsuQXdzLlNUQUNLX05BTUV9YFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TG9nZ2luZ0J1Y2tldChcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LCBzY29wZTogQ29uc3RydWN0LFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHNcbik6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGlzTG9nZ2luZ0Rpc2FibGVkID0gY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPy5lbmFibGVMb2dnaW5nID09PSBmYWxzZTtcbiAgY29uc3QgdXNlclN1cHBsaWVkTG9nQnVja2V0ID0gY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPy5sb2dCdWNrZXQ7XG5cbiAgaWYgKHVzZXJTdXBwbGllZExvZ0J1Y2tldCAmJiBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKSB7XG4gICAgdGhyb3cgRXJyb3IoJ0VpdGhlciBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMubG9nQnVja2V0IG9yIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMgY2FuIGJlIHNldC4nKTtcbiAgfVxuXG4gIHJldHVybiBpc0xvZ2dpbmdEaXNhYmxlZFxuICAgID8gdW5kZWZpbmVkXG4gICAgOiB1c2VyU3VwcGxpZWRMb2dCdWNrZXQgPz8gY3JlYXRlTG9nZ2luZ0J1Y2tldChcbiAgICAgIHNjb3BlLFxuICAgICAgJ0Nsb3VkZnJvbnRMb2dnaW5nQnVja2V0JyxcbiAgICAgIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMgPyBvdmVycmlkZVByb3BzKERlZmF1bHRTM1Byb3BzKCksIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpIDogRGVmYXVsdFMzUHJvcHMoKSk7XG59XG5cbmZ1bmN0aW9uIGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuLCBzY29wZTogQ29uc3RydWN0KSB7XG4gIHJldHVybiBodHRwU2VjdXJpdHlIZWFkZXJzID8gZGVmYXVsdENsb3VkZnJvbnRGdW5jdGlvbihzY29wZSkgOiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -11,4 +11,7 @@
|
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
import * as logs from 'aws-cdk-lib/aws-logs';
|
|
14
|
+
/**
|
|
15
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
16
|
+
*/
|
|
14
17
|
export declare function DefaultLogGroupProps(): logs.LogGroupProps;
|
|
@@ -13,7 +13,14 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DefaultLogGroupProps = void 0;
|
|
16
|
+
/*
|
|
17
|
+
* The functions found here in the core library are for internal use and can be changed
|
|
18
|
+
* or removed outside of a major release. We recommend against calling them directly from client code.
|
|
19
|
+
*/
|
|
16
20
|
const logs = require("aws-cdk-lib/aws-logs");
|
|
21
|
+
/**
|
|
22
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
23
|
+
*/
|
|
17
24
|
function DefaultLogGroupProps() {
|
|
18
25
|
const logGroupProps = {
|
|
19
26
|
retention: logs.RetentionDays.INFINITE
|
|
@@ -21,4 +28,4 @@ function DefaultLogGroupProps() {
|
|
|
21
28
|
return logGroupProps;
|
|
22
29
|
}
|
|
23
30
|
exports.DefaultLogGroupProps = DefaultLogGroupProps;
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR3YXRjaC1sb2ctZ3JvdXAtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZHdhdGNoLWxvZy1ncm91cC1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUVILDZDQUE2QztBQUU3Qzs7R0FFRztBQUNILFNBQWdCLG9CQUFvQjtJQUVsQyxNQUFNLGFBQWEsR0FBdUI7UUFDeEMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtLQUN2QyxDQUFDO0lBRUYsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQVBELG9EQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdExvZ0dyb3VwUHJvcHMoKTogbG9ncy5Mb2dHcm91cFByb3BzIHtcblxuICBjb25zdCBsb2dHcm91cFByb3BzOiBsb2dzLkxvZ0dyb3VwUHJvcHMgPSB7XG4gICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuSU5GSU5JVEVcbiAgfTtcblxuICByZXR1cm4gbG9nR3JvdXBQcm9wcztcbn1cbiJdfQ==
|
|
@@ -12,4 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import * as logs from 'aws-cdk-lib/aws-logs';
|
|
14
14
|
import { Construct } from 'constructs';
|
|
15
|
+
/**
|
|
16
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
17
|
+
*/
|
|
15
18
|
export declare function buildLogGroup(scope: Construct, logGroupId?: string, logGroupProps?: logs.LogGroupProps): logs.LogGroup;
|
|
@@ -13,19 +13,26 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.buildLogGroup = void 0;
|
|
16
|
+
/*
|
|
17
|
+
* The functions found here in the core library are for internal use and can be changed
|
|
18
|
+
* or removed outside of a major release. We recommend against calling them directly from client code.
|
|
19
|
+
*/
|
|
16
20
|
const cloudwatch_log_group_defaults_1 = require("./cloudwatch-log-group-defaults");
|
|
17
21
|
const logs = require("aws-cdk-lib/aws-logs");
|
|
18
22
|
const utils_1 = require("./utils");
|
|
23
|
+
/**
|
|
24
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
25
|
+
*/
|
|
19
26
|
function buildLogGroup(scope, logGroupId, logGroupProps) {
|
|
20
|
-
let
|
|
27
|
+
let consolidatedLogGroupProps;
|
|
21
28
|
// Override user provided CW LogGroup props with the DefaultLogGroupProps
|
|
22
|
-
|
|
29
|
+
consolidatedLogGroupProps = utils_1.consolidateProps(cloudwatch_log_group_defaults_1.DefaultLogGroupProps(), logGroupProps);
|
|
23
30
|
// Set the LogGroup Id
|
|
24
|
-
const
|
|
31
|
+
const adjustedLogGroupId = logGroupId ? logGroupId : 'CloudWatchLogGroup';
|
|
25
32
|
// Create the CW Log Group
|
|
26
|
-
const logGroup = new logs.LogGroup(scope,
|
|
33
|
+
const logGroup = new logs.LogGroup(scope, adjustedLogGroupId, consolidatedLogGroupProps);
|
|
27
34
|
// If required, suppress the Cfn Nag WARNINGS
|
|
28
|
-
if (
|
|
35
|
+
if (consolidatedLogGroupProps.retention === logs.RetentionDays.INFINITE) {
|
|
29
36
|
utils_1.addCfnSuppressRules(logGroup, [
|
|
30
37
|
{
|
|
31
38
|
id: 'W86',
|
|
@@ -33,7 +40,7 @@ function buildLogGroup(scope, logGroupId, logGroupProps) {
|
|
|
33
40
|
}
|
|
34
41
|
]);
|
|
35
42
|
}
|
|
36
|
-
if (!
|
|
43
|
+
if (!consolidatedLogGroupProps.encryptionKey) {
|
|
37
44
|
utils_1.addCfnSuppressRules(logGroup, [
|
|
38
45
|
{
|
|
39
46
|
id: 'W84',
|
|
@@ -44,4 +51,4 @@ function buildLogGroup(scope, logGroupId, logGroupProps) {
|
|
|
44
51
|
return logGroup;
|
|
45
52
|
}
|
|
46
53
|
exports.buildLogGroup = buildLogGroup;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR3YXRjaC1sb2ctZ3JvdXAtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWR3YXRjaC1sb2ctZ3JvdXAtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgsbUZBQXVFO0FBQ3ZFLDZDQUE2QztBQUM3QyxtQ0FBZ0U7QUFJaEU7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQUMsS0FBZ0IsRUFBRSxVQUFtQixFQUFFLGFBQWtDO0lBQ3JHLElBQUkseUJBQTZDLENBQUM7SUFFbEQseUVBQXlFO0lBQ3pFLHlCQUF5QixHQUFHLHdCQUFnQixDQUFDLG9EQUFvQixFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFcEYsc0JBQXNCO0lBQ3RCLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBRTFFLDBCQUEwQjtJQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFFekYsNkNBQTZDO0lBQzdDLElBQUkseUJBQXlCLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1FBQ3ZFLDJCQUFtQixDQUFFLFFBQVEsRUFBRTtZQUM3QjtnQkFDRSxFQUFFLEVBQUUsS0FBSztnQkFDVCxNQUFNLEVBQUUsa0hBQWtIO2FBQzNIO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLENBQUMseUJBQXlCLENBQUMsYUFBYSxFQUFFO1FBQzVDLDJCQUFtQixDQUFFLFFBQVEsRUFBRTtZQUM3QjtnQkFDRSxFQUFFLEVBQUUsS0FBSztnQkFDVCxNQUFNLEVBQUUsMkhBQTJIO2FBQ3BJO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBaENELHNDQWdDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgRGVmYXVsdExvZ0dyb3VwUHJvcHMgfSBmcm9tICcuL2Nsb3Vkd2F0Y2gtbG9nLWdyb3VwLWRlZmF1bHRzJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTG9nR3JvdXAoc2NvcGU6IENvbnN0cnVjdCwgbG9nR3JvdXBJZD86IHN0cmluZywgbG9nR3JvdXBQcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wcyk6IGxvZ3MuTG9nR3JvdXAge1xuICBsZXQgY29uc29saWRhdGVkTG9nR3JvdXBQcm9wczogbG9ncy5Mb2dHcm91cFByb3BzO1xuXG4gIC8vIE92ZXJyaWRlIHVzZXIgcHJvdmlkZWQgQ1cgTG9nR3JvdXAgcHJvcHMgd2l0aCB0aGUgRGVmYXVsdExvZ0dyb3VwUHJvcHNcbiAgY29uc29saWRhdGVkTG9nR3JvdXBQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdExvZ0dyb3VwUHJvcHMoKSwgbG9nR3JvdXBQcm9wcyk7XG5cbiAgLy8gU2V0IHRoZSBMb2dHcm91cCBJZFxuICBjb25zdCBhZGp1c3RlZExvZ0dyb3VwSWQgPSBsb2dHcm91cElkID8gbG9nR3JvdXBJZCA6ICdDbG91ZFdhdGNoTG9nR3JvdXAnO1xuXG4gIC8vIENyZWF0ZSB0aGUgQ1cgTG9nIEdyb3VwXG4gIGNvbnN0IGxvZ0dyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAoc2NvcGUsIGFkanVzdGVkTG9nR3JvdXBJZCwgY29uc29saWRhdGVkTG9nR3JvdXBQcm9wcyk7XG5cbiAgLy8gSWYgcmVxdWlyZWQsIHN1cHByZXNzIHRoZSBDZm4gTmFnIFdBUk5JTkdTXG4gIGlmIChjb25zb2xpZGF0ZWRMb2dHcm91cFByb3BzLnJldGVudGlvbiA9PT0gbG9ncy5SZXRlbnRpb25EYXlzLklORklOSVRFKSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyggbG9nR3JvdXAsIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdXODYnLFxuICAgICAgICByZWFzb246ICdSZXRlbnRpb24gcGVyaW9kIGZvciBDbG91ZFdhdGNoTG9ncyBMb2dHcm91cHMgYXJlIHNldCB0byBcXCdOZXZlciBFeHBpcmVcXCcgdG8gcHJlc2VydmUgY3VzdG9tZXIgZGF0YSBpbmRlZmluaXRlbHknXG4gICAgICB9XG4gICAgXSk7XG4gIH1cblxuICBpZiAoIWNvbnNvbGlkYXRlZExvZ0dyb3VwUHJvcHMuZW5jcnlwdGlvbktleSkge1xuICAgIGFkZENmblN1cHByZXNzUnVsZXMoIGxvZ0dyb3VwLCBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzg0JyxcbiAgICAgICAgcmVhc29uOiAnQnkgZGVmYXVsdCBDbG91ZFdhdGNoTG9ncyBMb2dHcm91cHMgZGF0YSBpcyBlbmNyeXB0ZWQgdXNpbmcgdGhlIENsb3VkV2F0Y2ggc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBrZXlzIChBV1MgTWFuYWdlZCBLZXlzKSdcbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuXG4gIHJldHVybiBsb2dHcm91cDtcbn0iXX0=
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import * as cognito from 'aws-cdk-lib/aws-cognito';
|
|
14
14
|
declare const DefaultUserPoolProps: cognito.UserPoolProps;
|
|
15
|
+
/**
|
|
16
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
17
|
+
*/
|
|
15
18
|
export declare function DefaultIdentityPoolProps(userPoolClientId: string, userPoolProviderName: string): cognito.CfnIdentityPoolProps;
|
|
19
|
+
/**
|
|
20
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
21
|
+
*/
|
|
16
22
|
export declare function DefaultUserPoolClientProps(userpool: cognito.UserPool): cognito.UserPoolClientProps;
|
|
17
23
|
export { DefaultUserPoolProps };
|
package/lib/cognito-defaults.js
CHANGED
|
@@ -15,6 +15,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.DefaultUserPoolProps = exports.DefaultUserPoolClientProps = exports.DefaultIdentityPoolProps = void 0;
|
|
16
16
|
const DefaultUserPoolProps = {};
|
|
17
17
|
exports.DefaultUserPoolProps = DefaultUserPoolProps;
|
|
18
|
+
/**
|
|
19
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
20
|
+
*/
|
|
18
21
|
function DefaultIdentityPoolProps(userPoolClientId, userPoolProviderName) {
|
|
19
22
|
return {
|
|
20
23
|
allowUnauthenticatedIdentities: false,
|
|
@@ -26,10 +29,13 @@ function DefaultIdentityPoolProps(userPoolClientId, userPoolProviderName) {
|
|
|
26
29
|
};
|
|
27
30
|
}
|
|
28
31
|
exports.DefaultIdentityPoolProps = DefaultIdentityPoolProps;
|
|
32
|
+
/**
|
|
33
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
34
|
+
*/
|
|
29
35
|
function DefaultUserPoolClientProps(userpool) {
|
|
30
36
|
return {
|
|
31
37
|
userPool: userpool
|
|
32
38
|
};
|
|
33
39
|
}
|
|
34
40
|
exports.DefaultUserPoolClientProps = DefaultUserPoolClientProps;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvZ25pdG8tZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFTSCxNQUFNLG9CQUFvQixHQUEwQixFQUNuRCxDQUFDO0FBeUJPLG9EQUFvQjtBQXZCN0I7O0dBRUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxnQkFBd0IsRUFBRSxvQkFBNEI7SUFDN0YsT0FBTztRQUNMLDhCQUE4QixFQUFFLEtBQUs7UUFDckMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDekIsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsWUFBWSxFQUFFLG9CQUFvQjtnQkFDbEMsb0JBQW9CLEVBQUUsSUFBSTthQUMzQixDQUFDO0tBQzZCLENBQUM7QUFDcEMsQ0FBQztBQVRELDREQVNDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxRQUEwQjtJQUNuRSxPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQVE7S0FDWSxDQUFDO0FBQ25DLENBQUM7QUFKRCxnRUFJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgY29nbml0byBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5cbmNvbnN0IERlZmF1bHRVc2VyUG9vbFByb3BzOiBjb2duaXRvLlVzZXJQb29sUHJvcHMgPSB7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0SWRlbnRpdHlQb29sUHJvcHModXNlclBvb2xDbGllbnRJZDogc3RyaW5nLCB1c2VyUG9vbFByb3ZpZGVyTmFtZTogc3RyaW5nKTogY29nbml0by5DZm5JZGVudGl0eVBvb2xQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgYWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzOiBmYWxzZSxcbiAgICBjb2duaXRvSWRlbnRpdHlQcm92aWRlcnM6IFt7XG4gICAgICBjbGllbnRJZDogdXNlclBvb2xDbGllbnRJZCxcbiAgICAgIHByb3ZpZGVyTmFtZTogdXNlclBvb2xQcm92aWRlck5hbWUsXG4gICAgICBzZXJ2ZXJTaWRlVG9rZW5DaGVjazogdHJ1ZVxuICAgIH1dXG4gIH0gYXMgY29nbml0by5DZm5JZGVudGl0eVBvb2xQcm9wcztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdFVzZXJQb29sQ2xpZW50UHJvcHModXNlcnBvb2w6IGNvZ25pdG8uVXNlclBvb2wpOiBjb2duaXRvLlVzZXJQb29sQ2xpZW50UHJvcHMge1xuICByZXR1cm4ge1xuICAgIHVzZXJQb29sOiB1c2VycG9vbFxuICB9IGFzIGNvZ25pdG8uVXNlclBvb2xDbGllbnRQcm9wcztcbn1cblxuZXhwb3J0IHsgRGVmYXVsdFVzZXJQb29sUHJvcHMgfTsiXX0=
|
package/lib/cognito-helper.d.ts
CHANGED
|
@@ -18,8 +18,23 @@ export interface CognitoOptions {
|
|
|
18
18
|
readonly userpool: cognito.UserPool;
|
|
19
19
|
readonly userpoolclient: cognito.UserPoolClient;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
23
|
+
*/
|
|
21
24
|
export declare function buildUserPool(scope: Construct, userPoolProps?: cognito.UserPoolProps): cognito.UserPool;
|
|
25
|
+
/**
|
|
26
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
27
|
+
*/
|
|
22
28
|
export declare function buildUserPoolClient(scope: Construct, userPool: cognito.UserPool, cognitoUserPoolClientProps?: cognito.UserPoolClientProps): cognito.UserPoolClient;
|
|
29
|
+
/**
|
|
30
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
31
|
+
*/
|
|
23
32
|
export declare function buildIdentityPool(scope: Construct, userpool: cognito.UserPool, userpoolclient: cognito.UserPoolClient, identityPoolProps?: cognito.CfnIdentityPoolProps): cognito.CfnIdentityPool;
|
|
33
|
+
/**
|
|
34
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
35
|
+
*/
|
|
24
36
|
export declare function setupCognitoForSearchService(scope: Construct, domainName: string, options: CognitoOptions): iam.Role;
|
|
37
|
+
/**
|
|
38
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
39
|
+
*/
|
|
25
40
|
export declare function buildCognitoForSearchService(scope: Construct, domainName: string): [cognito.UserPool, cognito.UserPoolClient, cognito.CfnIdentityPool, iam.Role];
|
package/lib/cognito-helper.js
CHANGED
|
@@ -13,11 +13,18 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.buildCognitoForSearchService = exports.setupCognitoForSearchService = exports.buildIdentityPool = exports.buildUserPoolClient = exports.buildUserPool = void 0;
|
|
16
|
+
/*
|
|
17
|
+
* The functions found here in the core library are for internal use and can be changed
|
|
18
|
+
* or removed outside of a major release. We recommend against calling them directly from client code.
|
|
19
|
+
*/
|
|
16
20
|
const cognito = require("aws-cdk-lib/aws-cognito");
|
|
17
21
|
const iam = require("aws-cdk-lib/aws-iam");
|
|
18
22
|
const cdk = require("aws-cdk-lib");
|
|
19
23
|
const utils_1 = require("./utils");
|
|
20
24
|
const cognito_defaults_1 = require("./cognito-defaults");
|
|
25
|
+
/**
|
|
26
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
27
|
+
*/
|
|
21
28
|
function buildUserPool(scope, userPoolProps) {
|
|
22
29
|
let cognitoUserPoolProps;
|
|
23
30
|
cognitoUserPoolProps = utils_1.consolidateProps(cognito_defaults_1.DefaultUserPoolProps, userPoolProps);
|
|
@@ -40,12 +47,18 @@ function buildUserPool(scope, userPoolProps) {
|
|
|
40
47
|
return userPool;
|
|
41
48
|
}
|
|
42
49
|
exports.buildUserPool = buildUserPool;
|
|
50
|
+
/**
|
|
51
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
52
|
+
*/
|
|
43
53
|
function buildUserPoolClient(scope, userPool, cognitoUserPoolClientProps) {
|
|
44
54
|
let userPoolClientProps;
|
|
45
55
|
userPoolClientProps = utils_1.consolidateProps(cognito_defaults_1.DefaultUserPoolClientProps(userPool), cognitoUserPoolClientProps);
|
|
46
56
|
return new cognito.UserPoolClient(scope, 'CognitoUserPoolClient', userPoolClientProps);
|
|
47
57
|
}
|
|
48
58
|
exports.buildUserPoolClient = buildUserPoolClient;
|
|
59
|
+
/**
|
|
60
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
61
|
+
*/
|
|
49
62
|
function buildIdentityPool(scope, userpool, userpoolclient, identityPoolProps) {
|
|
50
63
|
let cognitoIdentityPoolProps = cognito_defaults_1.DefaultIdentityPoolProps(userpoolclient.userPoolClientId, userpool.userPoolProviderName);
|
|
51
64
|
cognitoIdentityPoolProps = utils_1.consolidateProps(cognitoIdentityPoolProps, identityPoolProps);
|
|
@@ -53,6 +66,9 @@ function buildIdentityPool(scope, userpool, userpoolclient, identityPoolProps) {
|
|
|
53
66
|
return idPool;
|
|
54
67
|
}
|
|
55
68
|
exports.buildIdentityPool = buildIdentityPool;
|
|
69
|
+
/**
|
|
70
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
71
|
+
*/
|
|
56
72
|
function setupCognitoForSearchService(scope, domainName, options) {
|
|
57
73
|
// Create the domain for Cognito UserPool
|
|
58
74
|
const userpooldomain = new cognito.CfnUserPoolDomain(scope, 'UserPoolDomain', {
|
|
@@ -89,6 +105,9 @@ function setupCognitoForSearchService(scope, domainName, options) {
|
|
|
89
105
|
return cognitoAuthorizedRole;
|
|
90
106
|
}
|
|
91
107
|
exports.setupCognitoForSearchService = setupCognitoForSearchService;
|
|
108
|
+
/**
|
|
109
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
110
|
+
*/
|
|
92
111
|
function buildCognitoForSearchService(scope, domainName) {
|
|
93
112
|
const userPool = buildUserPool(scope);
|
|
94
113
|
const userPoolClient = buildUserPoolClient(scope, userPool);
|
|
@@ -101,4 +120,4 @@ function buildCognitoForSearchService(scope, domainName) {
|
|
|
101
120
|
return [userPool, userPoolClient, identityPool, cognitoAuthorizedRole];
|
|
102
121
|
}
|
|
103
122
|
exports.buildCognitoForSearchService = buildCognitoForSearchService;
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb2duaXRvLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILG1EQUFtRDtBQUNuRCwyQ0FBMkM7QUFDM0MsbUNBQW1DO0FBQ25DLG1DQUFnRTtBQUNoRSx5REFBZ0g7QUFVaEgsU0FBZ0IsYUFBYSxDQUFDLEtBQWdCLEVBQUUsYUFBcUM7SUFDbkYsSUFBSSxvQkFBMkMsQ0FBQztJQUVoRCxvQkFBb0IsR0FBRyx3QkFBZ0IsQ0FBQyx1Q0FBb0IsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUU3RSxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFFdEYsMkNBQTJDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBd0IsQ0FBQztJQUUvRSxXQUFXLENBQUMsY0FBYyxHQUFHO1FBQzNCLG9CQUFvQixFQUFFLFVBQVU7S0FDakMsQ0FBQztJQUVGLHVEQUF1RDtJQUN2RCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQWEsQ0FBQztJQUUxRSxJQUFJLGVBQWUsRUFBRTtRQUNuQiwyQkFBbUIsQ0FBQyxRQUFRLEVBQUU7WUFDNUI7Z0JBQ0UsRUFBRSxFQUFFLEtBQUs7Z0JBQ1QsTUFBTSxFQUFFLDBHQUEwRzthQUNuSDtTQUNGLENBQUMsQ0FBQztLQUNKO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQTNCRCxzQ0EyQkM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLFFBQTBCLEVBQzlFLDBCQUF3RDtJQUV4RCxJQUFJLG1CQUFnRCxDQUFDO0lBRXJELG1CQUFtQixHQUFHLHdCQUFnQixDQUFDLDZDQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLENBQUM7SUFFekcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDekYsQ0FBQztBQVJELGtEQVFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsS0FBZ0IsRUFBRSxRQUEwQixFQUFFLGNBQXNDLEVBQ3BILGlCQUFnRDtJQUVoRCxJQUFJLHdCQUF3QixHQUFpQywyQ0FBd0IsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQ25ILFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRWpDLHdCQUF3QixHQUFHLHdCQUFnQixDQUFDLHdCQUF3QixFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFekYsTUFBTSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBRW5HLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFYRCw4Q0FXQztBQUVELFNBQWdCLDRCQUE0QixDQUFDLEtBQWdCLEVBQUUsVUFBa0IsRUFBRSxPQUF1QjtJQUV4Ryx5Q0FBeUM7SUFDekMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVU7S0FDeEMsQ0FBQyxDQUFDO0lBQ0gsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUF3QixDQUFDLENBQUM7SUFFakcsa0RBQWtEO0lBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsa0JBQWtCLENBQ2pELGdDQUFnQyxFQUNoQztRQUNFLGNBQWMsRUFBRSxFQUFFLG9DQUFvQyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQ2xGLHdCQUF3QixFQUFFLEVBQUUsb0NBQW9DLEVBQUUsZUFBZSxFQUFFO0tBQ3BGLEVBQ0QsK0JBQStCLENBQUMsQ0FBQztJQUVuQyxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7UUFDekUsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixjQUFjLEVBQUU7WUFDZCxtQkFBbUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUM7Z0JBQzFDLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzt3QkFDbkMsT0FBTyxFQUFFOzRCQUNQLFlBQVk7eUJBQ2I7d0JBQ0QsU0FBUyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsV0FBVyxVQUFVLElBQUksQ0FBQztxQkFDMUcsQ0FBQztpQkFDRDthQUNGLENBQUM7U0FDSDtLQUNGLENBQUMsQ0FBQztJQUVILG1EQUFtRDtJQUNuRCxJQUFJLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUU7UUFDMUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRztRQUN4QyxLQUFLLEVBQUU7WUFDTCxhQUFhLEVBQUUscUJBQXFCLENBQUMsT0FBTztTQUM3QztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQztBQTFDRCxvRUEwQ0M7QUFFRCxTQUFnQiw0QkFBNEIsQ0FBQyxLQUFnQixFQUFFLFVBQWtCO0lBRS9FLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUV4RSxNQUFNLHFCQUFxQixHQUFhLDRCQUE0QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7UUFDdEYsUUFBUSxFQUFFLFFBQVE7UUFDbEIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsY0FBYyxFQUFFLGNBQWM7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDekUsQ0FBQztBQWJELG9FQWFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgY29nbml0byBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRGVmYXVsdFVzZXJQb29sUHJvcHMsIERlZmF1bHRVc2VyUG9vbENsaWVudFByb3BzLCBEZWZhdWx0SWRlbnRpdHlQb29sUHJvcHMgfSBmcm9tICcuL2NvZ25pdG8tZGVmYXVsdHMnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b09wdGlvbnMge1xuICByZWFkb25seSBpZGVudGl0eXBvb2w6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sLFxuICByZWFkb25seSB1c2VycG9vbDogY29nbml0by5Vc2VyUG9vbCxcbiAgcmVhZG9ubHkgdXNlcnBvb2xjbGllbnQ6IGNvZ25pdG8uVXNlclBvb2xDbGllbnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlclBvb2woc2NvcGU6IENvbnN0cnVjdCwgdXNlclBvb2xQcm9wcz86IGNvZ25pdG8uVXNlclBvb2xQcm9wcyk6IGNvZ25pdG8uVXNlclBvb2wge1xuICBsZXQgY29nbml0b1VzZXJQb29sUHJvcHM6IGNvZ25pdG8uVXNlclBvb2xQcm9wcztcblxuICBjb2duaXRvVXNlclBvb2xQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFVzZXJQb29sUHJvcHMsIHVzZXJQb29sUHJvcHMpO1xuXG4gIGNvbnN0IHVzZXJQb29sID0gbmV3IGNvZ25pdG8uVXNlclBvb2woc2NvcGUsICdDb2duaXRvVXNlclBvb2wnLCBjb2duaXRvVXNlclBvb2xQcm9wcyk7XG5cbiAgLy8gU2V0IHRoZSBhZHZhbmNlZFNlY3VyaXR5TW9kZSB0byBFTkZPUkNFRFxuICBjb25zdCBjZm5Vc2VyUG9vbCA9IHVzZXJQb29sLm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGNvZ25pdG8uQ2ZuVXNlclBvb2w7XG5cbiAgY2ZuVXNlclBvb2wudXNlclBvb2xBZGRPbnMgPSB7XG4gICAgYWR2YW5jZWRTZWN1cml0eU1vZGU6ICdFTkZPUkNFRCdcbiAgfTtcblxuICAvLyBBZGQgQ2ZuIE5hZyBzdXBwcmVzcyBmb3IgdGhlIGNvZ25pdG8gU01TIHJvbGUgcG9saWN5XG4gIGNvbnN0IHVzZXJQb29sU21zUm9sZSA9IHVzZXJQb29sLm5vZGUudHJ5RmluZENoaWxkKCdzbXNSb2xlJykgYXMgaWFtLlJvbGU7XG5cbiAgaWYgKHVzZXJQb29sU21zUm9sZSkge1xuICAgIGFkZENmblN1cHByZXNzUnVsZXModXNlclBvb2wsIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdXMTEnLFxuICAgICAgICByZWFzb246IGBBbGxvd2luZyAqIHJlc291cmNlIG9uIHBlcm1pc3Npb25zIHBvbGljeSBzaW5jZSBpdHMgdXNlZCBieSBDb2duaXRvIHRvIHNlbmQgU01TIG1lc3NhZ2VzIHZpYSBzbnM6UHVibGlzaGBcbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuXG4gIHJldHVybiB1c2VyUG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXNlclBvb2xDbGllbnQoc2NvcGU6IENvbnN0cnVjdCwgdXNlclBvb2w6IGNvZ25pdG8uVXNlclBvb2wsXG4gIGNvZ25pdG9Vc2VyUG9vbENsaWVudFByb3BzPzogY29nbml0by5Vc2VyUG9vbENsaWVudFByb3BzKTogY29nbml0by5Vc2VyUG9vbENsaWVudCB7XG5cbiAgbGV0IHVzZXJQb29sQ2xpZW50UHJvcHM6IGNvZ25pdG8uVXNlclBvb2xDbGllbnRQcm9wcztcblxuICB1c2VyUG9vbENsaWVudFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0VXNlclBvb2xDbGllbnRQcm9wcyh1c2VyUG9vbCksIGNvZ25pdG9Vc2VyUG9vbENsaWVudFByb3BzKTtcblxuICByZXR1cm4gbmV3IGNvZ25pdG8uVXNlclBvb2xDbGllbnQoc2NvcGUsICdDb2duaXRvVXNlclBvb2xDbGllbnQnLCB1c2VyUG9vbENsaWVudFByb3BzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSWRlbnRpdHlQb29sKHNjb3BlOiBDb25zdHJ1Y3QsIHVzZXJwb29sOiBjb2duaXRvLlVzZXJQb29sLCB1c2VycG9vbGNsaWVudDogY29nbml0by5Vc2VyUG9vbENsaWVudCxcbiAgaWRlbnRpdHlQb29sUHJvcHM/OiBjb2duaXRvLkNmbklkZW50aXR5UG9vbFByb3BzKTogY29nbml0by5DZm5JZGVudGl0eVBvb2wge1xuXG4gIGxldCBjb2duaXRvSWRlbnRpdHlQb29sUHJvcHM6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sUHJvcHMgPSBEZWZhdWx0SWRlbnRpdHlQb29sUHJvcHModXNlcnBvb2xjbGllbnQudXNlclBvb2xDbGllbnRJZCxcbiAgICB1c2VycG9vbC51c2VyUG9vbFByb3ZpZGVyTmFtZSk7XG5cbiAgY29nbml0b0lkZW50aXR5UG9vbFByb3BzID0gY29uc29saWRhdGVQcm9wcyhjb2duaXRvSWRlbnRpdHlQb29sUHJvcHMsIGlkZW50aXR5UG9vbFByb3BzKTtcblxuICBjb25zdCBpZFBvb2wgPSBuZXcgY29nbml0by5DZm5JZGVudGl0eVBvb2woc2NvcGUsICdDb2duaXRvSWRlbnRpdHlQb29sJywgY29nbml0b0lkZW50aXR5UG9vbFByb3BzKTtcblxuICByZXR1cm4gaWRQb29sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBDb2duaXRvRm9yU2VhcmNoU2VydmljZShzY29wZTogQ29uc3RydWN0LCBkb21haW5OYW1lOiBzdHJpbmcsIG9wdGlvbnM6IENvZ25pdG9PcHRpb25zKTogaWFtLlJvbGUge1xuXG4gIC8vIENyZWF0ZSB0aGUgZG9tYWluIGZvciBDb2duaXRvIFVzZXJQb29sXG4gIGNvbnN0IHVzZXJwb29sZG9tYWluID0gbmV3IGNvZ25pdG8uQ2ZuVXNlclBvb2xEb21haW4oc2NvcGUsICdVc2VyUG9vbERvbWFpbicsIHtcbiAgICBkb21haW46IGRvbWFpbk5hbWUsXG4gICAgdXNlclBvb2xJZDogb3B0aW9ucy51c2VycG9vbC51c2VyUG9vbElkXG4gIH0pO1xuICB1c2VycG9vbGRvbWFpbi5hZGREZXBlbmRlbmN5KG9wdGlvbnMudXNlcnBvb2wubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgY29nbml0by5DZm5Vc2VyUG9vbCk7XG5cbiAgLy8gU2V0dXAgdGhlIElBTSBSb2xlIGZvciBDb2duaXRvIEF1dGhvcml6ZWQgVXNlcnNcbiAgY29uc3QgY29nbml0b1ByaW5jaXBhbCA9IG5ldyBpYW0uRmVkZXJhdGVkUHJpbmNpcGFsKFxuICAgICdjb2duaXRvLWlkZW50aXR5LmFtYXpvbmF3cy5jb20nLFxuICAgIHtcbiAgICAgICdTdHJpbmdFcXVhbHMnOiB7ICdjb2duaXRvLWlkZW50aXR5LmFtYXpvbmF3cy5jb206YXVkJzogb3B0aW9ucy5pZGVudGl0eXBvb2wucmVmIH0sXG4gICAgICAnRm9yQW55VmFsdWU6U3RyaW5nTGlrZSc6IHsgJ2NvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbTphbXInOiAnYXV0aGVudGljYXRlZCcgfVxuICAgIH0sXG4gICAgJ3N0czpBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5Jyk7XG5cbiAgY29uc3QgY29nbml0b0F1dGhvcml6ZWRSb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlLCAnQ29nbml0b0F1dGhvcml6ZWRSb2xlJywge1xuICAgIGFzc3VtZWRCeTogY29nbml0b1ByaW5jaXBhbCxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgQ29nbml0b0FjY2Vzc1BvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2VzOkVTSHR0cConXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OmVzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTpkb21haW4vJHtkb21haW5OYW1lfS8qYF1cbiAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfSlcbiAgICB9XG4gIH0pO1xuXG4gIC8vIEF0dGFjaCB0aGUgSUFNIFJvbGUgZm9yIENvZ25pdG8gQXV0aG9yaXplZCBVc2Vyc1xuICBuZXcgY29nbml0by5DZm5JZGVudGl0eVBvb2xSb2xlQXR0YWNobWVudChzY29wZSwgJ0lkZW50aXR5UG9vbFJvbGVNYXBwaW5nJywge1xuICAgIGlkZW50aXR5UG9vbElkOiBvcHRpb25zLmlkZW50aXR5cG9vbC5yZWYsXG4gICAgcm9sZXM6IHtcbiAgICAgIGF1dGhlbnRpY2F0ZWQ6IGNvZ25pdG9BdXRob3JpemVkUm9sZS5yb2xlQXJuXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY29nbml0b0F1dGhvcml6ZWRSb2xlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb2duaXRvRm9yU2VhcmNoU2VydmljZShzY29wZTogQ29uc3RydWN0LCBkb21haW5OYW1lOiBzdHJpbmcpOlxuICBbY29nbml0by5Vc2VyUG9vbCwgY29nbml0by5Vc2VyUG9vbENsaWVudCwgY29nbml0by5DZm5JZGVudGl0eVBvb2wsIGlhbS5Sb2xlXSB7XG4gIGNvbnN0IHVzZXJQb29sID0gYnVpbGRVc2VyUG9vbChzY29wZSk7XG4gIGNvbnN0IHVzZXJQb29sQ2xpZW50ID0gYnVpbGRVc2VyUG9vbENsaWVudChzY29wZSwgdXNlclBvb2wpO1xuICBjb25zdCBpZGVudGl0eVBvb2wgPSBidWlsZElkZW50aXR5UG9vbChzY29wZSwgdXNlclBvb2wsIHVzZXJQb29sQ2xpZW50KTtcblxuICBjb25zdCBjb2duaXRvQXV0aG9yaXplZFJvbGU6IGlhbS5Sb2xlID0gc2V0dXBDb2duaXRvRm9yU2VhcmNoU2VydmljZShzY29wZSwgZG9tYWluTmFtZSwge1xuICAgIHVzZXJwb29sOiB1c2VyUG9vbCxcbiAgICBpZGVudGl0eXBvb2w6IGlkZW50aXR5UG9vbCxcbiAgICB1c2VycG9vbGNsaWVudDogdXNlclBvb2xDbGllbnRcbiAgfSk7XG5cbiAgcmV0dXJuIFt1c2VyUG9vbCwgdXNlclBvb2xDbGllbnQsIGlkZW50aXR5UG9vbCwgY29nbml0b0F1dGhvcml6ZWRSb2xlXTtcbn0iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb2duaXRvLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUVILG1EQUFtRDtBQUNuRCwyQ0FBMkM7QUFDM0MsbUNBQW1DO0FBQ25DLG1DQUFnRTtBQUNoRSx5REFBZ0g7QUFVaEg7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQUMsS0FBZ0IsRUFBRSxhQUFxQztJQUNuRixJQUFJLG9CQUEyQyxDQUFDO0lBRWhELG9CQUFvQixHQUFHLHdCQUFnQixDQUFDLHVDQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTdFLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUV0RiwyQ0FBMkM7SUFDM0MsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUF3QixDQUFDO0lBRS9FLFdBQVcsQ0FBQyxjQUFjLEdBQUc7UUFDM0Isb0JBQW9CLEVBQUUsVUFBVTtLQUNqQyxDQUFDO0lBRUYsdURBQXVEO0lBQ3ZELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBYSxDQUFDO0lBRTFFLElBQUksZUFBZSxFQUFFO1FBQ25CLDJCQUFtQixDQUFDLFFBQVEsRUFBRTtZQUM1QjtnQkFDRSxFQUFFLEVBQUUsS0FBSztnQkFDVCxNQUFNLEVBQUUsMEdBQTBHO2FBQ25IO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBM0JELHNDQTJCQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsS0FBZ0IsRUFBRSxRQUEwQixFQUM5RSwwQkFBd0Q7SUFFeEQsSUFBSSxtQkFBZ0QsQ0FBQztJ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QUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFeEUsTUFBTSxxQkFBcUIsR0FBYSw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFO1FBQ3RGLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFlBQVksRUFBRSxZQUFZO1FBQzFCLGNBQWMsRUFBRSxjQUFjO0tBQy9CLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFiRCxvRUFhQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgY29nbml0byBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRGVmYXVsdFVzZXJQb29sUHJvcHMsIERlZmF1bHRVc2VyUG9vbENsaWVudFByb3BzLCBEZWZhdWx0SWRlbnRpdHlQb29sUHJvcHMgfSBmcm9tICcuL2NvZ25pdG8tZGVmYXVsdHMnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b09wdGlvbnMge1xuICByZWFkb25seSBpZGVudGl0eXBvb2w6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sLFxuICByZWFkb25seSB1c2VycG9vbDogY29nbml0by5Vc2VyUG9vbCxcbiAgcmVhZG9ubHkgdXNlcnBvb2xjbGllbnQ6IGNvZ25pdG8uVXNlclBvb2xDbGllbnRcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVc2VyUG9vbChzY29wZTogQ29uc3RydWN0LCB1c2VyUG9vbFByb3BzPzogY29nbml0by5Vc2VyUG9vbFByb3BzKTogY29nbml0by5Vc2VyUG9vbCB7XG4gIGxldCBjb2duaXRvVXNlclBvb2xQcm9wczogY29nbml0by5Vc2VyUG9vbFByb3BzO1xuXG4gIGNvZ25pdG9Vc2VyUG9vbFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0VXNlclBvb2xQcm9wcywgdXNlclBvb2xQcm9wcyk7XG5cbiAgY29uc3QgdXNlclBvb2wgPSBuZXcgY29nbml0by5Vc2VyUG9vbChzY29wZSwgJ0NvZ25pdG9Vc2VyUG9vbCcsIGNvZ25pdG9Vc2VyUG9vbFByb3BzKTtcblxuICAvLyBTZXQgdGhlIGFkdmFuY2VkU2VjdXJpdHlNb2RlIHRvIEVORk9SQ0VEXG4gIGNvbnN0IGNmblVzZXJQb29sID0gdXNlclBvb2wubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgY29nbml0by5DZm5Vc2VyUG9vbDtcblxuICBjZm5Vc2VyUG9vbC51c2VyUG9vbEFkZE9ucyA9IHtcbiAgICBhZHZhbmNlZFNlY3VyaXR5TW9kZTogJ0VORk9SQ0VEJ1xuICB9O1xuXG4gIC8vIEFkZCBDZm4gTmFnIHN1cHByZXNzIGZvciB0aGUgY29nbml0byBTTVMgcm9sZSBwb2xpY3lcbiAgY29uc3QgdXNlclBvb2xTbXNSb2xlID0gdXNlclBvb2wubm9kZS50cnlGaW5kQ2hpbGQoJ3Ntc1JvbGUnKSBhcyBpYW0uUm9sZTtcblxuICBpZiAodXNlclBvb2xTbXNSb2xlKSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyh1c2VyUG9vbCwgW1xuICAgICAge1xuICAgICAgICBpZDogJ1cxMScsXG4gICAgICAgIHJlYXNvbjogYEFsbG93aW5nICogcmVzb3VyY2Ugb24gcGVybWlzc2lvbnMgcG9saWN5IHNpbmNlIGl0cyB1c2VkIGJ5IENvZ25pdG8gdG8gc2VuZCBTTVMgbWVzc2FnZXMgdmlhIHNuczpQdWJsaXNoYFxuICAgICAgfVxuICAgIF0pO1xuICB9XG5cbiAgcmV0dXJuIHVzZXJQb29sO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVzZXJQb29sQ2xpZW50KHNjb3BlOiBDb25zdHJ1Y3QsIHVzZXJQb29sOiBjb2duaXRvLlVzZXJQb29sLFxuICBjb2duaXRvVXNlclBvb2xDbGllbnRQcm9wcz86IGNvZ25pdG8uVXNlclBvb2xDbGllbnRQcm9wcyk6IGNvZ25pdG8uVXNlclBvb2xDbGllbnQge1xuXG4gIGxldCB1c2VyUG9vbENsaWVudFByb3BzOiBjb2duaXRvLlVzZXJQb29sQ2xpZW50UHJvcHM7XG5cbiAgdXNlclBvb2xDbGllbnRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFVzZXJQb29sQ2xpZW50UHJvcHModXNlclBvb2wpLCBjb2duaXRvVXNlclBvb2xDbGllbnRQcm9wcyk7XG5cbiAgcmV0dXJuIG5ldyBjb2duaXRvLlVzZXJQb29sQ2xpZW50KHNjb3BlLCAnQ29nbml0b1VzZXJQb29sQ2xpZW50JywgdXNlclBvb2xDbGllbnRQcm9wcyk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSWRlbnRpdHlQb29sKHNjb3BlOiBDb25zdHJ1Y3QsIHVzZXJwb29sOiBjb2duaXRvLlVzZXJQb29sLCB1c2VycG9vbGNsaWVudDogY29nbml0by5Vc2VyUG9vbENsaWVudCxcbiAgaWRlbnRpdHlQb29sUHJvcHM/OiBjb2duaXRvLkNmbklkZW50aXR5UG9vbFByb3BzKTogY29nbml0by5DZm5JZGVudGl0eVBvb2wge1xuXG4gIGxldCBjb2duaXRvSWRlbnRpdHlQb29sUHJvcHM6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sUHJvcHMgPSBEZWZhdWx0SWRlbnRpdHlQb29sUHJvcHModXNlcnBvb2xjbGllbnQudXNlclBvb2xDbGllbnRJZCxcbiAgICB1c2VycG9vbC51c2VyUG9vbFByb3ZpZGVyTmFtZSk7XG5cbiAgY29nbml0b0lkZW50aXR5UG9vbFByb3BzID0gY29uc29saWRhdGVQcm9wcyhjb2duaXRvSWRlbnRpdHlQb29sUHJvcHMsIGlkZW50aXR5UG9vbFByb3BzKTtcblxuICBjb25zdCBpZFBvb2wgPSBuZXcgY29nbml0by5DZm5JZGVudGl0eVBvb2woc2NvcGUsICdDb2duaXRvSWRlbnRpdHlQb29sJywgY29nbml0b0lkZW50aXR5UG9vbFByb3BzKTtcblxuICByZXR1cm4gaWRQb29sO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cENvZ25pdG9Gb3JTZWFyY2hTZXJ2aWNlKHNjb3BlOiBDb25zdHJ1Y3QsIGRvbWFpbk5hbWU6IHN0cmluZywgb3B0aW9uczogQ29nbml0b09wdGlvbnMpOiBpYW0uUm9sZSB7XG5cbiAgLy8gQ3JlYXRlIHRoZSBkb21haW4gZm9yIENvZ25pdG8gVXNlclBvb2xcbiAgY29uc3QgdXNlcnBvb2xkb21haW4gPSBuZXcgY29nbml0by5DZm5Vc2VyUG9vbERvbWFpbihzY29wZSwgJ1VzZXJQb29sRG9tYWluJywge1xuICAgIGRvbWFpbjogZG9tYWluTmFtZSxcbiAgICB1c2VyUG9vbElkOiBvcHRpb25zLnVzZXJwb29sLnVzZXJQb29sSWRcbiAgfSk7XG4gIHVzZXJwb29sZG9tYWluLmFkZERlcGVuZGVuY3kob3B0aW9ucy51c2VycG9vbC5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBjb2duaXRvLkNmblVzZXJQb29sKTtcblxuICAvLyBTZXR1cCB0aGUgSUFNIFJvbGUgZm9yIENvZ25pdG8gQXV0aG9yaXplZCBVc2Vyc1xuICBjb25zdCBjb2duaXRvUHJpbmNpcGFsID0gbmV3IGlhbS5GZWRlcmF0ZWRQcmluY2lwYWwoXG4gICAgJ2NvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbScsXG4gICAge1xuICAgICAgJ1N0cmluZ0VxdWFscyc6IHsgJ2NvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbTphdWQnOiBvcHRpb25zLmlkZW50aXR5cG9vbC5yZWYgfSxcbiAgICAgICdGb3JBbnlWYWx1ZTpTdHJpbmdMaWtlJzogeyAnY29nbml0by1pZGVudGl0eS5hbWF6b25hd3MuY29tOmFtcic6ICdhdXRoZW50aWNhdGVkJyB9XG4gICAgfSxcbiAgICAnc3RzOkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHknKTtcblxuICBjb25zdCBjb2duaXRvQXV0aG9yaXplZFJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsICdDb2duaXRvQXV0aG9yaXplZFJvbGUnLCB7XG4gICAgYXNzdW1lZEJ5OiBjb2duaXRvUHJpbmNpcGFsLFxuICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICBDb2duaXRvQWNjZXNzUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW25ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnZXM6RVNIdHRwKidcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06ZXM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmRvbWFpbi8ke2RvbWFpbk5hbWV9LypgXVxuICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9KVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gQXR0YWNoIHRoZSBJQU0gUm9sZSBmb3IgQ29nbml0byBBdXRob3JpemVkIFVzZXJzXG4gIG5ldyBjb2duaXRvLkNmbklkZW50aXR5UG9vbFJvbGVBdHRhY2htZW50KHNjb3BlLCAnSWRlbnRpdHlQb29sUm9sZU1hcHBpbmcnLCB7XG4gICAgaWRlbnRpdHlQb29sSWQ6IG9wdGlvbnMuaWRlbnRpdHlwb29sLnJlZixcbiAgICByb2xlczoge1xuICAgICAgYXV0aGVudGljYXRlZDogY29nbml0b0F1dGhvcml6ZWRSb2xlLnJvbGVBcm5cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjb2duaXRvQXV0aG9yaXplZFJvbGU7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29nbml0b0ZvclNlYXJjaFNlcnZpY2Uoc2NvcGU6IENvbnN0cnVjdCwgZG9tYWluTmFtZTogc3RyaW5nKTpcbiAgW2NvZ25pdG8uVXNlclBvb2wsIGNvZ25pdG8uVXNlclBvb2xDbGllbnQsIGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sLCBpYW0uUm9sZV0ge1xuICBjb25zdCB1c2VyUG9vbCA9IGJ1aWxkVXNlclBvb2woc2NvcGUpO1xuICBjb25zdCB1c2VyUG9vbENsaWVudCA9IGJ1aWxkVXNlclBvb2xDbGllbnQoc2NvcGUsIHVzZXJQb29sKTtcbiAgY29uc3QgaWRlbnRpdHlQb29sID0gYnVpbGRJZGVudGl0eVBvb2woc2NvcGUsIHVzZXJQb29sLCB1c2VyUG9vbENsaWVudCk7XG5cbiAgY29uc3QgY29nbml0b0F1dGhvcml6ZWRSb2xlOiBpYW0uUm9sZSA9IHNldHVwQ29nbml0b0ZvclNlYXJjaFNlcnZpY2Uoc2NvcGUsIGRvbWFpbk5hbWUsIHtcbiAgICB1c2VycG9vbDogdXNlclBvb2wsXG4gICAgaWRlbnRpdHlwb29sOiBpZGVudGl0eVBvb2wsXG4gICAgdXNlcnBvb2xjbGllbnQ6IHVzZXJQb29sQ2xpZW50XG4gIH0pO1xuXG4gIHJldHVybiBbdXNlclBvb2wsIHVzZXJQb29sQ2xpZW50LCBpZGVudGl0eVBvb2wsIGNvZ25pdG9BdXRob3JpemVkUm9sZV07XG59Il19
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DefaultTableWithStreamProps = exports.DefaultTableProps = void 0;
|
|
16
|
+
/*
|
|
17
|
+
* The functions found here in the core library are for internal use and can be changed
|
|
18
|
+
* or removed outside of a major release. We recommend against calling them directly from client code.
|
|
19
|
+
*/
|
|
16
20
|
const dynamodb = require("aws-cdk-lib/aws-dynamodb");
|
|
17
21
|
const DefaultTableProps = {
|
|
18
22
|
billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
|
|
@@ -35,4 +39,4 @@ const DefaultTableWithStreamProps = {
|
|
|
35
39
|
stream: dynamodb.StreamViewType.NEW_AND_OLD_IMAGES
|
|
36
40
|
};
|
|
37
41
|
exports.DefaultTableWithStreamProps = DefaultTableWithStreamProps;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGItdGFibGUtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkeW5hbW9kYi10YWJsZS1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUVILHFEQUFxRDtBQUVyRCxNQUFNLGlCQUFpQixHQUF3QjtJQUM3QyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlO0lBQ2pELFVBQVUsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVc7SUFDaEQsbUJBQW1CLEVBQUUsSUFBSTtJQUN6QixZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU07S0FDcEM7Q0FDRixDQUFDO0FBYU8sOENBQWlCO0FBWDFCLE1BQU0sMkJBQTJCLEdBQXdCO0lBQ3ZELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWU7SUFDakQsVUFBVSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVztJQUNoRCxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTTtLQUNwQztJQUNELE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQjtDQUNuRCxDQUFDO0FBRTBCLGtFQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcblxuY29uc3QgRGVmYXVsdFRhYmxlUHJvcHM6IGR5bmFtb2RiLlRhYmxlUHJvcHMgPSB7XG4gIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gIGVuY3J5cHRpb246IGR5bmFtb2RiLlRhYmxlRW5jcnlwdGlvbi5BV1NfTUFOQUdFRCxcbiAgcG9pbnRJblRpbWVSZWNvdmVyeTogdHJ1ZSxcbiAgcGFydGl0aW9uS2V5OiB7XG4gICAgbmFtZTogJ2lkJyxcbiAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklOR1xuICB9XG59O1xuXG5jb25zdCBEZWZhdWx0VGFibGVXaXRoU3RyZWFtUHJvcHM6IGR5bmFtb2RiLlRhYmxlUHJvcHMgPSB7XG4gIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gIGVuY3J5cHRpb246IGR5bmFtb2RiLlRhYmxlRW5jcnlwdGlvbi5BV1NfTUFOQUdFRCxcbiAgcG9pbnRJblRpbWVSZWNvdmVyeTogdHJ1ZSxcbiAgcGFydGl0aW9uS2V5OiB7XG4gICAgbmFtZTogJ2lkJyxcbiAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklOR1xuICB9LFxuICBzdHJlYW06IGR5bmFtb2RiLlN0cmVhbVZpZXdUeXBlLk5FV19BTkRfT0xEX0lNQUdFU1xufTtcblxuZXhwb3J0IHsgRGVmYXVsdFRhYmxlUHJvcHMsIERlZmF1bHRUYWJsZVdpdGhTdHJlYW1Qcm9wcyB9OyJdfQ==
|
|
@@ -49,7 +49,27 @@ export interface BuildDynamoDBTableWithStreamProps {
|
|
|
49
49
|
*/
|
|
50
50
|
readonly existingTableInterface?: dynamodb.ITable;
|
|
51
51
|
}
|
|
52
|
-
export
|
|
52
|
+
export interface BuildDynamoDBTableResponse {
|
|
53
|
+
readonly tableInterface: dynamodb.ITable;
|
|
54
|
+
readonly tableObject?: dynamodb.Table;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildDynamoDBTable(scope: Construct, props: BuildDynamoDBTableProps): BuildDynamoDBTableResponse;
|
|
60
|
+
/**
|
|
61
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
62
|
+
*/
|
|
53
63
|
export declare function checkTableProps(props: BuildDynamoDBTableProps): void;
|
|
54
|
-
export
|
|
64
|
+
export interface BuildDynamoDBTableWithStreamResponse {
|
|
65
|
+
readonly tableInterface: dynamodb.ITable;
|
|
66
|
+
readonly tableObject?: dynamodb.Table;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
70
|
+
*/
|
|
71
|
+
export declare function buildDynamoDBTableWithStream(scope: Construct, props: BuildDynamoDBTableWithStreamProps): BuildDynamoDBTableWithStreamResponse;
|
|
72
|
+
/**
|
|
73
|
+
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
74
|
+
*/
|
|
55
75
|
export declare function getPartitionKeyNameFromTable(table: dynamodb.Table): string;
|