@fjall/components-infrastructure 0.88.4 → 0.89.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/lib/config/aws/disasterRecovery.js +28 -7
- package/dist/lib/patterns/aws/compute.d.ts +6 -716
- package/dist/lib/patterns/aws/compute.js +24 -427
- package/dist/lib/patterns/aws/computeEc2.d.ts +67 -0
- package/dist/lib/patterns/aws/computeEc2.js +46 -0
- package/dist/lib/patterns/aws/computeEcs.d.ts +446 -0
- package/dist/lib/patterns/aws/computeEcs.js +246 -0
- package/dist/lib/patterns/aws/computeLambda.d.ts +220 -0
- package/dist/lib/patterns/aws/computeLambda.js +147 -0
- package/dist/lib/patterns/aws/domainDelegation.d.ts +8 -0
- package/dist/lib/patterns/aws/domainDelegation.js +54 -0
- package/dist/lib/patterns/aws/domainFactory.d.ts +8 -0
- package/dist/lib/patterns/aws/domainFactory.js +23 -0
- package/dist/lib/patterns/aws/index.d.ts +3 -0
- package/dist/lib/patterns/aws/index.js +5 -1
- package/dist/lib/patterns/aws/interfaces/domain.d.ts +2 -0
- package/dist/lib/patterns/aws/interfaces/domain.js +6 -0
- package/dist/lib/patterns/aws/interfaces/index.d.ts +1 -0
- package/dist/lib/patterns/aws/interfaces/index.js +1 -1
- package/dist/lib/patterns/aws/interfaces/pattern.d.ts +3 -0
- package/dist/lib/patterns/aws/interfaces/pattern.js +1 -1
- package/dist/lib/patterns/aws/payload.js +11 -1
- package/dist/lib/resources/aws/compute/ecs.d.ts +14 -2
- package/dist/lib/resources/aws/compute/ecs.js +69 -24
- package/dist/lib/resources/aws/networking/domain.d.ts +13 -0
- package/dist/lib/resources/aws/networking/domain.js +102 -0
- package/dist/lib/resources/aws/networking/domainCertificate.d.ts +13 -0
- package/dist/lib/resources/aws/networking/domainCertificate.js +28 -0
- package/dist/lib/resources/aws/networking/hostedZone.js +3 -6
- package/dist/lib/resources/aws/networking/index.d.ts +2 -0
- package/dist/lib/resources/aws/networking/index.js +3 -1
- package/dist/lib/utils/capitaliseString.d.ts +1 -18
- package/dist/lib/utils/capitaliseString.js +8 -37
- package/dist/lib/utils/dnsRecords.d.ts +4 -0
- package/dist/lib/utils/dnsRecords.js +108 -0
- package/dist/lib/utils/domainTypes.d.ts +37 -0
- package/dist/lib/utils/domainTypes.js +10 -0
- package/dist/lib/utils/env.js +23 -29
- package/dist/lib/utils/getConfig.js +42 -16
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.js +2 -1
- package/package.json +4 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { type IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
3
|
+
import type { DomainApexProps } from "../../../utils/domainTypes";
|
|
4
|
+
export declare class Domain extends Construct {
|
|
5
|
+
readonly hostedZoneId: string;
|
|
6
|
+
readonly hostedZone: IHostedZone;
|
|
7
|
+
private readonly zoneName;
|
|
8
|
+
constructor(scope: Construct, id: string, props: DomainApexProps);
|
|
9
|
+
private addDelegationRole;
|
|
10
|
+
private addZoneIdOutput;
|
|
11
|
+
private addNameserverOutput;
|
|
12
|
+
private addCertificates;
|
|
13
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Domain = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
const capitaliseString_1 = require("../../../utils/capitaliseString");
|
|
7
|
+
const iam_1 = require("../iam");
|
|
8
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
9
|
+
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
10
|
+
const domainTypes_1 = require("../../../utils/domainTypes");
|
|
11
|
+
const domainCertificate_1 = require("./domainCertificate");
|
|
12
|
+
class Domain extends constructs_1.Construct {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
super(scope, id);
|
|
15
|
+
this.zoneName = props.zoneName;
|
|
16
|
+
if (!props.hostedZoneId) {
|
|
17
|
+
const createdZone = new aws_route53_1.HostedZone(this, `${(0, capitaliseString_1.getSafeZoneName)(props.zoneName)}HostedZone`, {
|
|
18
|
+
zoneName: props.zoneName,
|
|
19
|
+
comment: `Hosted Zone for ${props.zoneName}`
|
|
20
|
+
});
|
|
21
|
+
this.hostedZone = createdZone;
|
|
22
|
+
this.hostedZoneId = createdZone.hostedZoneId;
|
|
23
|
+
this.addDelegationRole(createdZone);
|
|
24
|
+
this.addNameserverOutput(createdZone);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.hostedZoneId = props.hostedZoneId;
|
|
28
|
+
this.hostedZone = aws_route53_1.HostedZone.fromHostedZoneAttributes(this, `${(0, capitaliseString_1.getSafeZoneName)(props.zoneName)}ImportedHostedZone`, {
|
|
29
|
+
hostedZoneId: props.hostedZoneId,
|
|
30
|
+
zoneName: props.zoneName
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
this.addZoneIdOutput();
|
|
34
|
+
if (props.records) {
|
|
35
|
+
(0, domainTypes_1.addDnsRecords)(this, this.hostedZone, this.zoneName, props.records);
|
|
36
|
+
}
|
|
37
|
+
if (props.certificates) {
|
|
38
|
+
this.addCertificates(props.certificates);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
addDelegationRole(zone) {
|
|
42
|
+
const domainLabel = this.zoneName.split(".")[0] ?? "default";
|
|
43
|
+
const safeDomainLabel = (0, capitaliseString_1.toPascalCase)(domainLabel);
|
|
44
|
+
const role = new iam_1.Role(this, `${safeDomainLabel}DelegateHostedZoneRole`, {
|
|
45
|
+
assumedBy: new aws_iam_1.OrganizationPrincipal(aws_cdk_lib_1.Fn.importValue("OrganisationId")),
|
|
46
|
+
roleName: `${domainLabel}DelegateHostedZoneRole`,
|
|
47
|
+
inlinePolicies: {
|
|
48
|
+
["listHostedZones"]: new aws_iam_1.PolicyDocument({
|
|
49
|
+
statements: [
|
|
50
|
+
new aws_iam_1.PolicyStatement({
|
|
51
|
+
actions: ["route53:ListHostedZonesByName"],
|
|
52
|
+
resources: ["*"]
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
}),
|
|
56
|
+
["changeResourceRecordSets"]: new aws_iam_1.PolicyDocument({
|
|
57
|
+
statements: [
|
|
58
|
+
new aws_iam_1.PolicyStatement({
|
|
59
|
+
actions: ["route53:ChangeResourceRecordSets"],
|
|
60
|
+
resources: [`arn:aws:route53:::hostedzone/${zone.hostedZoneId}`]
|
|
61
|
+
})
|
|
62
|
+
]
|
|
63
|
+
})
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
zone.grantDelegation(role);
|
|
67
|
+
new aws_cdk_lib_1.CfnOutput(this, `${safeDomainLabel}DelegateHostedZoneRoleArn`, {
|
|
68
|
+
key: `${safeDomainLabel}DelegateHostedZoneRoleArn`,
|
|
69
|
+
value: role.roleArn,
|
|
70
|
+
exportName: `${domainLabel}DelegateHostedZoneRoleArn`
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
addZoneIdOutput() {
|
|
74
|
+
const safeKey = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(this.zoneName));
|
|
75
|
+
const exports = (0, domainTypes_1.getDomainExportNames)(this.zoneName);
|
|
76
|
+
new aws_cdk_lib_1.CfnOutput(this, `${safeKey}HostedZoneId`, {
|
|
77
|
+
key: `${safeKey}HostedZoneId`,
|
|
78
|
+
value: this.hostedZoneId,
|
|
79
|
+
exportName: exports.hostedZoneId
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
addNameserverOutput(zone) {
|
|
83
|
+
const safeKey = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(this.zoneName));
|
|
84
|
+
new aws_cdk_lib_1.CfnOutput(this, `${safeKey}Nameservers`, {
|
|
85
|
+
key: `${safeKey}Nameservers`,
|
|
86
|
+
value: aws_cdk_lib_1.Fn.join(",", zone.hostedZoneNameServers ?? [])
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
addCertificates(certificates) {
|
|
90
|
+
const safeZone = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(this.zoneName));
|
|
91
|
+
certificates.forEach((cert, index) => {
|
|
92
|
+
const safeCertName = (0, capitaliseString_1.toPascalCase)(cert.domainName.split(".").join(""));
|
|
93
|
+
new domainCertificate_1.DomainCertificate(this, `${safeZone}${safeCertName}Cert${index}`, {
|
|
94
|
+
domainName: cert.domainName,
|
|
95
|
+
subjectAlternativeNames: cert.subjectAlternativeNames,
|
|
96
|
+
hostedZone: this.hostedZone
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.Domain = Domain;
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvbmV0d29ya2luZy9kb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUE0QztBQUM1QyxzRUFBZ0Y7QUFDaEYsZ0NBQThCO0FBQzlCLGlEQUk2QjtBQUM3Qix5REFHaUM7QUFLakMsNERBR29DO0FBQ3BDLDJEQUF3RDtBQUV4RCxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUtuQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRS9CLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSx3QkFBYSxDQUNuQyxJQUFJLEVBQ0osR0FBRyxJQUFBLGtDQUFlLEVBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQzlDO2dCQUNFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxFQUFFLG1CQUFtQixLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzdDLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsd0JBQWEsQ0FBQyx3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QyxJQUFBLGtDQUFlLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFN0QsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sYUFBYSxFQUFFO1lBQzNDLEdBQUcsRUFBRSxHQUFHLE9BQU8sYUFBYTtZQUM1QixLQUFLLEVBQUUsZ0JBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxFQUFFLENBQUM7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUFnQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFZLEVBQUMsSUFBQSxrQ0FBZSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTlELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBQSwrQkFBWSxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxHQUFHLFlBQVksT0FBTyxLQUFLLEVBQUUsRUFBRTtnQkFDcEUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQix1QkFBdUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO2dCQUNyRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsSEQsd0JBa0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgRm4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSwgZ2V0U2FmZVpvbmVOYW1lIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2NhcGl0YWxpc2VTdHJpbmdcIjtcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQge1xuICBPcmdhbml6YXRpb25QcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEhvc3RlZFpvbmUgYXMgQVdTSG9zdGVkWm9uZSxcbiAgdHlwZSBJSG9zdGVkWm9uZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB0eXBlIHtcbiAgRG9tYWluQXBleFByb3BzLFxuICBDZXJ0aWZpY2F0ZUlucHV0XG59IGZyb20gXCIuLi8uLi8uLi91dGlscy9kb21haW5UeXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0RG9tYWluRXhwb3J0TmFtZXMsXG4gIGFkZERuc1JlY29yZHNcbn0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RvbWFpblR5cGVzXCI7XG5pbXBvcnQgeyBEb21haW5DZXJ0aWZpY2F0ZSB9IGZyb20gXCIuL2RvbWFpbkNlcnRpZmljYXRlXCI7XG5cbmV4cG9ydCBjbGFzcyBEb21haW4gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgaG9zdGVkWm9uZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBob3N0ZWRab25lOiBJSG9zdGVkWm9uZTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb21haW5BcGV4UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy56b25lTmFtZSA9IHByb3BzLnpvbmVOYW1lO1xuXG4gICAgaWYgKCFwcm9wcy5ob3N0ZWRab25lSWQpIHtcbiAgICAgIGNvbnN0IGNyZWF0ZWRab25lID0gbmV3IEFXU0hvc3RlZFpvbmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke2dldFNhZmVab25lTmFtZShwcm9wcy56b25lTmFtZSl9SG9zdGVkWm9uZWAsXG4gICAgICAgIHtcbiAgICAgICAgICB6b25lTmFtZTogcHJvcHMuem9uZU5hbWUsXG4gICAgICAgICAgY29tbWVudDogYEhvc3RlZCBab25lIGZvciAke3Byb3BzLnpvbmVOYW1lfWBcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZSA9IGNyZWF0ZWRab25lO1xuICAgICAgdGhpcy5ob3N0ZWRab25lSWQgPSBjcmVhdGVkWm9uZS5ob3N0ZWRab25lSWQ7XG4gICAgICB0aGlzLmFkZERlbGVnYXRpb25Sb2xlKGNyZWF0ZWRab25lKTtcbiAgICAgIHRoaXMuYWRkTmFtZXNlcnZlck91dHB1dChjcmVhdGVkWm9uZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZUlkID0gcHJvcHMuaG9zdGVkWm9uZUlkO1xuICAgICAgdGhpcy5ob3N0ZWRab25lID0gQVdTSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke2dldFNhZmVab25lTmFtZShwcm9wcy56b25lTmFtZSl9SW1wb3J0ZWRIb3N0ZWRab25lYCxcbiAgICAgICAge1xuICAgICAgICAgIGhvc3RlZFpvbmVJZDogcHJvcHMuaG9zdGVkWm9uZUlkLFxuICAgICAgICAgIHpvbmVOYW1lOiBwcm9wcy56b25lTmFtZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYWRkWm9uZUlkT3V0cHV0KCk7XG5cbiAgICBpZiAocHJvcHMucmVjb3Jkcykge1xuICAgICAgYWRkRG5zUmVjb3Jkcyh0aGlzLCB0aGlzLmhvc3RlZFpvbmUsIHRoaXMuem9uZU5hbWUsIHByb3BzLnJlY29yZHMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5jZXJ0aWZpY2F0ZXMpIHtcbiAgICAgIHRoaXMuYWRkQ2VydGlmaWNhdGVzKHByb3BzLmNlcnRpZmljYXRlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREZWxlZ2F0aW9uUm9sZSh6b25lOiBBV1NIb3N0ZWRab25lKSB7XG4gICAgY29uc3QgZG9tYWluTGFiZWwgPSB0aGlzLnpvbmVOYW1lLnNwbGl0KFwiLlwiKVswXSA/PyBcImRlZmF1bHRcIjtcbiAgICBjb25zdCBzYWZlRG9tYWluTGFiZWwgPSB0b1Bhc2NhbENhc2UoZG9tYWluTGFiZWwpO1xuXG4gICAgY29uc3Qgcm9sZSA9IG5ldyBSb2xlKHRoaXMsIGAke3NhZmVEb21haW5MYWJlbH1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLFxuICAgICAgcm9sZU5hbWU6IGAke2RvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVgLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW1wibGlzdEhvc3RlZFpvbmVzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcImNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7em9uZS5ob3N0ZWRab25lSWR9YF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgem9uZS5ncmFudERlbGVnYXRpb24ocm9sZSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3NhZmVEb21haW5MYWJlbH1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlQXJuYCwge1xuICAgICAga2V5OiBgJHtzYWZlRG9tYWluTGFiZWx9RGVsZWdhdGVIb3N0ZWRab25lUm9sZUFybmAsXG4gICAgICB2YWx1ZTogcm9sZS5yb2xlQXJuLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZG9tYWluTGFiZWx9RGVsZWdhdGVIb3N0ZWRab25lUm9sZUFybmBcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkWm9uZUlkT3V0cHV0KCkge1xuICAgIGNvbnN0IHNhZmVLZXkgPSB0b1Bhc2NhbENhc2UoZ2V0U2FmZVpvbmVOYW1lKHRoaXMuem9uZU5hbWUpKTtcbiAgICBjb25zdCBleHBvcnRzID0gZ2V0RG9tYWluRXhwb3J0TmFtZXModGhpcy56b25lTmFtZSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3NhZmVLZXl9SG9zdGVkWm9uZUlkYCwge1xuICAgICAga2V5OiBgJHtzYWZlS2V5fUhvc3RlZFpvbmVJZGAsXG4gICAgICB2YWx1ZTogdGhpcy5ob3N0ZWRab25lSWQsXG4gICAgICBleHBvcnROYW1lOiBleHBvcnRzLmhvc3RlZFpvbmVJZFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGROYW1lc2VydmVyT3V0cHV0KHpvbmU6IEFXU0hvc3RlZFpvbmUpIHtcbiAgICBjb25zdCBzYWZlS2V5ID0gdG9QYXNjYWxDYXNlKGdldFNhZmVab25lTmFtZSh0aGlzLnpvbmVOYW1lKSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3NhZmVLZXl9TmFtZXNlcnZlcnNgLCB7XG4gICAgICBrZXk6IGAke3NhZmVLZXl9TmFtZXNlcnZlcnNgLFxuICAgICAgdmFsdWU6IEZuLmpvaW4oXCIsXCIsIHpvbmUuaG9zdGVkWm9uZU5hbWVTZXJ2ZXJzID8/IFtdKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDZXJ0aWZpY2F0ZXMoY2VydGlmaWNhdGVzOiBDZXJ0aWZpY2F0ZUlucHV0W10pIHtcbiAgICBjb25zdCBzYWZlWm9uZSA9IHRvUGFzY2FsQ2FzZShnZXRTYWZlWm9uZU5hbWUodGhpcy56b25lTmFtZSkpO1xuXG4gICAgY2VydGlmaWNhdGVzLmZvckVhY2goKGNlcnQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzYWZlQ2VydE5hbWUgPSB0b1Bhc2NhbENhc2UoY2VydC5kb21haW5OYW1lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpKTtcbiAgICAgIG5ldyBEb21haW5DZXJ0aWZpY2F0ZSh0aGlzLCBgJHtzYWZlWm9uZX0ke3NhZmVDZXJ0TmFtZX1DZXJ0JHtpbmRleH1gLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IGNlcnQuZG9tYWluTmFtZSxcbiAgICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IGNlcnQuc3ViamVjdEFsdGVybmF0aXZlTmFtZXMsXG4gICAgICAgIGhvc3RlZFpvbmU6IHRoaXMuaG9zdGVkWm9uZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
|
|
3
|
+
import { type IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
4
|
+
export interface DomainCertificateProps {
|
|
5
|
+
domainName: string;
|
|
6
|
+
subjectAlternativeNames?: string[];
|
|
7
|
+
hostedZone: IHostedZone;
|
|
8
|
+
}
|
|
9
|
+
export declare class DomainCertificate extends Construct {
|
|
10
|
+
readonly certificate: Certificate;
|
|
11
|
+
readonly certificateArn: string;
|
|
12
|
+
constructor(scope: Construct, id: string, props: DomainCertificateProps);
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainCertificate = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
|
|
7
|
+
const capitaliseString_1 = require("../../../utils/capitaliseString");
|
|
8
|
+
const domainTypes_1 = require("../../../utils/domainTypes");
|
|
9
|
+
class DomainCertificate extends constructs_1.Construct {
|
|
10
|
+
constructor(scope, id, props) {
|
|
11
|
+
super(scope, id);
|
|
12
|
+
this.certificate = new aws_certificatemanager_1.Certificate(this, "Certificate", {
|
|
13
|
+
domainName: props.domainName,
|
|
14
|
+
subjectAlternativeNames: props.subjectAlternativeNames,
|
|
15
|
+
validation: aws_certificatemanager_1.CertificateValidation.fromDns(props.hostedZone)
|
|
16
|
+
});
|
|
17
|
+
this.certificateArn = this.certificate.certificateArn;
|
|
18
|
+
const safeKey = (0, capitaliseString_1.toPascalCase)(props.domainName.split(".").join(""));
|
|
19
|
+
const exports = (0, domainTypes_1.getDomainExportNames)(props.domainName);
|
|
20
|
+
new aws_cdk_lib_1.CfnOutput(this, `${safeKey}CertificateArn`, {
|
|
21
|
+
key: `${safeKey}CertificateArn`,
|
|
22
|
+
value: this.certificateArn,
|
|
23
|
+
exportName: exports.certificateArn
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.DomainCertificate = DomainCertificate;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluQ2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2RvbWFpbkNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF1QztBQUN2Qyw2Q0FBd0M7QUFDeEMsK0VBRzRDO0FBRTVDLHNFQUErRDtBQUMvRCw0REFBa0U7QUFRbEUsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUk5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLG9DQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUN0RCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLHVCQUF1QjtZQUN0RCxVQUFVLEVBQUUsOENBQXFCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQUV0RCxNQUFNLE9BQU8sR0FBRyxJQUFBLCtCQUFZLEVBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQ0FBb0IsRUFBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sZ0JBQWdCLEVBQUU7WUFDOUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxnQkFBZ0I7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzFCLFVBQVUsRUFBRSxPQUFPLENBQUMsY0FBYztTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2QkQsOENBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQ2VydGlmaWNhdGUsXG4gIENlcnRpZmljYXRlVmFsaWRhdGlvblxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgdHlwZSBJSG9zdGVkWm9uZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgdG9QYXNjYWxDYXNlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2NhcGl0YWxpc2VTdHJpbmdcIjtcbmltcG9ydCB7IGdldERvbWFpbkV4cG9ydE5hbWVzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RvbWFpblR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluQ2VydGlmaWNhdGVQcm9wcyB7XG4gIGRvbWFpbk5hbWU6IHN0cmluZztcbiAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM/OiBzdHJpbmdbXTtcbiAgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7XG59XG5cbmV4cG9ydCBjbGFzcyBEb21haW5DZXJ0aWZpY2F0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGU7XG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZUFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb21haW5DZXJ0aWZpY2F0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuY2VydGlmaWNhdGUgPSBuZXcgQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IHByb3BzLnN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzLFxuICAgICAgdmFsaWRhdGlvbjogQ2VydGlmaWNhdGVWYWxpZGF0aW9uLmZyb21EbnMocHJvcHMuaG9zdGVkWm9uZSlcbiAgICB9KTtcblxuICAgIHRoaXMuY2VydGlmaWNhdGVBcm4gPSB0aGlzLmNlcnRpZmljYXRlLmNlcnRpZmljYXRlQXJuO1xuXG4gICAgY29uc3Qgc2FmZUtleSA9IHRvUGFzY2FsQ2FzZShwcm9wcy5kb21haW5OYW1lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpKTtcbiAgICBjb25zdCBleHBvcnRzID0gZ2V0RG9tYWluRXhwb3J0TmFtZXMocHJvcHMuZG9tYWluTmFtZSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtzYWZlS2V5fUNlcnRpZmljYXRlQXJuYCwge1xuICAgICAga2V5OiBgJHtzYWZlS2V5fUNlcnRpZmljYXRlQXJuYCxcbiAgICAgIHZhbHVlOiB0aGlzLmNlcnRpZmljYXRlQXJuLFxuICAgICAgZXhwb3J0TmFtZTogZXhwb3J0cy5jZXJ0aWZpY2F0ZUFyblxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -7,12 +7,9 @@ const capitaliseString_1 = require("../../../utils/capitaliseString");
|
|
|
7
7
|
const iam_1 = require("../iam");
|
|
8
8
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
9
9
|
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
10
|
-
function getSafeZoneName(zoneName) {
|
|
11
|
-
return zoneName.split(".").join("");
|
|
12
|
-
}
|
|
13
10
|
class HostedZoneFactory {
|
|
14
11
|
static import(stack, hostedZoneId, zoneName) {
|
|
15
|
-
const safeZoneName = getSafeZoneName(zoneName);
|
|
12
|
+
const safeZoneName = (0, capitaliseString_1.getSafeZoneName)(zoneName);
|
|
16
13
|
return new HostedZone(stack.getStack(), `${safeZoneName}HostedZone`, {
|
|
17
14
|
hostedZoneId: hostedZoneId,
|
|
18
15
|
zoneName: zoneName
|
|
@@ -40,7 +37,7 @@ class HostedZone extends constructs_1.Construct {
|
|
|
40
37
|
return this.hostedZone || this.importedHostedZone;
|
|
41
38
|
}
|
|
42
39
|
safeZoneName() {
|
|
43
|
-
return getSafeZoneName(this.zoneName);
|
|
40
|
+
return (0, capitaliseString_1.getSafeZoneName)(this.zoneName);
|
|
44
41
|
}
|
|
45
42
|
addHostedZone(zoneName) {
|
|
46
43
|
this.hostedZone = new aws_route53_1.HostedZone(this, `${this.safeZoneName()}HostedZone`, {
|
|
@@ -150,4 +147,4 @@ class HostedZone extends constructs_1.Construct {
|
|
|
150
147
|
}
|
|
151
148
|
}
|
|
152
149
|
exports.HostedZone = HostedZone;
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsNkNBQXlEO0FBQ3pELHNFQUErRDtBQUMvRCxnQ0FBOEI7QUFDOUIsaURBSTZCO0FBQzdCLHlEQWFpQztBQUlqQyxTQUFTLGVBQWUsQ0FBQyxRQUFnQjtJQUN2QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFPRCxNQUFhLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWUsRUFBRSxZQUFvQixFQUFFLFFBQWdCO1FBQ25FLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFlBQVksWUFBWSxFQUFFO1lBQ25FLFlBQVksRUFBRSxZQUFZO1lBQzFCLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVRELDhDQVNDO0FBRUQsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFRdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUUvQiwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZ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L0IsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDN0IsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLElBQUksa0JBQWtCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDdkUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVLRCxnQ0E0S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBGbiwgU3RhY2ssIFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9jYXBpdGFsaXNlU3RyaW5nXCI7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IHtcbiAgT3JnYW5pemF0aW9uUHJpbmNpcGFsLFxuICBQb2xpY3lEb2N1bWVudCxcbiAgUG9saWN5U3RhdGVtZW50XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQge1xuICBBUmVjb3JkLFxuICB0eXBlIEFSZWNvcmRQcm9wcyxcbiAgQ25hbWVSZWNvcmQsXG4gIHR5cGUgQ25hbWVSZWNvcmRQcm9wcyxcbiAgSG9zdGVkWm9uZSBhcyBBV1NIb3N0ZWRab25lLFxuICB0eXBlIElIb3N0ZWRab25lLFxuICBNeFJlY29yZCxcbiAgdHlwZSBNeFJlY29yZFByb3BzLFxuICBOc1JlY29yZCxcbiAgdHlwZSBOc1JlY29yZFByb3BzLFxuICBUeHRSZWNvcmQsXG4gIHR5cGUgVHh0UmVjb3JkUHJvcHNcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5cbmltcG9ydCB7IHR5cGUgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYmFzZS9hd3NTdGFja1wiO1xuXG5mdW5jdGlvbiBnZXRTYWZlWm9uZU5hbWUoem9uZU5hbWU6IHN0cmluZykge1xuICByZXR1cm4gem9uZU5hbWUuc3BsaXQoXCIuXCIpLmpvaW4oXCJcIik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdGVkWm9uZVByb3BzIHtcbiAgem9uZU5hbWU6IHN0cmluZztcbiAgaG9zdGVkWm9uZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZUZhY3Rvcnkge1xuICBzdGF0aWMgaW1wb3J0KHN0YWNrOiBBd3NTdGFjaywgaG9zdGVkWm9uZUlkOiBzdHJpbmcsIHpvbmVOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzYWZlWm9uZU5hbWUgPSBnZXRTYWZlWm9uZU5hbWUoem9uZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5ldyBIb3N0ZWRab25lKHN0YWNrLmdldFN0YWNrKCksIGAke3NhZmVab25lTmFtZX1Ib3N0ZWRab25lYCwge1xuICAgICAgaG9zdGVkWm9uZUlkOiBob3N0ZWRab25lSWQsXG4gICAgICB6b25lTmFtZTogem9uZU5hbWVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgaG9zdGVkWm9uZSE6IEFXU0hvc3RlZFpvbmU7XG4gIHByaXZhdGUgaG9zdGVkWm9uZUlkITogc3RyaW5nO1xuICBwcml2YXRlIGltcG9ydGVkSG9zdGVkWm9uZSE6IElIb3N0ZWRab25lO1xuICBwcml2YXRlIHpvbmVOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzY29wZTogQ29uc3RydWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBIb3N0ZWRab25lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMuem9uZU5hbWUgPSBwcm9wcy56b25lTmFtZTtcblxuICAgIC8vIElmIGEgaG9zdGVkWm9uZUlkIGlzIHByb3ZpZGVkIGltcG9ydCBpdCwgdW5sZXNzIGNyZWF0ZSBhIG5ldyBob3N0ZWQgem9uZVxuICAgIGlmICghcHJvcHMuaG9zdGVkWm9uZUlkKSB7XG4gICAgICB0aGlzLmFkZEhvc3RlZFpvbmUocHJvcHMuem9uZU5hbWUpO1xuICAgICAgdGhpcy5ob3N0ZWRab25lSWQgPSB0aGlzLmhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkO1xuICAgICAgdGhpcy5kZWxlZ2F0ZUhvc3RlZFpvbmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ob3N0ZWRab25lSWQgPSBwcm9wcy5ob3N0ZWRab25lSWQ7XG4gICAgICB0aGlzLmltcG9ydEhvc3RlZFpvbmUocHJvcHMuem9uZU5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldEludGVybmFsSG9zdGVkWm9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0ZWRab25lIHx8IHRoaXMuaW1wb3J0ZWRIb3N0ZWRab25lO1xuICB9XG5cbiAgc2FmZVpvbmVOYW1lKCkge1xuICAgIHJldHVybiBnZXRTYWZlWm9uZU5hbWUodGhpcy56b25lTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEhvc3RlZFpvbmUoem9uZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaG9zdGVkWm9uZSA9IG5ldyBBV1NIb3N0ZWRab25lKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3RoaXMuc2FmZVpvbmVOYW1lKCl9SG9zdGVkWm9uZWAsXG4gICAgICB7XG4gICAgICAgIHpvbmVOYW1lOiB6b25lTmFtZSxcbiAgICAgICAgY29tbWVudDogYEhvc3RlZCBab25lIGZvciAke3pvbmVOYW1lfWBcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBvcnRIb3N0ZWRab25lKHpvbmVOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSA9IEFXU0hvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVBdHRyaWJ1dGVzKFxuICAgICAgLy8gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMgZXhwbGljaXRseSBtdXN0IGJlIHBhc3NlZCBhIHN0YWNrIGFzIHBhcmVudCBzY29wZVxuICAgICAgdGhpcy5zY29wZSxcblxuICAgICAgLy8gVXNlIHNhZmVab25lTmFtZSBpbiB0aGUgaWQgc28gd2UgY2FuIHRoZW9yZXRpY2FsbHlcbiAgICAgIC8vICBpbXBvcnQgbXVsdGlwbGUgaG9zdGVkIHpvbmVzIGluIGEgc2luZ2xlIGFwcFxuICAgICAgYCR7dGhpcy5zYWZlWm9uZU5hbWUoKX1JbXBvcnRlZEhvc3RlZFpvbmVgLFxuICAgICAge1xuICAgICAgICBob3N0ZWRab25lSWQ6IHRoaXMuaG9zdGVkWm9uZUlkLFxuICAgICAgICB6b25lTmFtZTogem9uZU5hbWVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgVGFncy5vZih0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSkuYWRkKFxuICAgICAgXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgXCJtYW5hZ2VtZW50XCJcbiAgICApO1xuICAgIFRhZ3Mub2YodGhpcy5pbXBvcnRlZEhvc3RlZFpvbmUpLmFkZChcbiAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246c2VydmljZVwiLFxuICAgICAgXCJob3N0ZWRab25lXCJcbiAgICApO1xuICAgIFRhZ3Mub2YodGhpcy5pbXBvcnRlZEhvc3RlZFpvbmUpLmFkZChcbiAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246ZG9tYWluXCIsXG4gICAgICB6b25lTmFtZVxuICAgICk7XG5cbiAgICAvLyBNYWtlIGV4cG9ydCBuYW1lIHVuaXF1ZSBieSBpbmNsdWRpbmcgdGhlIHN0YWNrIG5hbWUgdG8gYXZvaWQgY29uZmxpY3RzXG4gICAgLy8gd2hlbiBtdWx0aXBsZSBzdGFja3MgaW1wb3J0IHRoZSBzYW1lIGhvc3RlZCB6b25lXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBzdGFja05hbWUgPSBzdGFjay5zdGFja05hbWU7XG4gICAgY29uc3QgZXhwb3J0TmFtZSA9IGAke3N0YWNrTmFtZX0ke3RoaXMuc2FmZVpvbmVOYW1lKCl9SG9zdGVkWm9uZUlkYDtcblxuICAgIGNvbnN0IHNhZmVLZXkgPSB0b1Bhc2NhbENhc2UodGhpcy5zYWZlWm9uZU5hbWUoKSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtzYWZlS2V5fUhvc3RlZFpvbmVJZGAsIHtcbiAgICAgIGtleTogYCR7c2FmZUtleX1Ib3N0ZWRab25lSWRgLFxuICAgICAgdmFsdWU6IHRoaXMuaG9zdGVkWm9uZUlkLFxuICAgICAgZXhwb3J0TmFtZTogZXhwb3J0TmFtZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxlZ2F0ZUhvc3RlZFpvbmUoKSB7XG4gICAgY29uc3QgZG9tYWluTGFiZWwgPSB0aGlzLmhvc3RlZFpvbmUuem9uZU5hbWUuc3BsaXQoXCIuXCIpWzBdID8/IFwiZGVmYXVsdFwiO1xuICAgIGNvbnN0IHNhZmVEb21haW5MYWJlbCA9IHRvUGFzY2FsQ2FzZShkb21haW5MYWJlbCk7XG4gICAgY29uc3Qgcm9sZSA9IG5ldyBSb2xlKHRoaXMsIGAke3NhZmVEb21haW5MYWJlbH1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLFxuICAgICAgcm9sZU5hbWU6IGAke2RvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVgLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW1wibGlzdEhvc3RlZFpvbmVzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcImNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIGBhcm46YXdzOnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7dGhpcy5ob3N0ZWRab25lLmhvc3RlZFpvbmVJZH1gXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5ob3N0ZWRab25lLmdyYW50RGVsZWdhdGlvbihyb2xlKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJEZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlQXJuXCIsIHtcbiAgICAgIGtleTogYCR7c2FmZURvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVBcm5gLFxuICAgICAgdmFsdWU6IHJvbGUucm9sZUFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2RvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVBcm5gXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkQVJlY29yZChwcm9wczogT21pdDxBUmVjb3JkUHJvcHMsIFwiem9uZVwiPikge1xuICAgIG5ldyBBUmVjb3JkKHRoaXMsIFwiQVJlY29yZFwiLCB7XG4gICAgICB6b25lOiB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSxcbiAgICAgIHJlY29yZE5hbWU6IHByb3BzLnJlY29yZE5hbWUsXG4gICAgICBjb21tZW50OlxuICAgICAgICBwcm9wcy5jb21tZW50IHx8IGBBIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdGFyZ2V0OiBwcm9wcy50YXJnZXQsXG4gICAgICB0dGw6IHByb3BzLnR0bFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZENuYW1lKHByb3BzOiBPbWl0PENuYW1lUmVjb3JkUHJvcHMsIFwiem9uZVwiPikge1xuICAgIG5ldyBDbmFtZVJlY29yZCh0aGlzLCBcIkNuYW1lUmVjb3JkXCIsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICB6b25lOiB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSxcbiAgICAgIGNvbW1lbnQ6XG4gICAgICAgIHByb3BzLmNvbW1lbnQgfHwgYENOQU1FIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdHRsOiBwcm9wcy50dGxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRNeChwcm9wczogT21pdDxNeFJlY29yZFByb3BzLCBcInpvbmVcIj4pIHtcbiAgICBuZXcgTXhSZWNvcmQodGhpcywgXCJNeFJlY29yZFwiLCB7XG4gICAgICB6b25lOiB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSxcbiAgICAgIGNvbW1lbnQ6XG4gICAgICAgIHByb3BzLmNvbW1lbnQgfHwgYE1YIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdmFsdWVzOiBwcm9wcy52YWx1ZXMsXG4gICAgICB0dGw6IHByb3BzLnR0bFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZE5TKHByb3BzOiBPbWl0PE5zUmVjb3JkUHJvcHMsIFwiem9uZVwiPikge1xuICAgIG5ldyBOc1JlY29yZCh0aGlzLCBcIk5zUmVjb3JkXCIsIHtcbiAgICAgIHpvbmU6IHRoaXMuaW1wb3J0ZWRIb3N0ZWRab25lLFxuICAgICAgY29tbWVudDpcbiAgICAgICAgcHJvcHMuY29tbWVudCB8fCBgTlMgUmVjb3JkIGZvciAke3RoaXMuaW1wb3J0ZWRIb3N0ZWRab25lLnpvbmVOYW1lfWAsXG4gICAgICB2YWx1ZXM6IHByb3BzLnZhbHVlcyxcbiAgICAgIHR0bDogcHJvcHMudHRsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHh0KHByb3BzOiBPbWl0PFR4dFJlY29yZFByb3BzLCBcInpvbmVcIj4pIHtcbiAgICBuZXcgVHh0UmVjb3JkKHRoaXMsIFwiVHh0UmVjb3JkXCIsIHtcbiAgICAgIHpvbmU6IHRoaXMuaW1wb3J0ZWRIb3N0ZWRab25lLFxuICAgICAgY29tbWVudDpcbiAgICAgICAgcHJvcHMuY29tbWVudCB8fCBgVFhUIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdmFsdWVzOiBwcm9wcy52YWx1ZXMsXG4gICAgICB0dGw6IHByb3BzLnR0bFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsNkNBQXlEO0FBQ3pELHNFQUFnRjtBQUNoRixnQ0FBOEI7QUFDOUIsaURBSTZCO0FBQzdCLHlEQWFpQztBQVNqQyxNQUFhLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWUsRUFBRSxZQUFvQixFQUFFLFFBQWdCO1FBQ25FLE1BQU0sWUFBWSxHQUFHLElBQUEsa0NBQWUsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUUvQyxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFlBQVksWUFBWSxFQUFFO1lBQ25FLFlBQVksRUFBRSxZQUFZO1lBQzFCLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVRELDhDQVNDO0FBRUQsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFRdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUUvQiwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNwRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBQSxrQ0FBZSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWdCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBYSxDQUNqQyxJQUFJLEVBQ0osR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksRUFDbEM7WUFDRSxRQUFRLEVBQUUsUUFBUTtZQUNsQixPQUFPLEVBQUUsbUJBQW1CLFFBQVEsRUFBRTtTQUN2QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsUUFBZ0I7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHdCQUFhLENBQUMsd0JBQXdCO1FBQzlELHdGQUF3RjtRQUN4RixJQUFJLENBQUMsS0FBSztRQUVWLHFEQUFxRDtRQUNyRCxnREFBZ0Q7UUFDaEQsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUMxQztZQUNFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUNGLENBQUM7UUFFRixrQkFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQ2xDLGtDQUFrQyxFQUNsQyxZQUFZLENBQ2IsQ0FBQztRQUNGLGtCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FDbEMsOEJBQThCLEVBQzlCLFlBQVksQ0FDYixDQUFDO1FBQ0Ysa0JBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUNsQyw2QkFBNkIsRUFDN0IsUUFBUSxDQUNULENBQUM7UUFFRix5RUFBeUU7UUFDekUsbURBQW1EO1FBQ25ELE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7UUFFcEUsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQkFBWSxFQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLGNBQWMsRUFBRTtZQUM1QyxHQUFHLEVBQUUsR0FBRyxPQUFPLGNBQWM7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxJQUFBLCtCQUFZLEVBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsZUFBZSx3QkFBd0IsRUFBRTtZQUN0RSxTQUFTLEVBQUUsSUFBSSwrQkFBcUIsQ0FBQyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RFLFFBQVEsRUFBRSxHQUFHLFdBQVcsd0JBQXdCO1lBQ2hELGNBQWMsRUFBRTtnQkFDZCxDQUFDLGlCQUFpQixDQUFDLEVBQUUsSUFBSSx3QkFBYyxDQUFDO29CQUN0QyxVQUFVLEVBQUU7d0JBQ1YsSUFBSSx5QkFBZSxDQUFDOzRCQUNsQixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQzs0QkFDMUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO3lCQUNqQixDQUFDO3FCQUNIO2lCQUNGLENBQUM7Z0JBQ0YsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLElBQUksd0JBQWMsQ0FBQztvQkFDL0MsVUFBVSxFQUFFO3dCQUNWLElBQUkseUJBQWUsQ0FBQzs0QkFDbEIsT0FBTyxFQUFFLENBQUMsa0NBQWtDLENBQUM7NEJBQzdDLFNBQVMsRUFBRTtnQ0FDVCxnQ0FBZ0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7NkJBQy9EO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRTtZQUMvQyxHQUFHLEVBQUUsR0FBRyxlQUFlLDJCQUEyQjtZQUNsRCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbkIsVUFBVSxFQUFFLEdBQUcsV0FBVywyQkFBMkI7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFpQztRQUNqRCxJQUFJLHFCQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMzQixJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUM3QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLElBQUksZ0JBQWdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDckUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBcUM7UUFDbkQsSUFBSSx5QkFBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDbkMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzdCLE9BQU8sRUFDTCxLQUFLLENBQUMsT0FBTyxJQUFJLG9CQUFvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFO1lBQ3pFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBa0M7UUFDN0MsSUFBSSxzQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDN0IsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLElBQUksaUJBQWlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDdEUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBa0M7UUFDN0MsSUFBSSxzQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDN0IsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLElBQUksaUJBQWlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDdEUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBbUM7UUFDL0MsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDN0IsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLElBQUksa0JBQWtCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDdkUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVLRCxnQ0E0S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBGbiwgU3RhY2ssIFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSwgZ2V0U2FmZVpvbmVOYW1lIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2NhcGl0YWxpc2VTdHJpbmdcIjtcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQge1xuICBPcmdhbml6YXRpb25QcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEFSZWNvcmQsXG4gIHR5cGUgQVJlY29yZFByb3BzLFxuICBDbmFtZVJlY29yZCxcbiAgdHlwZSBDbmFtZVJlY29yZFByb3BzLFxuICBIb3N0ZWRab25lIGFzIEFXU0hvc3RlZFpvbmUsXG4gIHR5cGUgSUhvc3RlZFpvbmUsXG4gIE14UmVjb3JkLFxuICB0eXBlIE14UmVjb3JkUHJvcHMsXG4gIE5zUmVjb3JkLFxuICB0eXBlIE5zUmVjb3JkUHJvcHMsXG4gIFR4dFJlY29yZCxcbiAgdHlwZSBUeHRSZWNvcmRQcm9wc1xufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcblxuaW1wb3J0IHsgdHlwZSBBd3NTdGFjayB9IGZyb20gXCIuLi9iYXNlL2F3c1N0YWNrXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdGVkWm9uZVByb3BzIHtcbiAgem9uZU5hbWU6IHN0cmluZztcbiAgaG9zdGVkWm9uZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZUZhY3Rvcnkge1xuICBzdGF0aWMgaW1wb3J0KHN0YWNrOiBBd3NTdGFjaywgaG9zdGVkWm9uZUlkOiBzdHJpbmcsIHpvbmVOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzYWZlWm9uZU5hbWUgPSBnZXRTYWZlWm9uZU5hbWUoem9uZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5ldyBIb3N0ZWRab25lKHN0YWNrLmdldFN0YWNrKCksIGAke3NhZmVab25lTmFtZX1Ib3N0ZWRab25lYCwge1xuICAgICAgaG9zdGVkWm9uZUlkOiBob3N0ZWRab25lSWQsXG4gICAgICB6b25lTmFtZTogem9uZU5hbWVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSG9zdGVkWm9uZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgaG9zdGVkWm9uZSE6IEFXU0hvc3RlZFpvbmU7XG4gIHByaXZhdGUgaG9zdGVkWm9uZUlkITogc3RyaW5nO1xuICBwcml2YXRlIGltcG9ydGVkSG9zdGVkWm9uZSE6IElIb3N0ZWRab25lO1xuICBwcml2YXRlIHpvbmVOYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzY29wZTogQ29uc3RydWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBIb3N0ZWRab25lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMuem9uZU5hbWUgPSBwcm9wcy56b25lTmFtZTtcblxuICAgIC8vIElmIGEgaG9zdGVkWm9uZUlkIGlzIHByb3ZpZGVkIGltcG9ydCBpdCwgdW5sZXNzIGNyZWF0ZSBhIG5ldyBob3N0ZWQgem9uZVxuICAgIGlmICghcHJvcHMuaG9zdGVkWm9uZUlkKSB7XG4gICAgICB0aGlzLmFkZEhvc3RlZFpvbmUocHJvcHMuem9uZU5hbWUpO1xuICAgICAgdGhpcy5ob3N0ZWRab25lSWQgPSB0aGlzLmhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkO1xuICAgICAgdGhpcy5kZWxlZ2F0ZUhvc3RlZFpvbmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ob3N0ZWRab25lSWQgPSBwcm9wcy5ob3N0ZWRab25lSWQ7XG4gICAgICB0aGlzLmltcG9ydEhvc3RlZFpvbmUocHJvcHMuem9uZU5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldEludGVybmFsSG9zdGVkWm9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0ZWRab25lIHx8IHRoaXMuaW1wb3J0ZWRIb3N0ZWRab25lO1xuICB9XG5cbiAgc2FmZVpvbmVOYW1lKCkge1xuICAgIHJldHVybiBnZXRTYWZlWm9uZU5hbWUodGhpcy56b25lTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEhvc3RlZFpvbmUoem9uZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaG9zdGVkWm9uZSA9IG5ldyBBV1NIb3N0ZWRab25lKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3RoaXMuc2FmZVpvbmVOYW1lKCl9SG9zdGVkWm9uZWAsXG4gICAgICB7XG4gICAgICAgIHpvbmVOYW1lOiB6b25lTmFtZSxcbiAgICAgICAgY29tbWVudDogYEhvc3RlZCBab25lIGZvciAke3pvbmVOYW1lfWBcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBvcnRIb3N0ZWRab25lKHpvbmVOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSA9IEFXU0hvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVBdHRyaWJ1dGVzKFxuICAgICAgLy8gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMgZXhwbGljaXRseSBtdXN0IGJlIHBhc3NlZCBhIHN0YWNrIGFzIHBhcmVudCBzY29wZVxuICAgICAgdGhpcy5zY29wZSxcblxuICAgICAgLy8gVXNlIHNhZmVab25lTmFtZSBpbiB0aGUgaWQgc28gd2UgY2FuIHRoZW9yZXRpY2FsbHlcbiAgICAgIC8vICBpbXBvcnQgbXVsdGlwbGUgaG9zdGVkIHpvbmVzIGluIGEgc2luZ2xlIGFwcFxuICAgICAgYCR7dGhpcy5zYWZlWm9uZU5hbWUoKX1JbXBvcnRlZEhvc3RlZFpvbmVgLFxuICAgICAge1xuICAgICAgICBob3N0ZWRab25lSWQ6IHRoaXMuaG9zdGVkWm9uZUlkLFxuICAgICAgICB6b25lTmFtZTogem9uZU5hbWVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgVGFncy5vZih0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSkuYWRkKFxuICAgICAgXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiLFxuICAgICAgXCJtYW5hZ2VtZW50XCJcbiAgICApO1xuICAgIFRhZ3Mub2YodGhpcy5pbXBvcnRlZEhvc3RlZFpvbmUpLmFkZChcbiAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246c2VydmljZVwiLFxuICAgICAgXCJob3N0ZWRab25lXCJcbiAgICApO1xuICAgIFRhZ3Mub2YodGhpcy5pbXBvcnRlZEhvc3RlZFpvbmUpLmFkZChcbiAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246ZG9tYWluXCIsXG4gICAgICB6b25lTmFtZVxuICAgICk7XG5cbiAgICAvLyBNYWtlIGV4cG9ydCBuYW1lIHVuaXF1ZSBieSBpbmNsdWRpbmcgdGhlIHN0YWNrIG5hbWUgdG8gYXZvaWQgY29uZmxpY3RzXG4gICAgLy8gd2hlbiBtdWx0aXBsZSBzdGFja3MgaW1wb3J0IHRoZSBzYW1lIGhvc3RlZCB6b25lXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBzdGFja05hbWUgPSBzdGFjay5zdGFja05hbWU7XG4gICAgY29uc3QgZXhwb3J0TmFtZSA9IGAke3N0YWNrTmFtZX0ke3RoaXMuc2FmZVpvbmVOYW1lKCl9SG9zdGVkWm9uZUlkYDtcblxuICAgIGNvbnN0IHNhZmVLZXkgPSB0b1Bhc2NhbENhc2UodGhpcy5zYWZlWm9uZU5hbWUoKSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtzYWZlS2V5fUhvc3RlZFpvbmVJZGAsIHtcbiAgICAgIGtleTogYCR7c2FmZUtleX1Ib3N0ZWRab25lSWRgLFxuICAgICAgdmFsdWU6IHRoaXMuaG9zdGVkWm9uZUlkLFxuICAgICAgZXhwb3J0TmFtZTogZXhwb3J0TmFtZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxlZ2F0ZUhvc3RlZFpvbmUoKSB7XG4gICAgY29uc3QgZG9tYWluTGFiZWwgPSB0aGlzLmhvc3RlZFpvbmUuem9uZU5hbWUuc3BsaXQoXCIuXCIpWzBdID8/IFwiZGVmYXVsdFwiO1xuICAgIGNvbnN0IHNhZmVEb21haW5MYWJlbCA9IHRvUGFzY2FsQ2FzZShkb21haW5MYWJlbCk7XG4gICAgY29uc3Qgcm9sZSA9IG5ldyBSb2xlKHRoaXMsIGAke3NhZmVEb21haW5MYWJlbH1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLFxuICAgICAgcm9sZU5hbWU6IGAke2RvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVgLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW1wibGlzdEhvc3RlZFpvbmVzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcImNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIGBhcm46YXdzOnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7dGhpcy5ob3N0ZWRab25lLmhvc3RlZFpvbmVJZH1gXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5ob3N0ZWRab25lLmdyYW50RGVsZWdhdGlvbihyb2xlKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJEZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlQXJuXCIsIHtcbiAgICAgIGtleTogYCR7c2FmZURvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVBcm5gLFxuICAgICAgdmFsdWU6IHJvbGUucm9sZUFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2RvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVBcm5gXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkQVJlY29yZChwcm9wczogT21pdDxBUmVjb3JkUHJvcHMsIFwiem9uZVwiPikge1xuICAgIG5ldyBBUmVjb3JkKHRoaXMsIFwiQVJlY29yZFwiLCB7XG4gICAgICB6b25lOiB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSxcbiAgICAgIHJlY29yZE5hbWU6IHByb3BzLnJlY29yZE5hbWUsXG4gICAgICBjb21tZW50OlxuICAgICAgICBwcm9wcy5jb21tZW50IHx8IGBBIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdGFyZ2V0OiBwcm9wcy50YXJnZXQsXG4gICAgICB0dGw6IHByb3BzLnR0bFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZENuYW1lKHByb3BzOiBPbWl0PENuYW1lUmVjb3JkUHJvcHMsIFwiem9uZVwiPikge1xuICAgIG5ldyBDbmFtZVJlY29yZCh0aGlzLCBcIkNuYW1lUmVjb3JkXCIsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICB6b25lOiB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSxcbiAgICAgIGNvbW1lbnQ6XG4gICAgICAgIHByb3BzLmNvbW1lbnQgfHwgYENOQU1FIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdHRsOiBwcm9wcy50dGxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRNeChwcm9wczogT21pdDxNeFJlY29yZFByb3BzLCBcInpvbmVcIj4pIHtcbiAgICBuZXcgTXhSZWNvcmQodGhpcywgXCJNeFJlY29yZFwiLCB7XG4gICAgICB6b25lOiB0aGlzLmltcG9ydGVkSG9zdGVkWm9uZSxcbiAgICAgIGNvbW1lbnQ6XG4gICAgICAgIHByb3BzLmNvbW1lbnQgfHwgYE1YIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdmFsdWVzOiBwcm9wcy52YWx1ZXMsXG4gICAgICB0dGw6IHByb3BzLnR0bFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZE5TKHByb3BzOiBPbWl0PE5zUmVjb3JkUHJvcHMsIFwiem9uZVwiPikge1xuICAgIG5ldyBOc1JlY29yZCh0aGlzLCBcIk5zUmVjb3JkXCIsIHtcbiAgICAgIHpvbmU6IHRoaXMuaW1wb3J0ZWRIb3N0ZWRab25lLFxuICAgICAgY29tbWVudDpcbiAgICAgICAgcHJvcHMuY29tbWVudCB8fCBgTlMgUmVjb3JkIGZvciAke3RoaXMuaW1wb3J0ZWRIb3N0ZWRab25lLnpvbmVOYW1lfWAsXG4gICAgICB2YWx1ZXM6IHByb3BzLnZhbHVlcyxcbiAgICAgIHR0bDogcHJvcHMudHRsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHh0KHByb3BzOiBPbWl0PFR4dFJlY29yZFByb3BzLCBcInpvbmVcIj4pIHtcbiAgICBuZXcgVHh0UmVjb3JkKHRoaXMsIFwiVHh0UmVjb3JkXCIsIHtcbiAgICAgIHpvbmU6IHRoaXMuaW1wb3J0ZWRIb3N0ZWRab25lLFxuICAgICAgY29tbWVudDpcbiAgICAgICAgcHJvcHMuY29tbWVudCB8fCBgVFhUIFJlY29yZCBmb3IgJHt0aGlzLmltcG9ydGVkSG9zdGVkWm9uZS56b25lTmFtZX1gLFxuICAgICAgdmFsdWVzOiBwcm9wcy52YWx1ZXMsXG4gICAgICB0dGw6IHByb3BzLnR0bFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -14,9 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./domain"), exports);
|
|
18
|
+
__exportStar(require("./domainCertificate"), exports);
|
|
17
19
|
__exportStar(require("./hostedZone"), exports);
|
|
18
20
|
__exportStar(require("./ipam"), exports);
|
|
19
21
|
__exportStar(require("./ipamPool"), exports);
|
|
20
22
|
__exportStar(require("./securityGroup"), exports);
|
|
21
23
|
__exportStar(require("./vpc"), exports);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUI7QUFDekIsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3Qix5Q0FBdUI7QUFDdkIsNkNBQTJCO0FBQzNCLGtEQUFnQztBQUNoQyx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kb21haW5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RvbWFpbkNlcnRpZmljYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob3N0ZWRab25lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pcGFtUG9vbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VjdXJpdHlHcm91cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdnBjXCI7XG4iXX0=
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
/**
|
|
3
|
-
* Convert a kebab-case or snake_case name to PascalCase.
|
|
4
|
-
* e.g., "my-app" -> "MyApp", "my_app" -> "MyApp"
|
|
5
|
-
*/
|
|
6
|
-
export declare function toPascalCase(name: string): string;
|
|
7
|
-
/**
|
|
8
|
-
* Convert any case (PascalCase, camelCase, kebab-case, snake_case) to kebab-case.
|
|
9
|
-
* Three-pass regex: split acronyms, split camel boundaries, replace separators.
|
|
10
|
-
* e.g., "MyApp" -> "my-app", "AWSLambda" -> "aws-lambda", "myApp" -> "my-app"
|
|
11
|
-
*/
|
|
12
|
-
export declare function toKebab(str: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Convert a name to a valid RDS database name (snake_case).
|
|
15
|
-
* RDS API allows letters, numbers, and underscores for PostgreSQL/MySQL DatabaseName.
|
|
16
|
-
* Hyphens are rejected, so convert them to underscores.
|
|
17
|
-
*/
|
|
18
|
-
export declare function toValidDatabaseName(name: string): string;
|
|
1
|
+
export { capitalise as capitaliseString, toPascalCase, toKebab, toValidDatabaseName, getSafeZoneName } from "@fjall/util";
|
|
@@ -1,39 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.capitaliseString =
|
|
4
|
-
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
* Convert a kebab-case or snake_case name to PascalCase.
|
|
12
|
-
* e.g., "my-app" -> "MyApp", "my_app" -> "MyApp"
|
|
13
|
-
*/
|
|
14
|
-
function toPascalCase(name) {
|
|
15
|
-
return name
|
|
16
|
-
.replace(/[-_](.)/g, (_, c) => c.toUpperCase())
|
|
17
|
-
.replace(/^./, (c) => c.toUpperCase());
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Convert any case (PascalCase, camelCase, kebab-case, snake_case) to kebab-case.
|
|
21
|
-
* Three-pass regex: split acronyms, split camel boundaries, replace separators.
|
|
22
|
-
* e.g., "MyApp" -> "my-app", "AWSLambda" -> "aws-lambda", "myApp" -> "my-app"
|
|
23
|
-
*/
|
|
24
|
-
function toKebab(str) {
|
|
25
|
-
return str
|
|
26
|
-
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2")
|
|
27
|
-
.replace(/([a-z\d])([A-Z])/g, "$1-$2")
|
|
28
|
-
.replace(/[\s_]+/g, "-")
|
|
29
|
-
.toLowerCase();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Convert a name to a valid RDS database name (snake_case).
|
|
33
|
-
* RDS API allows letters, numbers, and underscores for PostgreSQL/MySQL DatabaseName.
|
|
34
|
-
* Hyphens are rejected, so convert them to underscores.
|
|
35
|
-
*/
|
|
36
|
-
function toValidDatabaseName(name) {
|
|
37
|
-
return toKebab(name).replace(/-/g, "_");
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGlzZVN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9jYXBpdGFsaXNlU3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBRUM7QUFNRCxvQ0FJQztBQU9ELDBCQU1DO0FBT0Qsa0RBRUM7QUFsQ0QsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBYztJQUM3QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLElBQVk7SUFDdkMsT0FBTyxJQUFJO1NBQ1IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM5QyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxHQUFXO0lBQ2pDLE9BQU8sR0FBRztTQUNQLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLENBQUM7U0FDekMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztTQUNyQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztTQUN2QixXQUFXLEVBQUUsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpc2VTdHJpbmcoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBTdHJpbmcoc3RyaW5nKS5zbGljZSgxKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEga2ViYWItY2FzZSBvciBzbmFrZV9jYXNlIG5hbWUgdG8gUGFzY2FsQ2FzZS5cbiAqIGUuZy4sIFwibXktYXBwXCIgLT4gXCJNeUFwcFwiLCBcIm15X2FwcFwiIC0+IFwiTXlBcHBcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9QYXNjYWxDYXNlKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lXG4gICAgLnJlcGxhY2UoL1stX10oLikvZywgKF8sIGMpID0+IGMudG9VcHBlckNhc2UoKSlcbiAgICAucmVwbGFjZSgvXi4vLCAoYykgPT4gYy50b1VwcGVyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFueSBjYXNlIChQYXNjYWxDYXNlLCBjYW1lbENhc2UsIGtlYmFiLWNhc2UsIHNuYWtlX2Nhc2UpIHRvIGtlYmFiLWNhc2UuXG4gKiBUaHJlZS1wYXNzIHJlZ2V4OiBzcGxpdCBhY3Jvbnltcywgc3BsaXQgY2FtZWwgYm91bmRhcmllcywgcmVwbGFjZSBzZXBhcmF0b3JzLlxuICogZS5nLiwgXCJNeUFwcFwiIC0+IFwibXktYXBwXCIsIFwiQVdTTGFtYmRhXCIgLT4gXCJhd3MtbGFtYmRhXCIsIFwibXlBcHBcIiAtPiBcIm15LWFwcFwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0tlYmFiKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC8oW0EtWl0rKShbQS1aXVthLXpdKS9nLCBcIiQxLSQyXCIpXG4gICAgLnJlcGxhY2UoLyhbYS16XFxkXSkoW0EtWl0pL2csIFwiJDEtJDJcIilcbiAgICAucmVwbGFjZSgvW1xcc19dKy9nLCBcIi1cIilcbiAgICAudG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgbmFtZSB0byBhIHZhbGlkIFJEUyBkYXRhYmFzZSBuYW1lIChzbmFrZV9jYXNlKS5cbiAqIFJEUyBBUEkgYWxsb3dzIGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3JlcyBmb3IgUG9zdGdyZVNRTC9NeVNRTCBEYXRhYmFzZU5hbWUuXG4gKiBIeXBoZW5zIGFyZSByZWplY3RlZCwgc28gY29udmVydCB0aGVtIHRvIHVuZGVyc2NvcmVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9WYWxpZERhdGFiYXNlTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdG9LZWJhYihuYW1lKS5yZXBsYWNlKC8tL2csIFwiX1wiKTtcbn1cbiJdfQ==
|
|
3
|
+
exports.getSafeZoneName = exports.toValidDatabaseName = exports.toKebab = exports.toPascalCase = exports.capitaliseString = void 0;
|
|
4
|
+
var util_1 = require("@fjall/util");
|
|
5
|
+
Object.defineProperty(exports, "capitaliseString", { enumerable: true, get: function () { return util_1.capitalise; } });
|
|
6
|
+
Object.defineProperty(exports, "toPascalCase", { enumerable: true, get: function () { return util_1.toPascalCase; } });
|
|
7
|
+
Object.defineProperty(exports, "toKebab", { enumerable: true, get: function () { return util_1.toKebab; } });
|
|
8
|
+
Object.defineProperty(exports, "toValidDatabaseName", { enumerable: true, get: function () { return util_1.toValidDatabaseName; } });
|
|
9
|
+
Object.defineProperty(exports, "getSafeZoneName", { enumerable: true, get: function () { return util_1.getSafeZoneName; } });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGlzZVN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9jYXBpdGFsaXNlU3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQU1xQjtBQUxuQix3R0FBQSxVQUFVLE9BQW9CO0FBQzlCLG9HQUFBLFlBQVksT0FBQTtBQUNaLCtGQUFBLE9BQU8sT0FBQTtBQUNQLDJHQUFBLG1CQUFtQixPQUFBO0FBQ25CLHVHQUFBLGVBQWUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGNhcGl0YWxpc2UgYXMgY2FwaXRhbGlzZVN0cmluZyxcbiAgdG9QYXNjYWxDYXNlLFxuICB0b0tlYmFiLFxuICB0b1ZhbGlkRGF0YWJhc2VOYW1lLFxuICBnZXRTYWZlWm9uZU5hbWVcbn0gZnJvbSBcIkBmamFsbC91dGlsXCI7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Construct } from "constructs";
|
|
2
|
+
import { type IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
3
|
+
import type { DnsRecordInput } from "./domainTypes";
|
|
4
|
+
export declare function addDnsRecords(scope: Construct, zone: IHostedZone, zoneName: string, records: DnsRecordInput[]): void;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addDnsRecords = addDnsRecords;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
|
6
|
+
const capitaliseString_1 = require("./capitaliseString");
|
|
7
|
+
const domainTypes_1 = require("./domainTypes");
|
|
8
|
+
function addDnsRecords(scope, zone, zoneName, records) {
|
|
9
|
+
const safeZone = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(zoneName));
|
|
10
|
+
records.forEach((record, index) => {
|
|
11
|
+
if (record.value.startsWith(domainTypes_1.ALIAS_CDK_PREFIX)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const safeName = (0, capitaliseString_1.toPascalCase)(record.name === domainTypes_1.DNS_APEX ? "Apex" : record.name);
|
|
15
|
+
const constructId = `${safeZone}${safeName}${record.type}Record${index}`;
|
|
16
|
+
const ttl = record.ttl ? aws_cdk_lib_1.Duration.seconds(record.ttl) : undefined;
|
|
17
|
+
const recordName = record.name === domainTypes_1.DNS_APEX ? zoneName : `${record.name}.${zoneName}`;
|
|
18
|
+
switch (record.type) {
|
|
19
|
+
case "A":
|
|
20
|
+
new aws_route53_1.ARecord(scope, constructId, {
|
|
21
|
+
zone,
|
|
22
|
+
recordName,
|
|
23
|
+
target: aws_route53_1.RecordTarget.fromIpAddresses(record.value),
|
|
24
|
+
ttl
|
|
25
|
+
});
|
|
26
|
+
break;
|
|
27
|
+
case "AAAA":
|
|
28
|
+
new aws_route53_1.AaaaRecord(scope, constructId, {
|
|
29
|
+
zone,
|
|
30
|
+
recordName,
|
|
31
|
+
target: aws_route53_1.RecordTarget.fromIpAddresses(record.value),
|
|
32
|
+
ttl
|
|
33
|
+
});
|
|
34
|
+
break;
|
|
35
|
+
case "CNAME":
|
|
36
|
+
new aws_route53_1.CnameRecord(scope, constructId, {
|
|
37
|
+
zone,
|
|
38
|
+
recordName,
|
|
39
|
+
domainName: record.value,
|
|
40
|
+
ttl
|
|
41
|
+
});
|
|
42
|
+
break;
|
|
43
|
+
case "MX":
|
|
44
|
+
new aws_route53_1.MxRecord(scope, constructId, {
|
|
45
|
+
zone,
|
|
46
|
+
recordName,
|
|
47
|
+
values: [
|
|
48
|
+
{
|
|
49
|
+
hostName: record.value,
|
|
50
|
+
priority: record.priority ?? 10
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
ttl
|
|
54
|
+
});
|
|
55
|
+
break;
|
|
56
|
+
case "TXT":
|
|
57
|
+
new aws_route53_1.TxtRecord(scope, constructId, {
|
|
58
|
+
zone,
|
|
59
|
+
recordName,
|
|
60
|
+
values: [record.value],
|
|
61
|
+
ttl
|
|
62
|
+
});
|
|
63
|
+
break;
|
|
64
|
+
case "NS":
|
|
65
|
+
new aws_route53_1.NsRecord(scope, constructId, {
|
|
66
|
+
zone,
|
|
67
|
+
recordName,
|
|
68
|
+
values: [record.value],
|
|
69
|
+
ttl
|
|
70
|
+
});
|
|
71
|
+
break;
|
|
72
|
+
case "SRV":
|
|
73
|
+
new aws_route53_1.SrvRecord(scope, constructId, {
|
|
74
|
+
zone,
|
|
75
|
+
recordName,
|
|
76
|
+
values: [
|
|
77
|
+
{
|
|
78
|
+
hostName: record.value,
|
|
79
|
+
priority: record.priority ?? 10,
|
|
80
|
+
weight: record.weight ?? 0,
|
|
81
|
+
port: record.port ?? 443
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
ttl
|
|
85
|
+
});
|
|
86
|
+
break;
|
|
87
|
+
case "CAA":
|
|
88
|
+
new aws_route53_1.CaaRecord(scope, constructId, {
|
|
89
|
+
zone,
|
|
90
|
+
recordName,
|
|
91
|
+
values: [
|
|
92
|
+
{
|
|
93
|
+
flag: 0,
|
|
94
|
+
tag: record.value.includes("issuewild")
|
|
95
|
+
? aws_route53_1.CaaTag.ISSUEWILD
|
|
96
|
+
: record.value.includes("iodef")
|
|
97
|
+
? aws_route53_1.CaaTag.IODEF
|
|
98
|
+
: aws_route53_1.CaaTag.ISSUE,
|
|
99
|
+
value: record.value
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
ttl
|
|
103
|
+
});
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zUmVjb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9kbnNSZWNvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLHNDQThHQztBQWhJRCw2Q0FBdUM7QUFDdkMseURBWWlDO0FBQ2pDLHlEQUFtRTtBQUVuRSwrQ0FBMkQ7QUFFM0QsU0FBZ0IsYUFBYSxDQUMzQixLQUFnQixFQUNoQixJQUFpQixFQUNqQixRQUFnQixFQUNoQixPQUF5QjtJQUV6QixNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFZLEVBQUMsSUFBQSxrQ0FBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLDhCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUEsK0JBQVksRUFDM0IsTUFBTSxDQUFDLElBQUksS0FBSyxzQkFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hELENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxHQUFHLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQztRQUN6RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRSxNQUFNLFVBQVUsR0FDZCxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLFFBQVEs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LENBQUMsQ0FBQztnQkFDSCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBBUmVjb3JkLFxuICBBYWFhUmVjb3JkLFxuICBDbmFtZVJlY29yZCxcbiAgTXhSZWNvcmQsXG4gIFR4dFJlY29yZCxcbiAgTnNSZWNvcmQsXG4gIFNydlJlY29yZCxcbiAgQ2FhUmVjb3JkLFxuICBDYWFUYWcsXG4gIFJlY29yZFRhcmdldCxcbiAgdHlwZSBJSG9zdGVkWm9uZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSwgZ2V0U2FmZVpvbmVOYW1lIH0gZnJvbSBcIi4vY2FwaXRhbGlzZVN0cmluZ1wiO1xuaW1wb3J0IHR5cGUgeyBEbnNSZWNvcmRJbnB1dCB9IGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG5pbXBvcnQgeyBBTElBU19DREtfUFJFRklYLCBETlNfQVBFWCB9IGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREbnNSZWNvcmRzKFxuICBzY29wZTogQ29uc3RydWN0LFxuICB6b25lOiBJSG9zdGVkWm9uZSxcbiAgem9uZU5hbWU6IHN0cmluZyxcbiAgcmVjb3JkczogRG5zUmVjb3JkSW5wdXRbXVxuKTogdm9pZCB7XG4gIGNvbnN0IHNhZmVab25lID0gdG9QYXNjYWxDYXNlKGdldFNhZmVab25lTmFtZSh6b25lTmFtZSkpO1xuXG4gIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgIGlmIChyZWNvcmQudmFsdWUuc3RhcnRzV2l0aChBTElBU19DREtfUFJFRklYKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhZmVOYW1lID0gdG9QYXNjYWxDYXNlKFxuICAgICAgcmVjb3JkLm5hbWUgPT09IEROU19BUEVYID8gXCJBcGV4XCIgOiByZWNvcmQubmFtZVxuICAgICk7XG4gICAgY29uc3QgY29uc3RydWN0SWQgPSBgJHtzYWZlWm9uZX0ke3NhZmVOYW1lfSR7cmVjb3JkLnR5cGV9UmVjb3JkJHtpbmRleH1gO1xuICAgIGNvbnN0IHR0bCA9IHJlY29yZC50dGwgPyBEdXJhdGlvbi5zZWNvbmRzKHJlY29yZC50dGwpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlY29yZE5hbWUgPVxuICAgICAgcmVjb3JkLm5hbWUgPT09IEROU19BUEVYID8gem9uZU5hbWUgOiBgJHtyZWNvcmQubmFtZX0uJHt6b25lTmFtZX1gO1xuXG4gICAgc3dpdGNoIChyZWNvcmQudHlwZSkge1xuICAgICAgY2FzZSBcIkFcIjpcbiAgICAgICAgbmV3IEFSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21JcEFkZHJlc3NlcyhyZWNvcmQudmFsdWUpLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQUFBQVwiOlxuICAgICAgICBuZXcgQWFhYVJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdGFyZ2V0OiBSZWNvcmRUYXJnZXQuZnJvbUlwQWRkcmVzc2VzKHJlY29yZC52YWx1ZSksXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJDTkFNRVwiOlxuICAgICAgICBuZXcgQ25hbWVSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IHJlY29yZC52YWx1ZSxcbiAgICAgICAgICB0dGxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIk1YXCI6XG4gICAgICAgIG5ldyBNeFJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhvc3ROYW1lOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiByZWNvcmQucHJpb3JpdHkgPz8gMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVFhUXCI6XG4gICAgICAgIG5ldyBUeHRSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW3JlY29yZC52YWx1ZV0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJOU1wiOlxuICAgICAgICBuZXcgTnNSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW3JlY29yZC52YWx1ZV0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJTUlZcIjpcbiAgICAgICAgbmV3IFNydlJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhvc3ROYW1lOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiByZWNvcmQucHJpb3JpdHkgPz8gMTAsXG4gICAgICAgICAgICAgIHdlaWdodDogcmVjb3JkLndlaWdodCA/PyAwLFxuICAgICAgICAgICAgICBwb3J0OiByZWNvcmQucG9ydCA/PyA0NDNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQ0FBXCI6XG4gICAgICAgIG5ldyBDYWFSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmbGFnOiAwLFxuICAgICAgICAgICAgICB0YWc6IHJlY29yZC52YWx1ZS5pbmNsdWRlcyhcImlzc3Vld2lsZFwiKVxuICAgICAgICAgICAgICAgID8gQ2FhVGFnLklTU1VFV0lMRFxuICAgICAgICAgICAgICAgIDogcmVjb3JkLnZhbHVlLmluY2x1ZGVzKFwiaW9kZWZcIilcbiAgICAgICAgICAgICAgICAgID8gQ2FhVGFnLklPREVGXG4gICAgICAgICAgICAgICAgICA6IENhYVRhZy5JU1NVRSxcbiAgICAgICAgICAgICAgdmFsdWU6IHJlY29yZC52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export { DNS_APEX, getDomainExportNames, type ManagedDomainExports } from "@fjall/util";
|
|
2
|
+
export interface DnsRecordInput {
|
|
3
|
+
type: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "NS" | "SRV" | "CAA";
|
|
4
|
+
name: string;
|
|
5
|
+
value: string;
|
|
6
|
+
ttl?: number;
|
|
7
|
+
priority?: number;
|
|
8
|
+
weight?: number;
|
|
9
|
+
port?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface DelegationInput {
|
|
12
|
+
subdomain: string;
|
|
13
|
+
targetAccount: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CertificateInput {
|
|
16
|
+
domainName: string;
|
|
17
|
+
subjectAlternativeNames?: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface DomainApexProps {
|
|
20
|
+
type: "domain";
|
|
21
|
+
zoneName: string;
|
|
22
|
+
records?: DnsRecordInput[];
|
|
23
|
+
delegations?: DelegationInput[];
|
|
24
|
+
certificates?: CertificateInput[];
|
|
25
|
+
hostedZoneId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface DomainDelegatedProps {
|
|
28
|
+
type: "delegated";
|
|
29
|
+
zoneName: string;
|
|
30
|
+
parentZoneName: string;
|
|
31
|
+
parentAccountName: string;
|
|
32
|
+
records?: DnsRecordInput[];
|
|
33
|
+
certificates?: CertificateInput[];
|
|
34
|
+
}
|
|
35
|
+
export type IDomainProps = DomainApexProps | DomainDelegatedProps;
|
|
36
|
+
export declare const ALIAS_CDK_PREFIX: "ALIAS:";
|
|
37
|
+
export { addDnsRecords } from "./dnsRecords";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addDnsRecords = exports.ALIAS_CDK_PREFIX = exports.getDomainExportNames = exports.DNS_APEX = void 0;
|
|
4
|
+
var util_1 = require("@fjall/util");
|
|
5
|
+
Object.defineProperty(exports, "DNS_APEX", { enumerable: true, get: function () { return util_1.DNS_APEX; } });
|
|
6
|
+
Object.defineProperty(exports, "getDomainExportNames", { enumerable: true, get: function () { return util_1.getDomainExportNames; } });
|
|
7
|
+
exports.ALIAS_CDK_PREFIX = "ALIAS:";
|
|
8
|
+
var dnsRecords_1 = require("./dnsRecords");
|
|
9
|
+
Object.defineProperty(exports, "addDnsRecords", { enumerable: true, get: function () { return dnsRecords_1.addDnsRecords; } });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvZG9tYWluVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBSXFCO0FBSG5CLGdHQUFBLFFBQVEsT0FBQTtBQUNSLDRHQUFBLG9CQUFvQixPQUFBO0FBNENULFFBQUEsZ0JBQWdCLEdBQUcsUUFBaUIsQ0FBQztBQUVsRCwyQ0FBNkM7QUFBcEMsMkdBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgRE5TX0FQRVgsXG4gIGdldERvbWFpbkV4cG9ydE5hbWVzLFxuICB0eXBlIE1hbmFnZWREb21haW5FeHBvcnRzXG59IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERuc1JlY29yZElucHV0IHtcbiAgdHlwZTogXCJBXCIgfCBcIkFBQUFcIiB8IFwiQ05BTUVcIiB8IFwiTVhcIiB8IFwiVFhUXCIgfCBcIk5TXCIgfCBcIlNSVlwiIHwgXCJDQUFcIjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICB0dGw/OiBudW1iZXI7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG4gIHBvcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZWdhdGlvbklucHV0IHtcbiAgc3ViZG9tYWluOiBzdHJpbmc7XG4gIHRhcmdldEFjY291bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0aWZpY2F0ZUlucHV0IHtcbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkFwZXhQcm9wcyB7XG4gIHR5cGU6IFwiZG9tYWluXCI7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIHJlY29yZHM/OiBEbnNSZWNvcmRJbnB1dFtdO1xuICBkZWxlZ2F0aW9ucz86IERlbGVnYXRpb25JbnB1dFtdO1xuICBjZXJ0aWZpY2F0ZXM/OiBDZXJ0aWZpY2F0ZUlucHV0W107XG4gIGhvc3RlZFpvbmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb21haW5EZWxlZ2F0ZWRQcm9wcyB7XG4gIHR5cGU6IFwiZGVsZWdhdGVkXCI7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudFpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudEFjY291bnROYW1lOiBzdHJpbmc7XG4gIHJlY29yZHM/OiBEbnNSZWNvcmRJbnB1dFtdO1xuICBjZXJ0aWZpY2F0ZXM/OiBDZXJ0aWZpY2F0ZUlucHV0W107XG59XG5cbmV4cG9ydCB0eXBlIElEb21haW5Qcm9wcyA9IERvbWFpbkFwZXhQcm9wcyB8IERvbWFpbkRlbGVnYXRlZFByb3BzO1xuXG5leHBvcnQgY29uc3QgQUxJQVNfQ0RLX1BSRUZJWCA9IFwiQUxJQVM6XCIgYXMgY29uc3Q7XG5cbmV4cG9ydCB7IGFkZERuc1JlY29yZHMgfSBmcm9tIFwiLi9kbnNSZWNvcmRzXCI7XG4iXX0=
|