@sylvesterllc/aws-constructs 1.1.3 → 1.1.4
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/dist/resources/certificate/createCertificate.d.ts +3 -3
- package/dist/resources/certificate/createCertificate.js +4 -4
- package/dist/resources/gateway/createApi.d.ts +2 -1
- package/dist/resources/gateway/createApi.js +10 -8
- package/package.json +1 -1
- package/src/resources/certificate/createCertificate.ts +3 -3
- package/src/resources/gateway/createApi.ts +9 -9
|
@@ -4,7 +4,7 @@ import { Construct } from "constructs";
|
|
|
4
4
|
import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
5
5
|
export declare class CreateCertificate {
|
|
6
6
|
certificate: ICertificate;
|
|
7
|
-
constructor(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env
|
|
8
|
-
generateCertificate(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env
|
|
9
|
-
generateApiCertificate(scope: Construct, props: MicroserviceProps, env
|
|
7
|
+
constructor(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env: string);
|
|
8
|
+
generateCertificate(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env: string): Certificate;
|
|
9
|
+
generateApiCertificate(scope: Construct, props: MicroserviceProps, env: string): Certificate;
|
|
10
10
|
}
|
|
@@ -6,12 +6,12 @@ const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
|
|
|
6
6
|
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
7
7
|
class CreateCertificate {
|
|
8
8
|
certificate;
|
|
9
|
-
constructor(scope, props, hostedZone, env
|
|
9
|
+
constructor(scope, props, hostedZone, env) {
|
|
10
10
|
// this.certificate = this.generateCertificate(scope, props, hostedZone);
|
|
11
11
|
this.certificate = this.generateApiCertificate(scope, props, env);
|
|
12
12
|
this.certificate.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
13
13
|
}
|
|
14
|
-
generateCertificate(scope, props, hostedZone, env
|
|
14
|
+
generateCertificate(scope, props, hostedZone, env) {
|
|
15
15
|
const devHostedZone = aws_route53_1.HostedZone.fromHostedZoneId(scope, `api.c1.dev.convergeone.io-hosted-zone`, 'Z0508834Q8E4TWFVG990');
|
|
16
16
|
const cert = new aws_certificatemanager_1.Certificate(scope, `api-c1-dev-api-certificate`, {
|
|
17
17
|
domainName: `c1.api.dev.convergeone.io`,
|
|
@@ -21,7 +21,7 @@ class CreateCertificate {
|
|
|
21
21
|
});
|
|
22
22
|
return cert;
|
|
23
23
|
}
|
|
24
|
-
generateApiCertificate(scope, props, env
|
|
24
|
+
generateApiCertificate(scope, props, env) {
|
|
25
25
|
const hostedZone = aws_route53_1.HostedZone.fromHostedZoneId(scope, `${props.API.DomainPrefix}-${env}-${props.DNS?.ZoneName}-hosted-zone`, props.DNS?.ZoneId);
|
|
26
26
|
const domainName = `${props.API.DomainPrefix}.${env}.${props.DNS?.ZoneName}`;
|
|
27
27
|
const cert = new aws_certificatemanager_1.Certificate(scope, `${props.API.DomainPrefix}-${env}-${props.DNS?.ZoneName}-certificate`, {
|
|
@@ -35,4 +35,4 @@ class CreateCertificate {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
exports.CreateCertificate = CreateCertificate;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2NlcnRpZmljYXRlL2NyZWF0ZUNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1QywrRUFBK0g7QUFDL0gseURBQWtFO0FBUWxFLE1BQWEsaUJBQWlCO0lBRXJCLFdBQVcsQ0FBZTtJQUVqQyxZQUFZLEtBQWdCLEVBQUUsS0FBd0IsRUFBRSxVQUF1QixFQUFFLEdBQVc7UUFFMUYseUVBQXlFO1FBRXpFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTdELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLEtBQXdCLEVBQUUsVUFBdUIsRUFBRSxHQUFXO1FBRWxHLE1BQU0sYUFBYSxHQUFHLHdCQUFVLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLHVDQUF1QyxFQUM5RixzQkFBc0IsQ0FBQyxDQUFDO1FBRTFCLE1BQU0sSUFBSSxHQUFHLElBQUksb0NBQVcsQ0FBQyxLQUFLLEVBQUUsNEJBQTRCLEVBQUU7WUFDaEUsVUFBVSxFQUFFLDJCQUEyQjtZQUN2QyxVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2pELENBQUMsb0JBQW9CLENBQUMsRUFBRSxhQUFhO2FBQ3RDLENBQUM7U0FDSCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFnQixFQUFFLEtBQXdCLEVBQUUsR0FBVztRQUU1RSxNQUFNLFVBQVUsR0FBRyx3QkFBVSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsY0FBYyxFQUN6SCxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sVUFBVSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFN0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsY0FBYyxFQUFFO1lBQ3pHLGVBQWUsRUFBRSxHQUFHLFVBQVUsY0FBYztZQUM1QyxVQUFVLEVBQUUsVUFBVTtZQUN0QixVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ2pELENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFVBQVU7YUFFOUMsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBOUNELDhDQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENlcnRpZmljYXRlLCBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24sIERuc1ZhbGlkYXRlZENlcnRpZmljYXRlLCBJQ2VydGlmaWNhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5pbXBvcnQgeyBlbnZpcm9ubWVudFN1ZmZpeEZvckRvbWFpbiB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3V0aWwtaGVscGVyXCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9jb25maWcvRW52aXJvbm1lbnRzXCI7XG5pbXBvcnQgeyBlbnYgfSBmcm9tIFwicHJvY2Vzc1wiO1xuXG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVDZXJ0aWZpY2F0ZSB7XG5cbiAgcHVibGljIGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IE1pY3Jvc2VydmljZVByb3BzLCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZSwgZW52OiBzdHJpbmcpIHtcblxuICAgIC8vIHRoaXMuY2VydGlmaWNhdGUgPSB0aGlzLmdlbmVyYXRlQ2VydGlmaWNhdGUoc2NvcGUsIHByb3BzLCBob3N0ZWRab25lKTtcblxuICAgIHRoaXMuY2VydGlmaWNhdGUgPSB0aGlzLmdlbmVyYXRlQXBpQ2VydGlmaWNhdGUoc2NvcGUsIHByb3BzLCBlbnYpO1xuXG4gICAgdGhpcy5jZXJ0aWZpY2F0ZS5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICB9XG5cbiAgZ2VuZXJhdGVDZXJ0aWZpY2F0ZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogTWljcm9zZXJ2aWNlUHJvcHMsIGhvc3RlZFpvbmU6IElIb3N0ZWRab25lLCBlbnY6IHN0cmluZykge1xuXG4gICAgY29uc3QgZGV2SG9zdGVkWm9uZSA9IEhvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVJZChzY29wZSwgYGFwaS5jMS5kZXYuY29udmVyZ2VvbmUuaW8taG9zdGVkLXpvbmVgLFxuICAgICAgJ1owNTA4ODM0UThFNFRXRlZHOTkwJyk7XG5cbiAgICBjb25zdCBjZXJ0ID0gbmV3IENlcnRpZmljYXRlKHNjb3BlLCBgYXBpLWMxLWRldi1hcGktY2VydGlmaWNhdGVgLCB7XG4gICAgICBkb21haW5OYW1lOiBgYzEuYXBpLmRldi5jb252ZXJnZW9uZS5pb2AsXG4gICAgICB2YWxpZGF0aW9uOiBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZSh7XG4gICAgICAgIFtgZGV2LmNvbnZlcmdlb25lLmlvYF06IGRldkhvc3RlZFpvbmVcbiAgICAgIH0pXG4gICAgfSk7XG4gICAgcmV0dXJuIGNlcnQ7XG4gIH1cblxuICBnZW5lcmF0ZUFwaUNlcnRpZmljYXRlKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBNaWNyb3NlcnZpY2VQcm9wcywgZW52OiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lSWQoc2NvcGUsIGAke3Byb3BzLkFQSS5Eb21haW5QcmVmaXh9LSR7ZW52fS0ke3Byb3BzLkROUz8uWm9uZU5hbWV9LWhvc3RlZC16b25lYCxcbiAgICAgIHByb3BzLkROUz8uWm9uZUlkISk7XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0uJHtlbnZ9LiR7cHJvcHMuRE5TPy5ab25lTmFtZX1gO1xuXG4gICAgY29uc3QgY2VydCA9IG5ldyBDZXJ0aWZpY2F0ZShzY29wZSwgYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0tJHtlbnZ9LSR7cHJvcHMuRE5TPy5ab25lTmFtZX0tY2VydGlmaWNhdGVgLCB7XG4gICAgICBjZXJ0aWZpY2F0ZU5hbWU6IGAke2RvbWFpbk5hbWV9LWNlcnRpZmljYXRlYCxcbiAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUsXG4gICAgICB2YWxpZGF0aW9uOiBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZSh7XG4gICAgICAgIFtgJHtlbnZ9LiR7cHJvcHMuRE5TPy5ab25lTmFtZX1gXTogaG9zdGVkWm9uZVxuXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNlcnQ7XG4gIH1cbn0iXX0=
|
|
@@ -3,9 +3,10 @@ import { Construct } from "constructs";
|
|
|
3
3
|
import { AppConfig } from "../../config/AppConfig";
|
|
4
4
|
import { BaseResource } from "../base/baseResource";
|
|
5
5
|
export declare class Api extends BaseResource<IRestApi> {
|
|
6
|
+
private env;
|
|
6
7
|
private corsOptions;
|
|
7
8
|
get APIs(): IRestApi[];
|
|
8
|
-
constructor(scope: Construct, config: AppConfig, env
|
|
9
|
+
constructor(scope: Construct, config: AppConfig, env: string);
|
|
9
10
|
private createApi;
|
|
10
11
|
private createApiProps;
|
|
11
12
|
private createDefaultCorsOptions;
|
|
@@ -9,32 +9,34 @@ const baseResource_1 = require("../base/baseResource");
|
|
|
9
9
|
const createCertificate_1 = require("../certificate/createCertificate");
|
|
10
10
|
const createApiKey_1 = require("./createApiKey");
|
|
11
11
|
class Api extends baseResource_1.BaseResource {
|
|
12
|
+
env;
|
|
12
13
|
corsOptions;
|
|
13
14
|
get APIs() {
|
|
14
15
|
return this.createdResources;
|
|
15
16
|
}
|
|
16
|
-
constructor(scope, config, env
|
|
17
|
+
constructor(scope, config, env) {
|
|
17
18
|
super(scope, config);
|
|
19
|
+
this.env = env;
|
|
18
20
|
this.corsOptions = this.createDefaultCorsOptions();
|
|
19
21
|
this.createdResources = this.createResource(scope);
|
|
20
22
|
}
|
|
21
|
-
createApi(scope, env
|
|
23
|
+
createApi(scope, env) {
|
|
22
24
|
if (this.config.DNS) {
|
|
23
25
|
// console.log('### DNS is true ###');
|
|
24
26
|
const zone = this.getZone(this.scope, this.config);
|
|
25
|
-
const api = new aws_apigateway_1.RestApi(this.scope, `${this.config.AppPrefix}-rest-api`, this.createApiProps(
|
|
27
|
+
const api = new aws_apigateway_1.RestApi(this.scope, `${this.config.AppPrefix}-rest-api`, this.createApiProps(env, zone));
|
|
26
28
|
this.createARecord(scope, zone, api);
|
|
27
29
|
// this.createCnameRecord(scope, zone, api, this.config);
|
|
28
30
|
this.createApiKey(this.config, api);
|
|
29
31
|
return api;
|
|
30
32
|
}
|
|
31
33
|
else {
|
|
32
|
-
const api = new aws_apigateway_1.RestApi(this.scope, `${this.config.AppPrefix}-rest-api-without-DNS`, this.createApiProps());
|
|
34
|
+
const api = new aws_apigateway_1.RestApi(this.scope, `${this.config.AppPrefix}-rest-api-without-DNS`, this.createApiProps(env));
|
|
33
35
|
this.createApiKey(this.config, api);
|
|
34
36
|
return api;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
|
-
createApiProps(
|
|
39
|
+
createApiProps(env, zone) {
|
|
38
40
|
if (this.config.DNS) {
|
|
39
41
|
const cert = this.createCertificate(this.scope, zone, this.config, env);
|
|
40
42
|
const props = {
|
|
@@ -87,7 +89,7 @@ class Api extends baseResource_1.BaseResource {
|
|
|
87
89
|
hostedZoneId: config.DNS?.ZoneId
|
|
88
90
|
});
|
|
89
91
|
}
|
|
90
|
-
createCertificate(scope, zone, config, env
|
|
92
|
+
createCertificate(scope, zone, config, env) {
|
|
91
93
|
const cert = new createCertificate_1.CreateCertificate(scope, config, zone, env);
|
|
92
94
|
cert.certificate.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
|
|
93
95
|
return cert;
|
|
@@ -110,7 +112,7 @@ class Api extends baseResource_1.BaseResource {
|
|
|
110
112
|
return record;
|
|
111
113
|
}
|
|
112
114
|
createResource(scope) {
|
|
113
|
-
const api = this.createApi(scope);
|
|
115
|
+
const api = this.createApi(scope, this.env);
|
|
114
116
|
// TODO: ONLY IF CUSTOM MAPPING IS REQUIRED
|
|
115
117
|
// const domain = this.createCustomDomain(scope, this.config);
|
|
116
118
|
// const mapping = this.attachDomainToApi(scope, api, domain, this.config);
|
|
@@ -126,4 +128,4 @@ class Api extends baseResource_1.BaseResource {
|
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
exports.Api = Api;
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZUFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNEQ7QUFDNUQsK0RBQXVMO0FBQ3ZMLHlEQUFzRztBQUN0Ryx5RUFBK0U7QUFLL0UsdURBQW9EO0FBQ3BELHdFQUFxRTtBQUNyRSxpREFBMkM7QUFJM0MsTUFBYSxHQUFJLFNBQVEsMkJBQXNCO0lBRW5DLFdBQVcsQ0FBYztJQUdqQyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLE1BQWlCLEVBQUUsTUFBYyxNQUFNO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUVuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWdCLEVBQUUsTUFBYyxNQUFNO1FBQ3BELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVsQixzQ0FBc0M7WUFFdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLHdCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV6RyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFckMseURBQXlEO1lBRXpELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVwQyxPQUFPLEdBQUcsQ0FBQztRQUVmLENBQUM7YUFBTSxDQUFDO1lBRUosTUFBTSxHQUFHLEdBQUcsSUFBSSx3QkFBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFFNUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRXBDLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBa0IsRUFBRSxNQUFjLE1BQU07UUFFM0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRWxCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sS0FBSyxHQUFpQjtnQkFDeEIsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUMvRCxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVztnQkFDeEMsVUFBVSxFQUFFO29CQUNSLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtvQkFDckYsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixZQUFZLEVBQUUsNkJBQVksQ0FBQyxRQUFRO29CQUNuQyxjQUFjLEVBQUUsK0JBQWMsQ0FBQyxPQUFPO2lCQUN6QztnQkFDRCwyQkFBMkIsRUFBRSxJQUFJLENBQUMsV0FBVzthQUNoRCxDQUFDO1lBRUYsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEtBQUssR0FBaUI7Z0JBQ3hCLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDL0QsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVc7Z0JBQ3hDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxXQUFXO2FBQ2hELENBQUM7WUFFRixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUU1QixNQUFNLFdBQVcsR0FBZ0I7WUFDN0IsWUFBWSxFQUFFO2dCQUNWLEdBQUc7YUFDTjtZQUNELFlBQVksRUFBRSxxQkFBSSxDQUFDLFdBQVc7WUFDOUIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixZQUFZLEVBQUUscUJBQUksQ0FBQyxXQUFXO1NBQ2pDLENBQUM7UUFFRixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWlCO1FBQ3BDLHFEQUFxRDtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFpQixFQUFFLEdBQVk7UUFFaEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDMUQsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBZ0IsRUFBRSxNQUF5QjtRQUN2RCxPQUFPLHdCQUFVLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLE9BQU8sRUFBRTtZQUM5RSxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFTO1lBQy9CLFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU87U0FDcEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsSUFBaUIsRUFBRSxNQUF5QixFQUFFLE1BQWMsTUFBTTtRQUMxRyxNQUFNLElBQUksR0FBRyxJQUFJLHFDQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMkJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWdCLEVBQUUsSUFBaUIsRUFBRSxHQUFZO1FBQ25FLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQU8sQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ25GLElBQUk7WUFDSixNQUFNLEVBQUUsMEJBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxnQ0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZO1NBQzNDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFnQixFQUFFLElBQWlCLEVBQUUsR0FBWSxFQUFFLE1BQWlCO1FBQzFGLE1BQU0sTUFBTSxHQUFHLElBQUkseUJBQVcsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEQsSUFBSTtZQUNKLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLHlCQUEwQjtZQUN0RCxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLG1CQUFtQixJQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFO1NBQ2xGLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZ0I7UUFFckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyw0Q0FBNEM7UUFDNUMsOERBQThEO1FBRTlELDJFQUEyRTtRQUkzRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVTLFlBQVksQ0FBSSxLQUFnQixFQUFFLGFBQWtCO1FBQzFELGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFFL0IsSUFBSSx1QkFBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFO2dCQUM5QixhQUFhO2dCQUNiLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRzthQUNqQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FFSjtBQS9KRCxrQkErSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3ksIFRhZyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQmFzZVBhdGhNYXBwaW5nLCBDb3JzLCBDb3JzT3B0aW9ucywgRG9tYWluTmFtZSwgRW5kcG9pbnRUeXBlLCBJRG9tYWluTmFtZSwgSVJlc3RBcGksIE1ldGhvZE9wdGlvbnMsIFJlc3RBcGksIFJlc3RBcGlQcm9wcywgU2VjdXJpdHlQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IEFSZWNvcmQsIENuYW1lUmVjb3JkLCBIb3N0ZWRab25lLCBJSG9zdGVkWm9uZSwgUmVjb3JkVGFyZ2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBBcGlHYXRld2F5LCBBcGlHYXRld2F5RG9tYWluIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuXG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcbmltcG9ydCB7IENyZWF0ZUNlcnRpZmljYXRlIH0gZnJvbSBcIi4uL2NlcnRpZmljYXRlL2NyZWF0ZUNlcnRpZmljYXRlXCI7XG5pbXBvcnQgeyBUc2dBcGlLZXkgfSBmcm9tIFwiLi9jcmVhdGVBcGlLZXlcIjtcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9FbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7IGVudmlyb25tZW50U3VmZml4IH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvdXRpbC1oZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIEFwaSBleHRlbmRzIEJhc2VSZXNvdXJjZTxJUmVzdEFwaT4ge1xuXG4gICAgcHJpdmF0ZSBjb3JzT3B0aW9uczogQ29yc09wdGlvbnM7XG5cblxuICAgIGdldCBBUElzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVkUmVzb3VyY2VzO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGNvbmZpZzogQXBwQ29uZmlnLCBlbnY6IHN0cmluZyA9IFwicHJvZFwiKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMuY29yc09wdGlvbnMgPSB0aGlzLmNyZWF0ZURlZmF1bHRDb3JzT3B0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQXBpKHNjb3BlOiBDb25zdHJ1Y3QsIGVudjogc3RyaW5nID0gXCJwcm9kXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLkROUykge1xuXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnIyMjIEROUyBpcyB0cnVlICMjIycpO1xuXG4gICAgICAgICAgICBjb25zdCB6b25lID0gdGhpcy5nZXRab25lKHRoaXMuc2NvcGUsIHRoaXMuY29uZmlnKTtcblxuICAgICAgICAgICAgY29uc3QgYXBpID0gbmV3IFJlc3RBcGkodGhpcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS1yZXN0LWFwaWAsIHRoaXMuY3JlYXRlQXBpUHJvcHMoem9uZSwgZW52KSk7XG5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQVJlY29yZChzY29wZSwgem9uZSwgYXBpKTtcblxuICAgICAgICAgICAgLy8gdGhpcy5jcmVhdGVDbmFtZVJlY29yZChzY29wZSwgem9uZSwgYXBpLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQXBpS2V5KHRoaXMuY29uZmlnLCBhcGkpO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBpO1xuXG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwaSA9IG5ldyBSZXN0QXBpKHRoaXMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tcmVzdC1hcGktd2l0aG91dC1ETlNgLCB0aGlzLmNyZWF0ZUFwaVByb3BzKCkpO1xuXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFwaUtleSh0aGlzLmNvbmZpZywgYXBpKTtcblxuICAgICAgICAgICAgcmV0dXJuIGFwaTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQXBpUHJvcHMoem9uZT86IElIb3N0ZWRab25lLCBlbnY6IHN0cmluZyA9IFwicHJvZFwiKTogUmVzdEFwaVByb3BzIHtcblxuICAgICAgICBpZiAodGhpcy5jb25maWcuRE5TKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNlcnQgPSB0aGlzLmNyZWF0ZUNlcnRpZmljYXRlKHRoaXMuc2NvcGUsIHpvbmUhLCB0aGlzLmNvbmZpZywgZW52KTtcblxuICAgICAgICAgICAgY29uc3QgcHJvcHM6IFJlc3RBcGlQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZXN0QXBpTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke3RoaXMuY29uZmlnLkFQSS5OYW1lfWAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29uZmlnLkFQSS5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBkb21haW5OYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgIGRvbWFpbk5hbWU6IGAke3RoaXMuY29uZmlnLkROUy5TdWJEb21haW5OYW1lRm9yQXBpfS4ke3RoaXMuY29uZmlnLkROUy5TdWJEb21haW5OYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiBjZXJ0LmNlcnRpZmljYXRlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5SRUdJT05BTCxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IFNlY3VyaXR5UG9saWN5LlRMU18xXzJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlZmF1bHRDb3JzUHJlZmxpZ2h0T3B0aW9uczogdGhpcy5jb3JzT3B0aW9uc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcHJvcHM6IFJlc3RBcGlQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZXN0QXBpTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke3RoaXMuY29uZmlnLkFQSS5OYW1lfWAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29uZmlnLkFQSS5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29yc1ByZWZsaWdodE9wdGlvbnM6IHRoaXMuY29yc09wdGlvbnNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9wcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGVmYXVsdENvcnNPcHRpb25zKCkge1xuXG4gICAgICAgIGNvbnN0IGNvcnNPcHRpb25zOiBDb3JzT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGFsbG93SGVhZGVyczogW1xuICAgICAgICAgICAgICAgICcqJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhbGxvd01ldGhvZHM6IENvcnMuQUxMX01FVEhPRFMsXG4gICAgICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dPcmlnaW5zOiBDb3JzLkFMTF9PUklHSU5TLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBjb3JzT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlcXVpcmVzQXBpS2V5KGNvbmZpZzogQXBwQ29uZmlnKSB7XG4gICAgICAgIC8vIERldGVybWluZSBpZiBhbnkgb2YgdGhlIGxhbWJkYXMgcmVxdWlyZSBhbiBBUEkgS2V5XG4gICAgICAgIHJldHVybiBjb25maWcuUkVTT1VSQ0VTLkxBTUJEQS5zb21lKChsYW1iZGEpID0+IGxhbWJkYS5hcGlHYXRld2F5Py5yZXF1aXJlQXBpS2V5ID09PSB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFwaUtleShjb25maWc6IEFwcENvbmZpZywgYXBpOiBSZXN0QXBpKSB7XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZXNBcGlLZXkodGhpcy5jb25maWcpKSB7XG4gICAgICAgICAgICBjb25zdCBhcGlLZXkgPSBuZXcgVHNnQXBpS2V5KHRoaXMuc2NvcGUsIHRoaXMuY29uZmlnLCBhcGkpXG4gICAgICAgICAgICByZXR1cm4gYXBpS2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Wm9uZShzY29wZTogQ29uc3RydWN0LCBjb25maWc6IE1pY3Jvc2VydmljZVByb3BzKSB7XG4gICAgICAgIHJldHVybiBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyhzY29wZSwgYCR7Y29uZmlnLkROUz8uWm9uZU5hbWV9LXpvbmVgLCB7XG4gICAgICAgICAgICB6b25lTmFtZTogY29uZmlnLkROUz8uWm9uZU5hbWUhLFxuICAgICAgICAgICAgaG9zdGVkWm9uZUlkOiBjb25maWcuRE5TPy5ab25lSWQhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ2VydGlmaWNhdGUoc2NvcGU6IENvbnN0cnVjdCwgem9uZTogSUhvc3RlZFpvbmUsIGNvbmZpZzogTWljcm9zZXJ2aWNlUHJvcHMsIGVudjogc3RyaW5nID0gXCJwcm9kXCIpIHtcbiAgICAgICAgY29uc3QgY2VydCA9IG5ldyBDcmVhdGVDZXJ0aWZpY2F0ZShzY29wZSwgY29uZmlnLCB6b25lLCBlbnYpO1xuXG4gICAgICAgIGNlcnQuY2VydGlmaWNhdGUuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgICAgIHJldHVybiBjZXJ0O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQVJlY29yZChzY29wZTogQ29uc3RydWN0LCB6b25lOiBJSG9zdGVkWm9uZSwgYXBpOiBSZXN0QXBpKSB7XG4gICAgICAgIGNvbnN0IGFSZWNvcmQgPSBuZXcgQVJlY29yZChzY29wZSwgYGFwaS1kbnMtYS1yZWNvcmQtJHt0aGlzLmNvbmZpZy5BUEkuRG9tYWluUHJlZml4fWAsIHtcbiAgICAgICAgICAgIHpvbmUsXG4gICAgICAgICAgICB0YXJnZXQ6IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IEFwaUdhdGV3YXkoYXBpKSksXG4gICAgICAgICAgICByZWNvcmROYW1lOiB0aGlzLmNvbmZpZy5BUEkuRG9tYWluUHJlZml4XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFSZWNvcmQuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgICAgIHJldHVybiBhUmVjb3JkO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ25hbWVSZWNvcmQoc2NvcGU6IENvbnN0cnVjdCwgem9uZTogSUhvc3RlZFpvbmUsIGFwaTogUmVzdEFwaSwgY29uZmlnOiBBcHBDb25maWcpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gbmV3IENuYW1lUmVjb3JkKHNjb3BlLCBcImFwaS1jbmFtZS1yZWNvcmRcIiwge1xuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIGRvbWFpbk5hbWU6IGFwaS5kb21haW5OYW1lPy5kb21haW5OYW1lQWxpYXNEb21haW5OYW1lISxcbiAgICAgICAgICAgIHJlY29yZE5hbWU6IGAke2NvbmZpZz8uRE5TPy5TdWJEb21haW5OYW1lRm9yQXBpfS4ke2NvbmZpZz8uRE5TPy5TdWJEb21haW5OYW1lfWBcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcblxuICAgICAgICBjb25zdCBhcGkgPSB0aGlzLmNyZWF0ZUFwaShzY29wZSk7XG4gICAgICAgIC8vIFRPRE86ICBPTkxZIElGIENVU1RPTSBNQVBQSU5HIElTIFJFUVVJUkVEXG4gICAgICAgIC8vIGNvbnN0IGRvbWFpbiA9IHRoaXMuY3JlYXRlQ3VzdG9tRG9tYWluKHNjb3BlLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgLy8gY29uc3QgbWFwcGluZyA9IHRoaXMuYXR0YWNoRG9tYWluVG9BcGkoc2NvcGUsIGFwaSwgZG9tYWluLCB0aGlzLmNvbmZpZyk7XG5cblxuXG4gICAgICAgIHJldHVybiBbYXBpXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKGFwaSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBhcGkke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHZhbHVlOiBhcGkudXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG59Il19
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZUFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNEQ7QUFDNUQsK0RBQXVMO0FBQ3ZMLHlEQUFzRztBQUN0Ryx5RUFBK0U7QUFLL0UsdURBQW9EO0FBQ3BELHdFQUFxRTtBQUNyRSxpREFBMkM7QUFHM0MsTUFBYSxHQUFJLFNBQVEsMkJBQXNCO0lBU2M7SUFQakQsV0FBVyxDQUFjO0lBR2pDLElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsTUFBaUIsRUFBVSxHQUFXO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFEZ0MsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUdoRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxTQUFTLENBQUMsS0FBZ0IsRUFBRSxHQUFXO1FBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVsQixzQ0FBc0M7WUFFdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLHdCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUV6RyxJQUFJLENB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QUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFnQixFQUFFLElBQWlCLEVBQUUsR0FBWSxFQUFFLE1BQWlCO1FBQzFGLE1BQU0sTUFBTSxHQUFHLElBQUkseUJBQVcsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEQsSUFBSTtZQUNKLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLHlCQUEwQjtZQUN0RCxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLG1CQUFtQixJQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFO1NBQ2xGLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZ0I7UUFFckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLDRDQUE0QztRQUM1Qyw4REFBOEQ7UUFFOUQsMkVBQTJFO1FBSTNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRVMsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUUvQixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUU7Z0JBQzlCLGFBQWE7Z0JBQ2IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHO2FBQ2pCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUVKO0FBaEtELGtCQWdLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgUmVtb3ZhbFBvbGljeSwgVGFnIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCYXNlUGF0aE1hcHBpbmcsIENvcnMsIENvcnNPcHRpb25zLCBEb21haW5OYW1lLCBFbmRwb2ludFR5cGUsIElEb21haW5OYW1lLCBJUmVzdEFwaSwgTWV0aG9kT3B0aW9ucywgUmVzdEFwaSwgUmVzdEFwaVByb3BzLCBTZWN1cml0eVBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheVwiO1xuaW1wb3J0IHsgQVJlY29yZCwgQ25hbWVSZWNvcmQsIEhvc3RlZFpvbmUsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IEFwaUdhdGV3YXksIEFwaUdhdGV3YXlEb21haW4gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb25maWcvQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5cbmltcG9ydCB7IEJhc2VSZXNvdXJjZSB9IGZyb20gXCIuLi9iYXNlL2Jhc2VSZXNvdXJjZVwiO1xuaW1wb3J0IHsgQ3JlYXRlQ2VydGlmaWNhdGUgfSBmcm9tIFwiLi4vY2VydGlmaWNhdGUvY3JlYXRlQ2VydGlmaWNhdGVcIjtcbmltcG9ydCB7IFRzZ0FwaUtleSB9IGZyb20gXCIuL2NyZWF0ZUFwaUtleVwiO1xuXG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBCYXNlUmVzb3VyY2U8SVJlc3RBcGk+IHtcblxuICAgIHByaXZhdGUgY29yc09wdGlvbnM6IENvcnNPcHRpb25zO1xuXG5cbiAgICBnZXQgQVBJcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlZFJlc291cmNlcztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBjb25maWc6IEFwcENvbmZpZywgcHJpdmF0ZSBlbnY6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzY29wZSwgY29uZmlnKTtcblxuICAgICAgICB0aGlzLmNvcnNPcHRpb25zID0gdGhpcy5jcmVhdGVEZWZhdWx0Q29yc09wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHNjb3BlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFwaShzY29wZTogQ29uc3RydWN0LCBlbnY6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuRE5TKSB7XG5cbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCcjIyMgRE5TIGlzIHRydWUgIyMjJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHpvbmUgPSB0aGlzLmdldFpvbmUodGhpcy5zY29wZSwgdGhpcy5jb25maWcpO1xuXG4gICAgICAgICAgICBjb25zdCBhcGkgPSBuZXcgUmVzdEFwaSh0aGlzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LXJlc3QtYXBpYCwgdGhpcy5jcmVhdGVBcGlQcm9wcyhlbnYsIHpvbmUpKTtcblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBUmVjb3JkKHNjb3BlLCB6b25lLCBhcGkpO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmNyZWF0ZUNuYW1lUmVjb3JkKHNjb3BlLCB6b25lLCBhcGksIHRoaXMuY29uZmlnKTtcblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVBcGlLZXkodGhpcy5jb25maWcsIGFwaSk7XG5cbiAgICAgICAgICAgIHJldHVybiBhcGk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgY29uc3QgYXBpID0gbmV3IFJlc3RBcGkodGhpcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS1yZXN0LWFwaS13aXRob3V0LUROU2AsIHRoaXMuY3JlYXRlQXBpUHJvcHMoZW52KSk7XG5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQXBpS2V5KHRoaXMuY29uZmlnLCBhcGkpO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBcGlQcm9wcyhlbnY6IHN0cmluZywgem9uZT86IElIb3N0ZWRab25lLCk6IFJlc3RBcGlQcm9wcyB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLkROUykge1xuXG4gICAgICAgICAgICBjb25zdCBjZXJ0ID0gdGhpcy5jcmVhdGVDZXJ0aWZpY2F0ZSh0aGlzLnNjb3BlLCB6b25lISwgdGhpcy5jb25maWcsIGVudik7XG5cbiAgICAgICAgICAgIGNvbnN0IHByb3BzOiBSZXN0QXBpUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgcmVzdEFwaU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHt0aGlzLmNvbmZpZy5BUEkuTmFtZX1gLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmNvbmZpZy5BUEkuRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgZG9tYWluTmFtZToge1xuICAgICAgICAgICAgICAgICAgICBkb21haW5OYW1lOiBgJHt0aGlzLmNvbmZpZy5ETlMuU3ViRG9tYWluTmFtZUZvckFwaX0uJHt0aGlzLmNvbmZpZy5ETlMuU3ViRG9tYWluTmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogY2VydC5jZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGUuUkVHSU9OQUwsXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBTZWN1cml0eVBvbGljeS5UTFNfMV8yXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29yc1ByZWZsaWdodE9wdGlvbnM6IHRoaXMuY29yc09wdGlvbnNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9wcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzOiBSZXN0QXBpUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgcmVzdEFwaU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHt0aGlzLmNvbmZpZy5BUEkuTmFtZX1gLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmNvbmZpZy5BUEkuRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgZGVmYXVsdENvcnNQcmVmbGlnaHRPcHRpb25zOiB0aGlzLmNvcnNPcHRpb25zXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURlZmF1bHRDb3JzT3B0aW9ucygpIHtcblxuICAgICAgICBjb25zdCBjb3JzT3B0aW9uczogQ29yc09wdGlvbnMgPSB7XG4gICAgICAgICAgICBhbGxvd0hlYWRlcnM6IFtcbiAgICAgICAgICAgICAgICAnKicsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYWxsb3dNZXRob2RzOiBDb3JzLkFMTF9NRVRIT0RTLFxuICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93T3JpZ2luczogQ29ycy5BTExfT1JJR0lOUyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gY29yc09wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXF1aXJlc0FwaUtleShjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICAvLyBEZXRlcm1pbmUgaWYgYW55IG9mIHRoZSBsYW1iZGFzIHJlcXVpcmUgYW4gQVBJIEtleVxuICAgICAgICByZXR1cm4gY29uZmlnLlJFU09VUkNFUy5MQU1CREEuc29tZSgobGFtYmRhKSA9PiBsYW1iZGEuYXBpR2F0ZXdheT8ucmVxdWlyZUFwaUtleSA9PT0gdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBcGlLZXkoY29uZmlnOiBBcHBDb25maWcsIGFwaTogUmVzdEFwaSkge1xuXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVzQXBpS2V5KHRoaXMuY29uZmlnKSkge1xuICAgICAgICAgICAgY29uc3QgYXBpS2V5ID0gbmV3IFRzZ0FwaUtleSh0aGlzLnNjb3BlLCB0aGlzLmNvbmZpZywgYXBpKVxuICAgICAgICAgICAgcmV0dXJuIGFwaUtleTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFpvbmUoc2NvcGU6IENvbnN0cnVjdCwgY29uZmlnOiBNaWNyb3NlcnZpY2VQcm9wcykge1xuICAgICAgICByZXR1cm4gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoc2NvcGUsIGAke2NvbmZpZy5ETlM/LlpvbmVOYW1lfS16b25lYCwge1xuICAgICAgICAgICAgem9uZU5hbWU6IGNvbmZpZy5ETlM/LlpvbmVOYW1lISxcbiAgICAgICAgICAgIGhvc3RlZFpvbmVJZDogY29uZmlnLkROUz8uWm9uZUlkIVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNlcnRpZmljYXRlKHNjb3BlOiBDb25zdHJ1Y3QsIHpvbmU6IElIb3N0ZWRab25lLCBjb25maWc6IE1pY3Jvc2VydmljZVByb3BzLFxuICAgICAgICBlbnY6IHN0cmluZykge1xuICAgICAgICBjb25zdCBjZXJ0ID0gbmV3IENyZWF0ZUNlcnRpZmljYXRlKHNjb3BlLCBjb25maWcsIHpvbmUsIGVudik7XG5cbiAgICAgICAgY2VydC5jZXJ0aWZpY2F0ZS5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcbiAgICAgICAgcmV0dXJuIGNlcnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBUmVjb3JkKHNjb3BlOiBDb25zdHJ1Y3QsIHpvbmU6IElIb3N0ZWRab25lLCBhcGk6IFJlc3RBcGkpIHtcbiAgICAgICAgY29uc3QgYVJlY29yZCA9IG5ldyBBUmVjb3JkKHNjb3BlLCBgYXBpLWRucy1hLXJlY29yZC0ke3RoaXMuY29uZmlnLkFQSS5Eb21haW5QcmVmaXh9YCwge1xuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQXBpR2F0ZXdheShhcGkpKSxcbiAgICAgICAgICAgIHJlY29yZE5hbWU6IHRoaXMuY29uZmlnLkFQSS5Eb21haW5QcmVmaXhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYVJlY29yZC5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcbiAgICAgICAgcmV0dXJuIGFSZWNvcmQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDbmFtZVJlY29yZChzY29wZTogQ29uc3RydWN0LCB6b25lOiBJSG9zdGVkWm9uZSwgYXBpOiBSZXN0QXBpLCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBjb25zdCByZWNvcmQgPSBuZXcgQ25hbWVSZWNvcmQoc2NvcGUsIFwiYXBpLWNuYW1lLXJlY29yZFwiLCB7XG4gICAgICAgICAgICB6b25lLFxuICAgICAgICAgICAgZG9tYWluTmFtZTogYXBpLmRvbWFpbk5hbWU/LmRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWUhLFxuICAgICAgICAgICAgcmVjb3JkTmFtZTogYCR7Y29uZmlnPy5ETlM/LlN1YkRvbWFpbk5hbWVGb3JBcGl9LiR7Y29uZmlnPy5ETlM/LlN1YkRvbWFpbk5hbWV9YFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2Uoc2NvcGU6IENvbnN0cnVjdCkge1xuXG4gICAgICAgIGNvbnN0IGFwaSA9IHRoaXMuY3JlYXRlQXBpKHNjb3BlLCB0aGlzLmVudik7XG4gICAgICAgIC8vIFRPRE86ICBPTkxZIElGIENVU1RPTSBNQVBQSU5HIElTIFJFUVVJUkVEXG4gICAgICAgIC8vIGNvbnN0IGRvbWFpbiA9IHRoaXMuY3JlYXRlQ3VzdG9tRG9tYWluKHNjb3BlLCB0aGlzLmNvbmZpZyk7XG5cbiAgICAgICAgLy8gY29uc3QgbWFwcGluZyA9IHRoaXMuYXR0YWNoRG9tYWluVG9BcGkoc2NvcGUsIGFwaSwgZG9tYWluLCB0aGlzLmNvbmZpZyk7XG5cblxuXG4gICAgICAgIHJldHVybiBbYXBpXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKGFwaSwgaWR4KSA9PiB7XG5cbiAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBhcGkke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHZhbHVlOiBhcGkudXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG59Il19
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ export class CreateCertificate {
|
|
|
12
12
|
|
|
13
13
|
public certificate: ICertificate;
|
|
14
14
|
|
|
15
|
-
constructor(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env: string
|
|
15
|
+
constructor(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env: string) {
|
|
16
16
|
|
|
17
17
|
// this.certificate = this.generateCertificate(scope, props, hostedZone);
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ export class CreateCertificate {
|
|
|
22
22
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
generateCertificate(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env: string
|
|
25
|
+
generateCertificate(scope: Construct, props: MicroserviceProps, hostedZone: IHostedZone, env: string) {
|
|
26
26
|
|
|
27
27
|
const devHostedZone = HostedZone.fromHostedZoneId(scope, `api.c1.dev.convergeone.io-hosted-zone`,
|
|
28
28
|
'Z0508834Q8E4TWFVG990');
|
|
@@ -36,7 +36,7 @@ export class CreateCertificate {
|
|
|
36
36
|
return cert;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
generateApiCertificate(scope: Construct, props: MicroserviceProps, env: string
|
|
39
|
+
generateApiCertificate(scope: Construct, props: MicroserviceProps, env: string) {
|
|
40
40
|
|
|
41
41
|
const hostedZone = HostedZone.fromHostedZoneId(scope, `${props.API.DomainPrefix}-${env}-${props.DNS?.ZoneName}-hosted-zone`,
|
|
42
42
|
props.DNS?.ZoneId!);
|
|
@@ -9,8 +9,7 @@ import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
|
9
9
|
import { BaseResource } from "../base/baseResource";
|
|
10
10
|
import { CreateCertificate } from "../certificate/createCertificate";
|
|
11
11
|
import { TsgApiKey } from "./createApiKey";
|
|
12
|
-
|
|
13
|
-
import { environmentSuffix } from "../../helpers/util-helper";
|
|
12
|
+
|
|
14
13
|
|
|
15
14
|
export class Api extends BaseResource<IRestApi> {
|
|
16
15
|
|
|
@@ -21,7 +20,7 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
21
20
|
return this.createdResources;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
constructor(scope: Construct, config: AppConfig, env: string
|
|
23
|
+
constructor(scope: Construct, config: AppConfig, private env: string) {
|
|
25
24
|
super(scope, config);
|
|
26
25
|
|
|
27
26
|
this.corsOptions = this.createDefaultCorsOptions();
|
|
@@ -29,14 +28,14 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
29
28
|
this.createdResources = this.createResource(scope);
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
private createApi(scope: Construct, env: string
|
|
31
|
+
private createApi(scope: Construct, env: string) {
|
|
33
32
|
if (this.config.DNS) {
|
|
34
33
|
|
|
35
34
|
// console.log('### DNS is true ###');
|
|
36
35
|
|
|
37
36
|
const zone = this.getZone(this.scope, this.config);
|
|
38
37
|
|
|
39
|
-
const api = new RestApi(this.scope, `${this.config.AppPrefix}-rest-api`, this.createApiProps(
|
|
38
|
+
const api = new RestApi(this.scope, `${this.config.AppPrefix}-rest-api`, this.createApiProps(env, zone));
|
|
40
39
|
|
|
41
40
|
this.createARecord(scope, zone, api);
|
|
42
41
|
|
|
@@ -48,7 +47,7 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
48
47
|
|
|
49
48
|
} else {
|
|
50
49
|
|
|
51
|
-
const api = new RestApi(this.scope, `${this.config.AppPrefix}-rest-api-without-DNS`, this.createApiProps());
|
|
50
|
+
const api = new RestApi(this.scope, `${this.config.AppPrefix}-rest-api-without-DNS`, this.createApiProps(env));
|
|
52
51
|
|
|
53
52
|
this.createApiKey(this.config, api);
|
|
54
53
|
|
|
@@ -56,7 +55,7 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
|
|
59
|
-
private createApiProps(
|
|
58
|
+
private createApiProps(env: string, zone?: IHostedZone,): RestApiProps {
|
|
60
59
|
|
|
61
60
|
if (this.config.DNS) {
|
|
62
61
|
|
|
@@ -121,7 +120,8 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
121
120
|
});
|
|
122
121
|
}
|
|
123
122
|
|
|
124
|
-
private createCertificate(scope: Construct, zone: IHostedZone, config: MicroserviceProps,
|
|
123
|
+
private createCertificate(scope: Construct, zone: IHostedZone, config: MicroserviceProps,
|
|
124
|
+
env: string) {
|
|
125
125
|
const cert = new CreateCertificate(scope, config, zone, env);
|
|
126
126
|
|
|
127
127
|
cert.certificate.applyRemovalPolicy(RemovalPolicy.DESTROY);
|
|
@@ -150,7 +150,7 @@ export class Api extends BaseResource<IRestApi> {
|
|
|
150
150
|
|
|
151
151
|
protected createResource(scope: Construct) {
|
|
152
152
|
|
|
153
|
-
const api = this.createApi(scope);
|
|
153
|
+
const api = this.createApi(scope, this.env);
|
|
154
154
|
// TODO: ONLY IF CUSTOM MAPPING IS REQUIRED
|
|
155
155
|
// const domain = this.createCustomDomain(scope, this.config);
|
|
156
156
|
|