truemark-cdk-lib 0.0.37 → 0.0.38-alpha.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.
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./lib"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIlxuIl19
@@ -0,0 +1,31 @@
1
+ import { Construct } from "constructs";
2
+ import { IKey } from "aws-cdk-lib/aws-kms";
3
+ /**
4
+ * Properties for AlertsTopic
5
+ */
6
+ export interface AlertsTopicProps {
7
+ /**
8
+ * Overrides default topic display name.
9
+ *
10
+ * @default "CenterGaugeAlerts"
11
+ */
12
+ readonly displayName?: string;
13
+ /**
14
+ * Overrides the use of the default aws/sns KMS key for encryption
15
+ *
16
+ * @default uses AWS managed SNS KMS key
17
+ */
18
+ readonly masterKey?: IKey;
19
+ /**
20
+ * Overrides the default alerts URL.
21
+ *
22
+ * @default https://alerts.centergauge.com/
23
+ */
24
+ readonly url?: string;
25
+ }
26
+ /**
27
+ * Sets up an SNS Topic that will send notifications to CenterGauge.
28
+ */
29
+ export declare class AlertsTopic extends Construct {
30
+ constructor(scope: Construct, id: string, props: AlertsTopicProps);
31
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlertsTopic = void 0;
4
+ const constructs_1 = require("constructs");
5
+ const aws_sns_1 = require("aws-cdk-lib/aws-sns");
6
+ const aws_kms_1 = require("aws-cdk-lib/aws-kms");
7
+ const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
8
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
9
+ /**
10
+ * Sets up an SNS Topic that will send notifications to CenterGauge.
11
+ */
12
+ class AlertsTopic extends constructs_1.Construct {
13
+ constructor(scope, id, props) {
14
+ var _a, _b, _c;
15
+ super(scope, id);
16
+ const masterKey = (_a = props.masterKey) !== null && _a !== void 0 ? _a : aws_kms_1.Alias.fromAliasName(this, "AwsSnsKey", "aws/sns");
17
+ // TODO Change to standard Queue
18
+ const dlq = new aws_sqs_1.Queue(this, "DeadLetterQueue", {
19
+ retentionPeriod: aws_cdk_lib_1.Duration.seconds(1209600)
20
+ });
21
+ const topic = new aws_sns_1.Topic(this, "Default", {
22
+ displayName: (_b = props.displayName) !== null && _b !== void 0 ? _b : "CenterGaugeAlerts",
23
+ fifo: false,
24
+ masterKey
25
+ });
26
+ // TODO Add Grant
27
+ const subscription = new aws_sns_1.CfnSubscription(this, "Subscription", {
28
+ topicArn: topic.topicArn,
29
+ protocol: "https",
30
+ endpoint: (_c = props.url) !== null && _c !== void 0 ? _c : "https://alerts.centergauge.com/",
31
+ rawMessageDelivery: false,
32
+ deliveryPolicy: JSON.stringify({
33
+ "healthyRetryPolicy": {
34
+ "numRetries": 10,
35
+ "numNoDelayRetries": 0,
36
+ "minDelayTarget": 30,
37
+ "maxDelayTarget": 120,
38
+ "numMinDelayRetries": 3,
39
+ "numMaxDelayRetries": 0,
40
+ "backoffFunction": "linear"
41
+ }
42
+ }),
43
+ redrivePolicy: JSON.stringify({
44
+ "deadLetterTargetArn": dlq.queueArn
45
+ })
46
+ });
47
+ }
48
+ }
49
+ exports.AlertsTopic = AlertsTopic;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRzLXRvcGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYWxlcnRzLXRvcGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQyxpREFBMkQ7QUFDM0QsaURBQWdEO0FBQ2hELGlEQUEwQztBQUMxQyw2Q0FBcUM7QUE2QnJDOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFFeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1Qjs7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFNBQVMsU0FBRyxLQUFLLENBQUMsU0FBUyxtQ0FBSSxlQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdkYsZ0NBQWdDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksZUFBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUM3QyxlQUFlLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQzNDLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLElBQUksZUFBSyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdkMsV0FBVyxRQUFFLEtBQUssQ0FBQyxXQUFXLG1DQUFJLG1CQUFtQjtZQUNyRCxJQUFJLEVBQUUsS0FBSztZQUNYLFNBQVM7U0FDVixDQUFDLENBQUM7UUFFSCxpQkFBaUI7UUFFakIsTUFBTSxZQUFZLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDN0QsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsUUFBRSxLQUFLLENBQUMsR0FBRyxtQ0FBSSxpQ0FBaUM7WUFDeEQsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDN0Isb0JBQW9CLEVBQUU7b0JBQ3BCLFlBQVksRUFBRSxFQUFFO29CQUNoQixtQkFBbUIsRUFBRSxDQUFDO29CQUN0QixnQkFBZ0IsRUFBRSxFQUFFO29CQUNwQixnQkFBZ0IsRUFBRSxHQUFHO29CQUNyQixvQkFBb0IsRUFBRSxDQUFDO29CQUN2QixvQkFBb0IsRUFBRSxDQUFDO29CQUN2QixpQkFBaUIsRUFBRSxRQUFRO2lCQUM1QjthQUNGLENBQUM7WUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDNUIscUJBQXFCLEVBQUUsR0FBRyxDQUFDLFFBQVE7YUFDcEMsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpDRCxrQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7Q2ZuU3Vic2NyaXB0aW9uLCBUb3BpY30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIjtcbmltcG9ydCB7QWxpYXMsIElLZXl9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQge1F1ZXVlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQWxlcnRzVG9waWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGVydHNUb3BpY1Byb3BzIHtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGRlZmF1bHQgdG9waWMgZGlzcGxheSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkNlbnRlckdhdWdlQWxlcnRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIHVzZSBvZiB0aGUgZGVmYXVsdCBhd3Mvc25zIEtNUyBrZXkgZm9yIGVuY3J5cHRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgdXNlcyBBV1MgbWFuYWdlZCBTTlMgS01TIGtleVxuICAgKi9cbiAgcmVhZG9ubHkgbWFzdGVyS2V5PzogSUtleTtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGFsZXJ0cyBVUkwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGh0dHBzOi8vYWxlcnRzLmNlbnRlcmdhdWdlLmNvbS9cbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXRzIHVwIGFuIFNOUyBUb3BpYyB0aGF0IHdpbGwgc2VuZCBub3RpZmljYXRpb25zIHRvIENlbnRlckdhdWdlLlxuICovXG5leHBvcnQgY2xhc3MgQWxlcnRzVG9waWMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBbGVydHNUb3BpY1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IHByb3BzLm1hc3RlcktleSA/PyBBbGlhcy5mcm9tQWxpYXNOYW1lKHRoaXMsIFwiQXdzU25zS2V5XCIsIFwiYXdzL3Nuc1wiKTtcblxuICAgIC8vIFRPRE8gQ2hhbmdlIHRvIHN0YW5kYXJkIFF1ZXVlXG4gICAgY29uc3QgZGxxID0gbmV3IFF1ZXVlKHRoaXMsIFwiRGVhZExldHRlclF1ZXVlXCIsIHtcbiAgICAgIHJldGVudGlvblBlcmlvZDogRHVyYXRpb24uc2Vjb25kcygxMjA5NjAwKVxuICAgIH0pO1xuXG4gICAgY29uc3QgdG9waWMgPSBuZXcgVG9waWModGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGRpc3BsYXlOYW1lOiBwcm9wcy5kaXNwbGF5TmFtZSA/PyBcIkNlbnRlckdhdWdlQWxlcnRzXCIsXG4gICAgICBmaWZvOiBmYWxzZSxcbiAgICAgIG1hc3RlcktleVxuICAgIH0pO1xuXG4gICAgLy8gVE9ETyBBZGQgR3JhbnRcblxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG5ldyBDZm5TdWJzY3JpcHRpb24odGhpcywgXCJTdWJzY3JpcHRpb25cIiwge1xuICAgICAgdG9waWNBcm46IHRvcGljLnRvcGljQXJuLFxuICAgICAgcHJvdG9jb2w6IFwiaHR0cHNcIixcbiAgICAgIGVuZHBvaW50OiBwcm9wcy51cmwgPz8gXCJodHRwczovL2FsZXJ0cy5jZW50ZXJnYXVnZS5jb20vXCIsXG4gICAgICByYXdNZXNzYWdlRGVsaXZlcnk6IGZhbHNlLFxuICAgICAgZGVsaXZlcnlQb2xpY3k6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgXCJoZWFsdGh5UmV0cnlQb2xpY3lcIjoge1xuICAgICAgICAgIFwibnVtUmV0cmllc1wiOiAxMCxcbiAgICAgICAgICBcIm51bU5vRGVsYXlSZXRyaWVzXCI6IDAsXG4gICAgICAgICAgXCJtaW5EZWxheVRhcmdldFwiOiAzMCxcbiAgICAgICAgICBcIm1heERlbGF5VGFyZ2V0XCI6IDEyMCxcbiAgICAgICAgICBcIm51bU1pbkRlbGF5UmV0cmllc1wiOiAzLFxuICAgICAgICAgIFwibnVtTWF4RGVsYXlSZXRyaWVzXCI6IDAsXG4gICAgICAgICAgXCJiYWNrb2ZmRnVuY3Rpb25cIjogXCJsaW5lYXJcIlxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHJlZHJpdmVQb2xpY3k6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgXCJkZWFkTGV0dGVyVGFyZ2V0QXJuXCI6IGRscS5xdWV1ZUFyblxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ export * from "./alerts-topic";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./alerts-topic"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxpREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hbGVydHMtdG9waWNcIlxuIl19
@@ -3,6 +3,11 @@ import { Construct } from "constructs";
3
3
  import { WeightedARecord } from "./weighted-a-record";
4
4
  import { LatencyARecord } from "./latency-a-record";
5
5
  import { WeightedLatencyARecord } from "./weighted-latency-a-record";
6
+ import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
7
+ import * as apigatewayv2 from "@aws-cdk/aws-apigatewayv2-alpha";
8
+ import * as apigateway from "aws-cdk-lib/aws-apigateway";
9
+ import { EndpointType, MTLSConfig, SecurityPolicy } from "@aws-cdk/aws-apigatewayv2-alpha/lib/common/domain-name";
10
+ import { IRestApi } from "aws-cdk-lib/aws-apigateway/lib/restapi";
6
11
  /**
7
12
  * Properties for DomainName
8
13
  */
@@ -12,6 +17,99 @@ export interface DomainNameProps {
12
17
  readonly privateZone?: boolean;
13
18
  readonly vpcId?: string;
14
19
  }
20
+ /**
21
+ * ACM certificate options
22
+ */
23
+ export interface CertificateOptions {
24
+ /**
25
+ * The identifier to use.
26
+ *
27
+ * @default ${this.toIdentifier()}-cert
28
+ */
29
+ readonly id?: string;
30
+ /**
31
+ * Alternative domain names on the certificate.
32
+ */
33
+ readonly subjectAlternativeNames?: string[];
34
+ }
35
+ /**
36
+ * Options for a V2 API gateway domain name.
37
+ */
38
+ export interface ApiGatewayV2DomainNameOptions {
39
+ /**
40
+ * The identifier to use.
41
+ *
42
+ * @default ${this.toIdentifier()}-apigwv2
43
+ */
44
+ readonly id?: string;
45
+ /**
46
+ * The type of endpoint for this DomainName.
47
+ *
48
+ * @default EndpointType.REGIONAL
49
+ */
50
+ readonly endpointType?: EndpointType;
51
+ /**
52
+ * The Transport Layer Security (TLS) version + cipher suite for this domain name.
53
+ *
54
+ * @default SecurityPolicy.TLS_1_2
55
+ */
56
+ readonly securityPolicy?: SecurityPolicy;
57
+ /**
58
+ * The mutual TLS authentication configuration for a custom domain name.
59
+ *
60
+ * @default - mTLS is not configured.
61
+ */
62
+ readonly mtls?: MTLSConfig;
63
+ }
64
+ /**
65
+ * Options for an API gateway domain name
66
+ */
67
+ export interface ApiGatewayDomainNameOptions {
68
+ /**
69
+ * The identifier to use.
70
+ *
71
+ * @default ${this.toIdentifier()}-apigw
72
+ */
73
+ readonly id?: string;
74
+ /**
75
+ * If specified, all requests to this domain will be mapped to the production
76
+ * deployment of this API. If you wish to map this domain to multiple APIs
77
+ * with different base paths, don't specify this option and use
78
+ * `addBasePathMapping`.
79
+ *
80
+ * @default - you will have to call `addBasePathMapping` to map this domain to
81
+ * API endpoints.
82
+ */
83
+ readonly mapping?: IRestApi;
84
+ /**
85
+ * The type of endpoint for this DomainName.
86
+ *
87
+ * @default REGIONAL
88
+ */
89
+ readonly endpointType?: EndpointType;
90
+ /**
91
+ * The Transport Layer Security (TLS) version + cipher suite for this domain name.
92
+ *
93
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html
94
+ * @default SecurityPolicy.TLS_1_0
95
+ */
96
+ readonly securityPolicy?: SecurityPolicy;
97
+ /**
98
+ * The base path name that callers of the API must provide in the URL after
99
+ * the domain name (e.g. `example.com/base-path`). If you specify this
100
+ * property, it can't be an empty string.
101
+ *
102
+ * @default - map requests from the domain root (e.g. `example.com`). If this
103
+ * is undefined, no additional mappings will be allowed on this domain name.
104
+ */
105
+ readonly basePath?: string;
106
+ /**
107
+ * The mutual TLS authentication configuration for a custom domain name.
108
+ *
109
+ * @default - mTLS is not configured.
110
+ */
111
+ readonly mtls?: MTLSConfig;
112
+ }
15
113
  /**
16
114
  * Utility class for holding domain name information and
17
115
  * doing useful things with it.
@@ -60,6 +158,7 @@ export declare class DomainName {
60
158
  getZone(): string;
61
159
  /**
62
160
  * Returns the route53 hosted zone associated with this domain name.
161
+ * This method is safe to call repeatedly, the lookup will only be done once.
63
162
  *
64
163
  * @param scope the scope to use if a lookup is required
65
164
  * @param id an optional ID if a lookup is required; one is generated if not provided
@@ -88,13 +187,36 @@ export declare class DomainName {
88
187
  */
89
188
  createLatencyARecord(scope: Construct, target: RecordTarget): LatencyARecord;
90
189
  /**
91
- * Created a weighted latency Route53 record for this domain name.
190
+ * Creates a weighted latency Route53 record for this domain name.
92
191
  *
93
192
  * @param scope the scope to create the record in
94
193
  * @param target the target of the record
95
194
  * @param weight the initial weight; defaults to 0
96
195
  */
97
196
  createWeightedLatencyARecord(scope: Construct, target: RecordTarget, weight?: number): WeightedLatencyARecord;
197
+ /**
198
+ * Creates an ACM certificate for the domain name.
199
+ *
200
+ * @param scope the scope to create the record in
201
+ * @param opts additional options
202
+ */
203
+ createCertificate(scope: Construct, opts?: CertificateOptions): Certificate;
204
+ /**
205
+ * Creates an API Gateway V2 domain name.
206
+ *
207
+ * @param scope the scope to create the domain name in
208
+ * @param certificate the certificate to use on the domain name
209
+ * @param opts additional options
210
+ */
211
+ createApiGatewayV2DomainName(scope: Construct, certificate: Certificate, opts?: ApiGatewayV2DomainNameOptions): apigatewayv2.DomainName;
212
+ /**
213
+ * Creates an API Gateway domain name.
214
+ *
215
+ * @param scope the scope to create the domain name in
216
+ * @param certificate the certificate to use on the domain name
217
+ * @param opts additional options
218
+ */
219
+ createApiGatewayDomainName(scope: Construct, certificate: Certificate, opts?: ApiGatewayDomainNameOptions): apigateway.DomainName;
98
220
  /**
99
221
  * Converts an array of DomainNameProps to DomainName. This function will return an empty array
100
222
  * if domainNameProps is undefined.
@@ -128,7 +250,7 @@ export declare class DomainName {
128
250
  [domainName: string]: IHostedZone;
129
251
  };
130
252
  /**
131
- * Converts an arry of DomainNameProps objects to a map where the key is the domain name string and the
253
+ * Converts an array of DomainNameProps objects to a map where the key is the domain name string and the
132
254
  * value is an IHostedZone. This method will return an empty map if domainNameProps is undefined. This
133
255
  * function is useful when used in conjunction with functions like CertificateValidation.fromDnsMultiZone.
134
256
  *
@@ -5,6 +5,9 @@ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
5
5
  const weighted_a_record_1 = require("./weighted-a-record");
6
6
  const latency_a_record_1 = require("./latency-a-record");
7
7
  const weighted_latency_a_record_1 = require("./weighted-latency-a-record");
8
+ const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
9
+ const apigatewayv2 = require("@aws-cdk/aws-apigatewayv2-alpha");
10
+ const apigateway = require("aws-cdk-lib/aws-apigateway");
8
11
  /**
9
12
  * Utility class for holding domain name information and
10
13
  * doing useful things with it.
@@ -79,6 +82,7 @@ class DomainName {
79
82
  }
80
83
  /**
81
84
  * Returns the route53 hosted zone associated with this domain name.
85
+ * This method is safe to call repeatedly, the lookup will only be done once.
82
86
  *
83
87
  * @param scope the scope to use if a lookup is required
84
88
  * @param id an optional ID if a lookup is required; one is generated if not provided
@@ -135,7 +139,7 @@ class DomainName {
135
139
  });
136
140
  }
137
141
  /**
138
- * Created a weighted latency Route53 record for this domain name.
142
+ * Creates a weighted latency Route53 record for this domain name.
139
143
  *
140
144
  * @param scope the scope to create the record in
141
145
  * @param target the target of the record
@@ -149,6 +153,50 @@ class DomainName {
149
153
  weight
150
154
  });
151
155
  }
156
+ /**
157
+ * Creates an ACM certificate for the domain name.
158
+ *
159
+ * @param scope the scope to create the record in
160
+ * @param opts additional options
161
+ */
162
+ createCertificate(scope, opts) {
163
+ var _a;
164
+ return new aws_certificatemanager_1.Certificate(scope, (_a = opts === null || opts === void 0 ? void 0 : opts.id) !== null && _a !== void 0 ? _a : `${this.toIdentifier()}-cert`, {
165
+ domainName: this.toString(),
166
+ validation: aws_certificatemanager_1.CertificateValidation.fromDns(this.getHostedZone(scope)),
167
+ subjectAlternativeNames: opts === null || opts === void 0 ? void 0 : opts.subjectAlternativeNames
168
+ });
169
+ }
170
+ /**
171
+ * Creates an API Gateway V2 domain name.
172
+ *
173
+ * @param scope the scope to create the domain name in
174
+ * @param certificate the certificate to use on the domain name
175
+ * @param opts additional options
176
+ */
177
+ createApiGatewayV2DomainName(scope, certificate, opts) {
178
+ var _a;
179
+ return new apigatewayv2.DomainName(scope, (_a = opts === null || opts === void 0 ? void 0 : opts.id) !== null && _a !== void 0 ? _a : `${this.toIdentifier()}-apigwv2`, {
180
+ domainName: this.toString(),
181
+ certificate,
182
+ ...opts
183
+ });
184
+ }
185
+ /**
186
+ * Creates an API Gateway domain name.
187
+ *
188
+ * @param scope the scope to create the domain name in
189
+ * @param certificate the certificate to use on the domain name
190
+ * @param opts additional options
191
+ */
192
+ createApiGatewayDomainName(scope, certificate, opts) {
193
+ var _a;
194
+ return new apigateway.DomainName(scope, (_a = opts === null || opts === void 0 ? void 0 : opts.id) !== null && _a !== void 0 ? _a : `${this.toIdentifier()}-apigw`, {
195
+ domainName: this.toString(),
196
+ certificate,
197
+ ...opts
198
+ });
199
+ }
152
200
  /**
153
201
  * Converts an array of DomainNameProps to DomainName. This function will return an empty array
154
202
  * if domainNameProps is undefined.
@@ -194,7 +242,7 @@ class DomainName {
194
242
  return map;
195
243
  }
196
244
  /**
197
- * Converts an arry of DomainNameProps objects to a map where the key is the domain name string and the
245
+ * Converts an array of DomainNameProps objects to a map where the key is the domain name string and the
198
246
  * value is an IHostedZone. This method will return an empty map if domainNameProps is undefined. This
199
247
  * function is useful when used in conjunction with functions like CertificateValidation.fromDnsMultiZone.
200
248
  *
@@ -221,4 +269,4 @@ class DomainName {
221
269
  }
222
270
  }
223
271
  exports.DomainName = DomainName;
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkb21haW4tbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBdUY7QUFFdkYsMkRBQW9EO0FBQ3BELHlEQUFrRDtBQUNsRCwyRUFBbUU7QUFZbkU7OztHQUdHO0FBQ0gsTUFBYSxVQUFVO0lBUXJCOzs7O09BSUc7SUFDSCxZQUFZLEtBQXNCOztRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsV0FBVyxTQUFHLEtBQUssQ0FBQyxXQUFXLG1DQUFJLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsS0FBc0I7O1FBQy9CLElBQUksV0FBVyxHQUFHLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxD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QyxLQUFLLENBQUMsQ0FBQTtZQUM1QyxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFnQixFQUFFLGVBQWtDO1FBQzVFLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXNCLEVBQUUsV0FBMEI7UUFDdEUsS0FBSyxJQUFJLFVBQVUsSUFBSSxXQUFXLGFBQVgsV0FBVyxjQUFYLFdBQVcsR0FBSSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxPQUFPLFVBQVUsQ0FBQzthQUNuQjtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBeE9ELGdDQXdPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVJlY29yZCwgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7V2VpZ2h0ZWRBUmVjb3JkfSBmcm9tIFwiLi93ZWlnaHRlZC1hLXJlY29yZFwiO1xuaW1wb3J0IHtMYXRlbmN5QVJlY29yZH0gZnJvbSBcIi4vbGF0ZW5jeS1hLXJlY29yZFwiO1xuaW1wb3J0IHtXZWlnaHRlZExhdGVuY3lBUmVjb3JkfSBmcm9tIFwiLi93ZWlnaHRlZC1sYXRlbmN5LWEtcmVjb3JkXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRG9tYWluTmFtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk5hbWVQcm9wcyB7XG4gIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSB6b25lOiBzdHJpbmcgfCBJSG9zdGVkWm9uZTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU/OiBib29sZWFuO1xuICByZWFkb25seSB2cGNJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGNsYXNzIGZvciBob2xkaW5nIGRvbWFpbiBuYW1lIGluZm9ybWF0aW9uIGFuZFxuICogZG9pbmcgdXNlZnVsIHRoaW5ncyB3aXRoIGl0LlxuICovXG5leHBvcnQgY2xhc3MgRG9tYWluTmFtZSB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgem9uZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgaG9zdGVkWm9uZT86IElIb3N0ZWRab25lO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJpdmF0ZVpvbmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCByZWFkb25seSB2cGNJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBEb21haW5OYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGRvbWFpbiBuYW1lXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogRG9tYWluTmFtZVByb3BzKSB7XG4gICAgdGhpcy5wcmVmaXggPSBwcm9wcy5wcmVmaXg7XG4gICAgaWYgKHR5cGVvZiBwcm9wcy56b25lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0aGlzLnpvbmUgPSBwcm9wcy56b25lO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhvc3RlZFpvbmUgPSBwcm9wcy56b25lO1xuICAgICAgdGhpcy56b25lID0gdGhpcy5ob3N0ZWRab25lLnpvbmVOYW1lO1xuICAgIH1cbiAgICB0aGlzLnByaXZhdGVab25lID0gcHJvcHMucHJpdmF0ZVpvbmUgPz8gZmFsc2U7XG4gICAgdGhpcy52cGNJZCA9IHByb3BzLnZwY0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHByZWZpeCBmb3IgdGhpcyBkb21haW4gbmFtZS5cbiAgICovXG4gIGdldFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByZWZpeDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHpvbmUgaXMgcHJpdmF0ZS4gRmFsc2UgaWYgb3RoZXJ3aXNlLlxuICAgKi9cbiAgaW5Qcml2YXRlWm9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcml2YXRlWm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2cGMgSUQgZm9yIHRoaXMgem9uZSBvciB1bmRlZmluZWQgaWYgb25lIGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBnZXRWcGNJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnZwY0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHJvcHMgbWF0Y2ggdGhlIGRvbWFpbiBuYW1lLiBGYWxzZSBpZiBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcHJvcHMgdG8gY29tcGFyZVxuICAgKi9cbiAgcHJvcHNNYXRjaChwcm9wczogRG9tYWluTmFtZVByb3BzKTogYm9vbGVhbiB7XG4gICAgbGV0IHByb3Bab25lU3RyID0gdHlwZW9mIHByb3BzLnpvbmUgPT09IFwic3RyaW5nXCIgPyBwcm9wcy56b25lIDogcHJvcHMuem9uZS56b25lTmFtZTtcbiAgICByZXR1cm4gdGhpcy5wcmVmaXggPT09IHByb3BzLnByZWZpeFxuICAgICAgJiYgdGhpcy56b25lID09PSBwcm9wWm9uZVN0clxuICAgICAgJiYgdGhpcy5wcml2YXRlWm9uZSA9PT0gKHByb3BzLnByaXZhdGVab25lID8/IGZhbHNlKVxuICAgICAgJiYgdGhpcy52cGNJZCA9PT0gcHJvcHMudnBjSWRcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgdmVyc2lvbiBvZiB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKi9cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMucHJlZml4ID09IFwiXCIgPyBcIlwiIDogdGhpcy5wcmVmaXggKyBcIi5cIikgKyB0aGlzLnpvbmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGZyaWVuZGx5IGlkZW50aWZpZXIgZm9yIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICB0b0lkZW50aWZpZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpLnJlcGxhY2UoXCIuXCIsIFwiLVwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKi9cbiAgZ2V0Wm9uZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnpvbmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcm91dGU1MyBob3N0ZWQgem9uZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBkb21haW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0byB1c2UgaWYgYSBsb29rdXAgaXMgcmVxdWlyZWRcbiAgICogQHBhcmFtIGlkIGFuIG9wdGlvbmFsIElEIGlmIGEgbG9va3VwIGlzIHJlcXVpcmVkOyBvbmUgaXMgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZFxuICAgKi9cbiAgZ2V0SG9zdGVkWm9uZShzY29wZTogQ29uc3RydWN0LCBpZD86IHN0cmluZykgOiBJSG9zdGVkWm9uZSB7XG4gICAgaWYgKHRoaXMuaG9zdGVkWm9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Mb29rdXAoc2NvcGUsIGlkID8/IGAke3RoaXMudG9JZGVudGlmaWVyKCl9LXpvbmVgLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHRoaXMuem9uZSxcbiAgICAgICAgcHJpdmF0ZVpvbmU6IHRoaXMucHJpdmF0ZVpvbmUsXG4gICAgICAgIHZwY0lkOiB0aGlzLnZwY0lkXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaG9zdGVkWm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUm91dGU1MyBBUmVjb3JkIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGUgcmVjb3JkIGluXG4gICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBvZiB0aGUgcmVjb3JkXG4gICAqL1xuICBjcmVhdGVBUmVjb3JkKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldDogUmVjb3JkVGFyZ2V0KTogQVJlY29yZCB7XG4gICAgcmV0dXJuIG5ldyBBUmVjb3JkKHNjb3BlLCBgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1hcmVjb3JkYCwge1xuICAgICAgem9uZTogdGhpcy5nZXRIb3N0ZWRab25lKHNjb3BlKSxcbiAgICAgIHJlY29yZE5hbWU6IHRoaXMudG9TdHJpbmcoKSxcbiAgICAgIHRhcmdldFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB3ZWlnaHRlZCBSb3V0ZTUzIHJlY29yZCBmb3IgdGhpcyBkb21haW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0byBjcmVhdGUgdGhlIHJlY29yZCBpblxuICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgb2YgdGhlIHJlY29yZFxuICAgKiBAcGFyYW0gd2VpZ2h0IHRoZSBpbml0aWFsIHdlaWdodDsgZGVmYXVsdHMgdG8gMFxuICAgKi9cbiAgY3JlYXRlV2VpZ2h0ZWRBUmVjb3JkKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldDogUmVjb3JkVGFyZ2V0LCB3ZWlnaHQ/OiBudW1iZXIpOiBXZWlnaHRlZEFSZWNvcmQge1xuICAgIHJldHVybiBuZXcgV2VpZ2h0ZWRBUmVjb3JkKHNjb3BlLCBgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1hcmVjb3JkYCwge1xuICAgICAgem9uZTogdGhpcy5nZXRIb3N0ZWRab25lKHNjb3BlKSxcbiAgICAgIHJlY29yZE5hbWU6IHRoaXMudG9TdHJpbmcoKSxcbiAgICAgIHRhcmdldCxcbiAgICAgIHdlaWdodFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsYXRlbmN5IFJvdXRlNTMgcmVjb3JkIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGUgcmVjb3JkIGluXG4gICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBvZiB0aGUgcmVjb3JkXG4gICAqL1xuICBjcmVhdGVMYXRlbmN5QVJlY29yZChzY29wZTogQ29uc3RydWN0LCB0YXJnZXQ6IFJlY29yZFRhcmdldCk6IExhdGVuY3lBUmVjb3JkIHtcbiAgICByZXR1cm4gbmV3IExhdGVuY3lBUmVjb3JkKHNjb3BlLCBgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1hcmVjb3JkYCwge1xuICAgICAgem9uZTogdGhpcy5nZXRIb3N0ZWRab25lKHNjb3BlKSxcbiAgICAgIHJlY29yZE5hbWU6IHRoaXMudG9TdHJpbmcoKSxcbiAgICAgIHRhcmdldFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZWQgYSB3ZWlnaHRlZCBsYXRlbmN5IFJvdXRlNTMgcmVjb3JkIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGUgcmVjb3JkIGluXG4gICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBvZiB0aGUgcmVjb3JkXG4gICAqIEBwYXJhbSB3ZWlnaHQgdGhlIGluaXRpYWwgd2VpZ2h0OyBkZWZhdWx0cyB0byAwXG4gICAqL1xuICBjcmVhdGVXZWlnaHRlZExhdGVuY3lBUmVjb3JkKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldDogUmVjb3JkVGFyZ2V0LCB3ZWlnaHQ/OiBudW1iZXIpOiBXZWlnaHRlZExhdGVuY3lBUmVjb3JkIHtcbiAgICByZXR1cm4gbmV3IFdlaWdodGVkTGF0ZW5jeUFSZWNvcmQoc2NvcGUsIGAke3RoaXMudG9JZGVudGlmaWVyKCl9LWFyZWNvcmRgLCB7XG4gICAgICB6b25lOiB0aGlzLmdldEhvc3RlZFpvbmUoc2NvcGUpLFxuICAgICAgcmVjb3JkTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgdGFyZ2V0LFxuICAgICAgd2VpZ2h0XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgRG9tYWluTmFtZVByb3BzIHRvIERvbWFpbk5hbWUuIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZW1wdHkgYXJyYXlcbiAgICogaWYgZG9tYWluTmFtZVByb3BzIGlzIHVuZGVmaW5lZC5cbiAgICpcbiAgICogQHBhcmFtIGRvbWFpbk5hbWVQcm9wcyB0aGUgRG9tYWluTmFtZVByb3BzIG9iamVjdHMgdG8gY29udmVydFxuICAgKi9cbiAgc3RhdGljIGZyb21Qcm9wcyhkb21haW5OYW1lUHJvcHM/OiBEb21haW5OYW1lUHJvcHNbXSkgOiBEb21haW5OYW1lW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lUHJvcHMgPT09IHVuZGVmaW5lZCA/IFtdIDogZG9tYWluTmFtZVByb3BzLm1hcChwID0+IG5ldyBEb21haW5OYW1lKHApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBEb21haW5OYW1lIG9iamVjdHMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy4gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBhblxuICAgKiBlbXB0eSBhcnJheSBpZiBkb21haW5OYW1lcyBpcyB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBkb21haW5OYW1lcyB0aGUgRG9tYWluTmFtZSBvYmplY3RzIHRvIGNvbnZlcnRcbiAgICovXG4gIHN0YXRpYyB0b1N0cmluZ3MoZG9tYWluTmFtZXM/OiBEb21haW5OYW1lW10pIDogc3RyaW5nW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lcyA9PT0gdW5kZWZpbmVkID8gW10gOiBkb21haW5OYW1lcy5tYXAoZCA9PiBkLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGFuIGFycmF5IG9mIERvbWFpbk5hbWVQcm9wcyB0byBhbiBhcnJheSBvZiBzdHJpbmdzLiBUaGlzIGZ1bmN0aW9uIHdpbGxcbiAgICogcmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRvbWFpbk5hbWVQcm9wcyBpcyB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBkb21haW5OYW1lUHJvcHMgdGhlIERvbWFpbk5hbWVQcm9wcyBvYmplY3RzIHRvIGNvbnZlcnRcbiAgICovXG4gIHN0YXRpYyB0b1N0cmluZ3NGcm9tUHJvcHMoZG9tYWluTmFtZVByb3BzPzogRG9tYWluTmFtZVByb3BzW10pIDogc3RyaW5nW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lUHJvcHMgPT09IHVuZGVmaW5lZCA/IFtdIDogRG9tYWluTmFtZS50b1N0cmluZ3MoRG9tYWluTmFtZS5mcm9tUHJvcHMoZG9tYWluTmFtZVByb3BzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgRG9tYWluTmFtZSBvYmplY3RzIHRvIGEgbWFwIHdoZXJlIHRoZSBrZXkgaXMgdGhlIGRvbWFpbiBuYW1lIHN0cmluZyBhbmQgdGhlIHZhbHVlXG4gICAqIGlzIGFuIElIb3N0ZWRab25lLiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBlbXB0eSBtYXAgaWYgZG9tYWluTmFtZXMgaXMgdW5kZWZpbmVkLiBUaGlzIGZ1bmN0aW9uXG4gICAqIGlzIHVzZWZ1bCB3aGVuIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBmdW5jdGlvbnMgbGlrZSBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB1c2VkIGlmIGEgem9uZSBsb29rdXAgaXMgcmVxdWlyZWRcbiAgICogQHBhcmFtIGRvbWFpbk5hbWVzIHRoZSBEb21haW5OYW1lIG9iamVjdHMgdG8gY29udmVydFxuICAgKi9cbiAgc3RhdGljIHRvWm9uZU1hcChzY29wZTogQ29uc3RydWN0LCBkb21haW5OYW1lcz86IERvbWFpbk5hbWVbXSkgOiB7IFtkb21haW5OYW1lOiBzdHJpbmddOiBJSG9zdGVkWm9uZSB9IHtcbiAgICBjb25zdCBtYXA6IHtba2V5OiBzdHJpbmddOiBJSG9zdGVkWm9uZX0gPSB7fVxuICAgIGlmIChkb21haW5OYW1lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkb21haW5OYW1lcy5mb3JFYWNoKGQgPT4ge1xuICAgICAgICBtYXBbZC50b1N0cmluZygpXSA9IGQuZ2V0SG9zdGVkWm9uZShzY29wZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGFuIGFycnkgb2YgRG9tYWluTmFtZVByb3BzIG9iamVjdHMgdG8gYSBtYXAgd2hlcmUgdGhlIGtleSBpcyB0aGUgZG9tYWluIG5hbWUgc3RyaW5nIGFuZCB0aGVcbiAgICogdmFsdWUgaXMgYW4gSUhvc3RlZFpvbmUuIFRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGFuIGVtcHR5IG1hcCBpZiBkb21haW5OYW1lUHJvcHMgaXMgdW5kZWZpbmVkLiBUaGlzXG4gICAqIGZ1bmN0aW9uIGlzIHVzZWZ1bCB3aGVuIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBmdW5jdGlvbnMgbGlrZSBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB1c2VkIGlmIGEgem9uZSBsb29rdXAgaXMgcmVxdWlyZWRcbiAgICogQHBhcmFtIGRvbWFpbk5hbWVQcm9wcyB0aGUgRG9tYWluTmFtZVByb3BzIG9iamVjdHMgdG8gY29udmVydFxuICAgKi9cbiAgc3RhdGljIHRvWm9uZU1hcEZyb21Qcm9wcyhzY29wZTogQ29uc3RydWN0LCBkb21haW5OYW1lUHJvcHM6IERvbWFpbk5hbWVQcm9wc1tdKSA6IHsgW2RvbWFpbk5hbWU6IHN0cmluZ106IElIb3N0ZWRab25lIH0ge1xuICAgIHJldHVybiBEb21haW5OYW1lLnRvWm9uZU1hcChzY29wZSwgRG9tYWluTmFtZS5mcm9tUHJvcHMoZG9tYWluTmFtZVByb3BzKSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgdGhlIGRvbWFpbiBuYW1lIG1hdGNoaW5nIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIGluIGFuIGFycmF5IG9mIERvbWFpbk5hbWUgb2JqZWN0cy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0aWVzIHRvIGNvbXBhcmVcbiAgICogQHBhcmFtIGRvbWFpbk5hbWVzIHRoZSBkb21haW4gbmFtZXMgdG8gc2VhcmNoXG4gICAqIEByZXR1cm4gdGhlIG1hdGNoaW5nIGRvbWFpbiBuYW1lIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgc3RhdGljIGZpbmREb21haW5OYW1lKHByb3BzOiBEb21haW5OYW1lUHJvcHMsIGRvbWFpbk5hbWVzPzogRG9tYWluTmFtZVtdKTogRG9tYWluTmFtZSB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChsZXQgZG9tYWluTmFtZSBvZiBkb21haW5OYW1lcyA/PyBbXSkge1xuICAgICAgaWYgKGRvbWFpbk5hbWUucHJvcHNNYXRjaChwcm9wcykpIHtcbiAgICAgICAgcmV0dXJuIGRvbWFpbk5hbWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkb21haW4tbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBdUY7QUFFdkYsMkRBQW9EO0FBQ3BELHlEQUFrRDtBQUNsRCwyRUFBbUU7QUFDbkUsK0VBQXNGO0FBQ3RGLGdFQUErRDtBQUMvRCx5REFBd0Q7QUEwSHhEOzs7R0FHRztBQUNILE1BQWEsVUFBVTtJQVFyQjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFzQjs7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsU0FBRyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxLQUFLLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEtBQXNCOztRQUMvQixJQUFJLFdBQVcsR0FBRyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU07ZUFDOUIsSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXO2VBQ3pCLElBQUksQ0FBQyxXQUFXLEtBQUssT0FBQyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxLQUFLLENBQUM7ZUFDakQsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGFBQWEsQ0FBQyxLQUFnQixFQUFFLEVBQVc7UUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLHdCQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFO2dCQUNsRixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxLQUFnQixFQUFFLE1BQW9CO1FBQ2xELE9BQU8sSUFBSSxxQkFBTyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO1lBQzFELElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFDLEtBQWdCLEVBQUUsTUFBb0IsRUFBRSxNQUFlO1FBQzNFLE9BQU8sSUFBSSxtQ0FBZSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO1lBQ2xFLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFDLEtBQWdCLEVBQUUsTUFBb0I7UUFDekQsT0FBTyxJQUFJLGlDQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUU7WUFDakUsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsNEJBQTRCLENBQUMsS0FBZ0IsRUFBRSxNQUFvQixFQUFFLE1BQWU7UUFDbEYsT0FBTyxJQUFJLGtEQUFzQixDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO1lBQ3pFLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFDLEtBQWdCLEVBQUUsSUFBeUI7O1FBQzNELE9BQU8sSUFBSSxvQ0FBVyxDQUFDLEtBQUssUUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsRUFBRSxtQ0FBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFO1lBQ3ZFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLFVBQVUsRUFBRSw4Q0FBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRSx1QkFBdUIsRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsdUJBQXVCO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCw0QkFBNEIsQ0FBQyxLQUFnQixFQUFFLFdBQXdCLEVBQUUsSUFBb0M7O1FBQzNHLE9BQU8sSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssUUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsRUFBRSxtQ0FBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO1lBQ3RGLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzNCLFdBQVc7WUFDWCxHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsMEJBQTBCLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLElBQWtDOztRQUN2RyxPQUFPLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQUUsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEVBQUUsbUNBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRTtZQUNsRixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixXQUFXO1lBQ1gsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFtQztRQUNsRCxPQUFPLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUEwQjtRQUN6QyxPQUFPLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFtQztRQUMzRCxPQUFPLGVBQWUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWdCLEVBQUUsV0FBMEI7UUFDM0QsTUFBTSxHQUFHLEdBQWlDLEVBQUUsQ0FBQTtRQUM1QyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDN0IsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDNUMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBZ0IsRUFBRSxlQUFrQztRQUM1RSxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFzQixFQUFFLFdBQTBCO1FBQ3RFLEtBQUssSUFBSSxVQUFVLElBQUksV0FBVyxhQUFYLFdBQVcsY0FBWCxXQUFXLEdBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxVQUFVLENBQUM7YUFDbkI7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQXJSRCxnQ0FxUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FSZWNvcmQsIEhvc3RlZFpvbmUsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1dlaWdodGVkQVJlY29yZH0gZnJvbSBcIi4vd2VpZ2h0ZWQtYS1yZWNvcmRcIjtcbmltcG9ydCB7TGF0ZW5jeUFSZWNvcmR9IGZyb20gXCIuL2xhdGVuY3ktYS1yZWNvcmRcIjtcbmltcG9ydCB7V2VpZ2h0ZWRMYXRlbmN5QVJlY29yZH0gZnJvbSBcIi4vd2VpZ2h0ZWQtbGF0ZW5jeS1hLXJlY29yZFwiO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZSwgQ2VydGlmaWNhdGVWYWxpZGF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0ICogYXMgYXBpZ2F0ZXdheXYyIGZyb20gXCJAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWFscGhhXCJcbmltcG9ydCAqIGFzIGFwaWdhdGV3YXkgZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCJcbmltcG9ydCB7RW5kcG9pbnRUeXBlLCBNVExTQ29uZmlnLCBTZWN1cml0eVBvbGljeX0gZnJvbSBcIkBhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGEvbGliL2NvbW1vbi9kb21haW4tbmFtZVwiO1xuaW1wb3J0IHtJUmVzdEFwaX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5L2xpYi9yZXN0YXBpXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRG9tYWluTmFtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk5hbWVQcm9wcyB7XG4gIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSB6b25lOiBzdHJpbmcgfCBJSG9zdGVkWm9uZTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU/OiBib29sZWFuO1xuICByZWFkb25seSB2cGNJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBQ00gY2VydGlmaWNhdGUgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENlcnRpZmljYXRlT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIHRvIHVzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1jZXJ0XG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgZG9tYWluIG5hbWVzIG9uIHRoZSBjZXJ0aWZpY2F0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBWMiBBUEkgZ2F0ZXdheSBkb21haW4gbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlHYXRld2F5VjJEb21haW5OYW1lT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIHRvIHVzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1hcGlnd3YyXG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZW5kcG9pbnQgZm9yIHRoaXMgRG9tYWluTmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgRW5kcG9pbnRUeXBlLlJFR0lPTkFMXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludFR5cGU/OiBFbmRwb2ludFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKFRMUykgdmVyc2lvbiArIGNpcGhlciBzdWl0ZSBmb3IgdGhpcyBkb21haW4gbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgU2VjdXJpdHlQb2xpY3kuVExTXzFfMlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlQb2xpY3k/OiBTZWN1cml0eVBvbGljeTtcblxuICAvKipcbiAgICogVGhlIG11dHVhbCBUTFMgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBjdXN0b20gZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbVRMUyBpcyBub3QgY29uZmlndXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IG10bHM/OiBNVExTQ29uZmlnO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGFuIEFQSSBnYXRld2F5IGRvbWFpbiBuYW1lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpR2F0ZXdheURvbWFpbk5hbWVPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgdG8gdXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAke3RoaXMudG9JZGVudGlmaWVyKCl9LWFwaWd3XG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc3BlY2lmaWVkLCBhbGwgcmVxdWVzdHMgdG8gdGhpcyBkb21haW4gd2lsbCBiZSBtYXBwZWQgdG8gdGhlIHByb2R1Y3Rpb25cbiAgICogZGVwbG95bWVudCBvZiB0aGlzIEFQSS4gSWYgeW91IHdpc2ggdG8gbWFwIHRoaXMgZG9tYWluIHRvIG11bHRpcGxlIEFQSXNcbiAgICogd2l0aCBkaWZmZXJlbnQgYmFzZSBwYXRocywgZG9uJ3Qgc3BlY2lmeSB0aGlzIG9wdGlvbiBhbmQgdXNlXG4gICAqIGBhZGRCYXNlUGF0aE1hcHBpbmdgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHlvdSB3aWxsIGhhdmUgdG8gY2FsbCBgYWRkQmFzZVBhdGhNYXBwaW5nYCB0byBtYXAgdGhpcyBkb21haW4gdG9cbiAgICogQVBJIGVuZHBvaW50cy5cbiAgICovXG4gIHJlYWRvbmx5IG1hcHBpbmc/OiBJUmVzdEFwaTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZW5kcG9pbnQgZm9yIHRoaXMgRG9tYWluTmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgUkVHSU9OQUxcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50VHlwZT86IEVuZHBvaW50VHlwZTtcblxuICAvKipcbiAgICogVGhlIFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKSB2ZXJzaW9uICsgY2lwaGVyIHN1aXRlIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1hcGlnYXRld2F5LWRvbWFpbm5hbWUuaHRtbFxuICAgKiBAZGVmYXVsdCBTZWN1cml0eVBvbGljeS5UTFNfMV8wXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eVBvbGljeT86IFNlY3VyaXR5UG9saWN5O1xuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIG5hbWUgdGhhdCBjYWxsZXJzIG9mIHRoZSBBUEkgbXVzdCBwcm92aWRlIGluIHRoZSBVUkwgYWZ0ZXJcbiAgICogdGhlIGRvbWFpbiBuYW1lIChlLmcuIGBleGFtcGxlLmNvbS9iYXNlLXBhdGhgKS4gSWYgeW91IHNwZWNpZnkgdGhpc1xuICAgKiBwcm9wZXJ0eSwgaXQgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG1hcCByZXF1ZXN0cyBmcm9tIHRoZSBkb21haW4gcm9vdCAoZS5nLiBgZXhhbXBsZS5jb21gKS4gSWYgdGhpc1xuICAgKiBpcyB1bmRlZmluZWQsIG5vIGFkZGl0aW9uYWwgbWFwcGluZ3Mgd2lsbCBiZSBhbGxvd2VkIG9uIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG11dHVhbCBUTFMgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBjdXN0b20gZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbVRMUyBpcyBub3QgY29uZmlndXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IG10bHM/OiBNVExTQ29uZmlnO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGhvbGRpbmcgZG9tYWluIG5hbWUgaW5mb3JtYXRpb24gYW5kXG4gKiBkb2luZyB1c2VmdWwgdGhpbmdzIHdpdGggaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEb21haW5OYW1lIHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSB6b25lOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBob3N0ZWRab25lPzogSUhvc3RlZFpvbmU7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcml2YXRlWm9uZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IERvbWFpbk5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcHJvcGVydGllcyBvZiB0aGUgZG9tYWluIG5hbWVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBEb21haW5OYW1lUHJvcHMpIHtcbiAgICB0aGlzLnByZWZpeCA9IHByb3BzLnByZWZpeDtcbiAgICBpZiAodHlwZW9mIHByb3BzLnpvbmUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHRoaXMuem9uZSA9IHByb3BzLnpvbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZSA9IHByb3BzLnpvbmU7XG4gICAgICB0aGlzLnpvbmUgPSB0aGlzLmhvc3RlZFpvbmUuem9uZU5hbWU7XG4gICAgfVxuICAgIHRoaXMucHJpdmF0ZVpvbmUgPSBwcm9wcy5wcml2YXRlWm9uZSA/PyBmYWxzZTtcbiAgICB0aGlzLnZwY0lkID0gcHJvcHMudnBjSWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcHJlZml4IGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKi9cbiAgZ2V0UHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJlZml4O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgem9uZSBpcyBwcml2YXRlLiBGYWxzZSBpZiBvdGhlcndpc2UuXG4gICAqL1xuICBpblByaXZhdGVab25lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByaXZhdGVab25lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZwYyBJRCBmb3IgdGhpcyB6b25lIG9yIHVuZGVmaW5lZCBpZiBvbmUgZG9lcyBub3QgZXhpc3RcbiAgICovXG4gIGdldFZwY0lkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudnBjSWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wcyBtYXRjaCB0aGUgZG9tYWluIG5hbWUuIEZhbHNlIGlmIG90aGVyd2lzZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wcyB0byBjb21wYXJlXG4gICAqL1xuICBwcm9wc01hdGNoKHByb3BzOiBEb21haW5OYW1lUHJvcHMpOiBib29sZWFuIHtcbiAgICBsZXQgcHJvcFpvbmVTdHIgPSB0eXBlb2YgcHJvcHMuem9uZSA9PT0gXCJzdHJpbmdcIiA/IHByb3BzLnpvbmUgOiBwcm9wcy56b25lLnpvbmVOYW1lO1xuICAgIHJldHVybiB0aGlzLnByZWZpeCA9PT0gcHJvcHMucHJlZml4XG4gICAgICAmJiB0aGlzLnpvbmUgPT09IHByb3Bab25lU3RyXG4gICAgICAmJiB0aGlzLnByaXZhdGVab25lID09PSAocHJvcHMucHJpdmF0ZVpvbmUgPz8gZmFsc2UpXG4gICAgICAmJiB0aGlzLnZwY0lkID09PSBwcm9wcy52cGNJZFxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0cmluZyB2ZXJzaW9uIG9mIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5wcmVmaXggPT0gXCJcIiA/IFwiXCIgOiB0aGlzLnByZWZpeCArIFwiLlwiKSArIHRoaXMuem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgZnJpZW5kbHkgaWRlbnRpZmllciBmb3IgdGhpcyBkb21haW4gbmFtZS5cbiAgICovXG4gIHRvSWRlbnRpZmllcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCkucmVwbGFjZShcIi5cIiwgXCItXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICBnZXRab25lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByb3V0ZTUzIGhvc3RlZCB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKiBUaGlzIG1ldGhvZCBpcyBzYWZlIHRvIGNhbGwgcmVwZWF0ZWRseSwgdGhlIGxvb2t1cCB3aWxsIG9ubHkgYmUgZG9uZSBvbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIHVzZSBpZiBhIGxvb2t1cCBpcyByZXF1aXJlZFxuICAgKiBAcGFyYW0gaWQgYW4gb3B0aW9uYWwgSUQgaWYgYSBsb29rdXAgaXMgcmVxdWlyZWQ7IG9uZSBpcyBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkXG4gICAqL1xuICBnZXRIb3N0ZWRab25lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSA6IElIb3N0ZWRab25lIHtcbiAgICBpZiAodGhpcy5ob3N0ZWRab25lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZSA9IEhvc3RlZFpvbmUuZnJvbUxvb2t1cChzY29wZSwgaWQgPz8gYCR7dGhpcy50b0lkZW50aWZpZXIoKX0tem9uZWAsIHtcbiAgICAgICAgZG9tYWluTmFtZTogdGhpcy56b25lLFxuICAgICAgICBwcml2YXRlWm9uZTogdGhpcy5wcml2YXRlWm9uZSxcbiAgICAgICAgdnBjSWQ6IHRoaXMudnBjSWRcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ob3N0ZWRab25lO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSb3V0ZTUzIEFSZWNvcmQgZm9yIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdG8gY3JlYXRlIHRoZSByZWNvcmQgaW5cbiAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IG9mIHRoZSByZWNvcmRcbiAgICovXG4gIGNyZWF0ZUFSZWNvcmQoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0OiBSZWNvcmRUYXJnZXQpOiBBUmVjb3JkIHtcbiAgICByZXR1cm4gbmV3IEFSZWNvcmQoc2NvcGUsIGAke3RoaXMudG9JZGVudGlmaWVyKCl9LWFyZWNvcmRgLCB7XG4gICAgICB6b25lOiB0aGlzLmdldEhvc3RlZFpvbmUoc2NvcGUpLFxuICAgICAgcmVjb3JkTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgdGFyZ2V0XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHdlaWdodGVkIFJvdXRlNTMgcmVjb3JkIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGUgcmVjb3JkIGluXG4gICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBvZiB0aGUgcmVjb3JkXG4gICAqIEBwYXJhbSB3ZWlnaHQgdGhlIGluaXRpYWwgd2VpZ2h0OyBkZWZhdWx0cyB0byAwXG4gICAqL1xuICBjcmVhdGVXZWlnaHRlZEFSZWNvcmQoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0OiBSZWNvcmRUYXJnZXQsIHdlaWdodD86IG51bWJlcik6IFdlaWdodGVkQVJlY29yZCB7XG4gICAgcmV0dXJuIG5ldyBXZWlnaHRlZEFSZWNvcmQoc2NvcGUsIGAke3RoaXMudG9JZGVudGlmaWVyKCl9LWFyZWNvcmRgLCB7XG4gICAgICB6b25lOiB0aGlzLmdldEhvc3RlZFpvbmUoc2NvcGUpLFxuICAgICAgcmVjb3JkTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgdGFyZ2V0LFxuICAgICAgd2VpZ2h0XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGxhdGVuY3kgUm91dGU1MyByZWNvcmQgZm9yIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdG8gY3JlYXRlIHRoZSByZWNvcmQgaW5cbiAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IG9mIHRoZSByZWNvcmRcbiAgICovXG4gIGNyZWF0ZUxhdGVuY3lBUmVjb3JkKHNjb3BlOiBDb25zdHJ1Y3QsIHRhcmdldDogUmVjb3JkVGFyZ2V0KTogTGF0ZW5jeUFSZWNvcmQge1xuICAgIHJldHVybiBuZXcgTGF0ZW5jeUFSZWNvcmQoc2NvcGUsIGAke3RoaXMudG9JZGVudGlmaWVyKCl9LWFyZWNvcmRgLCB7XG4gICAgICB6b25lOiB0aGlzLmdldEhvc3RlZFpvbmUoc2NvcGUpLFxuICAgICAgcmVjb3JkTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgdGFyZ2V0XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHdlaWdodGVkIGxhdGVuY3kgUm91dGU1MyByZWNvcmQgZm9yIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdG8gY3JlYXRlIHRoZSByZWNvcmQgaW5cbiAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IG9mIHRoZSByZWNvcmRcbiAgICogQHBhcmFtIHdlaWdodCB0aGUgaW5pdGlhbCB3ZWlnaHQ7IGRlZmF1bHRzIHRvIDBcbiAgICovXG4gIGNyZWF0ZVdlaWdodGVkTGF0ZW5jeUFSZWNvcmQoc2NvcGU6IENvbnN0cnVjdCwgdGFyZ2V0OiBSZWNvcmRUYXJnZXQsIHdlaWdodD86IG51bWJlcik6IFdlaWdodGVkTGF0ZW5jeUFSZWNvcmQge1xuICAgIHJldHVybiBuZXcgV2VpZ2h0ZWRMYXRlbmN5QVJlY29yZChzY29wZSwgYCR7dGhpcy50b0lkZW50aWZpZXIoKX0tYXJlY29yZGAsIHtcbiAgICAgIHpvbmU6IHRoaXMuZ2V0SG9zdGVkWm9uZShzY29wZSksXG4gICAgICByZWNvcmROYW1lOiB0aGlzLnRvU3RyaW5nKCksXG4gICAgICB0YXJnZXQsXG4gICAgICB3ZWlnaHRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFDTSBjZXJ0aWZpY2F0ZSBmb3IgdGhlIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGUgcmVjb3JkIGluXG4gICAqIEBwYXJhbSBvcHRzIGFkZGl0aW9uYWwgb3B0aW9uc1xuICAgKi9cbiAgY3JlYXRlQ2VydGlmaWNhdGUoc2NvcGU6IENvbnN0cnVjdCwgb3B0cz86IENlcnRpZmljYXRlT3B0aW9ucyk6IENlcnRpZmljYXRlIHtcbiAgICByZXR1cm4gbmV3IENlcnRpZmljYXRlKHNjb3BlLCBvcHRzPy5pZCA/PyBgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1jZXJ0YCwge1xuICAgICAgZG9tYWluTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgdmFsaWRhdGlvbjogQ2VydGlmaWNhdGVWYWxpZGF0aW9uLmZyb21EbnModGhpcy5nZXRIb3N0ZWRab25lKHNjb3BlKSksXG4gICAgICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lczogb3B0cz8uc3ViamVjdEFsdGVybmF0aXZlTmFtZXNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFQSSBHYXRld2F5IFYyIGRvbWFpbiBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGUgZG9tYWluIG5hbWUgaW5cbiAgICogQHBhcmFtIGNlcnRpZmljYXRlIHRoZSBjZXJ0aWZpY2F0ZSB0byB1c2Ugb24gdGhlIGRvbWFpbiBuYW1lXG4gICAqIEBwYXJhbSBvcHRzIGFkZGl0aW9uYWwgb3B0aW9uc1xuICAgKi9cbiAgY3JlYXRlQXBpR2F0ZXdheVYyRG9tYWluTmFtZShzY29wZTogQ29uc3RydWN0LCBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUsIG9wdHM/OiBBcGlHYXRld2F5VjJEb21haW5OYW1lT3B0aW9ucyk6IGFwaWdhdGV3YXl2Mi5Eb21haW5OYW1lIHtcbiAgICByZXR1cm4gbmV3IGFwaWdhdGV3YXl2Mi5Eb21haW5OYW1lKHNjb3BlLCBvcHRzPy5pZCA/PyBgJHt0aGlzLnRvSWRlbnRpZmllcigpfS1hcGlnd3YyYCwge1xuICAgICAgZG9tYWluTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgY2VydGlmaWNhdGUsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBBUEkgR2F0ZXdheSBkb21haW4gbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0byBjcmVhdGUgdGhlIGRvbWFpbiBuYW1lIGluXG4gICAqIEBwYXJhbSBjZXJ0aWZpY2F0ZSB0aGUgY2VydGlmaWNhdGUgdG8gdXNlIG9uIHRoZSBkb21haW4gbmFtZVxuICAgKiBAcGFyYW0gb3B0cyBhZGRpdGlvbmFsIG9wdGlvbnNcbiAgICovXG4gIGNyZWF0ZUFwaUdhdGV3YXlEb21haW5OYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZSwgb3B0cz86IEFwaUdhdGV3YXlEb21haW5OYW1lT3B0aW9ucyk6IGFwaWdhdGV3YXkuRG9tYWluTmFtZSB7XG4gICAgcmV0dXJuIG5ldyBhcGlnYXRld2F5LkRvbWFpbk5hbWUoc2NvcGUsIG9wdHM/LmlkID8/IGAke3RoaXMudG9JZGVudGlmaWVyKCl9LWFwaWd3YCwge1xuICAgICAgZG9tYWluTmFtZTogdGhpcy50b1N0cmluZygpLFxuICAgICAgY2VydGlmaWNhdGUsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgRG9tYWluTmFtZVByb3BzIHRvIERvbWFpbk5hbWUuIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZW1wdHkgYXJyYXlcbiAgICogaWYgZG9tYWluTmFtZVByb3BzIGlzIHVuZGVmaW5lZC5cbiAgICpcbiAgICogQHBhcmFtIGRvbWFpbk5hbWVQcm9wcyB0aGUgRG9tYWluTmFtZVByb3BzIG9iamVjdHMgdG8gY29udmVydFxuICAgKi9cbiAgc3RhdGljIGZyb21Qcm9wcyhkb21haW5OYW1lUHJvcHM/OiBEb21haW5OYW1lUHJvcHNbXSkgOiBEb21haW5OYW1lW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lUHJvcHMgPT09IHVuZGVmaW5lZCA/IFtdIDogZG9tYWluTmFtZVByb3BzLm1hcChwID0+IG5ldyBEb21haW5OYW1lKHApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBEb21haW5OYW1lIG9iamVjdHMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy4gVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBhblxuICAgKiBlbXB0eSBhcnJheSBpZiBkb21haW5OYW1lcyBpcyB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBkb21haW5OYW1lcyB0aGUgRG9tYWluTmFtZSBvYmplY3RzIHRvIGNvbnZlcnRcbiAgICovXG4gIHN0YXRpYyB0b1N0cmluZ3MoZG9tYWluTmFtZXM/OiBEb21haW5OYW1lW10pIDogc3RyaW5nW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lcyA9PT0gdW5kZWZpbmVkID8gW10gOiBkb21haW5OYW1lcy5tYXAoZCA9PiBkLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGFuIGFycmF5IG9mIERvbWFpbk5hbWVQcm9wcyB0byBhbiBhcnJheSBvZiBzdHJpbmdzLiBUaGlzIGZ1bmN0aW9uIHdpbGxcbiAgICogcmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRvbWFpbk5hbWVQcm9wcyBpcyB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBkb21haW5OYW1lUHJvcHMgdGhlIERvbWFpbk5hbWVQcm9wcyBvYmplY3RzIHRvIGNvbnZlcnRcbiAgICovXG4gIHN0YXRpYyB0b1N0cmluZ3NGcm9tUHJvcHMoZG9tYWluTmFtZVByb3BzPzogRG9tYWluTmFtZVByb3BzW10pIDogc3RyaW5nW10ge1xuICAgIHJldHVybiBkb21haW5OYW1lUHJvcHMgPT09IHVuZGVmaW5lZCA/IFtdIDogRG9tYWluTmFtZS50b1N0cmluZ3MoRG9tYWluTmFtZS5mcm9tUHJvcHMoZG9tYWluTmFtZVByb3BzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgRG9tYWluTmFtZSBvYmplY3RzIHRvIGEgbWFwIHdoZXJlIHRoZSBrZXkgaXMgdGhlIGRvbWFpbiBuYW1lIHN0cmluZyBhbmQgdGhlIHZhbHVlXG4gICAqIGlzIGFuIElIb3N0ZWRab25lLiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBlbXB0eSBtYXAgaWYgZG9tYWluTmFtZXMgaXMgdW5kZWZpbmVkLiBUaGlzIGZ1bmN0aW9uXG4gICAqIGlzIHVzZWZ1bCB3aGVuIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBmdW5jdGlvbnMgbGlrZSBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB1c2VkIGlmIGEgem9uZSBsb29rdXAgaXMgcmVxdWlyZWRcbiAgICogQHBhcmFtIGRvbWFpbk5hbWVzIHRoZSBEb21haW5OYW1lIG9iamVjdHMgdG8gY29udmVydFxuICAgKi9cbiAgc3RhdGljIHRvWm9uZU1hcChzY29wZTogQ29uc3RydWN0LCBkb21haW5OYW1lcz86IERvbWFpbk5hbWVbXSkgOiB7IFtkb21haW5OYW1lOiBzdHJpbmddOiBJSG9zdGVkWm9uZSB9IHtcbiAgICBjb25zdCBtYXA6IHtba2V5OiBzdHJpbmddOiBJSG9zdGVkWm9uZX0gPSB7fVxuICAgIGlmIChkb21haW5OYW1lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkb21haW5OYW1lcy5mb3JFYWNoKGQgPT4ge1xuICAgICAgICBtYXBbZC50b1N0cmluZygpXSA9IGQuZ2V0SG9zdGVkWm9uZShzY29wZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGFuIGFycmF5IG9mIERvbWFpbk5hbWVQcm9wcyBvYmplY3RzIHRvIGEgbWFwIHdoZXJlIHRoZSBrZXkgaXMgdGhlIGRvbWFpbiBuYW1lIHN0cmluZyBhbmQgdGhlXG4gICAqIHZhbHVlIGlzIGFuIElIb3N0ZWRab25lLiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBlbXB0eSBtYXAgaWYgZG9tYWluTmFtZVByb3BzIGlzIHVuZGVmaW5lZC4gVGhpc1xuICAgKiBmdW5jdGlvbiBpcyB1c2VmdWwgd2hlbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggZnVuY3Rpb25zIGxpa2UgQ2VydGlmaWNhdGVWYWxpZGF0aW9uLmZyb21EbnNNdWx0aVpvbmUuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdXNlZCBpZiBhIHpvbmUgbG9va3VwIGlzIHJlcXVpcmVkXG4gICAqIEBwYXJhbSBkb21haW5OYW1lUHJvcHMgdGhlIERvbWFpbk5hbWVQcm9wcyBvYmplY3RzIHRvIGNvbnZlcnRcbiAgICovXG4gIHN0YXRpYyB0b1pvbmVNYXBGcm9tUHJvcHMoc2NvcGU6IENvbnN0cnVjdCwgZG9tYWluTmFtZVByb3BzOiBEb21haW5OYW1lUHJvcHNbXSkgOiB7IFtkb21haW5OYW1lOiBzdHJpbmddOiBJSG9zdGVkWm9uZSB9IHtcbiAgICByZXR1cm4gRG9tYWluTmFtZS50b1pvbmVNYXAoc2NvcGUsIERvbWFpbk5hbWUuZnJvbVByb3BzKGRvbWFpbk5hbWVQcm9wcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBkb21haW4gbmFtZSBtYXRjaGluZyB0aGUgZ2l2ZW4gcHJvcGVydGllcyBpbiBhbiBhcnJheSBvZiBEb21haW5OYW1lIG9iamVjdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcHJvcGVydGllcyB0byBjb21wYXJlXG4gICAqIEBwYXJhbSBkb21haW5OYW1lcyB0aGUgZG9tYWluIG5hbWVzIHRvIHNlYXJjaFxuICAgKiBAcmV0dXJuIHRoZSBtYXRjaGluZyBkb21haW4gbmFtZSBvciB1bmRlZmluZWRcbiAgICovXG4gIHN0YXRpYyBmaW5kRG9tYWluTmFtZShwcm9wczogRG9tYWluTmFtZVByb3BzLCBkb21haW5OYW1lcz86IERvbWFpbk5hbWVbXSk6IERvbWFpbk5hbWUgfCB1bmRlZmluZWQge1xuICAgIGZvciAobGV0IGRvbWFpbk5hbWUgb2YgZG9tYWluTmFtZXMgPz8gW10pIHtcbiAgICAgIGlmIChkb21haW5OYW1lLnByb3BzTWF0Y2gocHJvcHMpKSB7XG4gICAgICAgIHJldHVybiBkb21haW5OYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./lib"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIlxuIl19
@@ -0,0 +1 @@
1
+ export * from "./receipt-rule-set-activator";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./receipt-rule-set-activator"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwrREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9yZWNlaXB0LXJ1bGUtc2V0LWFjdGl2YXRvclwiXG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { AwsCustomResource } from "aws-cdk-lib/custom-resources";
2
+ import { Construct } from "constructs";
3
+ export interface ReceiptRuleSetActivatorProps {
4
+ readonly ruleSetName: string;
5
+ }
6
+ export declare class ReceiptRuleSetActivator extends AwsCustomResource {
7
+ constructor(scope: Construct, id: string, props: ReceiptRuleSetActivatorProps);
8
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReceiptRuleSetActivator = void 0;
4
+ const custom_resources_1 = require("aws-cdk-lib/custom-resources");
5
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ class ReceiptRuleSetActivator extends custom_resources_1.AwsCustomResource {
7
+ constructor(scope, id, props) {
8
+ const call = {
9
+ service: "SES",
10
+ action: "setActiveReceiptRuleSet",
11
+ physicalResourceId: { id: Date.now().toString() },
12
+ parameters: {
13
+ RuleSetName: props.ruleSetName
14
+ }
15
+ };
16
+ super(scope, id, {
17
+ onUpdate: call,
18
+ policy: {
19
+ statements: [new aws_iam_1.PolicyStatement({
20
+ resources: ["*"],
21
+ actions: ["ses:SetActiveReceiptRuleSet"],
22
+ effect: aws_iam_1.Effect.ALLOW
23
+ })]
24
+ }
25
+ });
26
+ }
27
+ }
28
+ exports.ReceiptRuleSetActivator = ReceiptRuleSetActivator;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZWlwdC1ydWxlLXNldC1hY3RpdmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWNlaXB0LXJ1bGUtc2V0LWFjdGl2YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBMkU7QUFFM0UsaURBQTREO0FBTTVELE1BQWEsdUJBQXdCLFNBQVEsb0NBQWlCO0lBRTVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUM7UUFDM0UsTUFBTSxJQUFJLEdBQWU7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUseUJBQXlCO1lBQ2pDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2FBQy9CO1NBQ0YsQ0FBQTtRQUNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLENBQUMsSUFBSSx5QkFBZSxDQUFDO3dCQUMvQixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO3dCQUN4QyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO3FCQUNyQixDQUFDLENBQUM7YUFDSjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRjtBQXZCRCwwREF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F3c0N1c3RvbVJlc291cmNlLCBBd3NTZGtDYWxsfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0VmZmVjdCwgUG9saWN5U3RhdGVtZW50fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpcHRSdWxlU2V0QWN0aXZhdG9yUHJvcHMge1xuICByZWFkb25seSBydWxlU2V0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUmVjZWlwdFJ1bGVTZXRBY3RpdmF0b3IgZXh0ZW5kcyBBd3NDdXN0b21SZXNvdXJjZSB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJlY2VpcHRSdWxlU2V0QWN0aXZhdG9yUHJvcHMpIHtcbiAgICBjb25zdCBjYWxsOiBBd3NTZGtDYWxsID0ge1xuICAgICAgc2VydmljZTogXCJTRVNcIixcbiAgICAgIGFjdGlvbjogXCJzZXRBY3RpdmVSZWNlaXB0UnVsZVNldFwiLFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiB7IGlkOiBEYXRlLm5vdygpLnRvU3RyaW5nKCkgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgUnVsZVNldE5hbWU6IHByb3BzLnJ1bGVTZXROYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgb25VcGRhdGU6IGNhbGwsXG4gICAgICBwb2xpY3k6IHtcbiAgICAgICAgc3RhdGVtZW50czogW25ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzZXM6U2V0QWN0aXZlUmVjZWlwdFJ1bGVTZXRcIl0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1dcbiAgICAgICAgfSldXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIl19
package/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * as aws_centergauge from "./aws-centergauge";
1
2
  export * as aws_cloudwatch from "./aws-cloudwatch";
2
3
  export * as aws_codepipeline from "./aws-codepipeline";
3
4
  export * as aws_dynamodb from "./aws-dynamodb";
@@ -5,6 +6,7 @@ export * as aws_lambda from "./aws-lambda";
5
6
  export * as aws_monitoring from "./aws-monitoring";
6
7
  export * as aws_route53 from "./aws-route53";
7
8
  export * as aws_s3 from "./aws-s3";
9
+ export * as aws_ses from "./aws-ses";
8
10
  export * as aws_sqs from "./aws-sqs";
9
11
  export * as aws_ssm from "./aws-ssm";
10
12
  export * as aws_website from "./aws-website";
package/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aws_centergauge = require("./aws-centergauge");
3
4
  exports.aws_cloudwatch = require("./aws-cloudwatch");
4
5
  exports.aws_codepipeline = require("./aws-codepipeline");
5
6
  exports.aws_dynamodb = require("./aws-dynamodb");
@@ -7,8 +8,9 @@ exports.aws_lambda = require("./aws-lambda");
7
8
  exports.aws_monitoring = require("./aws-monitoring");
8
9
  exports.aws_route53 = require("./aws-route53");
9
10
  exports.aws_s3 = require("./aws-s3");
11
+ exports.aws_ses = require("./aws-ses");
10
12
  exports.aws_sqs = require("./aws-sqs");
11
13
  exports.aws_ssm = require("./aws-ssm");
12
14
  exports.aws_website = require("./aws-website");
13
15
  exports.helpers = require("./helpers");
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFtRDtBQUNuRCx5REFBdUQ7QUFDdkQsaURBQStDO0FBQy9DLDZDQUEyQztBQUMzQyxxREFBbUQ7QUFDbkQsK0NBQTZDO0FBQzdDLHFDQUFtQztBQUNuQyx1Q0FBcUM7QUFDckMsdUNBQXFDO0FBQ3JDLCtDQUE2QztBQUM3Qyx1Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBhd3NfY2xvdWR3YXRjaCBmcm9tIFwiLi9hd3MtY2xvdWR3YXRjaFwiO1xuZXhwb3J0ICogYXMgYXdzX2NvZGVwaXBlbGluZSBmcm9tIFwiLi9hd3MtY29kZXBpcGVsaW5lXCI7XG5leHBvcnQgKiBhcyBhd3NfZHluYW1vZGIgZnJvbSBcIi4vYXdzLWR5bmFtb2RiXCI7XG5leHBvcnQgKiBhcyBhd3NfbGFtYmRhIGZyb20gXCIuL2F3cy1sYW1iZGFcIjtcbmV4cG9ydCAqIGFzIGF3c19tb25pdG9yaW5nIGZyb20gXCIuL2F3cy1tb25pdG9yaW5nXCI7XG5leHBvcnQgKiBhcyBhd3Nfcm91dGU1MyBmcm9tIFwiLi9hd3Mtcm91dGU1M1wiO1xuZXhwb3J0ICogYXMgYXdzX3MzIGZyb20gXCIuL2F3cy1zM1wiO1xuZXhwb3J0ICogYXMgYXdzX3NxcyBmcm9tIFwiLi9hd3Mtc3FzXCI7XG5leHBvcnQgKiBhcyBhd3Nfc3NtIGZyb20gXCIuL2F3cy1zc21cIjtcbmV4cG9ydCAqIGFzIGF3c193ZWJzaXRlIGZyb20gXCIuL2F3cy13ZWJzaXRlXCI7XG5leHBvcnQgKiBhcyBoZWxwZXJzIGZyb20gXCIuL2hlbHBlcnNcIjtcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUFxRDtBQUNyRCxxREFBbUQ7QUFDbkQseURBQXVEO0FBQ3ZELGlEQUErQztBQUMvQyw2Q0FBMkM7QUFDM0MscURBQW1EO0FBQ25ELCtDQUE2QztBQUM3QyxxQ0FBbUM7QUFDbkMsdUNBQXFDO0FBQ3JDLHVDQUFxQztBQUNyQyx1Q0FBcUM7QUFDckMsK0NBQTZDO0FBQzdDLHVDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGF3c19jZW50ZXJnYXVnZSBmcm9tIFwiLi9hd3MtY2VudGVyZ2F1Z2VcIjtcbmV4cG9ydCAqIGFzIGF3c19jbG91ZHdhdGNoIGZyb20gXCIuL2F3cy1jbG91ZHdhdGNoXCI7XG5leHBvcnQgKiBhcyBhd3NfY29kZXBpcGVsaW5lIGZyb20gXCIuL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmV4cG9ydCAqIGFzIGF3c19keW5hbW9kYiBmcm9tIFwiLi9hd3MtZHluYW1vZGJcIjtcbmV4cG9ydCAqIGFzIGF3c19sYW1iZGEgZnJvbSBcIi4vYXdzLWxhbWJkYVwiO1xuZXhwb3J0ICogYXMgYXdzX21vbml0b3JpbmcgZnJvbSBcIi4vYXdzLW1vbml0b3JpbmdcIjtcbmV4cG9ydCAqIGFzIGF3c19yb3V0ZTUzIGZyb20gXCIuL2F3cy1yb3V0ZTUzXCI7XG5leHBvcnQgKiBhcyBhd3NfczMgZnJvbSBcIi4vYXdzLXMzXCI7XG5leHBvcnQgKiBhcyBhd3Nfc2VzIGZyb20gXCIuL2F3cy1zZXNcIjtcbmV4cG9ydCAqIGFzIGF3c19zcXMgZnJvbSBcIi4vYXdzLXNxc1wiO1xuZXhwb3J0ICogYXMgYXdzX3NzbSBmcm9tIFwiLi9hd3Mtc3NtXCI7XG5leHBvcnQgKiBhcyBhd3Nfd2Vic2l0ZSBmcm9tIFwiLi9hd3Mtd2Vic2l0ZVwiO1xuZXhwb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9oZWxwZXJzXCI7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "0.0.37",
3
+ "version": "0.0.38-alpha.2+b8b4d29",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -24,6 +24,7 @@
24
24
  "exports": {
25
25
  ".": "./index.js",
26
26
  "./package.json": "./package.json",
27
+ "./aws-centergauge": "./aws-centergauge.js",
27
28
  "./aws-cloudwatch": "./aws-cloudwatch/index.js",
28
29
  "./aws-codepipeline": "./aws-codepipeline/index.js",
29
30
  "./aws-dynamodb": "./aws-dynamodb/index.js",
@@ -31,6 +32,7 @@
31
32
  "./aws-monitoring": "./aws-monitoring/index.js",
32
33
  "./aws-route53": "./aws-route53/index.js",
33
34
  "./aws-s3": "./aws-s3/index.js",
35
+ "./aws-ses": "./aws-ses/index.js",
34
36
  "./aws-sqs": "./aws-sqs/index.js",
35
37
  "./aws-ssm": "./aws-ssm/index.js",
36
38
  "./aws-website": "./aws-website/index.js",
@@ -49,5 +51,5 @@
49
51
  "@aws-cdk/aws-synthetics-alpha": "^2.18.0-alpha.0",
50
52
  "cdk-monitoring-constructs": "^1.10.0"
51
53
  },
52
- "gitHead": "f2ef6f417c0e3125a4f812f2478cdaaaba47cf2e"
54
+ "gitHead": "b8b4d29d6274c5be2b75913c2070829f9f5a2df6"
53
55
  }