@sylvesterllc/aws-constructs 1.0.119 → 1.1.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.
|
@@ -14,6 +14,7 @@ export declare class Api extends BaseResource<IRestApi> {
|
|
|
14
14
|
private getZone;
|
|
15
15
|
private createCertificate;
|
|
16
16
|
private createARecord;
|
|
17
|
+
private createCnameRecord;
|
|
17
18
|
protected createResource(scope: Construct): RestApi[];
|
|
18
19
|
protected createOutput<T>(scope: Construct, createdAssets: T[]): void;
|
|
19
20
|
}
|
|
@@ -23,7 +23,8 @@ class Api extends baseResource_1.BaseResource {
|
|
|
23
23
|
// console.log('### DNS is true ###');
|
|
24
24
|
const zone = this.getZone(this.scope, this.config);
|
|
25
25
|
const api = new aws_apigateway_1.RestApi(this.scope, `${this.config.AppPrefix}-rest-api`, this.createApiProps(zone));
|
|
26
|
-
this.createARecord(scope, zone, api);
|
|
26
|
+
// this.createARecord(scope, zone, api);
|
|
27
|
+
this.createCnameRecord(scope, zone, api, this.config);
|
|
27
28
|
this.createApiKey(this.config, api);
|
|
28
29
|
return api;
|
|
29
30
|
}
|
|
@@ -42,14 +43,9 @@ class Api extends baseResource_1.BaseResource {
|
|
|
42
43
|
domainName: {
|
|
43
44
|
domainName: `${this.config.DNS.SubDomainNameForApi}.${this.config.DNS.SubDomainName}`,
|
|
44
45
|
certificate: cert.certificate,
|
|
45
|
-
endpointType: aws_apigateway_1.EndpointType.
|
|
46
|
+
endpointType: aws_apigateway_1.EndpointType.REGIONAL,
|
|
46
47
|
securityPolicy: aws_apigateway_1.SecurityPolicy.TLS_1_2
|
|
47
48
|
},
|
|
48
|
-
// TODO: ADD CUSTOM DOMAIN HERE
|
|
49
|
-
// defaultDomainMapping: {
|
|
50
|
-
// domainName: domain,
|
|
51
|
-
// },
|
|
52
|
-
// domainName: '',
|
|
53
49
|
defaultCorsPreflightOptions: this.corsOptions
|
|
54
50
|
};
|
|
55
51
|
return props;
|
|
@@ -85,20 +81,6 @@ class Api extends baseResource_1.BaseResource {
|
|
|
85
81
|
}
|
|
86
82
|
return null;
|
|
87
83
|
}
|
|
88
|
-
// private createCustomDomain(scope: Construct, config: MicroserviceProps) {
|
|
89
|
-
// const domainName = DomainName.fromDomainNameAttributes(scope, `${config.API.Name}-custom-domain`, {
|
|
90
|
-
// domainName: config.DNS?.ZoneName,
|
|
91
|
-
// domainNameAliasHostedZoneId: config.DNS.ZoneId!,
|
|
92
|
-
// domainNameAliasTarget: config.API.DomainPrefix!,
|
|
93
|
-
// });
|
|
94
|
-
// return domainName
|
|
95
|
-
// }
|
|
96
|
-
// private attachDomainToApi(scope: Construct, api: IRestApi, domain: IDomainName, config: MicroserviceProps) {
|
|
97
|
-
// return new BasePathMapping(scope, `${config.API.Name}-basePathMapping`, {
|
|
98
|
-
// domainName: domain,
|
|
99
|
-
// restApi: api,
|
|
100
|
-
// });
|
|
101
|
-
// }
|
|
102
84
|
getZone(scope, config) {
|
|
103
85
|
return aws_route53_1.HostedZone.fromHostedZoneAttributes(scope, `${config.DNS?.ZoneName}-zone`, {
|
|
104
86
|
zoneName: config.DNS?.ZoneName,
|
|
@@ -119,6 +101,14 @@ class Api extends baseResource_1.BaseResource {
|
|
|
119
101
|
aRecord.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
120
102
|
return aRecord;
|
|
121
103
|
}
|
|
104
|
+
createCnameRecord(scope, zone, api, config) {
|
|
105
|
+
const record = new aws_route53_1.CnameRecord(scope, "api-cname-record", {
|
|
106
|
+
zone,
|
|
107
|
+
domainName: api.url,
|
|
108
|
+
recordName: `${config?.DNS?.SubDomainNameForApi}.${config?.DNS?.SubDomainName}`
|
|
109
|
+
});
|
|
110
|
+
return record;
|
|
111
|
+
}
|
|
122
112
|
createResource(scope) {
|
|
123
113
|
const api = this.createApi(scope);
|
|
124
114
|
// TODO: ONLY IF CUSTOM MAPPING IS REQUIRED
|
|
@@ -136,4 +126,4 @@ class Api extends baseResource_1.BaseResource {
|
|
|
136
126
|
}
|
|
137
127
|
}
|
|
138
128
|
exports.Api = Api;
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZUFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNEQ7QUFDNUQsK0RBQXVMO0FBQ3ZMLHlEQUF5RjtBQUN6Rix5RUFBK0U7QUFLL0UsdURBQW9EO0FBQ3BELHdFQUFxRTtBQUNyRSxpREFBMkM7QUFJM0MsTUFBYSxHQUFJLFNBQVEsMkJBQXNCO0lBRW5DLFdBQVcsQ0FBYztJQUdqQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLE1BQWlCO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWdCO1FBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVsQixzQ0FBc0M7WUFFdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLHdCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXBHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVyQyxJQUFJLENB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LENBQUMsR0FBRyxDQUFDLFlBQVk7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLGtCQUFrQixDQUFDLDJCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLDRDQUE0QztRQUM1Qyw4REFBOEQ7UUFFOUQsMkVBQTJFO1FBSTNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRVMsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUUvQixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUU7Z0JBQzlCLGFBQWE7Z0JBQ2IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHO2FBQ2pCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUVKO0FBektELGtCQXlLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgUmVtb3ZhbFBvbGljeSwgVGFnIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCYXNlUGF0aE1hcHBpbmcsIENvcnMsIENvcnNPcHRpb25zLCBEb21haW5OYW1lLCBFbmRwb2ludFR5cGUsIElEb21haW5OYW1lLCBJUmVzdEFwaSwgTWV0aG9kT3B0aW9ucywgUmVzdEFwaSwgUmVzdEFwaVByb3BzLCBTZWN1cml0eVBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHsgQVJlY29yZCwgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQXBpR2F0ZXdheSwgQXBpR2F0ZXdheURvbWFpbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IE1pY3Jvc2VydmljZVByb3BzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvTWljcm9zZXJ2aWNlUHJvcHNcIjtcblxuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5pbXBvcnQgeyBDcmVhdGVDZXJ0aWZpY2F0ZSB9IGZyb20gXCIuLi9jZXJ0aWZpY2F0ZS9jcmVhdGVDZXJ0aWZpY2F0ZVwiO1xuaW1wb3J0IHsgVHNnQXBpS2V5IH0gZnJvbSBcIi4vY3JlYXRlQXBpS2V5XCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9jb25maWcvRW52aXJvbm1lbnRzXCI7XG5pbXBvcnQgeyBlbnZpcm9ubWVudFN1ZmZpeCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3V0aWwtaGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBCYXNlUmVzb3VyY2U8SVJlc3RBcGk+IHtcblxuICAgIHByaXZhdGUgY29yc09wdGlvbnM6IENvcnNPcHRpb25zO1xuXG5cbiAgICBnZXQgQVBJcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlZFJlc291cmNlcztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihzY29wZSwgY29uZmlnKTtcblxuICAgICAgICB0aGlzLmNvcnNPcHRpb25zID0gdGhpcy5jcmVhdGVEZWZhdWx0Q29yc09wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHNjb3BlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFwaShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5ETlMpIHtcblxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJyMjIyBETlMgaXMgdHJ1ZSAjIyMnKTtcblxuICAgICAgICAgICAgY29uc3Qgem9uZSA9IHRoaXMuZ2V0Wm9uZSh0aGlzLnNjb3BlLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwaSA9IG5ldyBSZXN0QXBpKHRoaXMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tcmVzdC1hcGlgLCB0aGlzLmNyZWF0ZUFwaVByb3BzKHpvbmUpKTtcblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBUmVjb3JkKHNjb3BlLCB6b25lLCBhcGkpO1xuXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFwaUtleSh0aGlzLmNvbmZpZywgYXBpKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFwaTtcblxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBjb25zdCBhcGkgPSBuZXcgUmVzdEFwaSh0aGlzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LXJlc3QtYXBpLXdpdGhvdXQtRE5TYCwgdGhpcy5jcmVhdGVBcGlQcm9wcygpKTtcblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBcGlLZXkodGhpcy5jb25maWcsIGFwaSk7XG5cbiAgICAgICAgICAgIHJldHVybiBhcGk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFwaVByb3BzKHpvbmU/OiBJSG9zdGVkWm9uZSk6IFJlc3RBcGlQcm9wcyB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLkROUykge1xuXG4gICAgICAgICAgICBjb25zdCBjZXJ0ID0gdGhpcy5jcmVhdGVDZXJ0aWZpY2F0ZSh0aGlzLnNjb3BlLCB6b25lISwgdGhpcy5jb25maWcpO1xuXG4gICAgICAgICAgICBjb25zdCBwcm9wczogUmVzdEFwaVByb3BzID0ge1xuICAgICAgICAgICAgICAgIHJlc3RBcGlOYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7dGhpcy5jb25maWcuQVBJLk5hbWV9YCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5jb25maWcuQVBJLkRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGRvbWFpbk5hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgZG9tYWluTmFtZTogYCR7dGhpcy5jb25maWcuRE5TLlN1YkRvbWFpbk5hbWVGb3JBcGl9LiR7dGhpcy5jb25maWcuRE5TLlN1YkRvbWFpbk5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6IGNlcnQuY2VydGlmaWNhdGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlLkVER0UsXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBTZWN1cml0eVBvbGljeS5UTFNfMV8yXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiAgQUREIENVU1RPTSBET01BSU4gSEVSRVxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHREb21haW5NYXBwaW5nOiB7XG4gICAgICAgICAgICAgICAgLy8gICAgIGRvbWFpbk5hbWU6IGRvbWFpbiwgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyAgIH0sXG4gICAgICAgICAgICAgICAgLy8gZG9tYWluTmFtZTogJycsXG4gICAgICAgICAgICAgICAgZGVmYXVsdENvcnNQcmVmbGlnaHRPcHRpb25zOiB0aGlzLmNvcnNPcHRpb25zXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wczogUmVzdEFwaVByb3BzID0ge1xuICAgICAgICAgICAgICAgIHJlc3RBcGlOYW1lOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7dGhpcy5jb25maWcuQVBJLk5hbWV9YCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5jb25maWcuQVBJLkRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRDb3JzUHJlZmxpZ2h0T3B0aW9uczogdGhpcy5jb3JzT3B0aW9uc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEZWZhdWx0Q29yc09wdGlvbnMoKSB7XG5cbiAgICAgICAgY29uc3QgY29yc09wdGlvbnM6IENvcnNPcHRpb25zID0ge1xuICAgICAgICAgICAgYWxsb3dIZWFkZXJzOiBbXG4gICAgICAgICAgICAgICAgJyonLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFsbG93TWV0aG9kczogQ29ycy5BTExfTUVUSE9EUyxcbiAgICAgICAgICAgIGFsbG93Q3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBhbGxvd09yaWdpbnM6IENvcnMuQUxMX09SSUdJTlMsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGNvcnNPcHRpb25zO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVxdWlyZXNBcGlLZXkoY29uZmlnOiBBcHBDb25maWcpIHtcbiAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIGFueSBvZiB0aGUgbGFtYmRhcyByZXF1aXJlIGFuIEFQSSBLZXlcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5SRVNPVVJDRVMuTEFNQkRBLnNvbWUoKGxhbWJkYSkgPT4gbGFtYmRhLmFwaUdhdGV3YXk/LnJlcXVpcmVBcGlLZXkgPT09IHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQXBpS2V5KGNvbmZpZzogQXBwQ29uZmlnLCBhcGk6IFJlc3RBcGkpIHtcblxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlc0FwaUtleSh0aGlzLmNvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbnN0IGFwaUtleSA9IG5ldyBUc2dBcGlLZXkodGhpcy5zY29wZSwgdGhpcy5jb25maWcsIGFwaSlcbiAgICAgICAgICAgIHJldHVybiBhcGlLZXk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIHByaXZhdGUgY3JlYXRlQ3VzdG9tRG9tYWluKHNjb3BlOiBDb25zdHJ1Y3QsIGNvbmZpZzogTWljcm9zZXJ2aWNlUHJvcHMpIHtcbiAgICAvLyAgICAgY29uc3QgZG9tYWluTmFtZSA9IERvbWFpbk5hbWUuZnJvbURvbWFpbk5hbWVBdHRyaWJ1dGVzKHNjb3BlLCBgJHtjb25maWcuQVBJLk5hbWV9LWN1c3RvbS1kb21haW5gLCB7XG4gICAgLy8gICAgICAgICBkb21haW5OYW1lOiBjb25maWcuRE5TPy5ab25lTmFtZSxcbiAgICAvLyAgICAgICAgIGRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZDogY29uZmlnLkROUy5ab25lSWQhLFxuICAgIC8vICAgICAgICAgZG9tYWluTmFtZUFsaWFzVGFyZ2V0OiBjb25maWcuQVBJLkRvbWFpblByZWZpeCEsXG4gICAgLy8gICAgIH0pO1xuXG4gICAgLy8gICAgIHJldHVybiBkb21haW5OYW1lXG4gICAgLy8gfVxuXG4gICAgLy8gcHJpdmF0ZSBhdHRhY2hEb21haW5Ub0FwaShzY29wZTogQ29uc3RydWN0LCBhcGk6IElSZXN0QXBpLCBkb21haW46IElEb21haW5OYW1lLCBjb25maWc6IE1pY3Jvc2VydmljZVByb3BzKSB7XG4gICAgLy8gICAgIHJldHVybiBuZXcgQmFzZVBhdGhNYXBwaW5nKHNjb3BlLCBgJHtjb25maWcuQVBJLk5hbWV9LWJhc2VQYXRoTWFwcGluZ2AsIHtcbiAgICAvLyAgICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbixcbiAgICAvLyAgICAgICAgIHJlc3RBcGk6IGFwaSxcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuXG4gICAgcHJpdmF0ZSBnZXRab25lKHNjb3BlOiBDb25zdHJ1Y3QsIGNvbmZpZzogTWljcm9zZXJ2aWNlUHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIEhvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVBdHRyaWJ1dGVzKHNjb3BlLCBgJHtjb25maWcuRE5TPy5ab25lTmFtZX0tem9uZWAsIHtcbiAgICAgICAgICAgIHpvbmVOYW1lOiBjb25maWcuRE5TPy5ab25lTmFtZSEsXG4gICAgICAgICAgICBob3N0ZWRab25lSWQ6IGNvbmZpZy5ETlM/LlpvbmVJZCFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDZXJ0aWZpY2F0ZShzY29wZTogQ29uc3RydWN0LCB6b25lOiBJSG9zdGVkWm9uZSwgY29uZmlnOiBNaWNyb3NlcnZpY2VQcm9wcykge1xuICAgICAgICBjb25zdCBjZXJ0ID0gbmV3IENyZWF0ZUNlcnRpZmljYXRlKHNjb3BlLCBjb25maWcsIHpvbmUpO1xuXG4gICAgICAgIGNlcnQuY2VydGlmaWNhdGUuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgICAgIHJldHVybiBjZXJ0O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQVJlY29yZChzY29wZTogQ29uc3RydWN0LCB6b25lOiBJSG9zdGVkWm9uZSwgYXBpOiBSZXN0QXBpKSB7XG4gICAgICAgIGNvbnN0IGFSZWNvcmQgPSBuZXcgQVJlY29yZChzY29wZSwgXCJBcGlSZWNvcmRcIiwge1xuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQXBpR2F0ZXdheShhcGkpKSxcbiAgICAgICAgICAgIHJlY29yZE5hbWU6IHRoaXMuY29uZmlnLkFQSS5Eb21haW5QcmVmaXhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYVJlY29yZC5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcbiAgICAgICAgcmV0dXJuIGFSZWNvcmQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcblxuICAgICAgICBjb25zdCBhcGkgPSB0aGlzLmNyZWF0ZUFwaShzY29wZSk7XG4gICAgICAgIC8vIFRPRE86ICBPTkxZIElGIENVU1RPTSBNQVBQSU5HIElTIFJFUVVJUkVEXG4gICAgICAgIC8vIGNvbnN0IGRvbWFpbiA9IHRoaXMuY3JlYXRlQ3VzdG9tRG9tYWluKHNjb3BlLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgLy8gY29uc3QgbWFwcGluZyA9IHRoaXMuYXR0YWNoRG9tYWluVG9BcGkoc2NvcGUsIGFwaSwgZG9tYWluLCB0aGlzLmNvbmZpZyk7XG5cblxuXG4gICAgICAgIHJldHVybiBbYXBpXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKGFwaSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBhcGkke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHZhbHVlOiBhcGkudXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG59Il19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZUFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNEQ7QUFDNUQsK0RBQXVMO0FBQ3ZMLHlEQUFzRztBQUN0Ryx5RUFBK0U7QUFLL0UsdURBQW9EO0FBQ3BELHdFQUFxRTtBQUNyRSxpREFBMkM7QUFJM0MsTUFBYSxHQUFJLFNBQVEsMkJBQXNCO0lBRW5DLFdBQVcsQ0FBYztJQUdqQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLE1BQWlCO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWdCO1FBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVsQixzQ0FBc0M7WUFFdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLHdCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXBHLHdDQUF3QztZQUV4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFB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LHlCQUFXLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFO1lBQ3RELElBQUk7WUFDSixVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUk7WUFDcEIsVUFBVSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsSUFBSSxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtTQUNsRixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBRXJDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsNENBQTRDO1FBQzVDLDhEQUE4RDtRQUU5RCwyRUFBMkU7UUFJM0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxZQUFZLENBQUksS0FBZ0IsRUFBRSxhQUFrQjtRQUMxRCxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBRS9CLElBQUksdUJBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRTtnQkFDOUIsYUFBYTtnQkFDYixLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUc7YUFDakIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBRUo7QUEvSkQsa0JBK0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBSZW1vdmFsUG9saWN5LCBUYWcgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEJhc2VQYXRoTWFwcGluZywgQ29ycywgQ29yc09wdGlvbnMsIERvbWFpbk5hbWUsIEVuZHBvaW50VHlwZSwgSURvbWFpbk5hbWUsIElSZXN0QXBpLCBNZXRob2RPcHRpb25zLCBSZXN0QXBpLCBSZXN0QXBpUHJvcHMsIFNlY3VyaXR5UG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQgeyBBUmVjb3JkLCBDbmFtZVJlY29yZCwgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQXBpR2F0ZXdheSwgQXBpR2F0ZXdheURvbWFpbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IE1pY3Jvc2VydmljZVByb3BzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvTWljcm9zZXJ2aWNlUHJvcHNcIjtcblxuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5pbXBvcnQgeyBDcmVhdGVDZXJ0aWZpY2F0ZSB9IGZyb20gXCIuLi9jZXJ0aWZpY2F0ZS9jcmVhdGVDZXJ0aWZpY2F0ZVwiO1xuaW1wb3J0IHsgVHNnQXBpS2V5IH0gZnJvbSBcIi4vY3JlYXRlQXBpS2V5XCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9jb25maWcvRW52aXJvbm1lbnRzXCI7XG5pbXBvcnQgeyBlbnZpcm9ubWVudFN1ZmZpeCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3V0aWwtaGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBCYXNlUmVzb3VyY2U8SVJlc3RBcGk+IHtcblxuICAgIHByaXZhdGUgY29yc09wdGlvbnM6IENvcnNPcHRpb25zO1xuXG5cbiAgICBnZXQgQVBJcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlZFJlc291cmNlcztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihzY29wZSwgY29uZmlnKTtcblxuICAgICAgICB0aGlzLmNvcnNPcHRpb25zID0gdGhpcy5jcmVhdGVEZWZhdWx0Q29yc09wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHNjb3BlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFwaShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5ETlMpIHtcblxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJyMjIyBETlMgaXMgdHJ1ZSAjIyMnKTtcblxuICAgICAgICAgICAgY29uc3Qgem9uZSA9IHRoaXMuZ2V0Wm9uZSh0aGlzLnNjb3BlLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwaSA9IG5ldyBSZXN0QXBpKHRoaXMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tcmVzdC1hcGlgLCB0aGlzLmNyZWF0ZUFwaVByb3BzKHpvbmUpKTtcblxuICAgICAgICAgICAgLy8gdGhpcy5jcmVhdGVBUmVjb3JkKHNjb3BlLCB6b25lLCBhcGkpO1xuXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNuYW1lUmVjb3JkKHNjb3BlLCB6b25lLCBhcGksIHRoaXMuY29uZmlnKTtcblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBcGlLZXkodGhpcy5jb25maWcsIGFwaSk7XG5cbiAgICAgICAgICAgIHJldHVybiBhcGk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgY29uc3QgYXBpID0gbmV3IFJlc3RBcGkodGhpcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS1yZXN0LWFwaS13aXRob3V0LUROU2AsIHRoaXMuY3JlYXRlQXBpUHJvcHMoKSk7XG5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQXBpS2V5KHRoaXMuY29uZmlnLCBhcGkpO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBcGlQcm9wcyh6b25lPzogSUhvc3RlZFpvbmUpOiBSZXN0QXBpUHJvcHMge1xuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5ETlMpIHtcblxuICAgICAgICAgICAgY29uc3QgY2VydCA9IHRoaXMuY3JlYXRlQ2VydGlmaWNhdGUodGhpcy5zY29wZSwgem9uZSEsIHRoaXMuY29uZmlnKTtcblxuICAgICAgICAgICAgY29uc3QgcHJvcHM6IFJlc3RBcGlQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZXN0QXBpTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke3RoaXMuY29uZmlnLkFQSS5OYW1lfWAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29uZmlnLkFQSS5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBkb21haW5OYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgIGRvbWFpbk5hbWU6IGAke3RoaXMuY29uZmlnLkROUy5TdWJEb21haW5OYW1lRm9yQXBpfS4ke3RoaXMuY29uZmlnLkROUy5TdWJEb21haW5OYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiBjZXJ0LmNlcnRpZmljYXRlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5SRUdJT05BTCxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IFNlY3VyaXR5UG9saWN5LlRMU18xXzJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlZmF1bHRDb3JzUHJlZmxpZ2h0T3B0aW9uczogdGhpcy5jb3JzT3B0aW9uc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcHJvcHM6IFJlc3RBcGlQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZXN0QXBpTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke3RoaXMuY29uZmlnLkFQSS5OYW1lfWAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29uZmlnLkFQSS5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29yc1ByZWZsaWdodE9wdGlvbnM6IHRoaXMuY29yc09wdGlvbnNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9wcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGVmYXVsdENvcnNPcHRpb25zKCkge1xuXG4gICAgICAgIGNvbnN0IGNvcnNPcHRpb25zOiBDb3JzT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGFsbG93SGVhZGVyczogW1xuICAgICAgICAgICAgICAgICcqJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhbGxvd01ldGhvZHM6IENvcnMuQUxMX01FVEhPRFMsXG4gICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dPcmlnaW5zOiBDb3JzLkFMTF9PUklHSU5TLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBjb3JzT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlcXVpcmVzQXBpS2V5KGNvbmZpZzogQXBwQ29uZmlnKSB7XG4gICAgICAgIC8vIERldGVybWluZSBpZiBhbnkgb2YgdGhlIGxhbWJkYXMgcmVxdWlyZSBhbiBBUEkgS2V5XG4gICAgICAgIHJldHVybiBjb25maWcuUkVTT1VSQ0VTLkxBTUJEQS5zb21lKChsYW1iZGEpID0+IGxhbWJkYS5hcGlHYXRld2F5Py5yZXF1aXJlQXBpS2V5ID09PSB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFwaUtleShjb25maWc6IEFwcENvbmZpZywgYXBpOiBSZXN0QXBpKSB7XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZXNBcGlLZXkodGhpcy5jb25maWcpKSB7XG4gICAgICAgICAgICBjb25zdCBhcGlLZXkgPSBuZXcgVHNnQXBpS2V5KHRoaXMuc2NvcGUsIHRoaXMuY29uZmlnLCBhcGkpXG4gICAgICAgICAgICByZXR1cm4gYXBpS2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Wm9uZShzY29wZTogQ29uc3RydWN0LCBjb25maWc6IE1pY3Jvc2VydmljZVByb3BzKSB7XG4gICAgICAgIHJldHVybiBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhzY29wZSwgYCR7Y29uZmlnLkROUz8uWm9uZU5hbWV9LXpvbmVgLCB7XG4gICAgICAgICAgICB6b25lTmFtZTogY29uZmlnLkROUz8uWm9uZU5hbWUhLFxuICAgICAgICAgICAgaG9zdGVkWm9uZUlkOiBjb25maWcuRE5TPy5ab25lSWQhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ2VydGlmaWNhdGUoc2NvcGU6IENvbnN0cnVjdCwgem9uZTogSUhvc3RlZFpvbmUsIGNvbmZpZzogTWljcm9zZXJ2aWNlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgY2VydCA9IG5ldyBDcmVhdGVDZXJ0aWZpY2F0ZShzY29wZSwgY29uZmlnLCB6b25lKTtcblxuICAgICAgICBjZXJ0LmNlcnRpZmljYXRlLmFwcGx5UmVtb3ZhbFBvbGljeShSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuICAgICAgICByZXR1cm4gY2VydDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFSZWNvcmQoc2NvcGU6IENvbnN0cnVjdCwgem9uZTogSUhvc3RlZFpvbmUsIGFwaTogUmVzdEFwaSkge1xuICAgICAgICBjb25zdCBhUmVjb3JkID0gbmV3IEFSZWNvcmQoc2NvcGUsIFwiQXBpUmVjb3JkXCIsIHtcbiAgICAgICAgICAgIHpvbmUsXG4gICAgICAgICAgICB0YXJnZXQ6IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IEFwaUdhdGV3YXkoYXBpKSksXG4gICAgICAgICAgICByZWNvcmROYW1lOiB0aGlzLmNvbmZpZy5BUEkuRG9tYWluUHJlZml4XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFSZWNvcmQuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgICAgIHJldHVybiBhUmVjb3JkO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ25hbWVSZWNvcmQoc2NvcGU6IENvbnN0cnVjdCwgem9uZTogSUhvc3RlZFpvbmUsIGFwaTogUmVzdEFwaSwgY29uZmlnOiBBcHBDb25maWcpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gbmV3IENuYW1lUmVjb3JkKHNjb3BlLCBcImFwaS1jbmFtZS1yZWNvcmRcIiwge1xuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIGRvbWFpbk5hbWU6IGFwaS51cmwhLFxuICAgICAgICAgICAgcmVjb3JkTmFtZTogYCR7Y29uZmlnPy5ETlM/LlN1YkRvbWFpbk5hbWVGb3JBcGl9LiR7Y29uZmlnPy5ETlM/LlN1YkRvbWFpbk5hbWV9YFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCkge1xuXG4gICAgICAgIGNvbnN0IGFwaSA9IHRoaXMuY3JlYXRlQXBpKHNjb3BlKTtcbiAgICAgICAgLy8gVE9ETzogIE9OTFkgSUYgQ1VTVE9NIE1BUFBJTkcgSVMgUkVRVUlSRURcbiAgICAgICAgLy8gY29uc3QgZG9tYWluID0gdGhpcy5jcmVhdGVDdXN0b21Eb21haW4oc2NvcGUsIHRoaXMuY29uZmlnKTtcblxuICAgICAgICAvLyBjb25zdCBtYXBwaW5nID0gdGhpcy5hdHRhY2hEb21haW5Ub0FwaShzY29wZSwgYXBpLCBkb21haW4sIHRoaXMuY29uZmlnKTtcblxuXG5cbiAgICAgICAgcmV0dXJuIFthcGldO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogVFtdKTogdm9pZCB7XG4gICAgICAgIGNyZWF0ZWRBc3NldHMuZm9yRWFjaCgoYXBpLCBpZHgpID0+IHtcblxuICAgICAgICAgICAgbmV3IENmbk91dHB1dChzY29wZSwgYGFwaSR7aWR4fWAsIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdmFsdWU6IGFwaS51cmxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CfnOutput, RemovalPolicy, Tag } from "aws-cdk-lib";
|
|
2
2
|
import { BasePathMapping, Cors, CorsOptions, DomainName, EndpointType, IDomainName, IRestApi, MethodOptions, RestApi, RestApiProps, SecurityPolicy } from "aws-cdk-lib/aws-apigateway";
|
|
3
|
-
import { ARecord, HostedZone, IHostedZone, RecordTarget } from "aws-cdk-lib/aws-route53";
|
|
3
|
+
import { ARecord, CnameRecord, HostedZone, IHostedZone, RecordTarget } from "aws-cdk-lib/aws-route53";
|
|
4
4
|
import { ApiGateway, ApiGatewayDomain } from "aws-cdk-lib/aws-route53-targets";
|
|
5
5
|
import { Construct } from "constructs";
|
|
6
6
|
import { AppConfig } from "../../config/AppConfig";
|
|
@@ -38,7 +38,9 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
38
38
|
|
|
39
39
|
const api = new RestApi(this.scope, `${this.config.AppPrefix}-rest-api`, this.createApiProps(zone));
|
|
40
40
|
|
|
41
|
-
this.createARecord(scope, zone, api);
|
|
41
|
+
// this.createARecord(scope, zone, api);
|
|
42
|
+
|
|
43
|
+
this.createCnameRecord(scope, zone, api, this.config);
|
|
42
44
|
|
|
43
45
|
this.createApiKey(this.config, api);
|
|
44
46
|
|
|
@@ -66,14 +68,9 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
66
68
|
domainName: {
|
|
67
69
|
domainName: `${this.config.DNS.SubDomainNameForApi}.${this.config.DNS.SubDomainName}`,
|
|
68
70
|
certificate: cert.certificate,
|
|
69
|
-
endpointType: EndpointType.
|
|
71
|
+
endpointType: EndpointType.REGIONAL,
|
|
70
72
|
securityPolicy: SecurityPolicy.TLS_1_2
|
|
71
73
|
},
|
|
72
|
-
// TODO: ADD CUSTOM DOMAIN HERE
|
|
73
|
-
// defaultDomainMapping: {
|
|
74
|
-
// domainName: domain,
|
|
75
|
-
// },
|
|
76
|
-
// domainName: '',
|
|
77
74
|
defaultCorsPreflightOptions: this.corsOptions
|
|
78
75
|
};
|
|
79
76
|
|
|
@@ -116,22 +113,6 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
116
113
|
}
|
|
117
114
|
return null;
|
|
118
115
|
}
|
|
119
|
-
// private createCustomDomain(scope: Construct, config: MicroserviceProps) {
|
|
120
|
-
// const domainName = DomainName.fromDomainNameAttributes(scope, `${config.API.Name}-custom-domain`, {
|
|
121
|
-
// domainName: config.DNS?.ZoneName,
|
|
122
|
-
// domainNameAliasHostedZoneId: config.DNS.ZoneId!,
|
|
123
|
-
// domainNameAliasTarget: config.API.DomainPrefix!,
|
|
124
|
-
// });
|
|
125
|
-
|
|
126
|
-
// return domainName
|
|
127
|
-
// }
|
|
128
|
-
|
|
129
|
-
// private attachDomainToApi(scope: Construct, api: IRestApi, domain: IDomainName, config: MicroserviceProps) {
|
|
130
|
-
// return new BasePathMapping(scope, `${config.API.Name}-basePathMapping`, {
|
|
131
|
-
// domainName: domain,
|
|
132
|
-
// restApi: api,
|
|
133
|
-
// });
|
|
134
|
-
// }
|
|
135
116
|
|
|
136
117
|
private getZone(scope: Construct, config: MicroserviceProps) {
|
|
137
118
|
return HostedZone.fromHostedZoneAttributes(scope, `${config.DNS?.ZoneName}-zone`, {
|
|
@@ -158,6 +139,15 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
158
139
|
return aRecord;
|
|
159
140
|
}
|
|
160
141
|
|
|
142
|
+
private createCnameRecord(scope: Construct, zone: IHostedZone, api: RestApi, config: AppConfig) {
|
|
143
|
+
const record = new CnameRecord(scope, "api-cname-record", {
|
|
144
|
+
zone,
|
|
145
|
+
domainName: api.url!,
|
|
146
|
+
recordName: `${config?.DNS?.SubDomainNameForApi}.${config?.DNS?.SubDomainName}`
|
|
147
|
+
});
|
|
148
|
+
return record;
|
|
149
|
+
}
|
|
150
|
+
|
|
161
151
|
protected createResource(scope: Construct) {
|
|
162
152
|
|
|
163
153
|
const api = this.createApi(scope);
|