truemark-cdk-lib 0.0.35 → 0.0.36-alpha.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.
@@ -0,0 +1,19 @@
1
+ import { IHostedZone } from "aws-cdk-lib/aws-route53";
2
+ import { Construct } from "constructs";
3
+ /**
4
+ * Utility class for holding domain name information.
5
+ */
6
+ export declare class DomainName {
7
+ readonly prefix: string;
8
+ readonly zone: string | IHostedZone;
9
+ readonly privateZone: boolean;
10
+ readonly vpcId?: string;
11
+ constructor(prefix: string, zone: string | IHostedZone, privateZone?: boolean, vpcId?: string);
12
+ toString(): string;
13
+ toIdentifier(): string;
14
+ getHostedZone(scope: Construct, id?: string): IHostedZone;
15
+ static toStrings(domainNames: DomainName[]): string[];
16
+ static toZoneMap(scope: Construct, domainNames: DomainName[]): {
17
+ [domainName: string]: IHostedZone;
18
+ };
19
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomainName = void 0;
4
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
5
+ /**
6
+ * Utility class for holding domain name information.
7
+ */
8
+ class DomainName {
9
+ constructor(prefix, zone, privateZone, vpcId) {
10
+ this.prefix = prefix;
11
+ this.zone = zone;
12
+ this.privateZone = privateZone !== null && privateZone !== void 0 ? privateZone : false;
13
+ this.vpcId = vpcId;
14
+ }
15
+ toString() {
16
+ return (this.prefix == "" ? "" : this.prefix + ".") + this.zone;
17
+ }
18
+ toIdentifier() {
19
+ return this.toString().replace(".", "-");
20
+ }
21
+ getHostedZone(scope, id) {
22
+ if (typeof this.zone === "string") {
23
+ return aws_route53_1.HostedZone.fromLookup(scope, id !== null && id !== void 0 ? id : this.toIdentifier(), {
24
+ domainName: this.zone,
25
+ privateZone: this.privateZone,
26
+ vpcId: this.vpcId
27
+ });
28
+ }
29
+ else {
30
+ return this.zone;
31
+ }
32
+ }
33
+ static toStrings(domainNames) {
34
+ return domainNames.map(d => d.toString());
35
+ }
36
+ static toZoneMap(scope, domainNames) {
37
+ const map = {};
38
+ domainNames.forEach(d => {
39
+ map[d.toString()] = d.getHostedZone(scope);
40
+ });
41
+ return map;
42
+ }
43
+ }
44
+ exports.DomainName = DomainName;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkb21haW4tbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBZ0U7QUFHaEU7O0dBRUc7QUFDSCxNQUFhLFVBQVU7SUFPckIsWUFBWSxNQUFjLEVBQUUsSUFBMEIsRUFBRSxXQUFxQixFQUFFLEtBQWM7UUFDM0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLGFBQVgsV0FBVyxjQUFYLFdBQVcsR0FBSSxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVztRQUN6QyxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDakMsT0FBTyx3QkFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxhQUFGLEVBQUUsY0FBRixFQUFFLEdBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUM3RCxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUF5QjtRQUN4QyxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLFdBQXlCO1FBQzFELE1BQU0sR0FBRyxHQUFpQyxFQUFFLENBQUE7UUFDNUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM1QyxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUVGO0FBOUNELGdDQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SG9zdGVkWm9uZSwgSUhvc3RlZFpvbmV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3IgaG9sZGluZyBkb21haW4gbmFtZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERvbWFpbk5hbWUge1xuXG4gIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSB6b25lOiBzdHJpbmcgfCBJSG9zdGVkWm9uZTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByZWZpeDogc3RyaW5nLCB6b25lOiBzdHJpbmcgfCBJSG9zdGVkWm9uZSwgcHJpdmF0ZVpvbmU/OiBib29sZWFuLCB2cGNJZD86IHN0cmluZykge1xuICAgIHRoaXMucHJlZml4ID0gcHJlZml4O1xuICAgIHRoaXMuem9uZSA9IHpvbmU7XG4gICAgdGhpcy5wcml2YXRlWm9uZSA9IHByaXZhdGVab25lID8/IGZhbHNlO1xuICAgIHRoaXMudnBjSWQgPSB2cGNJZDtcbiAgfVxuXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAodGhpcy5wcmVmaXggPT0gXCJcIiA/IFwiXCIgOiB0aGlzLnByZWZpeCArIFwiLlwiKSArIHRoaXMuem9uZTtcbiAgfVxuXG4gIHRvSWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpLnJlcGxhY2UoXCIuXCIsIFwiLVwiKTtcbiAgfVxuXG4gIGdldEhvc3RlZFpvbmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ/OiBzdHJpbmcpIDogSUhvc3RlZFpvbmUge1xuICAgIGlmICh0eXBlb2YgdGhpcy56b25lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gSG9zdGVkWm9uZS5mcm9tTG9va3VwKHNjb3BlLCBpZCA/PyB0aGlzLnRvSWRlbnRpZmllcigpLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHRoaXMuem9uZSxcbiAgICAgICAgcHJpdmF0ZVpvbmU6IHRoaXMucHJpdmF0ZVpvbmUsXG4gICAgICAgIHZwY0lkOiB0aGlzLnZwY0lkXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuem9uZTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgdG9TdHJpbmdzKGRvbWFpbk5hbWVzOiBEb21haW5OYW1lW10pIDogc3RyaW5nW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lcy5tYXAoZCA9PiBkLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgc3RhdGljIHRvWm9uZU1hcChzY29wZTogQ29uc3RydWN0LCBkb21haW5OYW1lczogRG9tYWluTmFtZVtdKSA6IHsgW2RvbWFpbk5hbWU6IHN0cmluZ106IElIb3N0ZWRab25lIH0gIHtcbiAgICBjb25zdCBtYXA6IHtba2V5OiBzdHJpbmddOiBJSG9zdGVkWm9uZX0gPSB7fVxuICAgIGRvbWFpbk5hbWVzLmZvckVhY2goZCA9PiB7XG4gICAgICBtYXBbZC50b1N0cmluZygpXSA9IGQuZ2V0SG9zdGVkWm9uZShzY29wZSlcbiAgICB9KVxuICAgIHJldHVybiBtYXA7XG4gIH1cblxufVxuIl19
@@ -1,3 +1,4 @@
1
1
  export * from './latency-a-record';
2
2
  export * from './weighted-a-record';
3
3
  export * from './weighted-latency-a-record';
4
+ export * from "./domain-name";
@@ -13,4 +13,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./latency-a-record"), exports);
14
14
  __exportStar(require("./weighted-a-record"), exports);
15
15
  __exportStar(require("./weighted-latency-a-record"), exports);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxxREFBbUM7QUFDbkMsc0RBQW9DO0FBQ3BDLDhEQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF0ZW5jeS1hLXJlY29yZCc7XG5leHBvcnQgKiBmcm9tICcuL3dlaWdodGVkLWEtcmVjb3JkJztcbmV4cG9ydCAqIGZyb20gJy4vd2VpZ2h0ZWQtbGF0ZW5jeS1hLXJlY29yZCc7XG4iXX0=
16
+ __exportStar(require("./domain-name"), exports);
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxxREFBbUM7QUFDbkMsc0RBQW9DO0FBQ3BDLDhEQUE0QztBQUM1QyxnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xhdGVuY3ktYS1yZWNvcmQnO1xuZXhwb3J0ICogZnJvbSAnLi93ZWlnaHRlZC1hLXJlY29yZCc7XG5leHBvcnQgKiBmcm9tICcuL3dlaWdodGVkLWxhdGVuY3ktYS1yZWNvcmQnO1xuZXhwb3J0ICogZnJvbSBcIi4vZG9tYWluLW5hbWVcIjtcbiJdfQ==
@@ -4,19 +4,17 @@ import { Distribution, Function, HttpVersion, OriginAccessIdentity, PriceClass,
4
4
  import { ARecord, IHostedZone } from "aws-cdk-lib/aws-route53";
5
5
  import { BucketDeployment } from "aws-cdk-lib/aws-s3-deployment";
6
6
  import { BundlingOptions, Duration } from "aws-cdk-lib";
7
+ import { DomainName } from "../../aws-route53";
7
8
  export declare enum SourceType {
8
9
  Custom = "Custom",
9
10
  Hugo = "Hugo",
10
11
  NpmDist = "NpmDist",
11
12
  Static = "Static"
12
13
  }
13
- export declare class DomainName {
14
- readonly prefix: string;
15
- readonly zone: string | IHostedZone;
14
+ export declare class WebsiteDomainName extends DomainName {
16
15
  readonly createRecord?: boolean;
17
16
  constructor(prefix: string, zone: string | IHostedZone, createRecord?: boolean);
18
- toString(): string;
19
- toIdentifier(): string;
17
+ static fromDomainName(domainName: DomainName, createRecord?: boolean): WebsiteDomainName;
20
18
  }
21
19
  export interface WebsiteProps {
22
20
  /**
@@ -35,7 +33,7 @@ export interface WebsiteProps {
35
33
  /**
36
34
  * The domain names to be serviced. The first domain name in the list is treated as the apex domain.
37
35
  */
38
- readonly domainNames?: DomainName[];
36
+ readonly domainNames?: WebsiteDomainName[];
39
37
  /**
40
38
  * Redirect traffic to the first domain in the list of domainNames.
41
39
  *
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Website = exports.DomainName = exports.SourceType = void 0;
3
+ exports.Website = exports.WebsiteDomainName = exports.SourceType = void 0;
4
4
  const constructs_1 = require("constructs");
5
5
  const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
6
6
  const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
@@ -10,6 +10,7 @@ const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
10
10
  const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
11
11
  const aws_cdk_lib_1 = require("aws-cdk-lib");
12
12
  const aws_s3_1 = require("../../aws-s3");
13
+ const aws_route53_2 = require("../../aws-route53");
13
14
  var SourceType;
14
15
  (function (SourceType) {
15
16
  SourceType["Custom"] = "Custom";
@@ -17,24 +18,31 @@ var SourceType;
17
18
  SourceType["NpmDist"] = "NpmDist";
18
19
  SourceType["Static"] = "Static";
19
20
  })(SourceType = exports.SourceType || (exports.SourceType = {}));
20
- class DomainName {
21
+ class WebsiteDomainName extends aws_route53_2.DomainName {
21
22
  constructor(prefix, zone, createRecord) {
22
- this.prefix = prefix;
23
- this.zone = zone;
24
- this.createRecord = createRecord;
23
+ super(prefix, zone);
24
+ this.createRecord = createRecord !== null && createRecord !== void 0 ? createRecord : true;
25
25
  }
26
- toString() {
27
- return (this.prefix == "" ? "" : this.prefix + ".") + this.zone;
28
- }
29
- toIdentifier() {
30
- return this.toString().replace(".", "-");
26
+ static fromDomainName(domainName, createRecord) {
27
+ return new WebsiteDomainName(domainName.prefix, domainName.zone, createRecord);
31
28
  }
32
29
  }
33
- exports.DomainName = DomainName;
30
+ exports.WebsiteDomainName = WebsiteDomainName;
34
31
  class Website extends constructs_1.Construct {
35
32
  constructor(scope, id, props) {
36
33
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
37
34
  super(scope, id);
35
+ let certificate = undefined;
36
+ if (props.certificateArn !== undefined) {
37
+ certificate = aws_certificatemanager_1.Certificate.fromCertificateArn(this, "Certificate", props.certificateArn);
38
+ }
39
+ else if (props.domainNames !== undefined && props.domainNames.length > 0) {
40
+ certificate = new aws_certificatemanager_1.Certificate(this, "Certificate", {
41
+ domainName: props.domainNames[0].toString(),
42
+ subjectAlternativeNames: aws_route53_2.DomainName.toStrings(props.domainNames).slice(1),
43
+ validation: aws_certificatemanager_1.CertificateValidation.fromDnsMultiZone(aws_route53_2.DomainName.toZoneMap(this, props.domainNames))
44
+ });
45
+ }
38
46
  this.bucket = (_a = props.bucket) !== null && _a !== void 0 ? _a : new aws_s3_1.ExtendedBucket(this, "Bucket", {
39
47
  removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
40
48
  autoDeleteObjects: true
@@ -100,7 +108,7 @@ function handler(event) {
100
108
  httpVersion: (_d = props.httpVersion) !== null && _d !== void 0 ? _d : aws_cloudfront_1.HttpVersion.HTTP1_1,
101
109
  minimumProtocolVersion: (_e = props.minimumProtocolVersion) !== null && _e !== void 0 ? _e : aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021,
102
110
  defaultRootObject: "index.html",
103
- certificate: (props === null || props === void 0 ? void 0 : props.certificateArn) == undefined ? undefined : aws_certificatemanager_1.Certificate.fromCertificateArn(this, "Certificate", props.certificateArn),
111
+ certificate,
104
112
  domainNames: (_f = props === null || props === void 0 ? void 0 : props.domainNames) === null || _f === void 0 ? void 0 : _f.map((domainName) => domainName.toString()),
105
113
  enableIpv6: true,
106
114
  priceClass: (_g = props.priceClass) !== null && _g !== void 0 ? _g : aws_cloudfront_1.PriceClass.PRICE_CLASS_100
@@ -190,4 +198,4 @@ Website.NPM_DIST_BUNDLING_OPTIONS = {
190
198
  ].join(" && ")
191
199
  ]
192
200
  };
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXFDO0FBRXJDLCtEQVVvQztBQUNwQywrRUFBeUU7QUFDekUsK0VBQStEO0FBQy9ELHlEQUF1RjtBQUN2Rix5RUFBaUU7QUFDakUscUVBQXFGO0FBQ3JGLDZDQUFrRjtBQUNsRix5Q0FBNEM7QUFFNUMsSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLCtCQUFpQixDQUFBO0lBQ2pCLDJCQUFhLENBQUE7SUFDYixpQ0FBbUIsQ0FBQTtJQUNuQiwrQkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFLckI7QUFFRCxNQUFhLFVBQVU7SUFLckIsWUFBWSxNQUFjLEVBQUUsSUFBMEIsRUFBRSxZQUFzQjtRQUM1RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQWxCRCxnQ0FrQkM7QUErRUQsTUFBYSxPQUFRLFNBQVEsc0JBQVM7SUF1Q3BDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7O1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFD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Q0FBQyx5QkFBeUIsQ0FBQztJQUMxRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsZUFBZTtLQUN0QjtDQUNGLENBQUE7QUFFRDs7O0dBR0c7QUFDYSxpQ0FBeUIsR0FBb0I7SUFDM0QsS0FBSyxFQUFFLHlCQUFXLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELE9BQU8sRUFBRTtRQUNQLHlDQUF5QztRQUN6QyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ1Ysb0JBQW9CO1lBQ3BCLDJDQUEyQztZQUMzQyxjQUFjO1NBQ2YsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ2Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0J1Y2tldCwgSUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtcbiAgRGlzdHJpYnV0aW9uLFxuICBGdW5jdGlvbixcbiAgRnVuY3Rpb25Db2RlLFxuICBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgSHR0cFZlcnNpb24sXG4gIE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICBQcmljZUNsYXNzLFxuICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7T3JpZ2luR3JvdXAsIFMzT3JpZ2lufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7QVJlY29yZCwgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgU291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7QnVuZGxpbmdPcHRpb25zLCBEb2NrZXJJbWFnZSwgRHVyYXRpb24sIFJlbW92YWxQb2xpY3l9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtFeHRlbmRlZEJ1Y2tldH0gZnJvbSBcIi4uLy4uL2F3cy1zM1wiO1xuXG5leHBvcnQgZW51bSBTb3VyY2VUeXBlIHtcbiAgQ3VzdG9tID0gXCJDdXN0b21cIixcbiAgSHVnbyA9IFwiSHVnb1wiLFxuICBOcG1EaXN0ID0gXCJOcG1EaXN0XCIsXG4gIFN0YXRpYyA9IFwiU3RhdGljXCJcbn1cblxuZXhwb3J0IGNsYXNzIERvbWFpbk5hbWUge1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgem9uZTogc3RyaW5nIHwgSUhvc3RlZFpvbmU7XG4gIHJlYWRvbmx5IGNyZWF0ZVJlY29yZD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJlZml4OiBzdHJpbmcsIHpvbmU6IHN0cmluZyB8IElIb3N0ZWRab25lLCBjcmVhdGVSZWNvcmQ/OiBib29sZWFuKSB7XG4gICAgdGhpcy5wcmVmaXggPSBwcmVmaXg7XG4gICAgdGhpcy56b25lID0gem9uZTtcbiAgICB0aGlzLmNyZWF0ZVJlY29yZCA9IGNyZWF0ZVJlY29yZFxuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuICh0aGlzLnByZWZpeCA9PSBcIlwiID8gXCJcIiA6IHRoaXMucHJlZml4ICsgXCIuXCIpICsgdGhpcy56b25lO1xuICB9XG5cbiAgdG9JZGVudGlmaWVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCkucmVwbGFjZShcIi5cIiwgXCItXCIpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic2l0ZVByb3BzIHtcblxuICAvKipcbiAgICogQnVja2V0IHRvIHVzZSB0byBzdG9yZSB3ZWJzaXRlIGNvbnRlbnQuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIEJ1Y2tldCB0byB1c2UgaWYgdGhlIHByaW1hcnkgYnVja2V0IGZhaWxzLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkIGEgZmFsbGJhY2sgaXMgbm90IHNldHVwLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tCdWNrZXQ/OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIHRvIHRoZSBBQ00gQ2VydGlmaWNhdGUgdG8gdXNlIG9uIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi4gSWYgb25lIGlzIG5vdFxuICAgKiBwcm92aWRlZCBhbmQgZG9tYWluTmFtZXMgaXMgcG9wdWxhdGVkLCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWVzIHRvIGJlIHNlcnZpY2VkLiBUaGUgZmlyc3QgZG9tYWluIG5hbWUgaW4gdGhlIGxpc3QgaXMgdHJlYXRlZCBhcyB0aGUgYXBleCBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lcz86IERvbWFpbk5hbWVbXVxuXG4gIC8qKlxuICAgKiBSZWRpcmVjdCB0cmFmZmljIHRvIHRoZSBmaXJzdCBkb21haW4gaW4gdGhlIGxpc3Qgb2YgZG9tYWluTmFtZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlZGlyZWN0VG9BcGV4RG9tYWluPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpY2UgY2xhc3MgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDBcbiAgICovXG4gIHJlYWRvbmx5IHByaWNlQ2xhc3M/OiBQcmljZUNsYXNzXG5cbiAgLyoqXG4gICAqIE1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbiB0byBhbGxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxLFxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVByb3RvY29sVmVyc2lvbj86IFNlY3VyaXR5UG9saWN5UHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gSFRUUCB2ZXJzaW9uIHRvIGFsbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCBIdHRwVmVyc2lvbi5IVFRQMV8xXG4gICAqL1xuICByZWFkb25seSBodHRwVmVyc2lvbj86IEh0dHBWZXJzaW9uO1xuXG4gIC8qKlxuICAgKiBDYWNoZS1jb250cm9sIG1heCBhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNjApXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2U/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSB0eXBlIG9mIHRoZSB3ZWJzaXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTb3VyY2VUeXBlLlN0YXRpY1xuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlVHlwZT86IFNvdXJjZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHdlYnNpdGUgc291cmNlcyBhcmUgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZURpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gYnVuZGxpbmcgb3B0aW9ucyB0byB1c2UgdG8gYnVuZGxlIHdlYnNpdGUgc291cmNlcy4gVGhlIHNvdXJjZVR5cGVcbiAgICogbXVzdCBiZSBzZXQgdG8gU291cmNlVHlwZS5DdXN0b20uXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VCdW5kbGluZ09wdGlvbnM/OiBCdW5kbGluZ09wdGlvbnNcbn1cblxuZXhwb3J0IGNsYXNzIFdlYnNpdGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBidW5kbGluZyBvcHRpb25zIGZvciBTb3VyY2VUeXBlLkh1Z28uXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgSFVHT19CVU5ETElOR19PUFRJT05TOiBCdW5kbGluZ09wdGlvbnMgPSB7XG4gICAgaW1hZ2U6IERvY2tlckltYWdlLmZyb21SZWdpc3RyeShcImtsYWtlZ2cvaHVnbzpsYXRlc3QtZXh0XCIpLFxuICAgIGNvbW1hbmQ6IFtcbiAgICAgIFwiLWRcIiwgXCIvYXNzZXQtb3V0cHV0XCJcbiAgICBdXG4gIH1cblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYnVuZGxpbmcgb3B0aW9ucyBmb3IgU291cmNlVHlwZS5OcG1EaXN0LiBJdFwicyBleHBlY3RlZCB0aGF0IFwibnBtIHJ1biBkaXN0XCIgY29tbWFuZFxuICAgKiB3aWxsIHBsYWNlIGZpbGVzIGluICR7Q0RLX0JVTkRMSU5HX09VVFBVVF9ESVJ9LiBFeGFtcGxlOiBcIm5nIGJ1aWxkIC0tb3V0cHV0LXBhdGg9L2Fzc2V0LW91dHB1dFwiXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgTlBNX0RJU1RfQlVORExJTkdfT1BUSU9OUzogQnVuZGxpbmdPcHRpb25zID0ge1xuICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJub2RlOjE2LWFscGluZVwiKSxcbiAgICBjb21tYW5kOiBbXG4gICAgICAvLyBUT0RPIEZpZ3VyZSBvdXQgaG93IHRvIGNhY2hlIC5ucG1jYWNoZVxuICAgICAgXCJzaFwiLCBcIi1jXCIsIFtcbiAgICAgICAgXCJta2RpciAtcCAubnBtY2FjaGVcIixcbiAgICAgICAgXCJucG0gY2kgLS1jYWNoZSAubnBtY2FjaGUgLS1wcmVmZXItb2ZmbGluZVwiLFxuICAgICAgICBcIm5wbSBydW4gZGlzdFwiXG4gICAgICBdLmpvaW4oXCIgJiYgXCIpXG4gICAgXVxuICB9XG5cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICByZWFkb25seSBmYWxsYmFja0J1Y2tldD86IElCdWNrZXQ7XG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBPcmlnaW5BY2Nlc3NJZGVudGl0eTtcbiAgcmVhZG9ubHkgYXBleERvbWFpbjogc3RyaW5nO1xuICByZWFkb25seSB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb246IEZ1bmN0aW9uO1xuICByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFSZWNvcmRzOiBBUmVjb3JkW107XG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ6IEJ1Y2tldERlcGxveW1lbnQ7XG4gIHJlYWRvbmx5IGZhbGxiYWNrRGVwbG95bWVudD86IEJ1Y2tldERlcGxveW1lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdlYnNpdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldCA/PyBuZXcgRXh0ZW5kZWRCdWNrZXQodGhpcywgXCJCdWNrZXRcIiwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgICB9KTtcbiAgICB0aGlzLmZhbGxiYWNrQnVja2V0ID0gcHJvcHMuZmFsbGJhY2tCdWNrZXQ7XG5cbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIFwiQWNjZXNzXCIpO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZCh0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcbiAgICBpZiAodGhpcy5mYWxsYmFja0J1Y2tldCkge1xuICAgICAgdGhpcy5mYWxsYmFja0J1Y2tldC5ncmFudFJlYWQodGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eSk7XG4gICAgfVxuXG4gICAgdGhpcy5hcGV4RG9tYWluID0gcHJvcHM/LmRvbWFpbk5hbWVzPy5bMF0udG9TdHJpbmcoKSB8fCBcIlwiO1xuXG4gICAgdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgXCJWaWV3ZXJSZXF1ZXN0RnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICB2YXIgaG9zdCA9IGV2ZW50LnJlcXVlc3QuaGVhZGVycy5ob3N0LnZhbHVlO1xuICB2YXIgdXJpID0gZXZlbnQucmVxdWVzdC51cmk7XG4gIHZhciBtYXRjaEFwZXggPSBNQVRDSF9BUEVYO1xuICBpZiAobWF0Y2hBcGV4ICYmIGhvc3QgIT09IFwiQVBFWF9ET01BSU5cIikge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiAzMDEsXG4gICAgICBzdGF0dXNEZXNjcmlwdGlvbjogXCJQZXJtYW5lbnRseSBtb3ZlZFwiLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcImxvY2F0aW9uXCI6IHsgXCJ2YWx1ZVwiOiBcImh0dHBzOi8vQVBFWF9ET01BSU5cIiArIHVyaSB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICh1cmkuZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgZXZlbnQucmVxdWVzdC51cmkgPSB1cmkgKyBcImluZGV4Lmh0bWxcIjtcbiAgfVxuICByZXR1cm4gZXZlbnQucmVxdWVzdDtcbn1gXG4gICAgICAgIC5yZXBsYWNlKC9BUEVYX0RPTUFJTi9nLCB0aGlzLmFwZXhEb21haW4pXG4gICAgICAgIC5yZXBsYWNlKC9NQVRDSF9BUEVYL2csIHRoaXMuYXBleERvbWFpbiAhPT0gXCJcIiAmJiAocHJvcHMucmVkaXJlY3RUb0FwZXhEb21haW4/P3RydWUpID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIpKVxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVja2V0T3JpZ2luID0gbmV3IFMzT3JpZ2luKHRoaXMuYnVja2V0LCB7XG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eVxuICAgIH0pO1xuXG4gICAgY29uc3QgZmFsbGJhY2tCdWNrZXRPcmlnaW4gPSB0aGlzLmZhbGxiYWNrQnVja2V0ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBuZXcgUzNPcmlnaW4odGhpcy5mYWxsYmFja0J1Y2tldCwge1xuICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRPcmlnaW4gPSBmYWxsYmFja0J1Y2tldE9yaWdpbiA9PT0gdW5kZWZpbmVkID8gYnVja2V0T3JpZ2luIDogbmV3IE9yaWdpbkdyb3VwKHtcbiAgICAgIHByaW1hcnlPcmlnaW46IGJ1Y2tldE9yaWdpbixcbiAgICAgIGZhbGxiYWNrT3JpZ2luOiBmYWxsYmFja0J1Y2tldE9yaWdpblxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IGRlZmF1bHRPcmlnaW4sXG4gICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmdW5jdGlvbjogdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24sXG4gICAgICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNUXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgZXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgICByZXNwb25zZUh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgICByZXNwb25zZVBhZ2VQYXRoOiBcIi80MDQuaHRtbFwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBodHRwVmVyc2lvbjogcHJvcHMuaHR0cFZlcnNpb24/P0h0dHBWZXJzaW9uLkhUVFAxXzEsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBwcm9wcy5taW5pbXVtUHJvdG9jb2xWZXJzaW9uPz9TZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBjZXJ0aWZpY2F0ZTogcHJvcHM/LmNlcnRpZmljYXRlQXJuID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybih0aGlzLCBcIkNlcnRpZmljYXRlXCIsIHByb3BzLmNlcnRpZmljYXRlQXJuKSxcbiAgICAgIGRvbWFpbk5hbWVzOiBwcm9wcz8uZG9tYWluTmFtZXM/Lm1hcCgoZG9tYWluTmFtZSkgPT4gZG9tYWluTmFtZS50b1N0cmluZygpKSxcbiAgICAgIGVuYWJsZUlwdjY6IHRydWUsXG4gICAgICBwcmljZUNsYXNzOiBwcm9wcy5wcmljZUNsYXNzPz9QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb25VcmwgPSBgaHR0cHM6Ly8keyh0aGlzLmFwZXhEb21haW4gIT0gXCJcIiA/IHRoaXMuYXBleERvbWFpbiA6IHRoaXMuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWUpfWBcblxuICAgIHRoaXMuYVJlY29yZHMgPSBbXTtcblxuICAgIGlmIChwcm9wcz8uZG9tYWluTmFtZXMgIT0gdW5kZWZpbmVkICYmIHByb3BzLmRvbWFpbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGRvbWFpbk5hbWUgb2YgcHJvcHMuZG9tYWluTmFtZXMpIHtcbiAgICAgICAgaWYgKGRvbWFpbk5hbWUuY3JlYXRlUmVjb3JkPz90cnVlKSB7XG4gICAgICAgICAgbGV0IHpvbmUgPSB0eXBlb2YgZG9tYWluTmFtZS56b25lICE9PSBcInN0cmluZ1wiID8gZG9tYWluTmFtZS56b25lIDogSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsIFwiem9uZS1cIiArIGRvbWFpbk5hbWUudG9JZGVudGlmaWVyKCksIHtcbiAgICAgICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUuem9uZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuYVJlY29yZHMucHVzaChuZXcgQVJlY29yZCh0aGlzLCBkb21haW5OYW1lLnRvSWRlbnRpZmllcigpLCB7XG4gICAgICAgICAgICB6b25lOiB6b25lLFxuICAgICAgICAgICAgcmVjb3JkTmFtZTogZG9tYWluTmFtZS50b1N0cmluZygpLFxuICAgICAgICAgICAgdGFyZ2V0OiBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSlcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgYnVuZGxpbmdPcHRpb25zOiBCdW5kbGluZ09wdGlvbnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLkN1c3RvbSkge1xuICAgICAgaWYgKCFwcm9wcy5zb3VyY2VCdW5kbGluZ09wdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic291cmNlQnVuZGxpbmdPcHRpb25zIGlzIHJlcXVpcmVkIGlmIHNvdXJjZSB0eXBlIGlzIEN1c3RvbVwiKTtcbiAgICAgIH1cbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9uc1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLlN0YXRpYykge1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIFN0YXRpY1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc291cmNlVHlwZSA9PT0gU291cmNlVHlwZS5IdWdvKSB7XG4gICAgICBidW5kbGluZ09wdGlvbnMgPSBXZWJzaXRlLkhVR09fQlVORExJTkdfT1BUSU9OU1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIEh1Z29cIik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLk5wbURpc3QpIHtcbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IFdlYnNpdGUuTlBNX0RJU1RfQlVORExJTkdfT1BUSU9OU1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIE5wbURpc3RcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlID0gU291cmNlLmFzc2V0KHByb3BzLnNvdXJjZURpcmVjdG9yeSwge1xuICAgICAgYnVuZGxpbmc6IGJ1bmRsaW5nT3B0aW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJBc3NldHNcIiwge1xuICAgICAgc291cmNlczogW3NvdXJjZV0sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBkaXN0cmlidXRpb246IHRoaXMuZGlzdHJpYnV0aW9uLFxuICAgICAgY2FjaGVDb250cm9sOiBbQ2FjaGVDb250cm9sLm1heEFnZShwcm9wcy5tYXhBZ2U/P0R1cmF0aW9uLm1pbnV0ZXMoNjApKV0sXG4gICAgICBwcnVuZTogZmFsc2VcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZhbGxiYWNrQnVja2V0KSB7XG4gICAgICB0aGlzLmZhbGxiYWNrRGVwbG95bWVudCA9IG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRmFsbGJhY2tBc3NldHNcIiwge1xuICAgICAgICBzb3VyY2VzOiBbc291cmNlXSxcbiAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuZmFsbGJhY2tCdWNrZXQsXG4gICAgICAgIGNhY2hlQ29udHJvbDogW0NhY2hlQ29udHJvbC5tYXhBZ2UocHJvcHMubWF4QWdlPz9EdXJhdGlvbi5taW51dGVzKDYwKSldLFxuICAgICAgICBwcnVuZTogZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXFDO0FBRXJDLCtEQVVvQztBQUNwQywrRUFBeUU7QUFDekUsK0VBQW9HO0FBQ3BHLHlEQUF1RjtBQUN2Rix5RUFBaUU7QUFDakUscUVBQXFGO0FBQ3JGLDZDQUFrRjtBQUNsRix5Q0FBNEM7QUFDNUMsbURBQTZDO0FBRTdDLElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQiwyQkFBYSxDQUFBO0lBQ2IsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBS3JCO0FBRUQsTUFBYSxpQkFBa0IsU0FBUSx3QkFBVTtJQUkvQyxZQUFZLE1BQWMsRUFBRSxJQUEwQixFQUFFLFlBQXNCO1FBQzVFLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLGFBQVosWUFBWSxjQUFaLFlBQVksR0FBSSxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBc0IsRUFBRSxZQUFzQjtRQUNsRSxPQUFPLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRjtBQVpELDhDQVlDO0FBK0VELE1BQWEsT0FBUSxTQUFRLHNCQUFTO0lBdUNwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1COztRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksV0FBVyxHQUE2QixTQUFTLENBQUM7UUFDdEQsSUFBSSxLQUFLLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtZQUN0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SUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNyRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUN0QyxZQUFZLEVBQUUsQ0FBQyxnQ0FBWSxDQUFDLE1BQU0sT0FBQyxLQUFLLENBQUMsTUFBTSxtQ0FBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxLQUFLLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQzs7QUFyTUgsMEJBc01DO0FBcE1DOztHQUVHO0FBQ2EsNkJBQXFCLEdBQW9CO0lBQ3ZELEtBQUssRUFBRSx5QkFBVyxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztJQUMxRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsZUFBZTtLQUN0QjtDQUNGLENBQUE7QUFFRDs7O0dBR0c7QUFDYSxpQ0FBeUIsR0FBb0I7SUFDM0QsS0FBSyxFQUFFLHlCQUFXLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELE9BQU8sRUFBRTtRQUNQLHlDQUF5QztRQUN6QyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ1Ysb0JBQW9CO1lBQ3BCLDJDQUEyQztZQUMzQyxjQUFjO1NBQ2YsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ2Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0lCdWNrZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7XG4gIERpc3RyaWJ1dGlvbixcbiAgRnVuY3Rpb24sXG4gIEZ1bmN0aW9uQ29kZSxcbiAgRnVuY3Rpb25FdmVudFR5cGUsXG4gIEh0dHBWZXJzaW9uLFxuICBPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgUHJpY2VDbGFzcyxcbiAgU2VjdXJpdHlQb2xpY3lQcm90b2NvbCxcbiAgVmlld2VyUHJvdG9jb2xQb2xpY3lcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge09yaWdpbkdyb3VwLCBTM09yaWdpbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCB7Q2VydGlmaWNhdGUsIENlcnRpZmljYXRlVmFsaWRhdGlvbiwgSUNlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtBUmVjb3JkLCBIb3N0ZWRab25lLCBJSG9zdGVkWm9uZSwgUmVjb3JkVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7Q2xvdWRGcm9udFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7QnVja2V0RGVwbG95bWVudCwgQ2FjaGVDb250cm9sLCBTb3VyY2V9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtCdW5kbGluZ09wdGlvbnMsIERvY2tlckltYWdlLCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0V4dGVuZGVkQnVja2V0fSBmcm9tIFwiLi4vLi4vYXdzLXMzXCI7XG5pbXBvcnQge0RvbWFpbk5hbWV9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuXG5leHBvcnQgZW51bSBTb3VyY2VUeXBlIHtcbiAgQ3VzdG9tID0gXCJDdXN0b21cIixcbiAgSHVnbyA9IFwiSHVnb1wiLFxuICBOcG1EaXN0ID0gXCJOcG1EaXN0XCIsXG4gIFN0YXRpYyA9IFwiU3RhdGljXCJcbn1cblxuZXhwb3J0IGNsYXNzIFdlYnNpdGVEb21haW5OYW1lIGV4dGVuZHMgRG9tYWluTmFtZSB7XG5cbiAgcmVhZG9ubHkgY3JlYXRlUmVjb3JkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihwcmVmaXg6IHN0cmluZywgem9uZTogc3RyaW5nIHwgSUhvc3RlZFpvbmUsIGNyZWF0ZVJlY29yZD86IGJvb2xlYW4pIHtcbiAgICBzdXBlcihwcmVmaXgsIHpvbmUpO1xuICAgIHRoaXMuY3JlYXRlUmVjb3JkID0gY3JlYXRlUmVjb3JkID8/IHRydWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbURvbWFpbk5hbWUoZG9tYWluTmFtZTogRG9tYWluTmFtZSwgY3JlYXRlUmVjb3JkPzogYm9vbGVhbik6IFdlYnNpdGVEb21haW5OYW1lIHtcbiAgICByZXR1cm4gbmV3IFdlYnNpdGVEb21haW5OYW1lKGRvbWFpbk5hbWUucHJlZml4LCBkb21haW5OYW1lLnpvbmUsIGNyZWF0ZVJlY29yZCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlUHJvcHMge1xuXG4gIC8qKlxuICAgKiBCdWNrZXQgdG8gdXNlIHRvIHN0b3JlIHdlYnNpdGUgY29udGVudC4gSWYgb25lIGlzIG5vdCBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0PzogSUJ1Y2tldDtcblxuICAvKipcbiAgICogQnVja2V0IHRvIHVzZSBpZiB0aGUgcHJpbWFyeSBidWNrZXQgZmFpbHMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQgYSBmYWxsYmFjayBpcyBub3Qgc2V0dXAuXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja0J1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gdG8gdGhlIEFDTSBDZXJ0aWZpY2F0ZSB0byB1c2Ugb24gdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLiBJZiBvbmUgaXMgbm90XG4gICAqIHByb3ZpZGVkIGFuZCBkb21haW5OYW1lcyBpcyBwb3B1bGF0ZWQsIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWVzIHRvIGJlIHNlcnZpY2VkLiBUaGUgZmlyc3QgZG9tYWluIG5hbWUgaW4gdGhlIGxpc3QgaXMgdHJlYXRlZCBhcyB0aGUgYXBleCBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lcz86IFdlYnNpdGVEb21haW5OYW1lW11cblxuICAvKipcbiAgICogUmVkaXJlY3QgdHJhZmZpYyB0byB0aGUgZmlyc3QgZG9tYWluIGluIHRoZSBsaXN0IG9mIGRvbWFpbk5hbWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZWRpcmVjdFRvQXBleERvbWFpbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByaWNlIGNsYXNzIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwXG4gICAqL1xuICByZWFkb25seSBwcmljZUNsYXNzPzogUHJpY2VDbGFzc1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIHByb3RvY29sIHZlcnNpb24gdG8gYWxsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMSxcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1Qcm90b2NvbFZlcnNpb24/OiBTZWN1cml0eVBvbGljeVByb3RvY29sO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIEhUVFAgdmVyc2lvbiB0byBhbGxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgSHR0cFZlcnNpb24uSFRUUDFfMVxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cFZlcnNpb24/OiBIdHRwVmVyc2lvbjtcblxuICAvKipcbiAgICogQ2FjaGUtY29udHJvbCBtYXggYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDYwKVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgdHlwZSBvZiB0aGUgd2Vic2l0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgU291cmNlVHlwZS5TdGF0aWNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVR5cGU/OiBTb3VyY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB3ZWJzaXRlIHNvdXJjZXMgYXJlIGxvY2F0ZWQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGJ1bmRsaW5nIG9wdGlvbnMgdG8gdXNlIHRvIGJ1bmRsZSB3ZWJzaXRlIHNvdXJjZXMuIFRoZSBzb3VyY2VUeXBlXG4gICAqIG11c3QgYmUgc2V0IHRvIFNvdXJjZVR5cGUuQ3VzdG9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlQnVuZGxpbmdPcHRpb25zPzogQnVuZGxpbmdPcHRpb25zXG59XG5cbmV4cG9ydCBjbGFzcyBXZWJzaXRlIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYnVuZGxpbmcgb3B0aW9ucyBmb3IgU291cmNlVHlwZS5IdWdvLlxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IEhVR09fQlVORExJTkdfT1BUSU9OUzogQnVuZGxpbmdPcHRpb25zID0ge1xuICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJrbGFrZWdnL2h1Z286bGF0ZXN0LWV4dFwiKSxcbiAgICBjb21tYW5kOiBbXG4gICAgICBcIi1kXCIsIFwiL2Fzc2V0LW91dHB1dFwiXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGJ1bmRsaW5nIG9wdGlvbnMgZm9yIFNvdXJjZVR5cGUuTnBtRGlzdC4gSXRcInMgZXhwZWN0ZWQgdGhhdCBcIm5wbSBydW4gZGlzdFwiIGNvbW1hbmRcbiAgICogd2lsbCBwbGFjZSBmaWxlcyBpbiAke0NES19CVU5ETElOR19PVVRQVVRfRElSfS4gRXhhbXBsZTogXCJuZyBidWlsZCAtLW91dHB1dC1wYXRoPS9hc3NldC1vdXRwdXRcIlxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IE5QTV9ESVNUX0JVTkRMSU5HX09QVElPTlM6IEJ1bmRsaW5nT3B0aW9ucyA9IHtcbiAgICBpbWFnZTogRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KFwibm9kZToxNi1hbHBpbmVcIiksXG4gICAgY29tbWFuZDogW1xuICAgICAgLy8gVE9ETyBGaWd1cmUgb3V0IGhvdyB0byBjYWNoZSAubnBtY2FjaGVcbiAgICAgIFwic2hcIiwgXCItY1wiLCBbXG4gICAgICAgIFwibWtkaXIgLXAgLm5wbWNhY2hlXCIsXG4gICAgICAgIFwibnBtIGNpIC0tY2FjaGUgLm5wbWNhY2hlIC0tcHJlZmVyLW9mZmxpbmVcIixcbiAgICAgICAgXCJucG0gcnVuIGRpc3RcIlxuICAgICAgXS5qb2luKFwiICYmIFwiKVxuICAgIF1cbiAgfVxuXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgcmVhZG9ubHkgZmFsbGJhY2tCdWNrZXQ/OiBJQnVja2V0O1xuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eTogT3JpZ2luQWNjZXNzSWRlbnRpdHk7XG4gIHJlYWRvbmx5IGFwZXhEb21haW46IHN0cmluZztcbiAgcmVhZG9ubHkgdmlld2VyUmVxdWVzdEZ1bmN0aW9uOiBGdW5jdGlvbjtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBEaXN0cmlidXRpb247XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvblVybDogc3RyaW5nO1xuICByZWFkb25seSBhUmVjb3JkczogQVJlY29yZFtdO1xuICByZWFkb25seSBkZXBsb3ltZW50OiBCdWNrZXREZXBsb3ltZW50O1xuICByZWFkb25seSBmYWxsYmFja0RlcGxveW1lbnQ/OiBCdWNrZXREZXBsb3ltZW50O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXZWJzaXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmNlcnRpZmljYXRlQXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNlcnRpZmljYXRlID0gQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwgcHJvcHMuY2VydGlmaWNhdGVBcm4pXG4gICAgfSBlbHNlIGlmIChwcm9wcy5kb21haW5OYW1lcyAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRvbWFpbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNlcnRpZmljYXRlID0gbmV3IENlcnRpZmljYXRlKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwge1xuICAgICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lc1swXS50b1N0cmluZygpLFxuICAgICAgICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lczogRG9tYWluTmFtZS50b1N0cmluZ3MocHJvcHMuZG9tYWluTmFtZXMpLnNsaWNlKDEpLFxuICAgICAgICB2YWxpZGF0aW9uOiBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZShEb21haW5OYW1lLnRvWm9uZU1hcCh0aGlzLCBwcm9wcy5kb21haW5OYW1lcykpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldCA/PyBuZXcgRXh0ZW5kZWRCdWNrZXQodGhpcywgXCJCdWNrZXRcIiwge1xuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgICB9KTtcbiAgICB0aGlzLmZhbGxiYWNrQnVja2V0ID0gcHJvcHMuZmFsbGJhY2tCdWNrZXQ7XG5cbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIFwiQWNjZXNzXCIpO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZCh0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcbiAgICBpZiAodGhpcy5mYWxsYmFja0J1Y2tldCkge1xuICAgICAgdGhpcy5mYWxsYmFja0J1Y2tldC5ncmFudFJlYWQodGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eSk7XG4gICAgfVxuXG4gICAgdGhpcy5hcGV4RG9tYWluID0gcHJvcHM/LmRvbWFpbk5hbWVzPy5bMF0udG9TdHJpbmcoKSB8fCBcIlwiO1xuXG4gICAgdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgXCJWaWV3ZXJSZXF1ZXN0RnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICB2YXIgaG9zdCA9IGV2ZW50LnJlcXVlc3QuaGVhZGVycy5ob3N0LnZhbHVlO1xuICB2YXIgdXJpID0gZXZlbnQucmVxdWVzdC51cmk7XG4gIHZhciBtYXRjaEFwZXggPSBNQVRDSF9BUEVYO1xuICBpZiAobWF0Y2hBcGV4ICYmIGhvc3QgIT09IFwiQVBFWF9ET01BSU5cIikge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiAzMDEsXG4gICAgICBzdGF0dXNEZXNjcmlwdGlvbjogXCJQZXJtYW5lbnRseSBtb3ZlZFwiLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcImxvY2F0aW9uXCI6IHsgXCJ2YWx1ZVwiOiBcImh0dHBzOi8vQVBFWF9ET01BSU5cIiArIHVyaSB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICh1cmkuZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgZXZlbnQucmVxdWVzdC51cmkgPSB1cmkgKyBcImluZGV4Lmh0bWxcIjtcbiAgfVxuICByZXR1cm4gZXZlbnQucmVxdWVzdDtcbn1gXG4gICAgICAgIC5yZXBsYWNlKC9BUEVYX0RPTUFJTi9nLCB0aGlzLmFwZXhEb21haW4pXG4gICAgICAgIC5yZXBsYWNlKC9NQVRDSF9BUEVYL2csIHRoaXMuYXBleERvbWFpbiAhPT0gXCJcIiAmJiAocHJvcHMucmVkaXJlY3RUb0FwZXhEb21haW4/P3RydWUpID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIpKVxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVja2V0T3JpZ2luID0gbmV3IFMzT3JpZ2luKHRoaXMuYnVja2V0LCB7XG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eVxuICAgIH0pO1xuXG4gICAgY29uc3QgZmFsbGJhY2tCdWNrZXRPcmlnaW4gPSB0aGlzLmZhbGxiYWNrQnVja2V0ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBuZXcgUzNPcmlnaW4odGhpcy5mYWxsYmFja0J1Y2tldCwge1xuICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRPcmlnaW4gPSBmYWxsYmFja0J1Y2tldE9yaWdpbiA9PT0gdW5kZWZpbmVkID8gYnVja2V0T3JpZ2luIDogbmV3IE9yaWdpbkdyb3VwKHtcbiAgICAgIHByaW1hcnlPcmlnaW46IGJ1Y2tldE9yaWdpbixcbiAgICAgIGZhbGxiYWNrT3JpZ2luOiBmYWxsYmFja0J1Y2tldE9yaWdpblxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IGRlZmF1bHRPcmlnaW4sXG4gICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmdW5jdGlvbjogdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24sXG4gICAgICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNUXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgZXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgICByZXNwb25zZUh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgICByZXNwb25zZVBhZ2VQYXRoOiBcIi80MDQuaHRtbFwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBodHRwVmVyc2lvbjogcHJvcHMuaHR0cFZlcnNpb24/P0h0dHBWZXJzaW9uLkhUVFAxXzEsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBwcm9wcy5taW5pbXVtUHJvdG9jb2xWZXJzaW9uPz9TZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBjZXJ0aWZpY2F0ZSxcbiAgICAgIGRvbWFpbk5hbWVzOiBwcm9wcz8uZG9tYWluTmFtZXM/Lm1hcCgoZG9tYWluTmFtZSkgPT4gZG9tYWluTmFtZS50b1N0cmluZygpKSxcbiAgICAgIGVuYWJsZUlwdjY6IHRydWUsXG4gICAgICBwcmljZUNsYXNzOiBwcm9wcy5wcmljZUNsYXNzPz9QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb25VcmwgPSBgaHR0cHM6Ly8keyh0aGlzLmFwZXhEb21haW4gIT0gXCJcIiA/IHRoaXMuYXBleERvbWFpbiA6IHRoaXMuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWUpfWBcblxuICAgIHRoaXMuYVJlY29yZHMgPSBbXTtcblxuICAgIGlmIChwcm9wcz8uZG9tYWluTmFtZXMgIT0gdW5kZWZpbmVkICYmIHByb3BzLmRvbWFpbk5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGRvbWFpbk5hbWUgb2YgcHJvcHMuZG9tYWluTmFtZXMpIHtcbiAgICAgICAgaWYgKGRvbWFpbk5hbWUuY3JlYXRlUmVjb3JkPz90cnVlKSB7XG4gICAgICAgICAgbGV0IHpvbmUgPSB0eXBlb2YgZG9tYWluTmFtZS56b25lICE9PSBcInN0cmluZ1wiID8gZG9tYWluTmFtZS56b25lIDogSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsIFwiem9uZS1cIiArIGRvbWFpbk5hbWUudG9JZGVudGlmaWVyKCksIHtcbiAgICAgICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUuem9uZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuYVJlY29yZHMucHVzaChuZXcgQVJlY29yZCh0aGlzLCBkb21haW5OYW1lLnRvSWRlbnRpZmllcigpLCB7XG4gICAgICAgICAgICB6b25lOiB6b25lLFxuICAgICAgICAgICAgcmVjb3JkTmFtZTogZG9tYWluTmFtZS50b1N0cmluZygpLFxuICAgICAgICAgICAgdGFyZ2V0OiBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSlcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgYnVuZGxpbmdPcHRpb25zOiBCdW5kbGluZ09wdGlvbnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLkN1c3RvbSkge1xuICAgICAgaWYgKCFwcm9wcy5zb3VyY2VCdW5kbGluZ09wdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic291cmNlQnVuZGxpbmdPcHRpb25zIGlzIHJlcXVpcmVkIGlmIHNvdXJjZSB0eXBlIGlzIEN1c3RvbVwiKTtcbiAgICAgIH1cbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9uc1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLlN0YXRpYykge1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIFN0YXRpY1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc291cmNlVHlwZSA9PT0gU291cmNlVHlwZS5IdWdvKSB7XG4gICAgICBidW5kbGluZ09wdGlvbnMgPSBXZWJzaXRlLkhVR09fQlVORExJTkdfT1BUSU9OU1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIEh1Z29cIik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLk5wbURpc3QpIHtcbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IFdlYnNpdGUuTlBNX0RJU1RfQlVORExJTkdfT1BUSU9OU1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIE5wbURpc3RcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlID0gU291cmNlLmFzc2V0KHByb3BzLnNvdXJjZURpcmVjdG9yeSwge1xuICAgICAgYnVuZGxpbmc6IGJ1bmRsaW5nT3B0aW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJBc3NldHNcIiwge1xuICAgICAgc291cmNlczogW3NvdXJjZV0sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBkaXN0cmlidXRpb246IHRoaXMuZGlzdHJpYnV0aW9uLFxuICAgICAgY2FjaGVDb250cm9sOiBbQ2FjaGVDb250cm9sLm1heEFnZShwcm9wcy5tYXhBZ2U/P0R1cmF0aW9uLm1pbnV0ZXMoNjApKV0sXG4gICAgICBwcnVuZTogZmFsc2VcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZhbGxiYWNrQnVja2V0KSB7XG4gICAgICB0aGlzLmZhbGxiYWNrRGVwbG95bWVudCA9IG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRmFsbGJhY2tBc3NldHNcIiwge1xuICAgICAgICBzb3VyY2VzOiBbc291cmNlXSxcbiAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuZmFsbGJhY2tCdWNrZXQsXG4gICAgICAgIGNhY2hlQ29udHJvbDogW0NhY2hlQ29udHJvbC5tYXhBZ2UocHJvcHMubWF4QWdlPz9EdXJhdGlvbi5taW51dGVzKDYwKSldLFxuICAgICAgICBwcnVuZTogZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "0.0.35",
3
+ "version": "0.0.36-alpha.0+7ec1dc5",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -49,5 +49,5 @@
49
49
  "@aws-cdk/aws-synthetics-alpha": "^2.18.0-alpha.0",
50
50
  "cdk-monitoring-constructs": "^1.10.0"
51
51
  },
52
- "gitHead": "ea052915a434c6b6a4c5f63c0133b12cc762fcba"
52
+ "gitHead": "7ec1dc5ee55ed88134311d8b0886a837f9963268"
53
53
  }
@@ -12,15 +12,29 @@ test("Hugo Website Test", () => {
12
12
  const template = assertions_1.Template.fromStack(stack);
13
13
  template.hasResourceProperties("AWS::CloudFront::Distribution", {});
14
14
  });
15
- // TODO Need a way to skip tests
15
+ // TODO We need to speed this up
16
16
  // test("Npm Dist Website Test", () => {
17
- // const app = new cdk.App();
18
- // const stack = new cdk.Stack(app, "TestStack");
17
+ // const stack = TestHelper.stack();
19
18
  // new Website(stack, "TestWebsite", {
20
19
  // sourceType: SourceType.NpmDist,
21
- // sourceDirectory: path.join(__dirname, "angular-website")
20
+ // sourceDirectory: TestHelper.resolveTestFiles("angular-website")
22
21
  // });
23
22
  // const template = Template.fromStack(stack);
24
23
  // template.hasResourceProperties("AWS::CloudFront::Distribution", {});
25
24
  // });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2Vic2l0ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQXNEO0FBQ3RELHVEQUFnRDtBQUNoRCxnREFBMEM7QUFFMUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtJQUM3QixNQUFNLEtBQUssR0FBRyx3QkFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLElBQUkscUJBQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ2hDLFVBQVUsRUFBRSx3QkFBVSxDQUFDLElBQUk7UUFDM0IsZUFBZSxFQUFFLHdCQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0tBQzdELENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQywrQkFBK0IsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUMsQ0FBQztBQUVILGdDQUFnQztBQUNoQyx3Q0FBd0M7QUFDeEMsK0JBQStCO0FBQy9CLG1EQUFtRDtBQUNuRCx3Q0FBd0M7QUFDeEMsc0NBQXNDO0FBQ3RDLCtEQUErRDtBQUMvRCxRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELHlFQUF5RTtBQUN6RSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTb3VyY2VUeXBlLCBXZWJzaXRlfSBmcm9tIFwiLi4vLi4vYXdzLXdlYnNpdGVcIjtcbmltcG9ydCB7VGVtcGxhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQge1Rlc3RIZWxwZXJ9IGZyb20gXCIuLi90ZXN0LWhlbHBlclwiO1xuXG50ZXN0KFwiSHVnbyBXZWJzaXRlIFRlc3RcIiwgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IFRlc3RIZWxwZXIuc3RhY2soKTtcbiAgbmV3IFdlYnNpdGUoc3RhY2ssICdUZXN0V2Vic2l0ZScsIHtcbiAgICBzb3VyY2VUeXBlOiBTb3VyY2VUeXBlLkh1Z28sXG4gICAgc291cmNlRGlyZWN0b3J5OiBUZXN0SGVscGVyLnJlc29sdmVUZXN0RmlsZXMoXCJodWdvLXdlYnNpdGVcIilcbiAgfSk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge30pO1xufSk7XG5cbi8vIFRPRE8gTmVlZCBhIHdheSB0byBza2lwIHRlc3RzXG4vLyB0ZXN0KFwiTnBtIERpc3QgV2Vic2l0ZSBUZXN0XCIsICgpID0+IHtcbi8vICAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbi8vICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4vLyAgIG5ldyBXZWJzaXRlKHN0YWNrLCBcIlRlc3RXZWJzaXRlXCIsIHtcbi8vICAgICBzb3VyY2VUeXBlOiBTb3VyY2VUeXBlLk5wbURpc3QsXG4vLyAgICAgc291cmNlRGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcImFuZ3VsYXItd2Vic2l0ZVwiKVxuLy8gICB9KTtcbi8vICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuLy8gICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7fSk7XG4vLyB9KTtcblxuIl19
25
+ // TODO Need to fix
26
+ // test("Website Certificate Test", () => {
27
+ // const stack = TestHelper.stack();
28
+ // new Website(stack, "TestWebsite", {
29
+ // sourceType: SourceType.Hugo,
30
+ // sourceDirectory: TestHelper.resolveTestFiles("hugo-website"),
31
+ // domainNames: [
32
+ // new DomainName("test", "example.com"),
33
+ // new DomainName("test2", "example.com")
34
+ // ]
35
+ // });
36
+ // const template = Template.fromStack(stack);
37
+ // console.log(template.toJSON());
38
+ // // TestHelper.logResources()
39
+ // });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2Vic2l0ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQXNEO0FBQ3RELHVEQUFnRDtBQUNoRCxnREFBMEM7QUFHMUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtJQUM3QixNQUFNLEtBQUssR0FBRyx3QkFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLElBQUkscUJBQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ2hDLFVBQVUsRUFBRSx3QkFBVSxDQUFDLElBQUk7UUFDM0IsZUFBZSxFQUFFLHdCQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0tBQzdELENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQywrQkFBK0IsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUMsQ0FBQztBQUVILGdDQUFnQztBQUNoQyx3Q0FBd0M7QUFDeEMsc0NBQXNDO0FBQ3RDLHdDQUF3QztBQUN4QyxzQ0FBc0M7QUFDdEMsc0VBQXNFO0FBQ3RFLFFBQVE7QUFDUixnREFBZ0Q7QUFDaEQseUVBQXlFO0FBQ3pFLE1BQU07QUFFTixtQkFBbUI7QUFDbkIsMkNBQTJDO0FBQzNDLHNDQUFzQztBQUN0Qyx3Q0FBd0M7QUFDeEMsbUNBQW1DO0FBQ25DLG9FQUFvRTtBQUNwRSxxQkFBcUI7QUFDckIsK0NBQStDO0FBQy9DLCtDQUErQztBQUMvQyxRQUFRO0FBQ1IsUUFBUTtBQUNSLGdEQUFnRDtBQUNoRCxvQ0FBb0M7QUFDcEMsaUNBQWlDO0FBQ2pDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NvdXJjZVR5cGUsIFdlYnNpdGV9IGZyb20gXCIuLi8uLi9hd3Mtd2Vic2l0ZVwiO1xuaW1wb3J0IHtUZW1wbGF0ZX0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7VGVzdEhlbHBlcn0gZnJvbSBcIi4uL3Rlc3QtaGVscGVyXCI7XG5pbXBvcnQge0RvbWFpbk5hbWV9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuXG50ZXN0KFwiSHVnbyBXZWJzaXRlIFRlc3RcIiwgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IFRlc3RIZWxwZXIuc3RhY2soKTtcbiAgbmV3IFdlYnNpdGUoc3RhY2ssICdUZXN0V2Vic2l0ZScsIHtcbiAgICBzb3VyY2VUeXBlOiBTb3VyY2VUeXBlLkh1Z28sXG4gICAgc291cmNlRGlyZWN0b3J5OiBUZXN0SGVscGVyLnJlc29sdmVUZXN0RmlsZXMoXCJodWdvLXdlYnNpdGVcIilcbiAgfSk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge30pO1xufSk7XG5cbi8vIFRPRE8gV2UgbmVlZCB0byBzcGVlZCB0aGlzIHVwXG4vLyB0ZXN0KFwiTnBtIERpc3QgV2Vic2l0ZSBUZXN0XCIsICgpID0+IHtcbi8vICAgY29uc3Qgc3RhY2sgPSBUZXN0SGVscGVyLnN0YWNrKCk7XG4vLyAgIG5ldyBXZWJzaXRlKHN0YWNrLCBcIlRlc3RXZWJzaXRlXCIsIHtcbi8vICAgICBzb3VyY2VUeXBlOiBTb3VyY2VUeXBlLk5wbURpc3QsXG4vLyAgICAgc291cmNlRGlyZWN0b3J5OiBUZXN0SGVscGVyLnJlc29sdmVUZXN0RmlsZXMoXCJhbmd1bGFyLXdlYnNpdGVcIilcbi8vICAgfSk7XG4vLyAgIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbi8vICAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb25cIiwge30pO1xuLy8gfSk7XG5cbi8vIFRPRE8gTmVlZCB0byBmaXhcbi8vIHRlc3QoXCJXZWJzaXRlIENlcnRpZmljYXRlIFRlc3RcIiwgKCkgPT4ge1xuLy8gICBjb25zdCBzdGFjayA9IFRlc3RIZWxwZXIuc3RhY2soKTtcbi8vICAgbmV3IFdlYnNpdGUoc3RhY2ssIFwiVGVzdFdlYnNpdGVcIiwge1xuLy8gICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuSHVnbyxcbi8vICAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImh1Z28td2Vic2l0ZVwiKSxcbi8vICAgICBkb21haW5OYW1lczogW1xuLy8gICAgICAgbmV3IERvbWFpbk5hbWUoXCJ0ZXN0XCIsIFwiZXhhbXBsZS5jb21cIiksXG4vLyAgICAgICBuZXcgRG9tYWluTmFtZShcInRlc3QyXCIsIFwiZXhhbXBsZS5jb21cIilcbi8vICAgICBdXG4vLyAgIH0pO1xuLy8gICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4vLyAgIGNvbnNvbGUubG9nKHRlbXBsYXRlLnRvSlNPTigpKTtcbi8vICAgLy8gVGVzdEhlbHBlci5sb2dSZXNvdXJjZXMoKVxuLy8gfSk7XG4iXX0=