@codedrifters/constructs 0.0.0 → 0.0.2
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/lib/s3/private-bucket.js
CHANGED
|
@@ -19,5 +19,4 @@ class PrivateBucket extends aws_s3_1.Bucket {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.PrivateBucket = PrivateBucket;
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS1idWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvczMvcHJpdmF0ZS1idWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLCtDQUs0QjtBQUs1QixNQUFhLGFBQWMsU0FBUSxlQUFNO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBNEIsRUFBRTtRQUN0RSxNQUFNLFlBQVksR0FBRztZQUNuQixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE1BQU07WUFDMUQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU87U0FDakUsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxVQUFVLEVBQUUsSUFBSTtZQUNoQixlQUFlLEVBQUUsd0JBQWUsQ0FBQyxxQkFBcUI7U0FDdkQsQ0FBQztRQUVGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRjtBQWhCRCxzQ0FnQkM7QUFDRCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQmxvY2tQdWJsaWNBY2Nlc3MsXG4gIEJ1Y2tldCxcbiAgQnVja2V0UHJvcHMsXG4gIE9iamVjdE93bmVyc2hpcCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlQnVja2V0UHJvcHMgZXh0ZW5kcyBCdWNrZXRQcm9wcyB7fVxuXG5leHBvcnQgY2xhc3MgUHJpdmF0ZUJ1Y2tldCBleHRlbmRzIEJ1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcml2YXRlQnVja2V0UHJvcHMgPSB7fSkge1xuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3kgPz8gUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogcHJvcHMucmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH07XG5cbiAgICBjb25zdCByZXF1aXJlZFByb3BzID0ge1xuICAgICAgcHVibGljUmVhZEFjY2VzczogZmFsc2UsXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIG9iamVjdE93bmVyc2hpcDogT2JqZWN0T3duZXJzaGlwLkJVQ0tFVF9PV05FUl9FTkZPUkNFRCxcbiAgICB9O1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7IC4uLmRlZmF1bHRQcm9wcywgLi4ucHJvcHMsIC4uLnJlcXVpcmVkUHJvcHMgfSk7XG4gIH1cbn1cbi8vIGZvb1xuIl19
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS1idWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvczMvcHJpdmF0ZS1idWNrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLCtDQUs0QjtBQUs1QixNQUFhLGFBQWMsU0FBUSxlQUFNO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBNEIsRUFBRTtRQUN0RSxNQUFNLFlBQVksR0FBRztZQUNuQixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE1BQU07WUFDMUQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU87U0FDakUsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxVQUFVLEVBQUUsSUFBSTtZQUNoQixlQUFlLEVBQUUsd0JBQWUsQ0FBQyxxQkFBcUI7U0FDdkQsQ0FBQztRQUVGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRjtBQWhCRCxzQ0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCbG9ja1B1YmxpY0FjY2VzcyxcbiAgQnVja2V0LFxuICBCdWNrZXRQcm9wcyxcbiAgT2JqZWN0T3duZXJzaGlwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVCdWNrZXRQcm9wcyBleHRlbmRzIEJ1Y2tldFByb3BzIHt9XG5cbmV4cG9ydCBjbGFzcyBQcml2YXRlQnVja2V0IGV4dGVuZHMgQnVja2V0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByaXZhdGVCdWNrZXRQcm9wcyA9IHt9KSB7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiBwcm9wcy5yZW1vdmFsUG9saWN5ID09PSBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlcXVpcmVkUHJvcHMgPSB7XG4gICAgICBwdWJsaWNSZWFkQWNjZXNzOiBmYWxzZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgb2JqZWN0T3duZXJzaGlwOiBPYmplY3RPd25lcnNoaXAuQlVDS0VUX09XTkVSX0VORk9SQ0VELFxuICAgIH07XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHsgLi4uZGVmYXVsdFByb3BzLCAuLi5wcm9wcywgLi4ucmVxdWlyZWRQcm9wcyB9KTtcbiAgfVxufVxuIl19
|
|
@@ -3,10 +3,6 @@ import { HostedZoneAttributes } from "aws-cdk-lib/aws-route53";
|
|
|
3
3
|
import { Construct } from "constructs";
|
|
4
4
|
import { PrivateBucketProps } from "../s3/private-bucket";
|
|
5
5
|
export interface StaticDomainProps {
|
|
6
|
-
/**
|
|
7
|
-
* The sub domain prefix (ie: images)
|
|
8
|
-
*/
|
|
9
|
-
readonly subDomain: string;
|
|
10
6
|
/**
|
|
11
7
|
* The base domain (ie: codedrifters.com)
|
|
12
8
|
*/
|
|
@@ -17,6 +13,10 @@ export interface StaticDomainProps {
|
|
|
17
13
|
readonly hostedZoneAttributes: HostedZoneAttributes;
|
|
18
14
|
}
|
|
19
15
|
export interface StaticHostingProps extends StackProps {
|
|
16
|
+
/**
|
|
17
|
+
* Short description used in various places for traceability.
|
|
18
|
+
*/
|
|
19
|
+
readonly description?: string;
|
|
20
20
|
/**
|
|
21
21
|
* Values used to connect a domain name to the cloudfront distribution. If not
|
|
22
22
|
* supplied, cloudfront doesn't use a custom domain.
|
|
@@ -29,8 +29,7 @@ class StaticHosting extends constructs_1.Construct {
|
|
|
29
29
|
distributionIDParamName: "/STATIC_WEBSITE/DISTRIBUTION_ID",
|
|
30
30
|
...props,
|
|
31
31
|
};
|
|
32
|
-
const {
|
|
33
|
-
this.fullDomain = [subDomain, baseDomain].join(".");
|
|
32
|
+
const { baseDomain, hostedZoneAttributes } = staticDomainProps ?? {};
|
|
34
33
|
/***************************************************************************
|
|
35
34
|
*
|
|
36
35
|
* PRIVATE BUCKET
|
|
@@ -50,14 +49,14 @@ class StaticHosting extends constructs_1.Construct {
|
|
|
50
49
|
**************************************************************************/
|
|
51
50
|
let zone;
|
|
52
51
|
let certificate;
|
|
53
|
-
if (hostedZoneAttributes) {
|
|
52
|
+
if (hostedZoneAttributes && baseDomain) {
|
|
54
53
|
zone = aws_route53_1.HostedZone.fromHostedZoneAttributes(this, "zone", hostedZoneAttributes);
|
|
55
54
|
certificate = new aws_certificatemanager_1.Certificate(this, "wildcard-certificate", {
|
|
56
|
-
domainName: `*.${
|
|
57
|
-
subjectAlternativeNames: [
|
|
55
|
+
domainName: `*.${baseDomain}`,
|
|
56
|
+
subjectAlternativeNames: [baseDomain],
|
|
58
57
|
validation: aws_certificatemanager_1.CertificateValidation.fromDnsMultiZone({
|
|
59
|
-
[`*.${
|
|
60
|
-
[
|
|
58
|
+
[`*.${baseDomain}`]: zone,
|
|
59
|
+
[baseDomain]: zone,
|
|
61
60
|
}),
|
|
62
61
|
});
|
|
63
62
|
}
|
|
@@ -101,14 +100,14 @@ class StaticHosting extends constructs_1.Construct {
|
|
|
101
100
|
originAccessLevels: [aws_cloudfront_1.AccessLevel.READ],
|
|
102
101
|
});
|
|
103
102
|
const distribution = new aws_cloudfront_1.Distribution(this, "cloudfront-distribution", {
|
|
104
|
-
comment: `Distribution for ${
|
|
103
|
+
comment: `Distribution for ${props.description ?? id}`,
|
|
105
104
|
/**
|
|
106
105
|
* Only if domain was supplied
|
|
107
106
|
*/
|
|
108
|
-
...(certificate
|
|
107
|
+
...(certificate && baseDomain
|
|
109
108
|
? {
|
|
110
109
|
certificate,
|
|
111
|
-
domainNames: [
|
|
110
|
+
domainNames: [baseDomain, `*.${baseDomain}`],
|
|
112
111
|
}
|
|
113
112
|
: {}),
|
|
114
113
|
defaultBehavior: {
|
|
@@ -125,6 +124,11 @@ class StaticHosting extends constructs_1.Construct {
|
|
|
125
124
|
},
|
|
126
125
|
defaultRootObject: "index.html",
|
|
127
126
|
});
|
|
127
|
+
/**
|
|
128
|
+
* We finally have enough information to set the full domain.
|
|
129
|
+
*/
|
|
130
|
+
this.fullDomain =
|
|
131
|
+
certificate && baseDomain ? baseDomain : distribution.domainName;
|
|
128
132
|
/***************************************************************************
|
|
129
133
|
*
|
|
130
134
|
* DNS ENTRY
|
|
@@ -135,12 +139,12 @@ class StaticHosting extends constructs_1.Construct {
|
|
|
135
139
|
if (zone) {
|
|
136
140
|
new aws_route53_1.ARecord(this, "root-dns-entry", {
|
|
137
141
|
zone,
|
|
138
|
-
recordName:
|
|
142
|
+
recordName: baseDomain ? baseDomain : "",
|
|
139
143
|
target: aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.CloudFrontTarget(distribution)),
|
|
140
144
|
});
|
|
141
145
|
new aws_route53_1.ARecord(this, "wc-dns-entry", {
|
|
142
146
|
zone,
|
|
143
|
-
recordName: `*.${
|
|
147
|
+
recordName: baseDomain ? `*.${baseDomain}` : "*",
|
|
144
148
|
target: aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.CloudFrontTarget(distribution)),
|
|
145
149
|
});
|
|
146
150
|
}
|
|
@@ -152,21 +156,21 @@ class StaticHosting extends constructs_1.Construct {
|
|
|
152
156
|
*
|
|
153
157
|
**************************************************************************/
|
|
154
158
|
new aws_ssm_1.StringParameter(this, "dist-domain", {
|
|
155
|
-
description: `GENERATED DO NOT CHANGE - CloudFront Distribution Details (${
|
|
159
|
+
description: `GENERATED DO NOT CHANGE - CloudFront Distribution Details (${props.description ?? id}).`,
|
|
156
160
|
parameterName: distributionDomainParamName,
|
|
157
161
|
stringValue: distribution.domainName,
|
|
158
162
|
});
|
|
159
163
|
new aws_ssm_1.StringParameter(this, "dist-id", {
|
|
160
|
-
description: `GENERATED DO NOT CHANGE - CloudFront Distribution Details (${
|
|
164
|
+
description: `GENERATED DO NOT CHANGE - CloudFront Distribution Details (${props.description ?? id}).`,
|
|
161
165
|
parameterName: distributionIDParamName,
|
|
162
166
|
stringValue: distribution.distributionId,
|
|
163
167
|
});
|
|
164
168
|
new aws_ssm_1.StringParameter(this, "bucket-arn", {
|
|
165
|
-
description: `GENERATED DO NOT CHANGE - S3 Bucket ARN for
|
|
169
|
+
description: `GENERATED DO NOT CHANGE - S3 Bucket ARN for (${props.description ?? id}).`,
|
|
166
170
|
parameterName: bucketArnParamName,
|
|
167
171
|
stringValue: bucket.bucketArn,
|
|
168
172
|
});
|
|
169
173
|
}
|
|
170
174
|
}
|
|
171
175
|
exports.StaticHosting = StaticHosting;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWhvc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdGljLWhvc3Rpbmcvc3RhdGljLWhvc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW1EO0FBQ25ELCtFQUc0QztBQUM1QywrREFZb0M7QUFDcEMsK0VBQW9FO0FBQ3BFLHVEQUFpRDtBQUNqRCxxRUFBK0Q7QUFDL0QsbURBQStEO0FBQy9ELHlEQU1pQztBQUNqQyx5RUFBbUU7QUFDbkUsaURBQXNEO0FBQ3RELDJDQUF1QztBQUN2Qyx5REFBeUU7QUFnRHpFLE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBTTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBNEIsRUFBRTtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCOzs7Ozs7b0ZBTTRFO1FBRTVFLE1BQU0sRUFDSixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLEdBQUc7WUFDRixrQkFBa0IsRUFBRSw0QkFBNEI7WUFDaEQsMkJBQTJCLEVBQUUscUNBQXFDO1lBQ2xFLHVCQUF1QixFQUFFLGlDQUFpQztZQUMxRCxHQUFHLEtBQUs7U0FDVCxDQUFDO1FBRUYsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsR0FDbkQsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBEOzs7Ozs7O29GQU80RTtRQUU1RSxNQUFNLE1BQU0sR0FBRyxJQUFJLDhCQUFhLENBQzlCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsa0JBQWtCLENBQ25CLENBQUM7UUFFRjs7Ozs7OztvRkFPNEU7UUFFNUUsSUFBSSxJQUE2QixDQUFDO1FBQ2xDLElBQUksV0FBb0MsQ0FBQztRQUV6QyxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsSUFBSSxHQUFHLHdCQUFVLENBQUMsd0JBQXdCLENBQ3hDLElBQUksRUFDSixNQUFNLEVBQ04sb0JBQW9CLENBQ3JCLENBQUM7WUFDRixXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtnQkFDMUQsVUFBVSxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbEMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUMxQyxVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2pELENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJO29CQUM5QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO2lCQUN4QixDQUFDO2FBQ0gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVEOzs7Ozs7dUZBTStFO1FBRS9FLE1BQU0sT0FBTyxHQUFHLElBQUksa0NBQWMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDakUsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRSxJQUFJLG1CQUFRLENBQUMsSUFBSSxFQUFFLGtDQUFrQyxFQUFFO2dCQUMvRCxTQUFTLEVBQUUsd0JBQWEsQ0FBQyxTQUFTO2FBQ25DLENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSDs7Ozs7O3VGQU0rRTtRQUUvRSxNQUFNLFdBQVcsR0FBRyxJQUFJLDRCQUFXLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzdELE9BQU8sRUFBRSxxQ0FBcUM7WUFDOUMsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM3QixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNCLFVBQVUsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDaEMsY0FBYyxFQUFFLG9DQUFtQixDQUFDLElBQUksRUFBRTtZQUMxQyxtQkFBbUIsRUFBRSx5Q0FBd0IsQ0FBQyxJQUFJLEVBQUU7WUFDcEQsY0FBYyxFQUFFLG9DQUFtQixDQUFDLElBQUksRUFBRTtZQUMxQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLDBCQUEwQixFQUFFLElBQUk7U0FDakMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxzQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ25ELE9BQU8sRUFBRSx3QkFBTyxDQUFDLGlCQUFpQjtTQUNuQyxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyx1Q0FBYyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRTtZQUM1RCxtQkFBbUIsRUFBRSxHQUFHO1lBQ3hCLGtCQUFrQixFQUFFLENBQUMsNEJBQVcsQ0FBQyxJQUFJLENBQUM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSw2QkFBWSxDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtZQUNyRSxPQUFPLEVBQUUsb0JBQW9CLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFFOUM7O2VBRUc7WUFDSCxHQUFHLENBQUMsV0FBVztnQkFDYixDQUFDLENBQUM7b0JBQ0UsV0FBVztvQkFDWCxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUN2RDtnQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRVAsZUFBZSxFQUFFO2dCQUNmLE1BQU07Z0JBQ04sb0JBQW9CLEVBQUUscUNBQW9CLENBQUMsaUJBQWlCO2dCQUM1RCxXQUFXO2dCQUNYLGNBQWMsRUFBRSwrQkFBYyxDQUFDLHNCQUFzQjtnQkFDckQsV0FBVyxFQUFFO29CQUNYO3dCQUNFLGVBQWUsRUFBRSxPQUFPLENBQUMsY0FBYzt3QkFDdkMsU0FBUyxFQUFFLG9DQUFtQixDQUFDLGNBQWM7cUJBQzlDO2lCQUNGO2FBQ0Y7WUFDRCxpQkFBaUIsRUFBRSxZQUFZO1NBQ2hDLENBQUMsQ0FBQztRQUVIOzs7Ozs7b0ZBTTRFO1FBRTVFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLHFCQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNsQyxJQUFJO2dCQUNKLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixNQUFNLEVBQUUsMEJBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxzQ0FBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNuRSxDQUFDLENBQUM7WUFFSCxJQUFJLHFCQUFPLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtnQkFDaEMsSUFBSTtnQkFDSixVQUFVLEVBQUUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLE1BQU0sRUFBRSwwQkFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLHNDQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25FLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7Ozs7O29GQU00RTtRQUU1RSxJQUFJLHlCQUFlLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUN2QyxXQUFXLEVBQUUsOERBQThELElBQUksQ0FBQyxVQUFVLElBQUk7WUFDOUYsYUFBYSxFQUFFLDJCQUEyQjtZQUMxQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFVBQVU7U0FDckMsQ0FBQyxDQUFDO1FBRUgsSUFBSSx5QkFBZSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDbkMsV0FBVyxFQUFFLDhEQUE4RCxJQUFJLENBQUMsVUFBVSxJQUFJO1lBQzlGLGFBQWEsRUFBRSx1QkFBdUI7WUFDdEMsV0FBVyxFQUFFLFlBQVksQ0FBQyxjQUFjO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUkseUJBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3RDLFdBQVcsRUFBRSx1RUFBdUUsSUFBSSxDQUFDLFVBQVUsSUFBSTtZQUN2RyxhQUFhLEVBQUUsa0JBQWtCO1lBQ2pDLFdBQVcsRUFBRSxNQUFNLENBQUMsU0FBUztTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFyTUQsc0NBcU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIENlcnRpZmljYXRlLFxuICBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24sXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge1xuICBBY2Nlc3NMZXZlbCxcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIENhY2hlQ29va2llQmVoYXZpb3IsXG4gIENhY2hlSGVhZGVyQmVoYXZpb3IsXG4gIENhY2hlUG9saWN5LFxuICBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IsXG4gIERpc3RyaWJ1dGlvbixcbiAgTGFtYmRhRWRnZUV2ZW50VHlwZSxcbiAgUzNPcmlnaW5BY2Nlc3NDb250cm9sLFxuICBTaWduaW5nLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBTM0J1Y2tldE9yaWdpbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBMb2dHcm91cCwgUmV0ZW50aW9uRGF5cyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtcbiAgQVJlY29yZCxcbiAgSG9zdGVkWm9uZSxcbiAgSG9zdGVkWm9uZUF0dHJpYnV0ZXMsXG4gIElIb3N0ZWRab25lLFxuICBSZWNvcmRUYXJnZXQsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgeyBTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFByaXZhdGVCdWNrZXQsIFByaXZhdGVCdWNrZXRQcm9wcyB9IGZyb20gXCIuLi9zMy9wcml2YXRlLWJ1Y2tldFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRpY0RvbWFpblByb3BzIHtcbiAgLyoqXG4gICAqICBUaGUgc3ViIGRvbWFpbiBwcmVmaXggKGllOiBpbWFnZXMpXG4gICAqL1xuICByZWFkb25seSBzdWJEb21haW46IHN0cmluZztcblxuICAvKipcbiAgICogIFRoZSBiYXNlIGRvbWFpbiAoaWU6IGNvZGVkcmlmdGVycy5jb20pXG4gICAqL1xuICByZWFkb25seSBiYXNlRG9tYWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvc3RlZCB6b25lIElEIGZvciB0aGUgYmFzZSBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lQXR0cmlidXRlczogSG9zdGVkWm9uZUF0dHJpYnV0ZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGljSG9zdGluZ1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBWYWx1ZXMgdXNlZCB0byBjb25uZWN0IGEgZG9tYWluIG5hbWUgdG8gdGhlIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uLiBJZiBub3RcbiAgICogc3VwcGxpZWQsIGNsb3VkZnJvbnQgZG9lc24ndCB1c2UgYSBjdXN0b20gZG9tYWluLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljRG9tYWluUHJvcHM/OiBTdGF0aWNEb21haW5Qcm9wcztcblxuICAvKipcbiAgICogUGFyYW1ldGVyIG5hbWUgdG8gdXNlIHdoZW4gc3RvcmluZyB0aGUgc3RhdGljIGhvc3RpbmcgYnVja2V0J3MgQVJOLlxuICAgKiBUaGlzIGlzIG5lZWRlZCBpbiBvdGhlciBsYXRlciBzdGVwcyB3aGVuIGRlcGxveWluZyBob3N0ZWQgY29udGVudCB0byBTMy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldEFyblBhcmFtTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVyIG5hbWUgdG8gdXNlIHdoZW4gc3RvcmluZyB0aGUgQ2xvdWRGcm9udCBEaXN0cmlidXRpb24gRG9tYWluIE5hbWUuXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb25Eb21haW5QYXJhbU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlciBuYW1lIHRvIHVzZSB3aGVuIHN0b3JpbmcgdGhlIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uIElELlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uSURQYXJhbU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3BzIHRvIHBhc3MgdG8gdGhlIHByaXZhdGUgUzMgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUJ1Y2tldFByb3BzPzogUHJpdmF0ZUJ1Y2tldFByb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhdGljSG9zdGluZyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBGdWxsIGRvbWFpbiBuYW1lIHVzZWQgYXMgYmFzaXMgZm9yIGhvc3RpbmcuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnVsbERvbWFpbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGF0aWNIb3N0aW5nUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBJbml0aWFsIFNldHVwXG4gICAgICpcbiAgICAgKiBTZXQgc29tZSBkZWZhdWx0cywgYnVpbGQgZG9tYWluIGluZm9ybWF0aW9uLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3Qge1xuICAgICAgYnVja2V0QXJuUGFyYW1OYW1lLFxuICAgICAgZGlzdHJpYnV0aW9uRG9tYWluUGFyYW1OYW1lLFxuICAgICAgZGlzdHJpYnV0aW9uSURQYXJhbU5hbWUsXG4gICAgICBzdGF0aWNEb21haW5Qcm9wcyxcbiAgICAgIHByaXZhdGVCdWNrZXRQcm9wcyxcbiAgICB9ID0ge1xuICAgICAgYnVja2V0QXJuUGFyYW1OYW1lOiBcIi9TVEFUSUNfV0VCU0lURS9CVUNLRVRfQVJOXCIsXG4gICAgICBkaXN0cmlidXRpb25Eb21haW5QYXJhbU5hbWU6IFwiL1NUQVRJQ19XRUJTSVRFL0RJU1RSSUJVVElPTl9ET01BSU5cIixcbiAgICAgIGRpc3RyaWJ1dGlvbklEUGFyYW1OYW1lOiBcIi9TVEFUSUNfV0VCU0lURS9ESVNUUklCVVRJT05fSURcIixcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG5cbiAgICBjb25zdCB7IHN1YkRvbWFpbiwgYmFzZURvbWFpbiwgaG9zdGVkWm9uZUF0dHJpYnV0ZXMgfSA9XG4gICAgICBzdGF0aWNEb21haW5Qcm9wcyA/PyB7fTtcbiAgICB0aGlzLmZ1bGxEb21haW4gPSBbc3ViRG9tYWluLCBiYXNlRG9tYWluXS5qb2luKFwiLlwiKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFBSSVZBVEUgQlVDS0VUXG4gICAgICpcbiAgICAgKiBBIGJ1Y2tldCB0byBzdG9yZSB0aGUgZmlsZXMgd2l0aGluLlxuICAgICAqIFNhdmUgQVJOIGZvciBsYXRlciBkZXBsb3lzLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgYnVja2V0ID0gbmV3IFByaXZhdGVCdWNrZXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJzdGF0aWMtaG9zdGluZy1idWNrZXRcIixcbiAgICAgIHByaXZhdGVCdWNrZXRQcm9wcyxcbiAgICApO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogRE5TICYgV2lsZGNhcmQgQ2VydGlmaWNhdGVcbiAgICAgKlxuICAgICAqIElmIGEgem9uZSBJZCBhcyBwYXNzZWQgaW4sIGZpbmQgdGhlIGhvc3RlZCB6b25lIGFuZCBjcmVhdGUgYSB3aWxkY2FyZFxuICAgICAqIGNlcnRpZmljYXRlIGZvciB0aGUgZG9tYWluLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgbGV0IHpvbmU6IElIb3N0ZWRab25lIHwgdW5kZWZpbmVkO1xuICAgIGxldCBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaG9zdGVkWm9uZUF0dHJpYnV0ZXMpIHtcbiAgICAgIHpvbmUgPSBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJ6b25lXCIsXG4gICAgICAgIGhvc3RlZFpvbmVBdHRyaWJ1dGVzLFxuICAgICAgKTtcbiAgICAgIGNlcnRpZmljYXRlID0gbmV3IENlcnRpZmljYXRlKHRoaXMsIFwid2lsZGNhcmQtY2VydGlmaWNhdGVcIiwge1xuICAgICAgICBkb21haW5OYW1lOiBgKi4ke3RoaXMuZnVsbERvbWFpbn1gLFxuICAgICAgICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lczogW3RoaXMuZnVsbERvbWFpbl0sXG4gICAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zTXVsdGlab25lKHtcbiAgICAgICAgICBbYCouJHt0aGlzLmZ1bGxEb21haW59YF06IHpvbmUsXG4gICAgICAgICAgW3RoaXMuZnVsbERvbWFpbl06IHpvbmUsXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogTEFNQkRBQEVER0UgRlVOQ1RJT05cbiAgICAgKlxuICAgICAqIFRoaXMgaGFuZGxlcyByZXdyaXRpbmcgdGhlIHBhdGggZnJvbSBkb21haW4gbmFtZS5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgTm9kZWpzRnVuY3Rpb24odGhpcywgXCJ2aWV3ZXItcmVxdWVzdC1oYW5kbGVyXCIsIHtcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gICAgICBsb2dHcm91cDogbmV3IExvZ0dyb3VwKHRoaXMsIFwidmlld2VyLXJlcXVlc3QtaGFuZGxlci1sb2ctZ3JvdXBcIiwge1xuICAgICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiAgQ0xPVURGUk9OVCBDT05GSUdcbiAgICAgKlxuICAgICAqICBTZXR1cCBhIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uIGZvciB0aGUgYnVja2V0LlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgY2FjaGVQb2xpY3kgPSBuZXcgQ2FjaGVQb2xpY3kodGhpcywgXCJjbG91ZGZyb250LXBvbGljeVwiLCB7XG4gICAgICBjb21tZW50OiBcIlJlbGF0aXZlbHkgY29uc2VydmF0aXZlIFRUTCBwb2xpY3kuXCIsXG4gICAgICBtYXhUdGw6IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIG1pblR0bDogRHVyYXRpb24uc2Vjb25kcygwKSxcbiAgICAgIGRlZmF1bHRUdGw6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3Iubm9uZSgpLFxuICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjogQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLm5vbmUoKSxcbiAgICAgIGNvb2tpZUJlaGF2aW9yOiBDYWNoZUNvb2tpZUJlaGF2aW9yLm5vbmUoKSxcbiAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcDogdHJ1ZSxcbiAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb2FjID0gbmV3IFMzT3JpZ2luQWNjZXNzQ29udHJvbCh0aGlzLCBcIk15T0FDXCIsIHtcbiAgICAgIHNpZ25pbmc6IFNpZ25pbmcuU0lHVjRfTk9fT1ZFUlJJREUsXG4gICAgfSk7XG4gICAgY29uc3Qgb3JpZ2luID0gUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2woYnVja2V0LCB7XG4gICAgICBvcmlnaW5BY2Nlc3NDb250cm9sOiBvYWMsXG4gICAgICBvcmlnaW5BY2Nlc3NMZXZlbHM6IFtBY2Nlc3NMZXZlbC5SRUFEXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgXCJjbG91ZGZyb250LWRpc3RyaWJ1dGlvblwiLCB7XG4gICAgICBjb21tZW50OiBgRGlzdHJpYnV0aW9uIGZvciAke3RoaXMuZnVsbERvbWFpbn1gLFxuXG4gICAgICAvKipcbiAgICAgICAqIE9ubHkgaWYgZG9tYWluIHdhcyBzdXBwbGllZFxuICAgICAgICovXG4gICAgICAuLi4oY2VydGlmaWNhdGVcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBjZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIGRvbWFpbk5hbWVzOiBbdGhpcy5mdWxsRG9tYWluLCBgKi4ke3RoaXMuZnVsbERvbWFpbn1gXSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge30pLFxuXG4gICAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIGNhY2hlUG9saWN5LFxuICAgICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgZWRnZUxhbWJkYXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmdW5jdGlvblZlcnNpb246IGhhbmRsZXIuY3VycmVudFZlcnNpb24sXG4gICAgICAgICAgICBldmVudFR5cGU6IExhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgfSk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiAgRE5TIEVOVFJZXG4gICAgICpcbiAgICAgKiBMaW5rIGNsb3VkZnJvbnQgdG8gYm90aCB0aGUgcm9vdCBmdWxsZG9tYWluIGFuZCBhbGwgcG9zc2libGUgc3ViZG9tYWlucy5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGlmICh6b25lKSB7XG4gICAgICBuZXcgQVJlY29yZCh0aGlzLCBcInJvb3QtZG5zLWVudHJ5XCIsIHtcbiAgICAgICAgem9uZSxcbiAgICAgICAgcmVjb3JkTmFtZTogc3ViRG9tYWluLFxuICAgICAgICB0YXJnZXQ6IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKSksXG4gICAgICB9KTtcblxuICAgICAgbmV3IEFSZWNvcmQodGhpcywgXCJ3Yy1kbnMtZW50cnlcIiwge1xuICAgICAgICB6b25lLFxuICAgICAgICByZWNvcmROYW1lOiBgKi4ke3N1YkRvbWFpbn1gLFxuICAgICAgICB0YXJnZXQ6IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBFWFBPUlRTXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IGNvbnRlbnQgdXBsb2FkZXIgbGF0ZXIuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBuZXcgU3RyaW5nUGFyYW1ldGVyKHRoaXMsIFwiZGlzdC1kb21haW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IGBHRU5FUkFURUQgRE8gTk9UIENIQU5HRSAtIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uIERldGFpbHMgKCR7dGhpcy5mdWxsRG9tYWlufSkuYCxcbiAgICAgIHBhcmFtZXRlck5hbWU6IGRpc3RyaWJ1dGlvbkRvbWFpblBhcmFtTmFtZSxcbiAgICAgIHN0cmluZ1ZhbHVlOiBkaXN0cmlidXRpb24uZG9tYWluTmFtZSxcbiAgICB9KTtcblxuICAgIG5ldyBTdHJpbmdQYXJhbWV0ZXIodGhpcywgXCJkaXN0LWlkXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgR0VORVJBVEVEIERPIE5PVCBDSEFOR0UgLSBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiBEZXRhaWxzICgke3RoaXMuZnVsbERvbWFpbn0pLmAsXG4gICAgICBwYXJhbWV0ZXJOYW1lOiBkaXN0cmlidXRpb25JRFBhcmFtTmFtZSxcbiAgICAgIHN0cmluZ1ZhbHVlOiBkaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uSWQsXG4gICAgfSk7XG5cbiAgICBuZXcgU3RyaW5nUGFyYW1ldGVyKHRoaXMsIFwiYnVja2V0LWFyblwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYEdFTkVSQVRFRCBETyBOT1QgQ0hBTkdFIC0gUzMgQnVja2V0IEFSTiBmb3IgU3RhdGljIFdlYnNpdGUgSG9zdGluZyAoJHt0aGlzLmZ1bGxEb21haW59KS5gLFxuICAgICAgcGFyYW1ldGVyTmFtZTogYnVja2V0QXJuUGFyYW1OYW1lLFxuICAgICAgc3RyaW5nVmFsdWU6IGJ1Y2tldC5idWNrZXRBcm4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWhvc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdGljLWhvc3Rpbmcvc3RhdGljLWhvc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW1EO0FBQ25ELCtFQUc0QztBQUM1QywrREFZb0M7QUFDcEMsK0VBQW9FO0FBQ3BFLHVEQUFpRDtBQUNqRCxxRUFBK0Q7QUFDL0QsbURBQStEO0FBQy9ELHlEQU1pQztBQUNqQyx5RUFBbUU7QUFDbkUsaURBQXNEO0FBQ3RELDJDQUF1QztBQUN2Qyx5REFBeUU7QUFnRHpFLE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBTTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBNEIsRUFBRTtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCOzs7Ozs7b0ZBTTRFO1FBRTVFLE1BQU0sRUFDSixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLEdBQUc7WUFDRixrQkFBa0IsRUFBRSw0QkFBNEI7WUFDaEQsMkJBQTJCLEVBQUUscUNBQXFDO1lBQ2xFLHVCQUF1QixFQUFFLGlDQUFpQztZQUMxRCxHQUFHLEtBQUs7U0FDVCxDQUFDO1FBRUYsTUFBTSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUVyRTs7Ozs7OztvRkFPNEU7UUFFNUUsTUFBTSxNQUFNLEdBQUcsSUFBSSw4QkFBYSxDQUM5QixJQUFJLEVBQ0osdUJBQXVCLEVBQ3ZCLGtCQUFrQixDQUNuQixDQUFDO1FBRUY7Ozs7Ozs7b0ZBTzRFO1FBRTVFLElBQUksSUFBNkIsQ0FBQztRQUNsQyxJQUFJLFdBQW9DLENBQUM7UUFFekMsSUFBSSxvQkFBb0IsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN2QyxJQUFJLEdBQUcsd0JBQVUsQ0FBQyx3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WUFDdEMsV0FBVyxFQUFFLGdEQUFnRCxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsSUFBSTtZQUN4RixhQUFhLEVBQUUsa0JBQWtCO1lBQ2pDLFdBQVcsRUFBRSxNQUFNLENBQUMsU0FBUztTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF6TUQsc0NBeU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIENlcnRpZmljYXRlLFxuICBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24sXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge1xuICBBY2Nlc3NMZXZlbCxcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIENhY2hlQ29va2llQmVoYXZpb3IsXG4gIENhY2hlSGVhZGVyQmVoYXZpb3IsXG4gIENhY2hlUG9saWN5LFxuICBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IsXG4gIERpc3RyaWJ1dGlvbixcbiAgTGFtYmRhRWRnZUV2ZW50VHlwZSxcbiAgUzNPcmlnaW5BY2Nlc3NDb250cm9sLFxuICBTaWduaW5nLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBTM0J1Y2tldE9yaWdpbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgeyBMb2dHcm91cCwgUmV0ZW50aW9uRGF5cyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtcbiAgQVJlY29yZCxcbiAgSG9zdGVkWm9uZSxcbiAgSG9zdGVkWm9uZUF0dHJpYnV0ZXMsXG4gIElIb3N0ZWRab25lLFxuICBSZWNvcmRUYXJnZXQsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgeyBTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFByaXZhdGVCdWNrZXQsIFByaXZhdGVCdWNrZXRQcm9wcyB9IGZyb20gXCIuLi9zMy9wcml2YXRlLWJ1Y2tldFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRpY0RvbWFpblByb3BzIHtcbiAgLyoqXG4gICAqICBUaGUgYmFzZSBkb21haW4gKGllOiBjb2RlZHJpZnRlcnMuY29tKVxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZURvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0ZWQgem9uZSBJRCBmb3IgdGhlIGJhc2UgZG9tYWluLlxuICAgKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZUF0dHJpYnV0ZXM6IEhvc3RlZFpvbmVBdHRyaWJ1dGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRpY0hvc3RpbmdQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICAvKipcbiAgICogU2hvcnQgZGVzY3JpcHRpb24gdXNlZCBpbiB2YXJpb3VzIHBsYWNlcyBmb3IgdHJhY2VhYmlsaXR5LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhbHVlcyB1c2VkIHRvIGNvbm5lY3QgYSBkb21haW4gbmFtZSB0byB0aGUgY2xvdWRmcm9udCBkaXN0cmlidXRpb24uIElmIG5vdFxuICAgKiBzdXBwbGllZCwgY2xvdWRmcm9udCBkb2Vzbid0IHVzZSBhIGN1c3RvbSBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNEb21haW5Qcm9wcz86IFN0YXRpY0RvbWFpblByb3BzO1xuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgbmFtZSB0byB1c2Ugd2hlbiBzdG9yaW5nIHRoZSBzdGF0aWMgaG9zdGluZyBidWNrZXQncyBBUk4uXG4gICAqIFRoaXMgaXMgbmVlZGVkIGluIG90aGVyIGxhdGVyIHN0ZXBzIHdoZW4gZGVwbG95aW5nIGhvc3RlZCBjb250ZW50IHRvIFMzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0QXJuUGFyYW1OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgbmFtZSB0byB1c2Ugd2hlbiBzdG9yaW5nIHRoZSBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiBEb21haW4gTmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbkRvbWFpblBhcmFtTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVyIG5hbWUgdG8gdXNlIHdoZW4gc3RvcmluZyB0aGUgQ2xvdWRGcm9udCBEaXN0cmlidXRpb24gSUQuXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb25JRFBhcmFtTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcHMgdG8gcGFzcyB0byB0aGUgcHJpdmF0ZSBTMyBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQnVja2V0UHJvcHM/OiBQcml2YXRlQnVja2V0UHJvcHM7XG59XG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNIb3N0aW5nIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEZ1bGwgZG9tYWluIG5hbWUgdXNlZCBhcyBiYXNpcyBmb3IgaG9zdGluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdWxsRG9tYWluOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YXRpY0hvc3RpbmdQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEluaXRpYWwgU2V0dXBcbiAgICAgKlxuICAgICAqIFNldCBzb21lIGRlZmF1bHRzLCBidWlsZCBkb21haW4gaW5mb3JtYXRpb24uXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCB7XG4gICAgICBidWNrZXRBcm5QYXJhbU5hbWUsXG4gICAgICBkaXN0cmlidXRpb25Eb21haW5QYXJhbU5hbWUsXG4gICAgICBkaXN0cmlidXRpb25JRFBhcmFtTmFtZSxcbiAgICAgIHN0YXRpY0RvbWFpblByb3BzLFxuICAgICAgcHJpdmF0ZUJ1Y2tldFByb3BzLFxuICAgIH0gPSB7XG4gICAgICBidWNrZXRBcm5QYXJhbU5hbWU6IFwiL1NUQVRJQ19XRUJTSVRFL0JVQ0tFVF9BUk5cIixcbiAgICAgIGRpc3RyaWJ1dGlvbkRvbWFpblBhcmFtTmFtZTogXCIvU1RBVElDX1dFQlNJVEUvRElTVFJJQlVUSU9OX0RPTUFJTlwiLFxuICAgICAgZGlzdHJpYnV0aW9uSURQYXJhbU5hbWU6IFwiL1NUQVRJQ19XRUJTSVRFL0RJU1RSSUJVVElPTl9JRFwiLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgYmFzZURvbWFpbiwgaG9zdGVkWm9uZUF0dHJpYnV0ZXMgfSA9IHN0YXRpY0RvbWFpblByb3BzID8/IHt9O1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogUFJJVkFURSBCVUNLRVRcbiAgICAgKlxuICAgICAqIEEgYnVja2V0IHRvIHN0b3JlIHRoZSBmaWxlcyB3aXRoaW4uXG4gICAgICogU2F2ZSBBUk4gZm9yIGxhdGVyIGRlcGxveXMuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBidWNrZXQgPSBuZXcgUHJpdmF0ZUJ1Y2tldChcbiAgICAgIHRoaXMsXG4gICAgICBcInN0YXRpYy1ob3N0aW5nLWJ1Y2tldFwiLFxuICAgICAgcHJpdmF0ZUJ1Y2tldFByb3BzLFxuICAgICk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBETlMgJiBXaWxkY2FyZCBDZXJ0aWZpY2F0ZVxuICAgICAqXG4gICAgICogSWYgYSB6b25lIElkIGFzIHBhc3NlZCBpbiwgZmluZCB0aGUgaG9zdGVkIHpvbmUgYW5kIGNyZWF0ZSBhIHdpbGRjYXJkXG4gICAgICogY2VydGlmaWNhdGUgZm9yIHRoZSBkb21haW4uXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBsZXQgem9uZTogSUhvc3RlZFpvbmUgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChob3N0ZWRab25lQXR0cmlidXRlcyAmJiBiYXNlRG9tYWluKSB7XG4gICAgICB6b25lID0gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiem9uZVwiLFxuICAgICAgICBob3N0ZWRab25lQXR0cmlidXRlcyxcbiAgICAgICk7XG4gICAgICBjZXJ0aWZpY2F0ZSA9IG5ldyBDZXJ0aWZpY2F0ZSh0aGlzLCBcIndpbGRjYXJkLWNlcnRpZmljYXRlXCIsIHtcbiAgICAgICAgZG9tYWluTmFtZTogYCouJHtiYXNlRG9tYWlufWAsXG4gICAgICAgIHN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzOiBbYmFzZURvbWFpbl0sXG4gICAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zTXVsdGlab25lKHtcbiAgICAgICAgICBbYCouJHtiYXNlRG9tYWlufWBdOiB6b25lLFxuICAgICAgICAgIFtiYXNlRG9tYWluXTogem9uZSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBMQU1CREFARURHRSBGVU5DVElPTlxuICAgICAqXG4gICAgICogVGhpcyBoYW5kbGVzIHJld3JpdGluZyB0aGUgcGF0aCBmcm9tIGRvbWFpbiBuYW1lLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCBcInZpZXdlci1yZXF1ZXN0LWhhbmRsZXJcIiwge1xuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjRfWCxcbiAgICAgIGxvZ0dyb3VwOiBuZXcgTG9nR3JvdXAodGhpcywgXCJ2aWV3ZXItcmVxdWVzdC1oYW5kbGVyLWxvZy1ncm91cFwiLCB7XG4gICAgICAgIHJldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEgsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqICBDTE9VREZST05UIENPTkZJR1xuICAgICAqXG4gICAgICogIFNldHVwIGEgQ2xvdWRGcm9udCBEaXN0cmlidXRpb24gZm9yIHRoZSBidWNrZXQuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBjYWNoZVBvbGljeSA9IG5ldyBDYWNoZVBvbGljeSh0aGlzLCBcImNsb3VkZnJvbnQtcG9saWN5XCIsIHtcbiAgICAgIGNvbW1lbnQ6IFwiUmVsYXRpdmVseSBjb25zZXJ2YXRpdmUgVFRMIHBvbGljeS5cIixcbiAgICAgIG1heFR0bDogRHVyYXRpb24uc2Vjb25kcygzMDApLFxuICAgICAgbWluVHRsOiBEdXJhdGlvbi5zZWNvbmRzKDApLFxuICAgICAgZGVmYXVsdFR0bDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBoZWFkZXJCZWhhdmlvcjogQ2FjaGVIZWFkZXJCZWhhdmlvci5ub25lKCksXG4gICAgICBxdWVyeVN0cmluZ0JlaGF2aW9yOiBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3Iubm9uZSgpLFxuICAgICAgY29va2llQmVoYXZpb3I6IENhY2hlQ29va2llQmVoYXZpb3Iubm9uZSgpLFxuICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdHemlwOiB0cnVlLFxuICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdCcm90bGk6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBvYWMgPSBuZXcgUzNPcmlnaW5BY2Nlc3NDb250cm9sKHRoaXMsIFwiTXlPQUNcIiwge1xuICAgICAgc2lnbmluZzogU2lnbmluZy5TSUdWNF9OT19PVkVSUklERSxcbiAgICB9KTtcbiAgICBjb25zdCBvcmlnaW4gPSBTM0J1Y2tldE9yaWdpbi53aXRoT3JpZ2luQWNjZXNzQ29udHJvbChidWNrZXQsIHtcbiAgICAgIG9yaWdpbkFjY2Vzc0NvbnRyb2w6IG9hYyxcbiAgICAgIG9yaWdpbkFjY2Vzc0xldmVsczogW0FjY2Vzc0xldmVsLlJFQURdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IERpc3RyaWJ1dGlvbih0aGlzLCBcImNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGNvbW1lbnQ6IGBEaXN0cmlidXRpb24gZm9yICR7cHJvcHMuZGVzY3JpcHRpb24gPz8gaWR9YCxcblxuICAgICAgLyoqXG4gICAgICAgKiBPbmx5IGlmIGRvbWFpbiB3YXMgc3VwcGxpZWRcbiAgICAgICAqL1xuICAgICAgLi4uKGNlcnRpZmljYXRlICYmIGJhc2VEb21haW5cbiAgICAgICAgPyB7XG4gICAgICAgICAgICBjZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIGRvbWFpbk5hbWVzOiBbYmFzZURvbWFpbiwgYCouJHtiYXNlRG9tYWlufWBdLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG5cbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW4sXG4gICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgY2FjaGVQb2xpY3ksXG4gICAgICAgIGFsbG93ZWRNZXRob2RzOiBBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICBlZGdlTGFtYmRhczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uVmVyc2lvbjogaGFuZGxlci5jdXJyZW50VmVyc2lvbixcbiAgICAgICAgICAgIGV2ZW50VHlwZTogTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRSb290T2JqZWN0OiBcImluZGV4Lmh0bWxcIixcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFdlIGZpbmFsbHkgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gc2V0IHRoZSBmdWxsIGRvbWFpbi5cbiAgICAgKi9cbiAgICB0aGlzLmZ1bGxEb21haW4gPVxuICAgICAgY2VydGlmaWNhdGUgJiYgYmFzZURvbWFpbiA/IGJhc2VEb21haW4gOiBkaXN0cmlidXRpb24uZG9tYWluTmFtZTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqICBETlMgRU5UUllcbiAgICAgKlxuICAgICAqIExpbmsgY2xvdWRmcm9udCB0byBib3RoIHRoZSByb290IGZ1bGxkb21haW4gYW5kIGFsbCBwb3NzaWJsZSBzdWJkb21haW5zLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgaWYgKHpvbmUpIHtcbiAgICAgIG5ldyBBUmVjb3JkKHRoaXMsIFwicm9vdC1kbnMtZW50cnlcIiwge1xuICAgICAgICB6b25lLFxuICAgICAgICByZWNvcmROYW1lOiBiYXNlRG9tYWluID8gYmFzZURvbWFpbiA6IFwiXCIsXG4gICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKSxcbiAgICAgIH0pO1xuXG4gICAgICBuZXcgQVJlY29yZCh0aGlzLCBcIndjLWRucy1lbnRyeVwiLCB7XG4gICAgICAgIHpvbmUsXG4gICAgICAgIHJlY29yZE5hbWU6IGJhc2VEb21haW4gPyBgKi4ke2Jhc2VEb21haW59YCA6IFwiKlwiLFxuICAgICAgICB0YXJnZXQ6IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBFWFBPUlRTXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IGNvbnRlbnQgdXBsb2FkZXIgbGF0ZXIuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBuZXcgU3RyaW5nUGFyYW1ldGVyKHRoaXMsIFwiZGlzdC1kb21haW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IGBHRU5FUkFURUQgRE8gTk9UIENIQU5HRSAtIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uIERldGFpbHMgKCR7cHJvcHMuZGVzY3JpcHRpb24gPz8gaWR9KS5gLFxuICAgICAgcGFyYW1ldGVyTmFtZTogZGlzdHJpYnV0aW9uRG9tYWluUGFyYW1OYW1lLFxuICAgICAgc3RyaW5nVmFsdWU6IGRpc3RyaWJ1dGlvbi5kb21haW5OYW1lLFxuICAgIH0pO1xuXG4gICAgbmV3IFN0cmluZ1BhcmFtZXRlcih0aGlzLCBcImRpc3QtaWRcIiwge1xuICAgICAgZGVzY3JpcHRpb246IGBHRU5FUkFURUQgRE8gTk9UIENIQU5HRSAtIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uIERldGFpbHMgKCR7cHJvcHMuZGVzY3JpcHRpb24gPz8gaWR9KS5gLFxuICAgICAgcGFyYW1ldGVyTmFtZTogZGlzdHJpYnV0aW9uSURQYXJhbU5hbWUsXG4gICAgICBzdHJpbmdWYWx1ZTogZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbklkLFxuICAgIH0pO1xuXG4gICAgbmV3IFN0cmluZ1BhcmFtZXRlcih0aGlzLCBcImJ1Y2tldC1hcm5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IGBHRU5FUkFURUQgRE8gTk9UIENIQU5HRSAtIFMzIEJ1Y2tldCBBUk4gZm9yICgke3Byb3BzLmRlc2NyaXB0aW9uID8/IGlkfSkuYCxcbiAgICAgIHBhcmFtZXRlck5hbWU6IGJ1Y2tldEFyblBhcmFtTmFtZSxcbiAgICAgIHN0cmluZ1ZhbHVlOiBidWNrZXQuYnVja2V0QXJuLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codedrifters/constructs",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"pre-compile": "npx projen pre-compile",
|
|
12
|
-
"test": "npx projen test",
|
|
13
|
-
"test:watch": "npx projen test:watch",
|
|
14
|
-
"upgrade": "npx projen upgrade",
|
|
15
|
-
"watch": "npx projen watch",
|
|
16
|
-
"projen": "npx projen"
|
|
3
|
+
"description": "Constructs frequently used in CodeDrifter projects.",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/codedrifters/packages"
|
|
7
|
+
},
|
|
8
|
+
"author": {
|
|
9
|
+
"name": "CodeDrifters",
|
|
10
|
+
"organization": true
|
|
17
11
|
},
|
|
18
12
|
"devDependencies": {
|
|
19
13
|
"@swc/core": "^1.15.2",
|
|
@@ -22,8 +16,9 @@
|
|
|
22
16
|
"@types/node": "^24.10.1",
|
|
23
17
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
24
18
|
"@typescript-eslint/parser": "^8",
|
|
25
|
-
"aws-cdk-lib": "2.
|
|
26
|
-
"
|
|
19
|
+
"aws-cdk-lib": "2.233.0",
|
|
20
|
+
"commit-and-tag-version": "^12",
|
|
21
|
+
"constructs": "10.4.4",
|
|
27
22
|
"eslint": "^9",
|
|
28
23
|
"eslint-config-prettier": "^10.1.8",
|
|
29
24
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
@@ -35,8 +30,8 @@
|
|
|
35
30
|
"typescript": "^5.9.3"
|
|
36
31
|
},
|
|
37
32
|
"peerDependencies": {
|
|
38
|
-
"aws-cdk-lib": "2.
|
|
39
|
-
"constructs": "10.4.
|
|
33
|
+
"aws-cdk-lib": "2.233.0",
|
|
34
|
+
"constructs": "10.4.4"
|
|
40
35
|
},
|
|
41
36
|
"dependencies": {
|
|
42
37
|
"@aws-sdk/client-dynamodb": "^3.936.0",
|
|
@@ -47,7 +42,25 @@
|
|
|
47
42
|
},
|
|
48
43
|
"main": "lib/index.js",
|
|
49
44
|
"license": "UNLICENSED",
|
|
50
|
-
"version": "0.0.
|
|
45
|
+
"version": "0.0.2",
|
|
51
46
|
"types": "lib/index.d.ts",
|
|
52
|
-
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
|
|
53
|
-
|
|
47
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "npx projen build",
|
|
50
|
+
"bump": "npx projen bump",
|
|
51
|
+
"compile": "npx projen compile",
|
|
52
|
+
"default": "npx projen default",
|
|
53
|
+
"eslint": "npx projen eslint",
|
|
54
|
+
"package": "npx projen package",
|
|
55
|
+
"post-compile": "npx projen post-compile",
|
|
56
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
57
|
+
"pre-compile": "npx projen pre-compile",
|
|
58
|
+
"release": "npx projen release",
|
|
59
|
+
"test": "npx projen test",
|
|
60
|
+
"test:watch": "npx projen test:watch",
|
|
61
|
+
"unbump": "npx projen unbump",
|
|
62
|
+
"upgrade": "npx projen upgrade",
|
|
63
|
+
"watch": "npx projen watch",
|
|
64
|
+
"projen": "npx projen"
|
|
65
|
+
}
|
|
66
|
+
}
|