@inizioevoke/evosynth 1.6.1 → 1.7.1

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.
@@ -1,7 +1,7 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
3
3
  import { IHostedZone } from "aws-cdk-lib/aws-route53";
4
- import { ResourceProps } from "../lib/types.js";
4
+ import type { ResourceProps } from "../types.d.ts";
5
5
  export interface SSLCertificateProps extends ResourceProps {
6
6
  hostedZone: IHostedZone;
7
7
  domainName: string;
@@ -16,4 +16,4 @@ export class SSLCertificate extends Construct {
16
16
  }
17
17
  }
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGVtYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvY2VydGlmaWNhdGVtYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTdDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUMzQixXQUFXLENBQWM7SUFFekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLGVBQWUsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixVQUFVLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENlcnRpZmljYXRlLCBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgSUhvc3RlZFpvbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IHRhZ1Jlc291cmNlIH0gZnJvbSBcIi4uL2xpYi90YWdzLnRzXCI7XG5pbXBvcnQgeyBSZXNvdXJjZVByb3BzIH0gZnJvbSBcIi4uL2xpYi90eXBlcy5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNTTENlcnRpZmljYXRlUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7XG4gIGRvbWFpbk5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNTTENlcnRpZmljYXRlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU1NMQ2VydGlmaWNhdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmNlcnRpZmljYXRlID0gbmV3IENlcnRpZmljYXRlKHRoaXMsIGBDZXJ0aWZpY2F0ZS0ke3Byb3BzLmRvbWFpbk5hbWV9YCwge1xuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSxcbiAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKHByb3BzLmhvc3RlZFpvbmUpLFxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuY2VydGlmaWNhdGUsIHByb3BzLnRhZ3MpO1xuICAgIGlmICh0eXBlb2YgcHJvcHMuZGVzdHJveSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuY2VydGlmaWNhdGUuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLmRlc3Ryb3kgPyBSZW1vdmFsUG9saWN5LkRFU1RST1kgOiBSZW1vdmFsUG9saWN5LlJFVEFJTik7XG4gICAgfVxuICB9XG59Il19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGVtYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvY2VydGlmaWNhdGVtYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTdDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUMzQixXQUFXLENBQWM7SUFFekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLGVBQWUsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzFFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixVQUFVLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENlcnRpZmljYXRlLCBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgSUhvc3RlZFpvbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IHRhZ1Jlc291cmNlIH0gZnJvbSBcIi4uL2xpYi90YWdzLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUHJvcHMgfSBmcm9tIFwiLi4vdHlwZXMuZC50c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNTTENlcnRpZmljYXRlUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7XG4gIGRvbWFpbk5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNTTENlcnRpZmljYXRlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU1NMQ2VydGlmaWNhdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmNlcnRpZmljYXRlID0gbmV3IENlcnRpZmljYXRlKHRoaXMsIGBDZXJ0aWZpY2F0ZS0ke3Byb3BzLmRvbWFpbk5hbWV9YCwge1xuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSxcbiAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zKHByb3BzLmhvc3RlZFpvbmUpLFxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuY2VydGlmaWNhdGUsIHByb3BzLnRhZ3MpO1xuICAgIGlmICh0eXBlb2YgcHJvcHMuZGVzdHJveSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuY2VydGlmaWNhdGUuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLmRlc3Ryb3kgPyBSZW1vdmFsUG9saWN5LkRFU1RST1kgOiBSZW1vdmFsUG9saWN5LlJFVEFJTik7XG4gICAgfVxuICB9XG59Il19
@@ -1,7 +1,7 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { ICertificate } from 'aws-cdk-lib/aws-certificatemanager';
3
3
  import { BehaviorOptions, Distribution, Function } from 'aws-cdk-lib/aws-cloudfront';
4
- import type { ResourceProps } from '../lib/types.js';
4
+ import type { ResourceProps } from '../types.d.ts';
5
5
  export interface CloudFrontDistributionProps extends ResourceProps {
6
6
  domainName: string;
7
7
  description?: string;
@@ -24,7 +24,7 @@ export interface CloudFrontFunctionRedirects {
24
24
  paths?: CloudFrontFunctionRedirectPaths;
25
25
  pathsCsvFile?: string;
26
26
  }
27
- export interface ViewerRequestResponseFunctionProps extends ResourceProps {
27
+ export interface ViewerEventFunctionProps extends ResourceProps {
28
28
  functionName?: string;
29
29
  defaultDocument?: string;
30
30
  redirects?: CloudFrontFunctionRedirects;
@@ -32,7 +32,7 @@ export interface ViewerRequestResponseFunctionProps extends ResourceProps {
32
32
  credentials?: string;
33
33
  code: string;
34
34
  }
35
- export interface DefaultDocFunctionProps extends ResourceProps, Pick<ViewerRequestResponseFunctionProps, 'functionName' | 'defaultDocument' | 'redirects' | 'redirectsCsvPath'> {
35
+ export interface DefaultDocFunctionProps extends ResourceProps, Pick<ViewerEventFunctionProps, 'functionName' | 'defaultDocument' | 'redirects' | 'redirectsCsvPath'> {
36
36
  functionName?: string;
37
37
  defaultDocument?: string;
38
38
  redirects?: CloudFrontFunctionRedirects;
@@ -51,5 +51,5 @@ export declare class CloudFrontFunction extends Construct {
51
51
  constructor(scope: Construct, id: string, props: CloudFrontFunctionProps);
52
52
  static createDefaultDoc(scope: Construct, props: DefaultDocFunctionProps): CloudFrontFunction;
53
53
  static createBasicAuthDefaultDoc(scope: Construct, props: BasicAuthDefaultDocFunctionProps): CloudFrontFunction;
54
- static createViewerRequestResponseFunction(scope: Construct, id: string | null, props: ViewerRequestResponseFunctionProps): CloudFrontFunction;
54
+ static createFunction(scope: Construct, id: string | null, props: ViewerEventFunctionProps): CloudFrontFunction;
55
55
  }
@@ -51,7 +51,7 @@ export class CloudFrontFunction extends Construct {
51
51
  }
52
52
  static createDefaultDoc(scope, props) {
53
53
  const code = readFileSync(resolve(__dirname, '../templates/cffn-default-doc.js'), 'utf8');
54
- return this.createViewerRequestResponseFunction(scope, 'DefaultDocFunction', {
54
+ return this.createFunction(scope, 'DefaultDocFunction', {
55
55
  ...props,
56
56
  credentials: '',
57
57
  code
@@ -59,12 +59,12 @@ export class CloudFrontFunction extends Construct {
59
59
  }
60
60
  static createBasicAuthDefaultDoc(scope, props) {
61
61
  const code = readFileSync(resolve(__dirname, '../templates/cffn-default-doc-basic-auth.js'), 'utf8');
62
- return this.createViewerRequestResponseFunction(scope, 'BasicAuthDefaultDocFunction', {
62
+ return this.createFunction(scope, 'BasicAuthDefaultDocFunction', {
63
63
  ...props,
64
64
  code
65
65
  });
66
66
  }
67
- static createViewerRequestResponseFunction(scope, id, props) {
67
+ static createFunction(scope, id, props) {
68
68
  const csvPath = props.redirects?.pathsCsvFile ?? props.redirectsCsvPath;
69
69
  const redirectPaths = csvPath ? parseCsvRedirects(csvPath) : (props.redirects?.paths ?? {});
70
70
  const hasRedirects = Object.keys(redirectPaths).length > 0;
@@ -81,4 +81,4 @@ export class CloudFrontFunction extends Construct {
81
81
  });
82
82
  }
83
83
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL2Nsb3VkZnJvbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLEVBQW1CLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHNUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFXdEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQVM7SUFDbkMsWUFBWSxDQUFlO0lBRTNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0M7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBQzVDLFFBQVEsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssaUJBQWlCO2dCQUNwQixVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsTUFBTTtZQUNSLEtBQUssaUJBQWlCO2dCQUNwQixVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxH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QWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRTNELEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUk7YUFDcEIsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxlQUFlLElBQUksWUFBWSxDQUFDO2FBQ3RFLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQzthQUN2RCxPQUFPLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQy9FLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxNQUFNLENBQUM7YUFDbkYsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksK0JBQStCLEVBQUU7WUFDMUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCB7IEJlaGF2aW9yT3B0aW9ucywgRGlzdHJpYnV0aW9uLCBGdW5jdGlvbiwgRnVuY3Rpb25Db2RlLCBGdW5jdGlvblJ1bnRpbWUsIFByaWNlQ2xhc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyB0YWdSZXNvdXJjZSB9IGZyb20gJy4uL2xpYi90YWdzLmpzJztcbmltcG9ydCB7IHBhcnNlQ3N2UmVkaXJlY3RzIH0gZnJvbSAnLi4vbGliL2Nzdi1yZWRpcmVjdHMuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVByb3BzIH0gZnJvbSAnLi4vbGliL3R5cGVzLmpzJztcblxuY29uc3QgX19kaXJuYW1lID0gaW1wb3J0Lm1ldGEuZGlybmFtZTtcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGVmYXVsdEJlaGF2aW9yOiBCZWhhdmlvck9wdGlvbnM7XG4gIGFkZGl0aW9uYWxCZWhhdmlvcnM/OiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+O1xuICBwcmljZUNsYXNzPzogJ1BSSUNFX0NMQVNTX0FMTCcgfCAnUFJJQ0VfQ0xBU1NfMTAwJyB8ICdQUklDRV9DTEFTU18yMDAnIHwgJ05PVF9QUk9EJyB8ICdQUk9EJztcbiAgY2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZTtcbiAgd2ViQWNsSWQ/OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udERpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGxldCBwcmljZUNsYXNzID0gUHJpY2VDbGFzcy5QUklDRV9DTEFTU19BTEw7XG4gICAgc3dpdGNoIChwcm9wcy5wcmljZUNsYXNzKSB7XG4gICAgICBjYXNlICdOT1RfUFJPRCc6XG4gICAgICBjYXNlICdQUklDRV9DTEFTU18xMDAnOlxuICAgICAgICBwcmljZUNsYXNzID0gUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUFJJQ0VfQ0xBU1NfMjAwJzpcbiAgICAgICAgcHJpY2VDbGFzcyA9IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMjAwO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgYCR7aWR9fENsb3VkRnJvbnREaXN0cmlidXRpb25gLCB7XG4gICAgICBjb21tZW50OiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjogcHJvcHMuZGVmYXVsdEJlaGF2aW9yLFxuICAgICAgYWRkaXRpb25hbEJlaGF2aW9yczogcHJvcHMuYWRkaXRpb25hbEJlaGF2aW9ycyxcbiAgICAgIGRvbWFpbk5hbWVzOiBbcHJvcHMuZG9tYWluTmFtZV0sXG4gICAgICBjZXJ0aWZpY2F0ZTogcHJvcHMuY2VydGlmaWNhdGUsXG4gICAgICBwcmljZUNsYXNzLFxuICAgICAgd2ViQWNsSWQ6IHByb3BzLndlYkFjbElkXG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5kaXN0cmlidXRpb24sIHByb3BzLnRhZ3MpO1xuICAgIGlmICh0eXBlb2YgcHJvcHMuZGVzdHJveSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuZGlzdHJpYnV0aW9uLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5kZXN0cm95ID8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIDogUmVtb3ZhbFBvbGljeS5SRVRBSU4pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBIdHRwUmVkaXJlY3RDb2RlID0gMzAxIHwgMzAyIHwgMzAzIHwgMzA3IHwgMzA4O1xuZXhwb3J0IHR5cGUgQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RQYXRocyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IFtzdHJpbmcsIEh0dHBSZWRpcmVjdENvZGVdPjtcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RnVuY3Rpb25SZWRpcmVjdHMge1xuICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhbjtcbiAgZGVmYXVsdERvY3VtZW50Pzogc3RyaW5nO1xuICByZWRpcmVjdERlZmF1bHREb2N1bWVudD86IGJvb2xlYW47XG4gIHBhdGhzPzogQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RQYXRocztcbiAgcGF0aHNDc3ZGaWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdlclJlcXVlc3RSZXNwb25zZUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RG9jdW1lbnQ/OiBzdHJpbmc7XG4gIHJlZGlyZWN0cz86IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cztcbiAgcmVkaXJlY3RzQ3N2UGF0aD86IHN0cmluZztcbiAgY3JlZGVudGlhbHM/OiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0RG9jRnVuY3Rpb25Qcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMsIFBpY2s8Vmlld2VyUmVxdWVzdFJlc3BvbnNlRnVuY3Rpb25Qcm9wcywgJ2Z1bmN0aW9uTmFtZScgfCAnZGVmYXVsdERvY3VtZW50JyB8ICdyZWRpcmVjdHMnIHwgJ3JlZGlyZWN0c0NzdlBhdGgnPiB7XG4gIGZ1bmN0aW9uTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdERvY3VtZW50Pzogc3RyaW5nO1xuICByZWRpcmVjdHM/OiBDbG91ZEZyb250RnVuY3Rpb25SZWRpcmVjdHM7XG4gIHJlZGlyZWN0c0NzdlBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNBdXRoRGVmYXVsdERvY0Z1bmN0aW9uUHJvcHMgZXh0ZW5kcyBEZWZhdWx0RG9jRnVuY3Rpb25Qcm9wcyB7XG4gIGNyZWRlbnRpYWxzOiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250RnVuY3Rpb25Qcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMge1xuICBjb2RlOiBzdHJpbmc7XG4gIGZ1bmN0aW9uTmFtZT86IHN0cmluZztcbiAgcnVudGltZT86ICdKU18xXzAnIHwgJ0pTXzJfMCc7XG59XG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udEZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGZuOiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRGcm9udEZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5mbiA9IG5ldyBGdW5jdGlvbih0aGlzLCAnQ2xvdWRGcm9udEZ1bmN0aW9uJywge1xuICAgICAgZnVuY3Rpb25OYW1lOiBwcm9wcy5mdW5jdGlvbk5hbWUsXG4gICAgICBydW50aW1lOiBGdW5jdGlvblJ1bnRpbWVbcHJvcHMucnVudGltZSA/PyAnSlNfMl8wJ10sXG4gICAgICBjb2RlOiBGdW5jdGlvbkNvZGUuZnJvbUlubGluZShwcm9wcy5jb2RlKVxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuZm4sIHByb3BzLnRhZ3MpO1xuXG4gICAgaWYgKHR5cGVvZiBwcm9wcy5kZXN0cm95ID09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5mbi5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRGVmYXVsdERvYyhzY29wZTogQ29uc3RydWN0LCBwcm9wczogRGVmYXVsdERvY0Z1bmN0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBjb2RlID0gcmVhZEZpbGVTeW5jKHJlc29sdmUoX19kaXJuYW1lLCAnLi4vdGVtcGxhdGVzL2NmZm4tZGVmYXVsdC1kb2MuanMnKSwgJ3V0ZjgnKTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVZpZXdlclJlcXVlc3RSZXNwb25zZUZ1bmN0aW9uKHNjb3BlLCAnRGVmYXVsdERvY0Z1bmN0aW9uJywge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBjcmVkZW50aWFsczogJycsXG4gICAgICBjb2RlXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlQmFzaWNBdXRoRGVmYXVsdERvYyhzY29wZTogQ29uc3RydWN0LCBwcm9wczogQmFzaWNBdXRoRGVmYXVsdERvY0Z1bmN0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBjb2RlID0gcmVhZEZpbGVTeW5jKHJlc29sdmUoX19kaXJuYW1lLCAnLi4vdGVtcGxhdGVzL2NmZm4tZGVmYXVsdC1kb2MtYmFzaWMtYXV0aC5qcycpLCAndXRmOCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVmlld2VyUmVxdWVzdFJlc3BvbnNlRnVuY3Rpb24oc2NvcGUsICdCYXNpY0F1dGhEZWZhdWx0RG9jRnVuY3Rpb24nLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvZGVcbiAgICB9KTtcblxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVZpZXdlclJlcXVlc3RSZXNwb25zZUZ1bmN0aW9uKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcgfCBudWxsLCBwcm9wczogVmlld2VyUmVxdWVzdFJlc3BvbnNlRnVuY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IGNzdlBhdGggPSBwcm9wcy5yZWRpcmVjdHM/LnBhdGhzQ3N2RmlsZSA/PyBwcm9wcy5yZWRpcmVjdHNDc3ZQYXRoO1xuICAgIGNvbnN0IHJlZGlyZWN0UGF0aHMgPSBjc3ZQYXRoID8gcGFyc2VDc3ZSZWRpcmVjdHMoY3N2UGF0aCkgOiAocHJvcHMucmVkaXJlY3RzPy5wYXRocyA/PyB7fSk7XG4gICAgY29uc3QgaGFzUmVkaXJlY3RzID0gT2JqZWN0LmtleXMocmVkaXJlY3RQYXRocykubGVuZ3RoID4gMDtcblxuICAgIHByb3BzLmNvZGUgPSBwcm9wcy5jb2RlXG4gICAgICAucmVwbGFjZSgnX19ERUZBVUxUX0RPQ1VNRU5UX18nLCBwcm9wcy5kZWZhdWx0RG9jdW1lbnQgPz8gJ2luZGV4Lmh0bWwnKVxuICAgICAgLnJlcGxhY2UoJ19fQ1JFREVOVElBTFNfXycsIHByb3BzLmNyZWRlbnRpYWxzID8/ICdPZz09JylcbiAgICAgIC5yZXBsYWNlKCdfX1JFRElSRUNUU19fJywgaGFzUmVkaXJlY3RzID8gSlNPTi5zdHJpbmdpZnkocmVkaXJlY3RQYXRocykgOiAnbnVsbCcpXG4gICAgICAucmVwbGFjZSgnX19UUkFJTElOR19TTEFTSF9fJywgcHJvcHMucmVkaXJlY3RzPy50cmFpbGluZ1NsYXNoPy50b1N0cmluZygpID8/ICdudWxsJylcbiAgICAgIC5yZXBsYWNlKCdfX1JFRElSX0RFRl9ET0NfXycsIHByb3BzLnJlZGlyZWN0cz8ucmVkaXJlY3REZWZhdWx0RG9jdW1lbnQ/LnRvU3RyaW5nKCkgPz8gJ2ZhbHNlJyk7XG5cbiAgICByZXR1cm4gbmV3IENsb3VkRnJvbnRGdW5jdGlvbihzY29wZSwgaWQgfHwgJ1ZpZXdlclJlcXVlc3RSZXNwb25zZUZ1bmN0aW9uJywge1xuICAgICAgZnVuY3Rpb25OYW1lOiBwcm9wcy5mdW5jdGlvbk5hbWUsXG4gICAgICBydW50aW1lOiAnSlNfMl8wJyxcbiAgICAgIGNvZGU6IHByb3BzLmNvZGVcbiAgICB9KTtcbiAgfVxufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL2Nsb3VkZnJvbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLEVBQW1CLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHNUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFXdEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQVM7SUFDbkMsWUFBWSxDQUFlO0lBRTNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0M7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBQzVDLFFBQVEsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssaUJBQWlCO2dCQUNwQixVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsTUFBTTtZQUNSLEtBQUssaUJBQWlCO2dCQUNwQixVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxH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QUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRTNELEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUk7YUFDcEIsT0FBTyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxlQUFlLElBQUksWUFBWSxDQUFDO2FBQ3RFLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQzthQUN2RCxPQUFPLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQy9FLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxNQUFNLENBQUM7YUFDbkYsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksK0JBQStCLEVBQUU7WUFDMUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCB7IEJlaGF2aW9yT3B0aW9ucywgRGlzdHJpYnV0aW9uLCBGdW5jdGlvbiwgRnVuY3Rpb25Db2RlLCBGdW5jdGlvblJ1bnRpbWUsIFByaWNlQ2xhc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyB0YWdSZXNvdXJjZSB9IGZyb20gJy4uL2xpYi90YWdzLmpzJztcbmltcG9ydCB7IHBhcnNlQ3N2UmVkaXJlY3RzIH0gZnJvbSAnLi4vbGliL2Nzdi1yZWRpcmVjdHMuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVByb3BzIH0gZnJvbSAnLi4vdHlwZXMuZC50cyc7XG5cbmNvbnN0IF9fZGlybmFtZSA9IGltcG9ydC5tZXRhLmRpcm5hbWU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzIGV4dGVuZHMgUmVzb3VyY2VQcm9wcyB7XG4gIGRvbWFpbk5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRlZmF1bHRCZWhhdmlvcjogQmVoYXZpb3JPcHRpb25zO1xuICBhZGRpdGlvbmFsQmVoYXZpb3JzPzogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPjtcbiAgcHJpY2VDbGFzcz86ICdQUklDRV9DTEFTU19BTEwnIHwgJ1BSSUNFX0NMQVNTXzEwMCcgfCAnUFJJQ0VfQ0xBU1NfMjAwJyB8ICdOT1RfUFJPRCcgfCAnUFJPRCc7XG4gIGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGU7XG4gIHdlYkFjbElkPzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnREaXN0cmlidXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBEaXN0cmlidXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgcHJpY2VDbGFzcyA9IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfQUxMO1xuICAgIHN3aXRjaCAocHJvcHMucHJpY2VDbGFzcykge1xuICAgICAgY2FzZSAnTk9UX1BST0QnOlxuICAgICAgY2FzZSAnUFJJQ0VfQ0xBU1NfMTAwJzpcbiAgICAgICAgcHJpY2VDbGFzcyA9IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BSSUNFX0NMQVNTXzIwMCc6XG4gICAgICAgIHByaWNlQ2xhc3MgPSBQcmljZUNsYXNzLlBSSUNFX0NMQVNTXzIwMDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIGAke2lkfXxDbG91ZEZyb250RGlzdHJpYnV0aW9uYCwge1xuICAgICAgY29tbWVudDogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBkZWZhdWx0QmVoYXZpb3I6IHByb3BzLmRlZmF1bHRCZWhhdmlvcixcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnM6IHByb3BzLmFkZGl0aW9uYWxCZWhhdmlvcnMsXG4gICAgICBkb21haW5OYW1lczogW3Byb3BzLmRvbWFpbk5hbWVdLFxuICAgICAgY2VydGlmaWNhdGU6IHByb3BzLmNlcnRpZmljYXRlLFxuICAgICAgcHJpY2VDbGFzcyxcbiAgICAgIHdlYkFjbElkOiBwcm9wcy53ZWJBY2xJZFxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuZGlzdHJpYnV0aW9uLCBwcm9wcy50YWdzKTtcbiAgICBpZiAodHlwZW9mIHByb3BzLmRlc3Ryb3kgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLmRpc3RyaWJ1dGlvbi5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgSHR0cFJlZGlyZWN0Q29kZSA9IDMwMSB8IDMwMiB8IDMwMyB8IDMwNyB8IDMwODtcbmV4cG9ydCB0eXBlIENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0UGF0aHMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBbc3RyaW5nLCBIdHRwUmVkaXJlY3RDb2RlXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RzIHtcbiAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW47XG4gIGRlZmF1bHREb2N1bWVudD86IHN0cmluZztcbiAgcmVkaXJlY3REZWZhdWx0RG9jdW1lbnQ/OiBib29sZWFuO1xuICBwYXRocz86IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0UGF0aHM7XG4gIHBhdGhzQ3N2RmlsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaWV3ZXJFdmVudEZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RG9jdW1lbnQ/OiBzdHJpbmc7XG4gIHJlZGlyZWN0cz86IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cztcbiAgcmVkaXJlY3RzQ3N2UGF0aD86IHN0cmluZztcbiAgY3JlZGVudGlhbHM/OiBzdHJpbmc7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0RG9jRnVuY3Rpb25Qcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMsIFBpY2s8Vmlld2VyRXZlbnRGdW5jdGlvblByb3BzLCAnZnVuY3Rpb25OYW1lJyB8ICdkZWZhdWx0RG9jdW1lbnQnIHwgJ3JlZGlyZWN0cycgfCAncmVkaXJlY3RzQ3N2UGF0aCc+IHtcbiAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RG9jdW1lbnQ/OiBzdHJpbmc7XG4gIHJlZGlyZWN0cz86IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cztcbiAgcmVkaXJlY3RzQ3N2UGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNpY0F1dGhEZWZhdWx0RG9jRnVuY3Rpb25Qcm9wcyBleHRlbmRzIERlZmF1bHREb2NGdW5jdGlvblByb3BzIHtcbiAgY3JlZGVudGlhbHM6IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRGdW5jdGlvblByb3BzIGV4dGVuZHMgUmVzb3VyY2VQcm9wcyB7XG4gIGNvZGU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICBydW50aW1lPzogJ0pTXzFfMCcgfCAnSlNfMl8wJztcbn1cbmV4cG9ydCBjbGFzcyBDbG91ZEZyb250RnVuY3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZm46IEZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZEZyb250RnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmZuID0gbmV3IEZ1bmN0aW9uKHRoaXMsICdDbG91ZEZyb250RnVuY3Rpb24nLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IHByb3BzLmZ1bmN0aW9uTmFtZSxcbiAgICAgIHJ1bnRpbWU6IEZ1bmN0aW9uUnVudGltZVtwcm9wcy5ydW50aW1lID8/ICdKU18yXzAnXSxcbiAgICAgIGNvZGU6IEZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKHByb3BzLmNvZGUpXG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5mbiwgcHJvcHMudGFncyk7XG5cbiAgICBpZiAodHlwZW9mIHByb3BzLmRlc3Ryb3kgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLmZuLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5kZXN0cm95ID8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIDogUmVtb3ZhbFBvbGljeS5SRVRBSU4pO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVEZWZhdWx0RG9jKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBEZWZhdWx0RG9jRnVuY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IGNvZGUgPSByZWFkRmlsZVN5bmMocmVzb2x2ZShfX2Rpcm5hbWUsICcuLi90ZW1wbGF0ZXMvY2Zmbi1kZWZhdWx0LWRvYy5qcycpLCAndXRmOCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlRnVuY3Rpb24oc2NvcGUsICdEZWZhdWx0RG9jRnVuY3Rpb24nLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNyZWRlbnRpYWxzOiAnJyxcbiAgICAgIGNvZGVcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVCYXNpY0F1dGhEZWZhdWx0RG9jKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBCYXNpY0F1dGhEZWZhdWx0RG9jRnVuY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IGNvZGUgPSByZWFkRmlsZVN5bmMocmVzb2x2ZShfX2Rpcm5hbWUsICcuLi90ZW1wbGF0ZXMvY2Zmbi1kZWZhdWx0LWRvYy1iYXNpYy1hdXRoLmpzJyksICd1dGY4Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVGdW5jdGlvbihzY29wZSwgJ0Jhc2ljQXV0aERlZmF1bHREb2NGdW5jdGlvbicsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY29kZVxuICAgIH0pO1xuXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlRnVuY3Rpb24oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyB8IG51bGwsIHByb3BzOiBWaWV3ZXJFdmVudEZ1bmN0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBjc3ZQYXRoID0gcHJvcHMucmVkaXJlY3RzPy5wYXRoc0NzdkZpbGUgPz8gcHJvcHMucmVkaXJlY3RzQ3N2UGF0aDtcbiAgICBjb25zdCByZWRpcmVjdFBhdGhzID0gY3N2UGF0aCA/IHBhcnNlQ3N2UmVkaXJlY3RzKGNzdlBhdGgpIDogKHByb3BzLnJlZGlyZWN0cz8ucGF0aHMgPz8ge30pO1xuICAgIGNvbnN0IGhhc1JlZGlyZWN0cyA9IE9iamVjdC5rZXlzKHJlZGlyZWN0UGF0aHMpLmxlbmd0aCA+IDA7XG5cbiAgICBwcm9wcy5jb2RlID0gcHJvcHMuY29kZVxuICAgICAgLnJlcGxhY2UoJ19fREVGQVVMVF9ET0NVTUVOVF9fJywgcHJvcHMuZGVmYXVsdERvY3VtZW50ID8/ICdpbmRleC5odG1sJylcbiAgICAgIC5yZXBsYWNlKCdfX0NSRURFTlRJQUxTX18nLCBwcm9wcy5jcmVkZW50aWFscyA/PyAnT2c9PScpXG4gICAgICAucmVwbGFjZSgnX19SRURJUkVDVFNfXycsIGhhc1JlZGlyZWN0cyA/IEpTT04uc3RyaW5naWZ5KHJlZGlyZWN0UGF0aHMpIDogJ251bGwnKVxuICAgICAgLnJlcGxhY2UoJ19fVFJBSUxJTkdfU0xBU0hfXycsIHByb3BzLnJlZGlyZWN0cz8udHJhaWxpbmdTbGFzaD8udG9TdHJpbmcoKSA/PyAnbnVsbCcpXG4gICAgICAucmVwbGFjZSgnX19SRURJUl9ERUZfRE9DX18nLCBwcm9wcy5yZWRpcmVjdHM/LnJlZGlyZWN0RGVmYXVsdERvY3VtZW50Py50b1N0cmluZygpID8/ICdmYWxzZScpO1xuXG4gICAgcmV0dXJuIG5ldyBDbG91ZEZyb250RnVuY3Rpb24oc2NvcGUsIGlkIHx8ICdWaWV3ZXJSZXF1ZXN0UmVzcG9uc2VGdW5jdGlvbicsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuZnVuY3Rpb25OYW1lLFxuICAgICAgcnVudGltZTogJ0pTXzJfMCcsXG4gICAgICBjb2RlOiBwcm9wcy5jb2RlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { BuildEnvironmentVariableType, IBuildImage, PipelineProject } from 'aws-cdk-lib/aws-codebuild';
3
- import { ResourceProps } from "../lib/types.js";
4
- import { SsmStringParameter as _SsmStringParameter } from '../lib/types.ts';
3
+ import type { SsmStringParameter } from "./ssm.ts";
4
+ import type { ResourceProps } from "../types.d.ts";
5
5
  export type EnvironmentVariables = Record<string, {
6
6
  value: any;
7
7
  type?: BuildEnvironmentVariableType;
8
8
  }>;
9
- interface SsmStringParameter extends _SsmStringParameter {
9
+ interface SsmParameter extends SsmStringParameter {
10
10
  encrypted?: boolean;
11
11
  }
12
12
  export interface EcrBuildImage {
@@ -22,7 +22,7 @@ export interface CodeBuildPipelineProjectProps extends ResourceProps {
22
22
  environmentVariables?: EnvironmentVariables;
23
23
  cloudFrontDistributionArn?: string;
24
24
  s3BucketName?: string;
25
- ssmParameters?: SsmStringParameter[];
25
+ ssmParameters?: SsmParameter[];
26
26
  }
27
27
  export declare class CodeBuildPipelineProject extends Construct {
28
28
  readonly project: PipelineProject;
@@ -73,6 +73,10 @@ export class CodeBuildPipelineProject extends Construct {
73
73
  s3Bucket.grantReadWrite(this.project);
74
74
  }
75
75
  if (props.ssmParameters) {
76
+ // dedup
77
+ props.ssmParameters = props.ssmParameters.filter((v, i, a) => {
78
+ return a.findIndex(p => p.path === v.path) === i;
79
+ });
76
80
  for (const param of props.ssmParameters) {
77
81
  let strParam;
78
82
  if (param.encrypted) {
@@ -92,4 +96,4 @@ export class CodeBuildPipelineProject extends Construct {
92
96
  }
93
97
  }
94
98
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvY29kZWJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQWdDLFNBQVMsRUFBRSxXQUFXLEVBQWUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBb0IsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBeUI3QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsU0FBUztJQUNyQyxPQUFPLENBQWtCO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUM5RixLQUFLLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLEdBQUc7Z0JBQ3RELEtBQUssRUFBRSxLQUFLLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcs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QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZSwgQnVpbGRTcGVjLCBDb21wdXRlVHlwZSwgSUJ1aWxkSW1hZ2UsIExpbnV4QnVpbGRJbWFnZSwgUGlwZWxpbmVQcm9qZWN0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3JcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IElTdHJpbmdQYXJhbWV0ZXIsIFN0cmluZ1BhcmFtZXRlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHsgdGFnUmVzb3VyY2UgfSBmcm9tIFwiLi4vbGliL3RhZ3MuanNcIjtcbmltcG9ydCB7IFJlc291cmNlUHJvcHMgfSBmcm9tIFwiLi4vbGliL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBTc21TdHJpbmdQYXJhbWV0ZXIgYXMgX1NzbVN0cmluZ1BhcmFtZXRlciB9IGZyb20gJy4uL2xpYi90eXBlcy50cyc7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50VmFyaWFibGVzID0gUmVjb3JkPHN0cmluZywgeyB2YWx1ZTogYW55LCB0eXBlPzogQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZSB9PjtcblxuaW50ZXJmYWNlIFNzbVN0cmluZ1BhcmFtZXRlciBleHRlbmRzIF9Tc21TdHJpbmdQYXJhbWV0ZXIge1xuICBlbmNyeXB0ZWQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBFY3JCdWlsZEltYWdlIHtcbiAgcmVwb3NpdG9yeTogc3RyaW5nO1xuICB0YWc6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUJ1aWxkUGlwZWxpbmVQcm9qZWN0UHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmc7XG4gIGJ1aWxkU3BlYz86IHN0cmluZyB8IG9iamVjdDtcbiAgYnVpbGRJbWFnZT86ICgnU1RBTkRBUkRfNV8wJyB8ICdTVEFOREFSRF82XzAnIHwgJ1NUQU5EQVJEXzdfMCcpIHwgSUJ1aWxkSW1hZ2U7XG4gIGVjckJ1aWxkSW1hZ2U/OiBFY3JCdWlsZEltYWdlLFxuICBjb21wdXRlVHlwZT86ICgnU01BTEwnIHwgJ01FRElVTScgfCAnTEFSR0UnIHwgJ1hfTEFSR0UnIHwgJ1gyX0xBUkdFJykgfCBzdHJpbmc7XG4gIGVudmlyb25tZW50VmFyaWFibGVzPzogRW52aXJvbm1lbnRWYXJpYWJsZXM7XG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Bcm4/OiBzdHJpbmc7XG4gIHMzQnVja2V0TmFtZT86IHN0cmluZztcbiAgc3NtUGFyYW1ldGVycz86IFNzbVN0cmluZ1BhcmFtZXRlcltdO1xufVxuXG5leHBvcnQgY2xhc3MgQ29kZUJ1aWxkUGlwZWxpbmVQcm9qZWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IFBpcGVsaW5lUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZUJ1aWxkUGlwZWxpbmVQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlcykge1xuICAgICAgcHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZXMgPSB7fTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Bcm4gJiYgIXByb3BzLmVudmlyb25tZW50VmFyaWFibGVzLkNMT1VERlJPTlRfRElTVFJJQlVUSU9OX0lEKSB7XG4gICAgICBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlcy5DTE9VREZST05UX0RJU1RSSUJVVElPTl9JRCA9IHtcbiAgICAgICAgdmFsdWU6IHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Bcm4uc3BsaXQoJy8nKS5wb3AoKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuczNCdWNrZXROYW1lICYmICFwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlcy5TM19CVUNLRVRfTkFNRSkge1xuICAgICAgcHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZXMuUzNfQlVDS0VUX05BTUUgPSB7XG4gICAgICAgIHZhbHVlOiBwcm9wcy5zM0J1Y2tldE5hbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IGJ1aWxkSW1hZ2U6IElCdWlsZEltYWdlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5lY3JCdWlsZEltYWdlKSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcHJvcHMuZWNyQnVpbGRJbWFnZS5yZXBvc2l0b3J5LnN0YXJ0c1dpdGgoJ2Fybjphd3MnKSA/IFxuICAgICAgICBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5QXJuKHRoaXMsICdFY3JSZXBvc2l0b3J5JywgcHJvcHMuZWNyQnVpbGRJbWFnZS5yZXBvc2l0b3J5KSA6XG4gICAgICAgIFJlcG9zaXRvcnkuZnJvbVJlcG9zaXRvcnlOYW1lKHRoaXMsICdFY3JSZXBvc2l0b3J5JywgcHJvcHMuZWNyQnVpbGRJbWFnZS5yZXBvc2l0b3J5KTtcbiAgICAgIGJ1aWxkSW1hZ2UgPSBMaW51eEJ1aWxkSW1hZ2UuZnJvbUVjclJlcG9zaXRvcnkocmVwb3NpdG9yeSwgcHJvcHMuZWNyQnVpbGRJbWFnZS50YWcpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYnVpbGRJbWFnZSkge1xuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5idWlsZEltYWdlID09ICdzdHJpbmcnKSB7XG4gICAgICAgIGJ1aWxkSW1hZ2UgPSBMaW51eEJ1aWxkSW1hZ2VbcHJvcHMuYnVpbGRJbWFnZSA/PyAnU1RBTkRBUkRfN18wJ11cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1aWxkSW1hZ2UgPSBwcm9wcy5idWlsZEltYWdlIGFzIElCdWlsZEltYWdlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBQaXBlbGluZVByb2plY3QodGhpcywgJ0NvZGVCdWlsZFBpcGVsaW5lUHJvamVjdFByb3BzJywge1xuICAgICAgcHJvamVjdE5hbWU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgICAgYnVpbGRTcGVjOiBwcm9wcy5idWlsZFNwZWMgPyB0eXBlb2YgcHJvcHMuYnVpbGRTcGVjID09ICdvYmplY3QnID8gQnVpbGRTcGVjLmZyb21PYmplY3RUb1lhbWwocHJvcHMuYnVpbGRTcGVjKSA6IEJ1aWxkU3BlYy5mcm9tU291cmNlRmlsZW5hbWUocHJvcHMuYnVpbGRTcGVjID8/ICdidWlsZHNwZWMueW1sJykgOiB1bmRlZmluZWQsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOiBidWlsZEltYWdlID8/IExpbnV4QnVpbGRJbWFnZS5TVEFOREFSRF83XzAsXG4gICAgICAgIGNvbXB1dGVUeXBlOiBDb21wdXRlVHlwZVtwcm9wcy5jb21wdXRlVHlwZSBhcyAoa2V5b2YgdHlwZW9mIENvbXB1dGVUeXBlIHwgdW5kZWZpbmVkKSA/PyAnU01BTEwnXSxcbiAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHByb3BzLmVudmlyb25tZW50VmFyaWFibGVzXG4gICAgICB9XG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5wcm9qZWN0LCBwcm9wcy50YWdzKTtcbiAgICBpZiAodHlwZW9mIHByb3BzLmRlc3Ryb3kgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLnByb2plY3QuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLmRlc3Ryb3kgPyBSZW1vdmFsUG9saWN5LkRFU1RST1kgOiBSZW1vdmFsUG9saWN5LlJFVEFJTik7XG4gICAgfVxuXG4gICAgLy8gQWRkIENsb3VkV2F0Y2ggbG9nIHBlcm1pc3Npb25zXG4gICAgdGhpcy5wcm9qZWN0LmFkZFRvUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nR3JvdXAnLFxuICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAnbG9nczpQdXRMb2dFdmVudHMnXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9qZWN0LnByb2plY3RBcm5dXG4gICAgfSkpO1xuXG4gICAgLy8gQWxsb3cgdGhlIHByb2plY3QgdG8gY3JlYXRlIGFuIGludmFsaWRhdGlvblxuICAgIGlmIChwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuKSB7XG4gICAgICB0aGlzLnByb2plY3QuYWRkVG9Sb2xlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ2Nsb3VkZnJvbnQ6Q3JlYXRlSW52YWxpZGF0aW9uJ10sXG4gICAgICAgIHJlc291cmNlczogW3Byb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Bcm5dXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgdGhlIHByb2plY3QgdG8gc3luYyBmaWxlcyB0byBTM1xuICAgIGlmIChwcm9wcy5zM0J1Y2tldE5hbWUpIHtcbiAgICAgIGNvbnN0IHMzQnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdTM0J1Y2tldEJ5TmFtZScsIHByb3BzLnMzQnVja2V0TmFtZSk7XG4gICAgICBzM0J1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLnByb2plY3QpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zc21QYXJhbWV0ZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIHByb3BzLnNzbVBhcmFtZXRlcnMpIHtcbiAgICAgICAgbGV0IHN0clBhcmFtOiBJU3RyaW5nUGFyYW1ldGVyO1xuICAgICAgICBpZiAocGFyYW0uZW5jcnlwdGVkKSB7XG4gICAgICAgICAgc3RyUGFyYW0gPSBTdHJpbmdQYXJhbWV0ZXIuZnJvbVNlY3VyZVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXModGhpcywgcGFyYW0ucGF0aCwge1xuICAgICAgICAgICAgcGFyYW1ldGVyTmFtZTogcGFyYW0ucGF0aCxcbiAgICAgICAgICAgIHZlcnNpb246IHBhcmFtLnZlcnNpb25cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHJQYXJhbSA9IFN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyQXR0cmlidXRlcyh0aGlzLCBwYXJhbS5wYXRoLCB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiBwYXJhbS5wYXRoLFxuICAgICAgICAgICAgdmVyc2lvbjogcGFyYW0udmVyc2lvblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHN0clBhcmFtLmdyYW50UmVhZCh0aGlzLnByb2plY3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvY29kZWJ1aWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQWdDLFNBQVMsRUFBRSxXQUFXLEVBQWUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBb0IsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBd0I3QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsU0FBUztJQUNyQyxPQUFPLENBQWtCO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUM5RixLQUFLLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLEdBQUc7Z0JBQ3RELEtBQUssRUFBRSxLQUFLLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcs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TCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sUUFBUSxHQUFHLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRTt3QkFDekUsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJO3dCQUN6QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87cUJBQ3ZCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBCdWlsZEVudmlyb25tZW50VmFyaWFibGVUeXBlLCBCdWlsZFNwZWMsIENvbXB1dGVUeXBlLCBJQnVpbGRJbWFnZSwgTGludXhCdWlsZEltYWdlLCBQaXBlbGluZVByb2plY3QgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgSVN0cmluZ1BhcmFtZXRlciwgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgdHlwZSB7IFNzbVN0cmluZ1BhcmFtZXRlciB9IGZyb20gXCIuL3NzbS50c1wiO1xuaW1wb3J0IHsgdGFnUmVzb3VyY2UgfSBmcm9tIFwiLi4vbGliL3RhZ3MuanNcIjtcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VQcm9wcyB9IGZyb20gXCIuLi90eXBlcy5kLnRzXCI7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50VmFyaWFibGVzID0gUmVjb3JkPHN0cmluZywgeyB2YWx1ZTogYW55LCB0eXBlPzogQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZSB9PjtcblxuaW50ZXJmYWNlIFNzbVBhcmFtZXRlciBleHRlbmRzIFNzbVN0cmluZ1BhcmFtZXRlciB7XG4gIGVuY3J5cHRlZD86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIEVjckJ1aWxkSW1hZ2Uge1xuICByZXBvc2l0b3J5OiBzdHJpbmc7XG4gIHRhZzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlQnVpbGRQaXBlbGluZVByb2plY3RQcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMge1xuICBwcm9qZWN0TmFtZT86IHN0cmluZztcbiAgYnVpbGRTcGVjPzogc3RyaW5nIHwgb2JqZWN0O1xuICBidWlsZEltYWdlPzogKCdTVEFOREFSRF81XzAnIHwgJ1NUQU5EQVJEXzZfMCcgfCAnU1RBTkRBUkRfN18wJykgfCBJQnVpbGRJbWFnZTtcbiAgZWNyQnVpbGRJbWFnZT86IEVjckJ1aWxkSW1hZ2UsXG4gIGNvbXB1dGVUeXBlPzogKCdTTUFMTCcgfCAnTUVESVVNJyB8ICdMQVJHRScgfCAnWF9MQVJHRScgfCAnWDJfTEFSR0UnKSB8IHN0cmluZztcbiAgZW52aXJvbm1lbnRWYXJpYWJsZXM/OiBFbnZpcm9ubWVudFZhcmlhYmxlcztcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybj86IHN0cmluZztcbiAgczNCdWNrZXROYW1lPzogc3RyaW5nO1xuICBzc21QYXJhbWV0ZXJzPzogU3NtUGFyYW1ldGVyW107XG59XG5cbmV4cG9ydCBjbGFzcyBDb2RlQnVpbGRQaXBlbGluZVByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogUGlwZWxpbmVQcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2RlQnVpbGRQaXBlbGluZVByb2plY3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIXByb3BzLmVudmlyb25tZW50VmFyaWFibGVzKSB7XG4gICAgICBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlcyA9IHt9O1xuICAgIH1cbiAgICBpZiAocHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybiAmJiAhcHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZXMuQ0xPVURGUk9OVF9ESVNUUklCVVRJT05fSUQpIHtcbiAgICAgIHByb3BzLmVudmlyb25tZW50VmFyaWFibGVzLkNMT1VERlJPTlRfRElTVFJJQlVUSU9OX0lEID0ge1xuICAgICAgICB2YWx1ZTogcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybi5zcGxpdCgnLycpLnBvcCgpXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zM0J1Y2tldE5hbWUgJiYgIXByb3BzLmVudmlyb25tZW50VmFyaWFibGVzLlMzX0JVQ0tFVF9OQU1FKSB7XG4gICAgICBwcm9wcy5lbnZpcm9ubWVudFZhcmlhYmxlcy5TM19CVUNLRVRfTkFNRSA9IHtcbiAgICAgICAgdmFsdWU6IHByb3BzLnMzQnVja2V0TmFtZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgYnVpbGRJbWFnZTogSUJ1aWxkSW1hZ2UgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmVjckJ1aWxkSW1hZ2UpIHtcbiAgICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBwcm9wcy5lY3JCdWlsZEltYWdlLnJlcG9zaXRvcnkuc3RhcnRzV2l0aCgnYXJuOmF3cycpID8gXG4gICAgICAgIFJlcG9zaXRvcnkuZnJvbVJlcG9zaXRvcnlBcm4odGhpcywgJ0VjclJlcG9zaXRvcnknLCBwcm9wcy5lY3JCdWlsZEltYWdlLnJlcG9zaXRvcnkpIDpcbiAgICAgICAgUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeU5hbWUodGhpcywgJ0VjclJlcG9zaXRvcnknLCBwcm9wcy5lY3JCdWlsZEltYWdlLnJlcG9zaXRvcnkpO1xuICAgICAgYnVpbGRJbWFnZSA9IExpbnV4QnVpbGRJbWFnZS5mcm9tRWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5LCBwcm9wcy5lY3JCdWlsZEltYWdlLnRhZyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5idWlsZEltYWdlKSB7XG4gICAgICBpZiAodHlwZW9mIHByb3BzLmJ1aWxkSW1hZ2UgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgYnVpbGRJbWFnZSA9IExpbnV4QnVpbGRJbWFnZVtwcm9wcy5idWlsZEltYWdlID8/ICdTVEFOREFSRF83XzAnXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVpbGRJbWFnZSA9IHByb3BzLmJ1aWxkSW1hZ2UgYXMgSUJ1aWxkSW1hZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm9qZWN0ID0gbmV3IFBpcGVsaW5lUHJvamVjdCh0aGlzLCAnQ29kZUJ1aWxkUGlwZWxpbmVQcm9qZWN0UHJvcHMnLCB7XG4gICAgICBwcm9qZWN0TmFtZTogcHJvcHMucHJvamVjdE5hbWUsXG4gICAgICBidWlsZFNwZWM6IHByb3BzLmJ1aWxkU3BlYyA/IHR5cGVvZiBwcm9wcy5idWlsZFNwZWMgPT0gJ29iamVjdCcgPyBCdWlsZFNwZWMuZnJvbU9iamVjdFRvWWFtbChwcm9wcy5idWlsZFNwZWMpIDogQnVpbGRTcGVjLmZyb21Tb3VyY2VGaWxlbmFtZShwcm9wcy5idWlsZFNwZWMgPz8gJ2J1aWxkc3BlYy55bWwnKSA6IHVuZGVmaW5lZCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIGJ1aWxkSW1hZ2U6IGJ1aWxkSW1hZ2UgPz8gTGludXhCdWlsZEltYWdlLlNUQU5EQVJEXzdfMCxcbiAgICAgICAgY29tcHV0ZVR5cGU6IENvbXB1dGVUeXBlW3Byb3BzLmNvbXB1dGVUeXBlIGFzIChrZXlvZiB0eXBlb2YgQ29tcHV0ZVR5cGUgfCB1bmRlZmluZWQpID8/ICdTTUFMTCddLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogcHJvcHMuZW52aXJvbm1lbnRWYXJpYWJsZXNcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLnByb2plY3QsIHByb3BzLnRhZ3MpO1xuICAgIGlmICh0eXBlb2YgcHJvcHMuZGVzdHJveSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMucHJvamVjdC5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgQ2xvdWRXYXRjaCBsb2cgcGVybWlzc2lvbnNcbiAgICB0aGlzLnByb2plY3QuYWRkVG9Sb2xlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG4gICAgICAgICdsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsXG4gICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cydcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFt0aGlzLnByb2plY3QucHJvamVjdEFybl1cbiAgICB9KSk7XG5cbiAgICAvLyBBbGxvdyB0aGUgcHJvamVjdCB0byBjcmVhdGUgYW4gaW52YWxpZGF0aW9uXG4gICAgaWYgKHByb3BzLmNsb3VkRnJvbnREaXN0cmlidXRpb25Bcm4pIHtcbiAgICAgIHRoaXMucHJvamVjdC5hZGRUb1JvbGVQb2xpY3kobmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnY2xvdWRmcm9udDpDcmVhdGVJbnZhbGlkYXRpb24nXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybl1cbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyB0aGUgcHJvamVjdCB0byBzeW5jIGZpbGVzIHRvIFMzXG4gICAgaWYgKHByb3BzLnMzQnVja2V0TmFtZSkge1xuICAgICAgY29uc3QgczNCdWNrZXQgPSBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUodGhpcywgJ1MzQnVja2V0QnlOYW1lJywgcHJvcHMuczNCdWNrZXROYW1lKTtcbiAgICAgIHMzQnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMucHJvamVjdCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNzbVBhcmFtZXRlcnMpIHtcbiAgICAgIC8vIGRlZHVwXG4gICAgICBwcm9wcy5zc21QYXJhbWV0ZXJzID0gcHJvcHMuc3NtUGFyYW1ldGVycy5maWx0ZXIoKHYsIGksIGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGEuZmluZEluZGV4KHAgPT4gcC5wYXRoID09PSB2LnBhdGgpID09PSBpO1xuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIHByb3BzLnNzbVBhcmFtZXRlcnMpIHtcbiAgICAgICAgbGV0IHN0clBhcmFtOiBJU3RyaW5nUGFyYW1ldGVyO1xuICAgICAgICBpZiAocGFyYW0uZW5jcnlwdGVkKSB7XG4gICAgICAgICAgc3RyUGFyYW0gPSBTdHJpbmdQYXJhbWV0ZXIuZnJvbVNlY3VyZVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXModGhpcywgcGFyYW0ucGF0aCwge1xuICAgICAgICAgICAgcGFyYW1ldGVyTmFtZTogcGFyYW0ucGF0aCxcbiAgICAgICAgICAgIHZlcnNpb246IHBhcmFtLnZlcnNpb25cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHJQYXJhbSA9IFN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyQXR0cmlidXRlcyh0aGlzLCBwYXJhbS5wYXRoLCB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiBwYXJhbS5wYXRoLFxuICAgICAgICAgICAgdmVyc2lvbjogcGFyYW0udmVyc2lvblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHN0clBhcmFtLmdyYW50UmVhZCh0aGlzLnByb2plY3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdfQ==
@@ -2,8 +2,9 @@ import { Construct } from 'constructs';
2
2
  import { IProject } from "aws-cdk-lib/aws-codebuild";
3
3
  import { Artifact, Pipeline } from "aws-cdk-lib/aws-codepipeline";
4
4
  import { Bucket } from 'aws-cdk-lib/aws-s3';
5
- import type { EnvironmentVariables } from './codebuild.js';
6
- import { ResourceProps, SsmStringParameter } from "../lib/types.js";
5
+ import type { EnvironmentVariables } from './codebuild.ts';
6
+ import type { SsmStringParameter } from './ssm.ts';
7
+ import type { ResourceProps } from '../types.d.ts';
7
8
  export interface AddSourceStageParams {
8
9
  stageName?: string;
9
10
  codestarConnection: string | SsmStringParameter;
@@ -60,4 +60,4 @@ export class CodePipelineProject extends Construct {
60
60
  });
61
61
  }
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvY29kZXBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFPLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFxQjdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBQ2hDLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVc7SUFFbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQzdELFVBQVUsRUFBRSxZQUFZLENBQUMsa0JBQWtCO1lBQzNDLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNySCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzdELENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUN4RCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzlCLENBQUMsQ0FBQztRQUVILFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE0QjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWhDLE1BQU0sYUFBYSxHQUFXLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixJQUFJLFFBQVEsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzNCLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUcsTUFBTSxDQUFDLGtCQUF5QyxDQUFDLElBQUksRUFBRyxNQUFNLENBQUMsa0JBQXlDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEssSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDckIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksUUFBUTtZQUN2QyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSwrQkFBK0IsQ0FBQztvQkFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksUUFBUTtvQkFDeEMsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLGFBQWE7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUN2QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQ3ZDLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBMkI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDckIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksT0FBTztZQUN0QyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxlQUFlLENBQUM7b0JBQ2xCLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLE9BQU87b0JBQ3ZDLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCO29CQUNoQyxLQUFLLEVBQUUsTUFBTSxDQUFDLGNBQWM7b0JBQzVCLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxvQkFBb0I7aUJBQ2xELENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3ksIFBoeXNpY2FsTmFtZSwgQXdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElQcm9qZWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IEFydGlmYWN0LCBQaXBlbGluZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBDb2RlQnVpbGRBY3Rpb24sIENvZGVTdGFyQ29ubmVjdGlvbnNTb3VyY2VBY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5cbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnRWYXJpYWJsZXMgfSBmcm9tICcuL2NvZGVidWlsZC5qcyc7XG5pbXBvcnQgeyB0YWdSZXNvdXJjZSB9IGZyb20gXCIuLi9saWIvdGFncy5qc1wiO1xuaW1wb3J0IHsgUmVzb3VyY2VQcm9wcywgU3NtU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSBcIi4uL2xpYi90eXBlcy5qc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFNvdXJjZVN0YWdlUGFyYW1zIHtcbiAgc3RhZ2VOYW1lPzogc3RyaW5nO1xuICBjb2Rlc3RhckNvbm5lY3Rpb246IHN0cmluZyB8IFNzbVN0cmluZ1BhcmFtZXRlcjtcbiAgcmVwb093bmVyOiBzdHJpbmc7XG4gIHJlcG86IHN0cmluZztcbiAgYnJhbmNoOiBzdHJpbmc7XG4gIGZ1bGxDbG9uZT86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIEFkZEJ1aWxkU3RhZ2VQYXJhbXMge1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG4gIGNvZGVCdWlsZFByb2plY3Q6IElQcm9qZWN0O1xuICBzb3VyY2VBcnRpZmFjdDogQXJ0aWZhY3Q7XG4gIGVudmlyb25tZW50VmFyaWFibGVzPzogRW52aXJvbm1lbnRWYXJpYWJsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVBpcGVsaW5lUHJvamVjdFByb3BzIGV4dGVuZHMgUmVzb3VyY2VQcm9wcyB7XG4gIHBpcGVsaW5lTmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBDb2RlUGlwZWxpbmVQcm9qZWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHMzQnVja2V0OiBCdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBwaXBlbGluZTogUGlwZWxpbmU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENvZGVQaXBlbGluZVByb2plY3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnMzQnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCAnQ29kZVBpcGVsaW5lQXJ0aWZhY3RCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBQaHlzaWNhbE5hbWUuR0VORVJBVEVfSUZfTkVFREVELFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMuZGVzdHJveSAhPT0gdW5kZWZpbmVkID8gcHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOIDogdW5kZWZpbmVkLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHByb3BzLmRlc3Ryb3kgPT09IHRydWUgPyB0cnVlIDogdW5kZWZpbmVkXG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5zM0J1Y2tldCwgcHJvcHMudGFncyk7XG5cbiAgICB0aGlzLnBpcGVsaW5lID0gbmV3IFBpcGVsaW5lKHRoaXMsICdDb2RlUGlwZWxpbmVQcm9qZWN0Jywge1xuICAgICAgcGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICBhcnRpZmFjdEJ1Y2tldDogdGhpcy5zM0J1Y2tldFxuICAgIH0pO1xuXG4gICAgdGFnUmVzb3VyY2UodGhpcy5waXBlbGluZSwgcHJvcHMudGFncyk7XG4gICAgaWYgKHR5cGVvZiBwcm9wcy5kZXN0cm95ID09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5waXBlbGluZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOKTtcbiAgICB9XG4gIH1cblxuICBhZGRTb3VyY2VTdGFnZShwYXJhbXM6IEFkZFNvdXJjZVN0YWdlUGFyYW1zKTogQXJ0aWZhY3Qge1xuICAgIGNvbnN0IGFydGlmYWN0ID0gbmV3IEFydGlmYWN0KCk7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQXJuOiBzdHJpbmcgPSB0eXBlb2YgcGFyYW1zLmNvZGVzdGFyQ29ubmVjdGlvbiA9PSAnc3RyaW5nJyA/XG4gICAgICAgcGFyYW1zLmNvZGVzdGFyQ29ubmVjdGlvbiA6XG4gICAgICAgU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKHRoaXMsIChwYXJhbXMuY29kZXN0YXJDb25uZWN0aW9uIGFzIFNzbVN0cmluZ1BhcmFtZXRlcikucGF0aCwgKHBhcmFtcy5jb2Rlc3RhckNvbm5lY3Rpb24gYXMgU3NtU3RyaW5nUGFyYW1ldGVyKS52ZXJzaW9uKTtcblxuICAgIHRoaXMucGlwZWxpbmUuYWRkU3RhZ2Uoe1xuICAgICAgc3RhZ2VOYW1lOiBwYXJhbXMuc3RhZ2VOYW1lID8/ICdTb3VyY2UnLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICBuZXcgQ29kZVN0YXJDb25uZWN0aW9uc1NvdXJjZUFjdGlvbih7XG4gICAgICAgICAgYWN0aW9uTmFtZTogcGFyYW1zLnN0YWdlTmFtZSA/PyAnU291cmNlJyxcbiAgICAgICAgICBvdXRwdXQ6IGFydGlmYWN0LFxuICAgICAgICAgIGNvbm5lY3Rpb25Bcm4sXG4gICAgICAgICAgb3duZXI6IHBhcmFtcy5yZXBvT3duZXIsXG4gICAgICAgICAgcmVwbzogcGFyYW1zLnJlcG8sXG4gICAgICAgICAgYnJhbmNoOiBwYXJhbXMuYnJhbmNoLFxuICAgICAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBwYXJhbXMuZnVsbENsb25lXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSk7XG4gICAgcmV0dXJuIGFydGlmYWN0O1xuICB9XG5cbiAgYWRkQnVpbGRTdGFnZShwYXJhbXM6IEFkZEJ1aWxkU3RhZ2VQYXJhbXMpIHtcbiAgICB0aGlzLnBpcGVsaW5lLmFkZFN0YWdlKHtcbiAgICAgIHN0YWdlTmFtZTogcGFyYW1zLnN0YWdlTmFtZSA/PyAnQnVpbGQnLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICBuZXcgQ29kZUJ1aWxkQWN0aW9uKHtcbiAgICAgICAgICBhY3Rpb25OYW1lOiBwYXJhbXMuc3RhZ2VOYW1lID8/ICdCdWlsZCcsXG4gICAgICAgICAgcHJvamVjdDogcGFyYW1zLmNvZGVCdWlsZFByb2plY3QsXG4gICAgICAgICAgaW5wdXQ6IHBhcmFtcy5zb3VyY2VBcnRpZmFjdCxcbiAgICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogcGFyYW1zLmVudmlyb25tZW50VmFyaWFibGVzXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSk7XG4gIH1cbn0iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvY29kZXBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFPLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFxQjdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBQ2hDLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVc7SUFFbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQzdELFVBQVUsRUFBRSxZQUFZLENBQUMsa0JBQWtCO1lBQzNDLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNySCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzdELENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUN4RCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzlCLENBQUMsQ0FBQztRQUVILFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE0QjtRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWhDLE1BQU0sYUFBYSxHQUFXLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixJQUFJLFFBQVEsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzNCLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUcsTUFBTSxDQUFDLGtCQUF5QyxDQUFDLElBQUksRUFBRyxNQUFNLENBQUMsa0JBQXlDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEssSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDckIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksUUFBUTtZQUN2QyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSwrQkFBK0IsQ0FBQztvQkFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksUUFBUTtvQkFDeEMsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLGFBQWE7b0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUN2QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQ3ZDLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBMkI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDckIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksT0FBTztZQUN0QyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxlQUFlLENBQUM7b0JBQ2xCLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLE9BQU87b0JBQ3ZDLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCO29CQUNoQyxLQUFLLEVBQUUsTUFBTSxDQUFDLGNBQWM7b0JBQzVCLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxvQkFBb0I7aUJBQ2xELENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3ksIFBoeXNpY2FsTmFtZSwgQXdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElQcm9qZWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IEFydGlmYWN0LCBQaXBlbGluZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQgeyBDb2RlQnVpbGRBY3Rpb24sIENvZGVTdGFyQ29ubmVjdGlvbnNTb3VyY2VBY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zXCI7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5cbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnRWYXJpYWJsZXMgfSBmcm9tICcuL2NvZGVidWlsZC50cyc7XG5pbXBvcnQgdHlwZSB7IFNzbVN0cmluZ1BhcmFtZXRlciB9IGZyb20gJy4vc3NtLnRzJztcbmltcG9ydCB7IHRhZ1Jlc291cmNlIH0gZnJvbSBcIi4uL2xpYi90YWdzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUHJvcHMgfSBmcm9tICcuLi90eXBlcy5kLnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBBZGRTb3VyY2VTdGFnZVBhcmFtcyB7XG4gIHN0YWdlTmFtZT86IHN0cmluZztcbiAgY29kZXN0YXJDb25uZWN0aW9uOiBzdHJpbmcgfCBTc21TdHJpbmdQYXJhbWV0ZXI7XG4gIHJlcG9Pd25lcjogc3RyaW5nO1xuICByZXBvOiBzdHJpbmc7XG4gIGJyYW5jaDogc3RyaW5nO1xuICBmdWxsQ2xvbmU/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBBZGRCdWlsZFN0YWdlUGFyYW1zIHtcbiAgc3RhZ2VOYW1lPzogc3RyaW5nO1xuICBjb2RlQnVpbGRQcm9qZWN0OiBJUHJvamVjdDtcbiAgc291cmNlQXJ0aWZhY3Q6IEFydGlmYWN0O1xuICBlbnZpcm9ubWVudFZhcmlhYmxlcz86IEVudmlyb25tZW50VmFyaWFibGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVQaXBlbGluZVByb2plY3RQcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMge1xuICBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQ29kZVBpcGVsaW5lUHJvamVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldDogQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgcGlwZWxpbmU6IFBpcGVsaW5lO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2RlUGlwZWxpbmVQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zM0J1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgJ0NvZGVQaXBlbGluZUFydGlmYWN0QnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLmRlc3Ryb3kgIT09IHVuZGVmaW5lZCA/IHByb3BzLmRlc3Ryb3kgPyBSZW1vdmFsUG9saWN5LkRFU1RST1kgOiBSZW1vdmFsUG9saWN5LlJFVEFJTiA6IHVuZGVmaW5lZCxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiBwcm9wcy5kZXN0cm95ID09PSB0cnVlID8gdHJ1ZSA6IHVuZGVmaW5lZFxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuczNCdWNrZXQsIHByb3BzLnRhZ3MpO1xuXG4gICAgdGhpcy5waXBlbGluZSA9IG5ldyBQaXBlbGluZSh0aGlzLCAnQ29kZVBpcGVsaW5lUHJvamVjdCcsIHtcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgYXJ0aWZhY3RCdWNrZXQ6IHRoaXMuczNCdWNrZXRcbiAgICB9KTtcblxuICAgIHRhZ1Jlc291cmNlKHRoaXMucGlwZWxpbmUsIHByb3BzLnRhZ3MpO1xuICAgIGlmICh0eXBlb2YgcHJvcHMuZGVzdHJveSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMucGlwZWxpbmUuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLmRlc3Ryb3kgPyBSZW1vdmFsUG9saWN5LkRFU1RST1kgOiBSZW1vdmFsUG9saWN5LlJFVEFJTik7XG4gICAgfVxuICB9XG5cbiAgYWRkU291cmNlU3RhZ2UocGFyYW1zOiBBZGRTb3VyY2VTdGFnZVBhcmFtcyk6IEFydGlmYWN0IHtcbiAgICBjb25zdCBhcnRpZmFjdCA9IG5ldyBBcnRpZmFjdCgpO1xuXG4gICAgY29uc3QgY29ubmVjdGlvbkFybjogc3RyaW5nID0gdHlwZW9mIHBhcmFtcy5jb2Rlc3RhckNvbm5lY3Rpb24gPT0gJ3N0cmluZycgP1xuICAgICAgIHBhcmFtcy5jb2Rlc3RhckNvbm5lY3Rpb24gOlxuICAgICAgIFN0cmluZ1BhcmFtZXRlci52YWx1ZUZvclN0cmluZ1BhcmFtZXRlcih0aGlzLCAocGFyYW1zLmNvZGVzdGFyQ29ubmVjdGlvbiBhcyBTc21TdHJpbmdQYXJhbWV0ZXIpLnBhdGgsIChwYXJhbXMuY29kZXN0YXJDb25uZWN0aW9uIGFzIFNzbVN0cmluZ1BhcmFtZXRlcikudmVyc2lvbik7XG5cbiAgICB0aGlzLnBpcGVsaW5lLmFkZFN0YWdlKHtcbiAgICAgIHN0YWdlTmFtZTogcGFyYW1zLnN0YWdlTmFtZSA/PyAnU291cmNlJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgbmV3IENvZGVTdGFyQ29ubmVjdGlvbnNTb3VyY2VBY3Rpb24oe1xuICAgICAgICAgIGFjdGlvbk5hbWU6IHBhcmFtcy5zdGFnZU5hbWUgPz8gJ1NvdXJjZScsXG4gICAgICAgICAgb3V0cHV0OiBhcnRpZmFjdCxcbiAgICAgICAgICBjb25uZWN0aW9uQXJuLFxuICAgICAgICAgIG93bmVyOiBwYXJhbXMucmVwb093bmVyLFxuICAgICAgICAgIHJlcG86IHBhcmFtcy5yZXBvLFxuICAgICAgICAgIGJyYW5jaDogcGFyYW1zLmJyYW5jaCxcbiAgICAgICAgICBjb2RlQnVpbGRDbG9uZU91dHB1dDogcGFyYW1zLmZ1bGxDbG9uZVxuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0pO1xuICAgIHJldHVybiBhcnRpZmFjdDtcbiAgfVxuXG4gIGFkZEJ1aWxkU3RhZ2UocGFyYW1zOiBBZGRCdWlsZFN0YWdlUGFyYW1zKSB7XG4gICAgdGhpcy5waXBlbGluZS5hZGRTdGFnZSh7XG4gICAgICBzdGFnZU5hbWU6IHBhcmFtcy5zdGFnZU5hbWUgPz8gJ0J1aWxkJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgbmV3IENvZGVCdWlsZEFjdGlvbih7XG4gICAgICAgICAgYWN0aW9uTmFtZTogcGFyYW1zLnN0YWdlTmFtZSA/PyAnQnVpbGQnLFxuICAgICAgICAgIHByb2plY3Q6IHBhcmFtcy5jb2RlQnVpbGRQcm9qZWN0LFxuICAgICAgICAgIGlucHV0OiBwYXJhbXMuc291cmNlQXJ0aWZhY3QsXG4gICAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHBhcmFtcy5lbnZpcm9ubWVudFZhcmlhYmxlc1xuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0pO1xuICB9XG59Il19
@@ -1,6 +1,6 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Bucket } from 'aws-cdk-lib/aws-s3';
3
- import { ResourceProps } from "../lib/types.js";
3
+ import type { ResourceProps } from "../types.d.ts";
4
4
  export interface S3BucketProps extends ResourceProps {
5
5
  /** The name of the S3 bucket */
6
6
  bucketName?: string;
@@ -14,4 +14,4 @@ export class S3Bucket extends Construct {
14
14
  tagResource(this.bucket, props.tags);
15
15
  }
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVE3QyxNQUFNLE9BQU8sUUFBUyxTQUFRLFNBQVM7SUFDckIsTUFBTSxDQUFTO0lBRS9CLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNySCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzdELENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyB0YWdSZXNvdXJjZSB9IGZyb20gJy4uL2xpYi90YWdzLmpzJztcbmltcG9ydCB7IFJlc291cmNlUHJvcHMgfSBmcm9tIFwiLi4vbGliL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNCdWNrZXRQcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMge1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIFMzIGJ1Y2tldCAqL1xuICBidWNrZXROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUzNCdWNrZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBCdWNrZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFMzQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsICdTM0J1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzLmJ1Y2tldE5hbWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5kZXN0cm95ICE9PSB1bmRlZmluZWQgPyBwcm9wcy5kZXN0cm95ID8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIDogUmVtb3ZhbFBvbGljeS5SRVRBSU4gOiB1bmRlZmluZWQsXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogcHJvcHMuZGVzdHJveSA9PT0gdHJ1ZSA/IHRydWUgOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmJ1Y2tldCwgcHJvcHMudGFncyk7XG4gIH1cbn0iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVE3QyxNQUFNLE9BQU8sUUFBUyxTQUFRLFNBQVM7SUFDckIsTUFBTSxDQUFTO0lBRS9CLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNySCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzdELENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyB0YWdSZXNvdXJjZSB9IGZyb20gJy4uL2xpYi90YWdzLmpzJztcbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VQcm9wcyB9IGZyb20gXCIuLi90eXBlcy5kLnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNCdWNrZXRQcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMge1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIFMzIGJ1Y2tldCAqL1xuICBidWNrZXROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUzNCdWNrZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBCdWNrZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFMzQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsICdTM0J1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzLmJ1Y2tldE5hbWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5kZXN0cm95ICE9PSB1bmRlZmluZWQgPyBwcm9wcy5kZXN0cm95ID8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIDogUmVtb3ZhbFBvbGljeS5SRVRBSU4gOiB1bmRlZmluZWQsXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogcHJvcHMuZGVzdHJveSA9PT0gdHJ1ZSA/IHRydWUgOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmJ1Y2tldCwgcHJvcHMudGFncyk7XG4gIH1cbn0iXX0=
@@ -1,9 +1,12 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { StringParameter } from 'aws-cdk-lib/aws-ssm';
3
- interface CreateStringParameterProps {
3
+ export interface SsmStringParameter {
4
+ path: string;
5
+ version?: number;
6
+ }
7
+ export interface CreateStringParameterProps {
4
8
  parameterName: string;
5
9
  stringValue: string;
6
10
  overwrite?: boolean;
7
11
  }
8
12
  export declare function createStringParameter(scope: Construct, id: string, { parameterName, stringValue, overwrite }: CreateStringParameterProps): StringParameter | undefined;
9
- export {};
@@ -14,4 +14,4 @@ export function createStringParameter(scope, id, { parameterName, stringValue, o
14
14
  }
15
15
  return param;
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvc3NtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU90RCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQThCO0lBQy9JLElBQUksS0FBSyxHQUFnQyxTQUFTLENBQUM7SUFDbkQsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3BILElBQUksR0FBRyxhQUFhLEtBQUssc0NBQXNDLENBQUM7SUFDbEUsQ0FBQztJQUNELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNyQyxhQUFhO1lBQ2IsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5cbmludGVyZmFjZSBDcmVhdGVTdHJpbmdQYXJhbWV0ZXJQcm9wcyB7XG4gIHBhcmFtZXRlck5hbWU6IHN0cmluZztcbiAgc3RyaW5nVmFsdWU6IHN0cmluZztcbiAgb3ZlcndyaXRlPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHJpbmdQYXJhbWV0ZXIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgeyBwYXJhbWV0ZXJOYW1lLCBzdHJpbmdWYWx1ZSwgb3ZlcndyaXRlID0gZmFsc2UgfTogQ3JlYXRlU3RyaW5nUGFyYW1ldGVyUHJvcHMpOiBTdHJpbmdQYXJhbWV0ZXIgfCB1bmRlZmluZWQge1xuICBsZXQgcGFyYW06IFN0cmluZ1BhcmFtZXRlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgbGV0IGZsYWcgPSBvdmVyd3JpdGU7XG4gIGlmICghZmxhZykge1xuICAgIGNvbnN0IGV4aXN0aW5nVmFsdWUgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKHNjb3BlLCBwYXJhbWV0ZXJOYW1lLCAnYThhNzk1MzItNDE2My00NmI5LWE5MDctNDI5ZGFkMDRlOTNiJyk7XG4gICAgZmxhZyA9IGV4aXN0aW5nVmFsdWUgPT09ICdhOGE3OTUzMi00MTYzLTQ2YjktYTkwNy00MjlkYWQwNGU5M2InO1xuICB9XG4gIGlmIChmbGFnKSB7XG4gICAgcGFyYW0gPSBuZXcgU3RyaW5nUGFyYW1ldGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGFyYW1ldGVyTmFtZSxcbiAgICAgIHN0cmluZ1ZhbHVlXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhcmFtO1xufSJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvc3NtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVl0RCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQThCO0lBQy9JLElBQUksS0FBSyxHQUFnQyxTQUFTLENBQUM7SUFDbkQsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3BILElBQUksR0FBRyxhQUFhLEtBQUssc0NBQXNDLENBQUM7SUFDbEUsQ0FBQztJQUNELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNyQyxhQUFhO1lBQ2IsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3NtU3RyaW5nUGFyYW1ldGVyIHtcbiAgcGF0aDogc3RyaW5nO1xuICB2ZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVN0cmluZ1BhcmFtZXRlclByb3BzIHtcbiAgcGFyYW1ldGVyTmFtZTogc3RyaW5nO1xuICBzdHJpbmdWYWx1ZTogc3RyaW5nO1xuICBvdmVyd3JpdGU/OiBib29sZWFuO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0cmluZ1BhcmFtZXRlcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCB7IHBhcmFtZXRlck5hbWUsIHN0cmluZ1ZhbHVlLCBvdmVyd3JpdGUgPSBmYWxzZSB9OiBDcmVhdGVTdHJpbmdQYXJhbWV0ZXJQcm9wcyk6IFN0cmluZ1BhcmFtZXRlciB8IHVuZGVmaW5lZCB7XG4gIGxldCBwYXJhbTogU3RyaW5nUGFyYW1ldGVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBsZXQgZmxhZyA9IG92ZXJ3cml0ZTtcbiAgaWYgKCFmbGFnKSB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoc2NvcGUsIHBhcmFtZXRlck5hbWUsICdhOGE3OTUzMi00MTYzLTQ2YjktYTkwNy00MjlkYWQwNGU5M2InKTtcbiAgICBmbGFnID0gZXhpc3RpbmdWYWx1ZSA9PT0gJ2E4YTc5NTMyLTQxNjMtNDZiOS1hOTA3LTQyOWRhZDA0ZTkzYic7XG4gIH1cbiAgaWYgKGZsYWcpIHtcbiAgICBwYXJhbSA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lLFxuICAgICAgc3RyaW5nVmFsdWVcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcGFyYW07XG59Il19
@@ -1,6 +1,6 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { CfnWebACL } from 'aws-cdk-lib/aws-wafv2';
3
- import type { ResourceProps } from '../lib/types.js';
3
+ import type { ResourceProps } from '../types.d.ts';
4
4
  export type WebAclManagedRule = 'AWSManagedRulesAmazonIpReputationList' | 'AWSManagedRulesAnonymousIpList' | 'AWSManagedRulesAntiDDoSRuleSet' | 'AWSManagedRulesBotControlRuleSet' | 'AWSManagedRulesCommonRuleSet' | 'AWSManagedRulesKnownBadInputsRuleSet' | 'AWSManagedRulesSQLiRuleSet';
5
5
  export interface CloudFrontWebAclProps extends ResourceProps {
6
6
  name: string;
@@ -86,4 +86,4 @@ function transformManagedRules(rules) {
86
86
  };
87
87
  });
88
88
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvd2FmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBZ0JwRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUM3QixHQUFHLENBQVk7SUFFL0IsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLFlBQVksR0FBRztnQkFDbkIsdUNBQXVDO2dCQUN2QyxnQ0FBZ0M7Z0JBQ2hDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxrQ0FBa0M7YUFDbkMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNqRCxLQUFLLEVBQUUsWUFBWTtZQUNuQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM1QixnQkFBZ0IsRUFBRTtnQkFDaEIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsc0JBQXNCLEVBQUUsSUFBSTtnQkFDNUIs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b2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuV2ViQUNMIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXdhZnYyJztcbmltcG9ydCB7IHRhZ1Jlc291cmNlIH0gZnJvbSAnLi4vbGliL3RhZ3MuanMnO1xuaW1wb3J0IHsgY2xlYW5SZXNvdXJjZU5hbWUgfSBmcm9tICcuLi9saWIvdXRpbHMuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVByb3BzIH0gZnJvbSAnLi4vbGliL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgV2ViQWNsTWFuYWdlZFJ1bGUgPSBcbiAgJ0FXU01hbmFnZWRSdWxlc0FtYXpvbklwUmVwdXRhdGlvbkxpc3QnIHxcbiAgJ0FXU01hbmFnZWRSdWxlc0Fub255bW91c0lwTGlzdCcgfCBcbiAgJ0FXU01hbmFnZWRSdWxlc0FudGlERG9TUnVsZVNldCcgfCBcbiAgJ0FXU01hbmFnZWRSdWxlc0JvdENvbnRyb2xSdWxlU2V0JyB8XG4gICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyB8XG4gICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnIHxcbiAgJ0FXU01hbmFnZWRSdWxlc1NRTGlSdWxlU2V0JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250V2ViQWNsUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBtYW5hZ2VkUnVsZXM/OiAoV2ViQWNsTWFuYWdlZFJ1bGUgJiBzdHJpbmcpW107XG59XG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udFdlYkFjbCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhY2w6IENmbldlYkFDTDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRGcm9udFdlYkFjbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHByb3BzLm5hbWUgPSBjbGVhblJlc291cmNlTmFtZShwcm9wcy5uYW1lKTtcblxuICAgIGlmICghcHJvcHMubWFuYWdlZFJ1bGVzKSB7XG4gICAgICBwcm9wcy5tYW5hZ2VkUnVsZXMgPSBbXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgJ0FXU01hbmFnZWRSdWxlc0Fub255bW91c0lwTGlzdCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyxcbiAgICAgICAgJ0FXU01hbmFnZWRSdWxlc0tub3duQmFkSW5wdXRzUnVsZVNldCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNCb3RDb250cm9sUnVsZVNldCdcbiAgICAgIF07XG4gICAgfVxuXG4gICAgdGhpcy5hY2wgPSBuZXcgQ2ZuV2ViQUNMKHRoaXMsICdDbG91ZEZyb250V2ViQWNsJywge1xuICAgICAgc2NvcGU6ICdDTE9VREZST05UJyxcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBkZWZhdWx0QWN0aW9uOiB7IGFsbG93OiB7fSB9LFxuICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1ldHJpY05hbWU6IGAke3Byb3BzLm5hbWV9LW1ldHJpY3NgXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHRyYW5zZm9ybU1hbmFnZWRSdWxlcyhwcm9wcy5tYW5hZ2VkUnVsZXMpXG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5hY2wsIHByb3BzLnRhZ3MpO1xuICAgIGlmICh0eXBlb2YgcHJvcHMuZGVzdHJveSA9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuYWNsLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5kZXN0cm95ID8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZIDogUmVtb3ZhbFBvbGljeS5SRVRBSU4pO1xuICAgIH0gXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlHYXRld2F5V2ViQWNsUHJvcHMgZXh0ZW5kcyBSZXNvdXJjZVByb3BzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhY2xTY29wZT86ICdDTE9VREZST05UJyB8ICdSRUdJT05BTCc7XG4gIG1hbmFnZWRSdWxlcz86IChXZWJBY2xNYW5hZ2VkUnVsZSAmIHN0cmluZylbXTtcbn1cbmV4cG9ydCBjbGFzcyBBcGlHYXRld2F5V2ViQWNsIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFjbDogQ2ZuV2ViQUNMO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBpR2F0ZXdheVdlYkFjbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHByb3BzLm5hbWUgPSBjbGVhblJlc291cmNlTmFtZShwcm9wcy5uYW1lKTtcblxuICAgIGlmICghcHJvcHMubWFuYWdlZFJ1bGVzKSB7XG4gICAgICBwcm9wcy5tYW5hZ2VkUnVsZXMgPSBbXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyxcbiAgICAgICAgJ0FXU01hbmFnZWRSdWxlc0Fub255bW91c0lwTGlzdCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNDb21tb25SdWxlU2V0JyxcbiAgICAgICAgJ0FXU01hbmFnZWRSdWxlc1NRTGlSdWxlU2V0JyxcbiAgICAgICAgJ0FXU01hbmFnZWRSdWxlc0tub3duQmFkSW5wdXRzUnVsZVNldCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNCb3RDb250cm9sUnVsZVNldCdcbiAgICAgIF07XG4gICAgfVxuXG4gICAgdGhpcy5hY2wgPSBuZXcgQ2ZuV2ViQUNMKHRoaXMsICdBcGlHYXRld2F5V2ViQWNsJywge1xuICAgICAgc2NvcGU6IHByb3BzLmFjbFNjb3BlID8/ICdSRUdJT05BTCcsXG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgZGVmYXVsdEFjdGlvbjogeyBhbGxvdzoge30gfSxcbiAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICBtZXRyaWNOYW1lOiBgJHtwcm9wcy5uYW1lfS1tZXRyaWNzYFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB0cmFuc2Zvcm1NYW5hZ2VkUnVsZXMocHJvcHMubWFuYWdlZFJ1bGVzKVxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuYWNsLCBwcm9wcy50YWdzKTtcbiAgICBpZiAodHlwZW9mIHByb3BzLmRlc3Ryb3kgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLmFjbC5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOKTtcbiAgICB9IFxuICB9XG59XG5cblxuZnVuY3Rpb24gdHJhbnNmb3JtTWFuYWdlZFJ1bGVzKHJ1bGVzOiAoV2ViQWNsTWFuYWdlZFJ1bGUgfCBzdHJpbmcpW10pOiBDZm5XZWJBQ0wuUnVsZVByb3BlcnR5W10ge1xuICByZXR1cm4gcnVsZXMubWFwKChydWxlTmFtZSwgaSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBgQVdTLSR7cnVsZU5hbWV9YCxcbiAgICAgIHByaW9yaXR5OiBpLFxuICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgIG1hbmFnZWRSdWxlR3JvdXBTdGF0ZW1lbnQ6IHtcbiAgICAgICAgICBuYW1lOiBydWxlTmFtZSxcbiAgICAgICAgICB2ZW5kb3JOYW1lOiAnQVdTJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb3ZlcnJpZGVBY3Rpb246IHsgbm9uZToge30gfSxcbiAgICAgIHZpc2liaWxpdHlDb25maWc6IHsgXG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogYEFXUy0ke3J1bGVOYW1lfWBcbiAgICAgIH1cbiAgICB9IGFzIENmbldlYkFDTC5SdWxlUHJvcGVydHk7XG4gIH0pO1xufSJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvd2FmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBZ0JwRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUM3QixHQUFHLENBQVk7SUFFL0IsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLFlBQVksR0FBRztnQkFDbkIsdUNBQXVDO2dCQUN2QyxnQ0FBZ0M7Z0JBQ2hDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxrQ0FBa0M7YUFDbkMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNqRCxLQUFLLEVBQUUsWUFBWTtZQUNuQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM1QixnQkFBZ0IsRUFBRTtnQkFDaEIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsc0JBQXNCLEVBQUUsSUFBSTtnQkFDNUIs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b2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuV2ViQUNMIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXdhZnYyJztcbmltcG9ydCB7IHRhZ1Jlc291cmNlIH0gZnJvbSAnLi4vbGliL3RhZ3MuanMnO1xuaW1wb3J0IHsgY2xlYW5SZXNvdXJjZU5hbWUgfSBmcm9tICcuLi9saWIvdXRpbHMuanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVByb3BzIH0gZnJvbSAnLi4vdHlwZXMuZC50cyc7XG5cbmV4cG9ydCB0eXBlIFdlYkFjbE1hbmFnZWRSdWxlID0gXG4gICdBV1NNYW5hZ2VkUnVsZXNBbWF6b25JcFJlcHV0YXRpb25MaXN0JyB8XG4gICdBV1NNYW5hZ2VkUnVsZXNBbm9ueW1vdXNJcExpc3QnIHwgXG4gICdBV1NNYW5hZ2VkUnVsZXNBbnRpRERvU1J1bGVTZXQnIHwgXG4gICdBV1NNYW5hZ2VkUnVsZXNCb3RDb250cm9sUnVsZVNldCcgfFxuICAnQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCcgfFxuICAnQVdTTWFuYWdlZFJ1bGVzS25vd25CYWRJbnB1dHNSdWxlU2V0JyB8XG4gICdBV1NNYW5hZ2VkUnVsZXNTUUxpUnVsZVNldCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udFdlYkFjbFByb3BzIGV4dGVuZHMgUmVzb3VyY2VQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgbWFuYWdlZFJ1bGVzPzogKFdlYkFjbE1hbmFnZWRSdWxlICYgc3RyaW5nKVtdO1xufVxuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRXZWJBY2wgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYWNsOiBDZm5XZWJBQ0w7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnRXZWJBY2xQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBwcm9wcy5uYW1lID0gY2xlYW5SZXNvdXJjZU5hbWUocHJvcHMubmFtZSk7XG5cbiAgICBpZiAoIXByb3BzLm1hbmFnZWRSdWxlcykge1xuICAgICAgcHJvcHMubWFuYWdlZFJ1bGVzID0gW1xuICAgICAgICAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNBbm9ueW1vdXNJcExpc3QnLFxuICAgICAgICAnQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnLFxuICAgICAgICAnQVdTTWFuYWdlZFJ1bGVzQm90Q29udHJvbFJ1bGVTZXQnXG4gICAgICBdO1xuICAgIH1cblxuICAgIHRoaXMuYWNsID0gbmV3IENmbldlYkFDTCh0aGlzLCAnQ2xvdWRGcm9udFdlYkFjbCcsIHtcbiAgICAgIHNjb3BlOiAnQ0xPVURGUk9OVCcsXG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgZGVmYXVsdEFjdGlvbjogeyBhbGxvdzoge30gfSxcbiAgICAgIHZpc2liaWxpdHlDb25maWc6IHtcbiAgICAgICAgY2xvdWRXYXRjaE1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgICBtZXRyaWNOYW1lOiBgJHtwcm9wcy5uYW1lfS1tZXRyaWNzYFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB0cmFuc2Zvcm1NYW5hZ2VkUnVsZXMocHJvcHMubWFuYWdlZFJ1bGVzKVxuICAgIH0pO1xuICAgIHRhZ1Jlc291cmNlKHRoaXMuYWNsLCBwcm9wcy50YWdzKTtcbiAgICBpZiAodHlwZW9mIHByb3BzLmRlc3Ryb3kgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLmFjbC5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMuZGVzdHJveSA/IFJlbW92YWxQb2xpY3kuREVTVFJPWSA6IFJlbW92YWxQb2xpY3kuUkVUQUlOKTtcbiAgICB9IFxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpR2F0ZXdheVdlYkFjbFByb3BzIGV4dGVuZHMgUmVzb3VyY2VQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYWNsU2NvcGU/OiAnQ0xPVURGUk9OVCcgfCAnUkVHSU9OQUwnO1xuICBtYW5hZ2VkUnVsZXM/OiAoV2ViQWNsTWFuYWdlZFJ1bGUgJiBzdHJpbmcpW107XG59XG5leHBvcnQgY2xhc3MgQXBpR2F0ZXdheVdlYkFjbCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhY2w6IENmbldlYkFDTDtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFwaUdhdGV3YXlXZWJBY2xQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBwcm9wcy5uYW1lID0gY2xlYW5SZXNvdXJjZU5hbWUocHJvcHMubmFtZSk7XG5cbiAgICBpZiAoIXByb3BzLm1hbmFnZWRSdWxlcykge1xuICAgICAgcHJvcHMubWFuYWdlZFJ1bGVzID0gW1xuICAgICAgICAnQVdTTWFuYWdlZFJ1bGVzQW1hem9uSXBSZXB1dGF0aW9uTGlzdCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNBbm9ueW1vdXNJcExpc3QnLFxuICAgICAgICAnQVdTTWFuYWdlZFJ1bGVzQ29tbW9uUnVsZVNldCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNTUUxpUnVsZVNldCcsXG4gICAgICAgICdBV1NNYW5hZ2VkUnVsZXNLbm93bkJhZElucHV0c1J1bGVTZXQnLFxuICAgICAgICAnQVdTTWFuYWdlZFJ1bGVzQm90Q29udHJvbFJ1bGVTZXQnXG4gICAgICBdO1xuICAgIH1cblxuICAgIHRoaXMuYWNsID0gbmV3IENmbldlYkFDTCh0aGlzLCAnQXBpR2F0ZXdheVdlYkFjbCcsIHtcbiAgICAgIHNjb3BlOiBwcm9wcy5hY2xTY29wZSA/PyAnUkVHSU9OQUwnLFxuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIGRlZmF1bHRBY3Rpb246IHsgYWxsb3c6IHt9IH0sXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogYCR7cHJvcHMubmFtZX0tbWV0cmljc2BcbiAgICAgIH0sXG4gICAgICBydWxlczogdHJhbnNmb3JtTWFuYWdlZFJ1bGVzKHByb3BzLm1hbmFnZWRSdWxlcylcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmFjbCwgcHJvcHMudGFncyk7XG4gICAgaWYgKHR5cGVvZiBwcm9wcy5kZXN0cm95ID09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5hY2wuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLmRlc3Ryb3kgPyBSZW1vdmFsUG9saWN5LkRFU1RST1kgOiBSZW1vdmFsUG9saWN5LlJFVEFJTik7XG4gICAgfSBcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1hbmFnZWRSdWxlcyhydWxlczogKFdlYkFjbE1hbmFnZWRSdWxlIHwgc3RyaW5nKVtdKTogQ2ZuV2ViQUNMLlJ1bGVQcm9wZXJ0eVtdIHtcbiAgcmV0dXJuIHJ1bGVzLm1hcCgocnVsZU5hbWUsIGkpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogYEFXUy0ke3J1bGVOYW1lfWAsXG4gICAgICBwcmlvcml0eTogaSxcbiAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICBtYW5hZ2VkUnVsZUdyb3VwU3RhdGVtZW50OiB7XG4gICAgICAgICAgbmFtZTogcnVsZU5hbWUsXG4gICAgICAgICAgdmVuZG9yTmFtZTogJ0FXUydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG92ZXJyaWRlQWN0aW9uOiB7IG5vbmU6IHt9IH0sXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7IFxuICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHNhbXBsZWRSZXF1ZXN0c0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1ldHJpY05hbWU6IGBBV1MtJHtydWxlTmFtZX1gXG4gICAgICB9XG4gICAgfSBhcyBDZm5XZWJBQ0wuUnVsZVByb3BlcnR5O1xuICB9KTtcbn0iXX0=
@@ -1,18 +1,16 @@
1
1
  import { Stack, StackProps } from 'aws-cdk-lib/core';
2
2
  import { Construct } from 'constructs';
3
3
  import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
4
- import { Distribution, Function, IResponseHeadersPolicy, ResponseHeadersPolicyProps } from 'aws-cdk-lib/aws-cloudfront';
4
+ import { Distribution, Function, FunctionEventType, IResponseHeadersPolicy, ResponseHeadersPolicyProps } from 'aws-cdk-lib/aws-cloudfront';
5
5
  import { ARecord, AaaaRecord } from "aws-cdk-lib/aws-route53";
6
6
  import { Bucket } from "aws-cdk-lib/aws-s3";
7
7
  import { CfnWebACL } from 'aws-cdk-lib/aws-wafv2';
8
8
  import { CloudFrontFunctionRedirects } from '../../constructs/cloudfront.js';
9
- import { SsmStringParameter } from '../../lib/types.ts';
10
- export interface BasicAuthCredentials {
11
- user: string;
12
- password: string;
13
- }
9
+ import type { SsmStringParameter } from '../../constructs/ssm.ts';
10
+ import type { BasicAuthCredentials } from '../../types.d.ts';
14
11
  type AWSManagedResponseHeadersPolicy = 'CORS_ALLOW_ALL_ORIGINS' | 'CORS_ALLOW_ALL_ORIGINS_AND_SECURITY_HEADERS' | 'CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT' | 'CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT_AND_SECURITY_HEADERS' | 'SECURITY_HEADERS';
15
12
  type UUID = `${string}-${string}-${string}-${string}-${string}`;
13
+ type CloudFrontFunctionEventType = keyof typeof FunctionEventType;
16
14
  export interface WebGlobalStackProps {
17
15
  envType: 'NOT_PROD' | 'PROD';
18
16
  description?: string;
@@ -20,7 +18,10 @@ export interface WebGlobalStackProps {
20
18
  hostedZone: string;
21
19
  domainName: string;
22
20
  basicAuth?: string | BasicAuthCredentials | SsmStringParameter;
23
- viewerRequestResponse?: string;
21
+ cloudfrontFunction?: {
22
+ eventType: CloudFrontFunctionEventType[];
23
+ code: string;
24
+ };
24
25
  redirects?: CloudFrontFunctionRedirects;
25
26
  redirectsCsvPath?: string;
26
27
  webAcl?: boolean | string | SsmStringParameter;
@@ -73,12 +73,12 @@ export class WebGlobalStack extends Stack {
73
73
  }
74
74
  }
75
75
  }
76
- if (props.viewerRequestResponse) {
77
- cffn = CloudFrontFunction.createViewerRequestResponseFunction(this, null, {
76
+ if (props.cloudfrontFunction) {
77
+ cffn = CloudFrontFunction.createFunction(this, null, {
78
78
  credentials: props.basicAuth,
79
79
  redirects: props.redirects,
80
80
  redirectsCsvPath: props.redirectsCsvPath,
81
- code: props.viewerRequestResponse,
81
+ code: props.cloudfrontFunction.code,
82
82
  destroy: props.destroy
83
83
  });
84
84
  }
@@ -98,14 +98,26 @@ export class WebGlobalStack extends Stack {
98
98
  });
99
99
  }
100
100
  this.cloudFrontFunction = cffn.fn;
101
- defaultBehavior.functionAssociations.push({
102
- eventType: FunctionEventType.VIEWER_REQUEST,
103
- function: this.cloudFrontFunction
104
- });
105
- defaultBehavior.functionAssociations.push({
106
- eventType: FunctionEventType.VIEWER_RESPONSE,
107
- function: this.cloudFrontFunction
108
- });
101
+ // const eventTypes: CloudFrontFunctionEventType[] = props.cloudfrontFunction?.eventType && props.cloudfrontFunction.eventType.length > 0 ? props.cloudfrontFunction.eventType : ['VIEWER_REQUEST', 'VIEWER_RESPONSE'];
102
+ let eventTypes = ['VIEWER_REQUEST', 'VIEWER_RESPONSE'];
103
+ if (Array.isArray(props.cloudfrontFunction?.eventType) && props.cloudfrontFunction.eventType.length > 0) {
104
+ const ets = props.cloudfrontFunction.eventType
105
+ .filter((v, i, a) => {
106
+ return (typeof v == 'string' &&
107
+ (v === 'VIEWER_REQUEST' || v === 'VIEWER_RESPONSE') &&
108
+ a.indexOf(v) === i // dedup
109
+ );
110
+ });
111
+ if (ets.length > 0) {
112
+ eventTypes = ets;
113
+ }
114
+ }
115
+ for (const eventType of eventTypes) {
116
+ defaultBehavior.functionAssociations.push({
117
+ eventType: FunctionEventType[eventType],
118
+ function: this.cloudFrontFunction
119
+ });
120
+ }
109
121
  let webAclId = undefined;
110
122
  if (typeof props.webAcl == 'string' && props.webAcl.startsWith('arn:aws')) {
111
123
  webAclId = props.webAcl;
@@ -139,4 +151,4 @@ export class WebGlobalStack extends Stack {
139
151
  this.aaaaRecord = cfAlias.aaaaRecord;
140
152
  }
141
153
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWdsb2JhbC1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGFja3Mvd2ViLXN0YXRpYy1zZXJ2ZXJsZXNzL3dlYi1nbG9iYWwtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBYyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUluRSxPQUFPLEVBQTBCLGlCQUFpQixFQUF1RSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR25MLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUErQixrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pILE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBaUNwRSxNQUFNLE9BQU8sY0FBZSxTQUFRLEtBQUs7SUFDdkIsY0FBYyxDQUFjO0lBQzVCLFFBQVEsQ0FBUztJQUNqQixrQkFBa0IsQ0FBVztJQUM3QixzQkFBc0IsQ0FBZTtJQUNyQyxNQUFNLENBQXdCO0lBQzlCLHFCQUFxQixDQUFxQztJQUMxRCxPQUFPLENBQVU7SUFDakIsVUFBVSxDQUFhO0lBRXZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUM7UUFDL0UsS0FBSyxD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L0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCBTdGFja1Byb3BzLCBQaHlzaWNhbE5hbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5pbXBvcnQgeyBDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyBEaXN0cmlidXRpb24sIEZ1bmN0aW9uLCBGdW5jdGlvbkV2ZW50VHlwZSwgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSwgUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMsIEJlaGF2aW9yT3B0aW9ucywgUmVzcG9uc2VIZWFkZXJzUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0IHsgQVJlY29yZCwgQWFhYVJlY29yZCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgeyBDZm5XZWJBQ0wgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtd2FmdjInO1xuXG5pbXBvcnQgeyBTU0xDZXJ0aWZpY2F0ZSB9IGZyb20gJy4uLy4uL2NvbnN0cnVjdHMvY2VydGlmaWNhdGVtYW5hZ2VyLmpzJztcbmltcG9ydCB7IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cywgQ2xvdWRGcm9udEZ1bmN0aW9uLCBDbG91ZEZyb250RGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vY29uc3RydWN0cy9jbG91ZGZyb250LmpzJztcbmltcG9ydCB7IGdldEhvc3RlZFpvbmUsIENsb3VkRnJvbnRBbGlhcyB9IGZyb20gJy4uLy4uL2NvbnN0cnVjdHMvcm91dGU1My5qcyc7XG5pbXBvcnQgeyBTM0J1Y2tldCB9IGZyb20gJy4uLy4uL2NvbnN0cnVjdHMvczMuanMnO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFdlYkFjbCB9IGZyb20gJy4uLy4uL2NvbnN0cnVjdHMvd2FmLmpzJztcbmltcG9ydCB7IGRvbWFpbkFzSWQgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMuanMnO1xuaW1wb3J0IHsgYWRkRXZvU3RhY2tUYWdzIH0gZnJvbSAnLi4vLi4vbGliL3RhZ3MudHMnO1xuaW1wb3J0IHsgU3NtU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vbGliL3R5cGVzLnRzJztcbmltcG9ydCB7IFMzQnVja2V0T3JpZ2luIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNBdXRoQ3JlZGVudGlhbHMge1xuICB1c2VyOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbnR5cGUgQVdTTWFuYWdlZFJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IFxuICAnQ09SU19BTExPV19BTExfT1JJR0lOUycgfFxuICAnQ09SU19BTExPV19BTExfT1JJR0lOU19BTkRfU0VDVVJJVFlfSEVBREVSUycgfFxuICAnQ09SU19BTExPV19BTExfT1JJR0lOU19XSVRIX1BSRUZMSUdIVCcgfFxuICAnQ09SU19BTExPV19BTExfT1JJR0lOU19XSVRIX1BSRUZMSUdIVF9BTkRfU0VDVVJJVFlfSEVBREVSUycgfFxuICAnU0VDVVJJVFlfSEVBREVSUyc7XG5cbnR5cGUgVVVJRCA9IGAke3N0cmluZ30tJHtzdHJpbmd9LSR7c3RyaW5nfS0ke3N0cmluZ30tJHtzdHJpbmd9YDtcbmV4cG9ydCBpbnRlcmZhY2UgV2ViR2xvYmFsU3RhY2tQcm9wcyB7XG4gIGVudlR5cGU6ICdOT1RfUFJPRCcgfCAnUFJPRCc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBidWNrZXROYW1lPzogc3RyaW5nO1xuICBob3N0ZWRab25lOiBzdHJpbmc7XG4gIGRvbWFpbk5hbWU6IHN0cmluZztcbiAgYmFzaWNBdXRoPzogc3RyaW5nIHwgQmFzaWNBdXRoQ3JlZGVudGlhbHMgfCBTc21TdHJpbmdQYXJhbWV0ZXI7XG4gIHZpZXdlclJlcXVlc3RSZXNwb25zZT86IHN0cmluZztcbiAgcmVkaXJlY3RzPzogQ2xvdWRGcm9udEZ1bmN0aW9uUmVkaXJlY3RzO1xuICByZWRpcmVjdHNDc3ZQYXRoPzogc3RyaW5nO1xuICAvLyBhdHRhY2hXZWJBY2w/OiBib29sZWFuIHwgc3RyaW5nO1xuICB3ZWJBY2w/OiBib29sZWFuIHwgc3RyaW5nIHwgU3NtU3RyaW5nUGFyYW1ldGVyO1xuICByZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBmYWxzZSB8IEFXU01hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3kgfCBVVUlEIHwgU3NtU3RyaW5nUGFyYW1ldGVyO1xuICByZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcz86IFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzO1xuICBkZXN0cm95PzogYm9vbGVhbjtcbiAgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJHbG9iYWxTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgcHVibGljIHJlYWRvbmx5IHNzbENlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZTtcbiAgcHVibGljIHJlYWRvbmx5IHMzQnVja2V0OiBCdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZyb250RnVuY3Rpb246IEZ1bmN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udERpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgd2ViQWNsOiBDZm5XZWJBQ0wgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3k6IElSZXNwb25zZUhlYWRlcnNQb2xpY3kgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyByZWFkb25seSBhUmVjb3JkOiBBUmVjb3JkO1xuICBwdWJsaWMgcmVhZG9ubHkgYWFhYVJlY29yZDogQWFhYVJlY29yZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2ViR2xvYmFsU3RhY2tQcm9wcyAmIFN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICBhZGRFdm9TdGFja1RhZ3ModGhpcywgJ1dlYkdsb2JhbFN0YWNrJyk7XG5cbiAgICBjb25zdCBob3N0ZWRab25lID0gZ2V0SG9zdGVkWm9uZSh0aGlzLCAnZ2V0SG9zdGVkWm9uZScsIHByb3BzLmhvc3RlZFpvbmUpO1xuXG4gICAgY29uc3QgX3NzbENlcnQgPSBuZXcgU1NMQ2VydGlmaWNhdGUodGhpcywgJ1NTTENlcnRpZmljYXRlJywge1xuICAgICAgaG9zdGVkWm9uZTogaG9zdGVkWm9uZSxcbiAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICBkZXN0cm95OiBwcm9wcy5kZXN0cm95XG4gICAgfSk7XG4gICAgdGhpcy5zc2xDZXJ0aWZpY2F0ZSA9IF9zc2xDZXJ0LmNlcnRpZmljYXRlO1xuXG4gICAgY29uc3QgX3MzQnVja2V0ID0gbmV3IFMzQnVja2V0KHRoaXMsICdTM0J1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzLmJ1Y2tldE5hbWUgPz8gUGh5c2ljYWxOYW1lLkdFTkVSQVRFX0lGX05FRURFRCxcbiAgICAgIGRlc3Ryb3k6IHByb3BzLmRlc3Ryb3lcbiAgICB9KTtcbiAgICB0aGlzLnMzQnVja2V0ID0gX3MzQnVja2V0LmJ1Y2tldDtcblxuICAgIGxldCByZXNwb25zZUhlYWRlcnNQb2xpY3k6IElSZXNwb25zZUhlYWRlcnNQb2xpY3kgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSkge1xuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3kgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKC9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9JC9pLnRlc3QocHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5KSkge1xuICAgICAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IFJlc3BvbnNlSGVhZGVyc1BvbGljeS5mcm9tUmVzcG9uc2VIZWFkZXJzUG9saWN5SWQodGhpcywgJ3Jlc3BvbnNlLWhlYWRlcnMtcG9saWN5LWJ5LWlkJywgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3kgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3lbcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5IGFzIGtleW9mIHR5cGVvZiBSZXNwb25zZUhlYWRlcnNQb2xpY3ldIGFzIElSZXNwb25zZUhlYWRlcnNQb2xpY3kgPz8gUmVzcG9uc2VIZWFkZXJzUG9saWN5LlNFQ1VSSVRZX0hFQURFUlM7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5LnBhdGgpIHtcbiAgICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gUmVzcG9uc2VIZWFkZXJzUG9saWN5LmZyb21SZXNwb25zZUhlYWRlcnNQb2xpY3lJZCh0aGlzLCAncmVzcG9uc2UtaGVhZGVycy1wb2xpY3ktYnktaWQnLCBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIodGhpcywgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5LnBhdGgsIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeS52ZXJzaW9uKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcmVzcG9uc2VIZWFkZXJzUG9saWN5ICYmIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzKSB7XG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3kgPSBuZXcgUmVzcG9uc2VIZWFkZXJzUG9saWN5KHRoaXMsICdyZXNwb25zZS1oZWFkZXJzLXBvbGljeScsIHtcbiAgICAgICAgLi4ucHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMsXG4gICAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWU6IHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWUgfHwgYCR7ZG9tYWluQXNJZChwcm9wcy5kb21haW5OYW1lKX0tcmVzcG9uc2UtaGVhZGVycy1wb2xpY3lgXG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gcmVzcG9uc2VIZWFkZXJzUG9saWN5O1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmF1bHRCZWhhdmlvcjogQmVoYXZpb3JPcHRpb25zID0ge1xuICAgICAgb3JpZ2luOiBTM0J1Y2tldE9yaWdpbi53aXRoT3JpZ2luQWNjZXNzQ29udHJvbCh0aGlzLnMzQnVja2V0KSxcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXSxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeTogcmVzcG9uc2VIZWFkZXJzUG9saWN5ID8/IHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSAhPT0gZmFsc2UgPyBSZXNwb25zZUhlYWRlcnNQb2xpY3kuU0VDVVJJVFlfSEVBREVSUyA6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICBsZXQgY2ZmbjogQ2xvdWRGcm9udEZ1bmN0aW9uO1xuICAgIGlmIChwcm9wcy5iYXNpY0F1dGgpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMuYmFzaWNBdXRoICE9ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICgocHJvcHMuYmFzaWNBdXRoIGFzIEJhc2ljQXV0aENyZWRlbnRpYWxzKS51c2VyICYmIChwcm9wcy5iYXNpY0F1dGggYXMgQmFzaWNBdXRoQ3JlZGVudGlhbHMpLnBhc3N3b3JkKSB7XG4gICAgICAgICAgcHJvcHMuYmFzaWNBdXRoID0gQnVmZmVyLmZyb20oYCR7KHByb3BzLmJhc2ljQXV0aCBhcyBCYXNpY0F1dGhDcmVkZW50aWFscykudXNlcn06JHsocHJvcHMuYmFzaWNBdXRoIGFzIEJhc2ljQXV0aENyZWRlbnRpYWxzKS5wYXNzd29yZH1gKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICAgIH0gZWxzZSBpZiAoKHByb3BzLmJhc2ljQXV0aCBhcyBTc21TdHJpbmdQYXJhbWV0ZXIpLnBhdGgpIHtcbiAgICAgICAgICBwcm9wcy5iYXNpY0F1dGggPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIodGhpcywgKHByb3BzLmJhc2ljQXV0aCBhcyBTc21TdHJpbmdQYXJhbWV0ZXIpLnBhdGgsIChwcm9wcy5iYXNpY0F1dGggYXMgU3NtU3RyaW5nUGFyYW1ldGVyKS52ZXJzaW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9wcy5iYXNpY0F1dGggPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLnZpZXdlclJlcXVlc3RSZXNwb25zZSkge1xuICAgICAgY2ZmbiA9IENsb3VkRnJvbnRGdW5jdGlvbi5jcmVhdGVWaWV3ZXJSZXF1ZXN0UmVzcG9uc2VGdW5jdGlvbih0aGlzLCBudWxsLCB7XG4gICAgICAgIGNyZWRlbnRpYWxzOiBwcm9wcy5iYXNpY0F1dGgsXG4gICAgICAgIHJlZGlyZWN0czogcHJvcHMucmVkaXJlY3RzLFxuICAgICAgICByZWRpcmVjdHNDc3ZQYXRoOiBwcm9wcy5yZWRpcmVjdHNDc3ZQYXRoLFxuICAgICAgICBjb2RlOiBwcm9wcy52aWV3ZXJSZXF1ZXN0UmVzcG9uc2UsXG4gICAgICAgIGRlc3Ryb3k6IHByb3BzLmRlc3Ryb3lcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYmFzaWNBdXRoKSB7XG4gICAgICBjZmZuID0gQ2xvdWRGcm9udEZ1bmN0aW9uLmNyZWF0ZUJhc2ljQXV0aERlZmF1bHREb2ModGhpcywge1xuICAgICAgICBjcmVkZW50aWFsczogcHJvcHMuYmFzaWNBdXRoLFxuICAgICAgICByZWRpcmVjdHM6IHByb3BzLnJlZGlyZWN0cyxcbiAgICAgICAgcmVkaXJlY3RzQ3N2UGF0aDogcHJvcHMucmVkaXJlY3RzQ3N2UGF0aCxcbiAgICAgICAgZGVzdHJveTogcHJvcHMuZGVzdHJveVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNmZm4gPSBDbG91ZEZyb250RnVuY3Rpb24uY3JlYXRlRGVmYXVsdERvYyh0aGlzLCB7XG4gICAgICAgIHJlZGlyZWN0czogcHJvcHMucmVkaXJlY3RzLFxuICAgICAgICByZWRpcmVjdHNDc3ZQYXRoOiBwcm9wcy5yZWRpcmVjdHNDc3ZQYXRoLFxuICAgICAgICBkZXN0cm95OiBwcm9wcy5kZXN0cm95XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jbG91ZEZyb250RnVuY3Rpb24gPSBjZmZuLmZuO1xuICAgIFxuICAgIGRlZmF1bHRCZWhhdmlvci5mdW5jdGlvbkFzc29jaWF0aW9ucyEucHVzaCh7XG4gICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgZnVuY3Rpb246IHRoaXMuY2xvdWRGcm9udEZ1bmN0aW9uXG4gICAgfSk7XG4gICAgZGVmYXVsdEJlaGF2aW9yLmZ1bmN0aW9uQXNzb2NpYXRpb25zIS5wdXNoKHtcbiAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFU1BPTlNFLFxuICAgICAgZnVuY3Rpb246IHRoaXMuY2xvdWRGcm9udEZ1bmN0aW9uXG4gICAgfSk7XG4gICAgXG4gICAgbGV0IHdlYkFjbElkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiBwcm9wcy53ZWJBY2wgPT0gJ3N0cmluZycgJiYgcHJvcHMud2ViQWNsLnN0YXJ0c1dpdGgoJ2Fybjphd3MnKSkge1xuICAgICAgd2ViQWNsSWQgPSBwcm9wcy53ZWJBY2w7XG4gICAgfSBlbHNlIGlmICgocHJvcHMud2ViQWNsIGFzIFNzbVN0cmluZ1BhcmFtZXRlcikucGF0aCkge1xuICAgICAgd2ViQWNsSWQgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIodGhpcywgKHByb3BzLndlYkFjbCBhcyBTc21TdHJpbmdQYXJhbWV0ZXIpLnBhdGgsIChwcm9wcy53ZWJBY2wgYXMgU3NtU3RyaW5nUGFyYW1ldGVyKS52ZXJzaW9uKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLndlYkFjbCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3Qgd2FmID0gbmV3IENsb3VkRnJvbnRXZWJBY2wodGhpcywgJ0Nsb3VkRnJvbnRXZWJBY2wnLCB7XG4gICAgICAgIG5hbWU6IGAke2RvbWFpbkFzSWQocHJvcHMuZG9tYWluTmFtZSl9YCxcbiAgICAgICAgZGVzdHJveTogcHJvcHMuZGVzdHJveVxuICAgICAgfSk7XG4gICAgICB0aGlzLndlYkFjbCA9IHdhZi5hY2w7XG4gICAgICB3ZWJBY2xJZCA9IHdhZi5hY2wuYXR0ckFybjtcbiAgICB9XG5cbiAgICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBDbG91ZEZyb250RGlzdHJpYnV0aW9uKHRoaXMsICdDbG91ZEZyb250RGlzdHJpYnV0aW9uJywge1xuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiA/PyBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgcHJpY2VDbGFzczogcHJvcHMuZW52VHlwZSxcbiAgICAgIGNlcnRpZmljYXRlOiB0aGlzLnNzbENlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yLFxuICAgICAgd2ViQWNsSWRcbiAgICB9KTtcbiAgICB0aGlzLmNsb3VkRnJvbnREaXN0cmlidXRpb24gPSBjZkRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb247XG5cbiAgICBjb25zdCBjZkFsaWFzID0gbmV3IENsb3VkRnJvbnRBbGlhcyh0aGlzLCAnQ2xvdWRGcm9udEFsaWFzJywge1xuICAgICAgZGlzdHJpYnV0aW9uOiBjZkRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb24sXG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgaG9zdGVkWm9uZTogaG9zdGVkWm9uZVxuICAgIH0pO1xuICAgIHRoaXMuYVJlY29yZCA9IGNmQWxpYXMuYVJlY29yZDtcbiAgICB0aGlzLmFhYWFSZWNvcmQgPSBjZkFsaWFzLmFhYWFSZWNvcmQ7XG4gIH1cbn0iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWdsb2JhbC1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGFja3Mvd2ViLXN0YXRpYy1zZXJ2ZXJsZXNzL3dlYi1nbG9iYWwtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBYyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUluRSxPQUFPLEVBQTBCLGlCQUFpQixFQUF1RSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR25MLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUErQixrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pILE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBbUNwRSxNQUFNLE9BQU8sY0FBZSxTQUFRLEtBQUs7SUFDdkIsY0FBYyxDQUFjO0lBQzVCLFFBQVEsQ0FBUztJQUNqQixrQkFBa0IsQ0FBVztJQUM3QixzQkFBc0IsQ0FBZTtJQUNyQyxNQUFNLENBQXdCO0lBQzlCLHFCQUFxQixDQUFxQztJQUMxRCxPQUFPLENBQVU7SUFDakIsVUFBVSxDQUFhO0lBRXZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUM7UUFDL0UsS0FBSyxD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QUcsQ0FBQyxPQUFPLENBQUM7UUFDN0IsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2hGLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsVUFBVTtZQUNsRCxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2hDLGVBQWU7WUFDZixRQUFRO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUM7UUFFMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzNELFlBQVksRUFBRSxjQUFjLENBQUMsWUFBWTtZQUN6QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsVUFBVSxFQUFFLFVBQVU7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgU3RhY2tQcm9wcywgUGh5c2ljYWxOYW1lIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuaW1wb3J0IHsgQ2VydGlmaWNhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgRGlzdHJpYnV0aW9uLCBGdW5jdGlvbiwgRnVuY3Rpb25FdmVudFR5cGUsIElSZXNwb25zZUhlYWRlcnNQb2xpY3ksIFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLCBCZWhhdmlvck9wdGlvbnMsIFJlc3BvbnNlSGVhZGVyc1BvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IEFSZWNvcmQsIEFhYWFSZWNvcmQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7IFN0cmluZ1BhcmFtZXRlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHsgQ2ZuV2ViQUNMIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXdhZnYyJztcblxuaW1wb3J0IHsgU1NMQ2VydGlmaWNhdGUgfSBmcm9tICcuLi8uLi9jb25zdHJ1Y3RzL2NlcnRpZmljYXRlbWFuYWdlci5qcyc7XG5pbXBvcnQgeyBDbG91ZEZyb250RnVuY3Rpb25SZWRpcmVjdHMsIENsb3VkRnJvbnRGdW5jdGlvbiwgQ2xvdWRGcm9udERpc3RyaWJ1dGlvbiB9IGZyb20gJy4uLy4uL2NvbnN0cnVjdHMvY2xvdWRmcm9udC5qcyc7XG5pbXBvcnQgeyBnZXRIb3N0ZWRab25lLCBDbG91ZEZyb250QWxpYXMgfSBmcm9tICcuLi8uLi9jb25zdHJ1Y3RzL3JvdXRlNTMuanMnO1xuaW1wb3J0IHsgUzNCdWNrZXQgfSBmcm9tICcuLi8uLi9jb25zdHJ1Y3RzL3MzLmpzJztcbmltcG9ydCB0eXBlIHsgU3NtU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vY29uc3RydWN0cy9zc20udHMnO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFdlYkFjbCB9IGZyb20gJy4uLy4uL2NvbnN0cnVjdHMvd2FmLmpzJztcbmltcG9ydCB7IGRvbWFpbkFzSWQgfSBmcm9tICcuLi8uLi9saWIvdXRpbHMuanMnO1xuaW1wb3J0IHsgYWRkRXZvU3RhY2tUYWdzIH0gZnJvbSAnLi4vLi4vbGliL3RhZ3MudHMnO1xuaW1wb3J0IHsgUzNCdWNrZXRPcmlnaW4gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCB0eXBlIHsgQmFzaWNBdXRoQ3JlZGVudGlhbHMgfSBmcm9tICcuLi8uLi90eXBlcy5kLnRzJztcblxuXG50eXBlIEFXU01hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3kgPSBcbiAgJ0NPUlNfQUxMT1dfQUxMX09SSUdJTlMnIHxcbiAgJ0NPUlNfQUxMT1dfQUxMX09SSUdJTlNfQU5EX1NFQ1VSSVRZX0hFQURFUlMnIHxcbiAgJ0NPUlNfQUxMT1dfQUxMX09SSUdJTlNfV0lUSF9QUkVGTElHSFQnIHxcbiAgJ0NPUlNfQUxMT1dfQUxMX09SSUdJTlNfV0lUSF9QUkVGTElHSFRfQU5EX1NFQ1VSSVRZX0hFQURFUlMnIHxcbiAgJ1NFQ1VSSVRZX0hFQURFUlMnO1xuXG50eXBlIFVVSUQgPSBgJHtzdHJpbmd9LSR7c3RyaW5nfS0ke3N0cmluZ30tJHtzdHJpbmd9LSR7c3RyaW5nfWA7XG50eXBlIENsb3VkRnJvbnRGdW5jdGlvbkV2ZW50VHlwZSA9IGtleW9mIHR5cGVvZiBGdW5jdGlvbkV2ZW50VHlwZTtcblxuZXhwb3J0IGludGVyZmFjZSBXZWJHbG9iYWxTdGFja1Byb3BzIHtcbiAgZW52VHlwZTogJ05PVF9QUk9EJyB8ICdQUk9EJztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGJ1Y2tldE5hbWU/OiBzdHJpbmc7XG4gIGhvc3RlZFpvbmU6IHN0cmluZztcbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuICBiYXNpY0F1dGg/OiBzdHJpbmcgfCBCYXNpY0F1dGhDcmVkZW50aWFscyB8IFNzbVN0cmluZ1BhcmFtZXRlcjtcbiAgY2xvdWRmcm9udEZ1bmN0aW9uPzoge1xuICAgIGV2ZW50VHlwZTogQ2xvdWRGcm9udEZ1bmN0aW9uRXZlbnRUeXBlW107XG4gICAgY29kZTogc3RyaW5nO1xuICB9XG4gIHJlZGlyZWN0cz86IENsb3VkRnJvbnRGdW5jdGlvblJlZGlyZWN0cztcbiAgcmVkaXJlY3RzQ3N2UGF0aD86IHN0cmluZztcbiAgLy8gYXR0YWNoV2ViQWNsPzogYm9vbGVhbiB8IHN0cmluZztcbiAgd2ViQWNsPzogYm9vbGVhbiB8IHN0cmluZyB8IFNzbVN0cmluZ1BhcmFtZXRlcjtcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5PzogZmFsc2UgfCBBV1NNYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5IHwgVVVJRCB8IFNzbVN0cmluZ1BhcmFtZXRlcjtcbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcztcbiAgZGVzdHJveT86IGJvb2xlYW47XG4gIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgV2ViR2xvYmFsU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIHB1YmxpYyByZWFkb25seSBzc2xDZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGU7XG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldDogQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udEZ1bmN0aW9uOiBGdW5jdGlvbjtcbiAgcHVibGljIHJlYWRvbmx5IGNsb3VkRnJvbnREaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgcHVibGljIHJlYWRvbmx5IHdlYkFjbDogQ2ZuV2ViQUNMIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5OiBJUmVzcG9uc2VIZWFkZXJzUG9saWN5IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgcmVhZG9ubHkgYVJlY29yZDogQVJlY29yZDtcbiAgcHVibGljIHJlYWRvbmx5IGFhYWFSZWNvcmQ6IEFhYWFSZWNvcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdlYkdsb2JhbFN0YWNrUHJvcHMgJiBTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgYWRkRXZvU3RhY2tUYWdzKHRoaXMsICdXZWJHbG9iYWxTdGFjaycpO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IGdldEhvc3RlZFpvbmUodGhpcywgJ2dldEhvc3RlZFpvbmUnLCBwcm9wcy5ob3N0ZWRab25lKTtcblxuICAgIGNvbnN0IF9zc2xDZXJ0ID0gbmV3IFNTTENlcnRpZmljYXRlKHRoaXMsICdTU0xDZXJ0aWZpY2F0ZScsIHtcbiAgICAgIGhvc3RlZFpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgZGVzdHJveTogcHJvcHMuZGVzdHJveVxuICAgIH0pO1xuICAgIHRoaXMuc3NsQ2VydGlmaWNhdGUgPSBfc3NsQ2VydC5jZXJ0aWZpY2F0ZTtcblxuICAgIGNvbnN0IF9zM0J1Y2tldCA9IG5ldyBTM0J1Y2tldCh0aGlzLCAnUzNCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXROYW1lID8/IFBoeXNpY2FsTmFtZS5HRU5FUkFURV9JRl9ORUVERUQsXG4gICAgICBkZXN0cm95OiBwcm9wcy5kZXN0cm95XG4gICAgfSk7XG4gICAgdGhpcy5zM0J1Y2tldCA9IF9zM0J1Y2tldC5idWNrZXQ7XG5cbiAgICBsZXQgcmVzcG9uc2VIZWFkZXJzUG9saWN5OiBJUmVzcG9uc2VIZWFkZXJzUG9saWN5IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3kpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMucmVzcG9uc2VIZWFkZXJzUG9saWN5ID09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICgvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQvaS50ZXN0KHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSkpIHtcbiAgICAgICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3kgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3kuZnJvbVJlc3BvbnNlSGVhZGVyc1BvbGljeUlkKHRoaXMsICdyZXNwb25zZS1oZWFkZXJzLXBvbGljeS1ieS1pZCcsIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gUmVzcG9uc2VIZWFkZXJzUG9saWN5W3Byb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSBhcyBrZXlvZiB0eXBlb2YgUmVzcG9uc2VIZWFkZXJzUG9saWN5XSBhcyBJUmVzcG9uc2VIZWFkZXJzUG9saWN5ID8/IFJlc3BvbnNlSGVhZGVyc1BvbGljeS5TRUNVUklUWV9IRUFERVJTO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeS5wYXRoKSB7XG4gICAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IFJlc3BvbnNlSGVhZGVyc1BvbGljeS5mcm9tUmVzcG9uc2VIZWFkZXJzUG9saWN5SWQodGhpcywgJ3Jlc3BvbnNlLWhlYWRlcnMtcG9saWN5LWJ5LWlkJywgU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKHRoaXMsIHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeS5wYXRoLCBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3kudmVyc2lvbikpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlc3BvbnNlSGVhZGVyc1BvbGljeSAmJiBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcykge1xuICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gbmV3IFJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCAncmVzcG9uc2UtaGVhZGVycy1wb2xpY3knLCB7XG4gICAgICAgIC4uLnByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzLFxuICAgICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3lOYW1lOiBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lOYW1lIHx8IGAke2RvbWFpbkFzSWQocHJvcHMuZG9tYWluTmFtZSl9LXJlc3BvbnNlLWhlYWRlcnMtcG9saWN5YFxuICAgICAgfSk7XG4gICAgICB0aGlzLnJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IHJlc3BvbnNlSGVhZGVyc1BvbGljeTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0QmVoYXZpb3I6IEJlaGF2aW9yT3B0aW9ucyA9IHtcbiAgICAgIG9yaWdpbjogUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2wodGhpcy5zM0J1Y2tldCksXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogW10sXG4gICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k6IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA/PyBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3kgIT09IGZhbHNlID8gUmVzcG9uc2VIZWFkZXJzUG9saWN5LlNFQ1VSSVRZX0hFQURFUlMgOiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgbGV0IGNmZm46IENsb3VkRnJvbnRGdW5jdGlvbjtcbiAgICBpZiAocHJvcHMuYmFzaWNBdXRoKSB7XG4gICAgICBpZiAodHlwZW9mIHByb3BzLmJhc2ljQXV0aCAhPSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoKHByb3BzLmJhc2ljQXV0aCBhcyBCYXNpY0F1dGhDcmVkZW50aWFscykudXNlciAmJiAocHJvcHMuYmFzaWNBdXRoIGFzIEJhc2ljQXV0aENyZWRlbnRpYWxzKS5wYXNzd29yZCkge1xuICAgICAgICAgIHByb3BzLmJhc2ljQXV0aCA9IEJ1ZmZlci5mcm9tKGAkeyhwcm9wcy5iYXNpY0F1dGggYXMgQmFzaWNBdXRoQ3JlZGVudGlhbHMpLnVzZXJ9OiR7KHByb3BzLmJhc2ljQXV0aCBhcyBCYXNpY0F1dGhDcmVkZW50aWFscykucGFzc3dvcmR9YCkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICB9IGVsc2UgaWYgKChwcm9wcy5iYXNpY0F1dGggYXMgU3NtU3RyaW5nUGFyYW1ldGVyKS5wYXRoKSB7XG4gICAgICAgICAgcHJvcHMuYmFzaWNBdXRoID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKHRoaXMsIChwcm9wcy5iYXNpY0F1dGggYXMgU3NtU3RyaW5nUGFyYW1ldGVyKS5wYXRoLCAocHJvcHMuYmFzaWNBdXRoIGFzIFNzbVN0cmluZ1BhcmFtZXRlcikudmVyc2lvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvcHMuYmFzaWNBdXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5jbG91ZGZyb250RnVuY3Rpb24pIHtcbiAgICAgIGNmZm4gPSBDbG91ZEZyb250RnVuY3Rpb24uY3JlYXRlRnVuY3Rpb24odGhpcywgbnVsbCwge1xuICAgICAgICBjcmVkZW50aWFsczogcHJvcHMuYmFzaWNBdXRoLFxuICAgICAgICByZWRpcmVjdHM6IHByb3BzLnJlZGlyZWN0cyxcbiAgICAgICAgcmVkaXJlY3RzQ3N2UGF0aDogcHJvcHMucmVkaXJlY3RzQ3N2UGF0aCxcbiAgICAgICAgY29kZTogcHJvcHMuY2xvdWRmcm9udEZ1bmN0aW9uLmNvZGUsXG4gICAgICAgIGRlc3Ryb3k6IHByb3BzLmRlc3Ryb3lcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYmFzaWNBdXRoKSB7XG4gICAgICBjZmZuID0gQ2xvdWRGcm9udEZ1bmN0aW9uLmNyZWF0ZUJhc2ljQXV0aERlZmF1bHREb2ModGhpcywge1xuICAgICAgICBjcmVkZW50aWFsczogcHJvcHMuYmFzaWNBdXRoLFxuICAgICAgICByZWRpcmVjdHM6IHByb3BzLnJlZGlyZWN0cyxcbiAgICAgICAgcmVkaXJlY3RzQ3N2UGF0aDogcHJvcHMucmVkaXJlY3RzQ3N2UGF0aCxcbiAgICAgICAgZGVzdHJveTogcHJvcHMuZGVzdHJveVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNmZm4gPSBDbG91ZEZyb250RnVuY3Rpb24uY3JlYXRlRGVmYXVsdERvYyh0aGlzLCB7XG4gICAgICAgIHJlZGlyZWN0czogcHJvcHMucmVkaXJlY3RzLFxuICAgICAgICByZWRpcmVjdHNDc3ZQYXRoOiBwcm9wcy5yZWRpcmVjdHNDc3ZQYXRoLFxuICAgICAgICBkZXN0cm95OiBwcm9wcy5kZXN0cm95XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jbG91ZEZyb250RnVuY3Rpb24gPSBjZmZuLmZuO1xuXG4gICAgLy8gY29uc3QgZXZlbnRUeXBlczogQ2xvdWRGcm9udEZ1bmN0aW9uRXZlbnRUeXBlW10gPSBwcm9wcy5jbG91ZGZyb250RnVuY3Rpb24/LmV2ZW50VHlwZSAmJiBwcm9wcy5jbG91ZGZyb250RnVuY3Rpb24uZXZlbnRUeXBlLmxlbmd0aCA+IDAgPyBwcm9wcy5jbG91ZGZyb250RnVuY3Rpb24uZXZlbnRUeXBlIDogWydWSUVXRVJfUkVRVUVTVCcsICdWSUVXRVJfUkVTUE9OU0UnXTtcblxuICAgIGxldCBldmVudFR5cGVzOiBDbG91ZEZyb250RnVuY3Rpb25FdmVudFR5cGVbXSA9IFsnVklFV0VSX1JFUVVFU1QnLCAnVklFV0VSX1JFU1BPTlNFJ107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuY2xvdWRmcm9udEZ1bmN0aW9uPy5ldmVudFR5cGUpICYmIHByb3BzLmNsb3VkZnJvbnRGdW5jdGlvbi5ldmVudFR5cGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXRzID0gcHJvcHMuY2xvdWRmcm9udEZ1bmN0aW9uLmV2ZW50VHlwZVxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHR5cGVvZiB2ID09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICAodiA9PT0gJ1ZJRVdFUl9SRVFVRVNUJyB8fCB2ID09PSAnVklFV0VSX1JFU1BPTlNFJykgJiZcbiAgICAgICAgICAgIGEuaW5kZXhPZih2KSA9PT0gaSAvLyBkZWR1cFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKGV0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGV2ZW50VHlwZXMgPSBldHM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBldmVudFR5cGUgb2YgZXZlbnRUeXBlcykge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yLmZ1bmN0aW9uQXNzb2NpYXRpb25zIS5wdXNoKHtcbiAgICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZVtldmVudFR5cGVdLFxuICAgICAgICBmdW5jdGlvbjogdGhpcy5jbG91ZEZyb250RnVuY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgICBsZXQgd2ViQWNsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIHByb3BzLndlYkFjbCA9PSAnc3RyaW5nJyAmJiBwcm9wcy53ZWJBY2wuc3RhcnRzV2l0aCgnYXJuOmF3cycpKSB7XG4gICAgICB3ZWJBY2xJZCA9IHByb3BzLndlYkFjbDtcbiAgICB9IGVsc2UgaWYgKChwcm9wcy53ZWJBY2wgYXMgU3NtU3RyaW5nUGFyYW1ldGVyKS5wYXRoKSB7XG4gICAgICB3ZWJBY2xJZCA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZvclN0cmluZ1BhcmFtZXRlcih0aGlzLCAocHJvcHMud2ViQWNsIGFzIFNzbVN0cmluZ1BhcmFtZXRlcikucGF0aCwgKHByb3BzLndlYkFjbCBhcyBTc21TdHJpbmdQYXJhbWV0ZXIpLnZlcnNpb24pO1xuICAgIH0gZWxzZSBpZiAocHJvcHMud2ViQWNsID09PSB0cnVlKSB7XG4gICAgICBjb25zdCB3YWYgPSBuZXcgQ2xvdWRGcm9udFdlYkFjbCh0aGlzLCAnQ2xvdWRGcm9udFdlYkFjbCcsIHtcbiAgICAgICAgbmFtZTogYCR7ZG9tYWluQXNJZChwcm9wcy5kb21haW5OYW1lKX1gLFxuICAgICAgICBkZXN0cm95OiBwcm9wcy5kZXN0cm95XG4gICAgICB9KTtcbiAgICAgIHRoaXMud2ViQWNsID0gd2FmLmFjbDtcbiAgICAgIHdlYkFjbElkID0gd2FmLmFjbC5hdHRyQXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IENsb3VkRnJvbnREaXN0cmlidXRpb24odGhpcywgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCB7XG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uID8/IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICBwcmljZUNsYXNzOiBwcm9wcy5lbnZUeXBlLFxuICAgICAgY2VydGlmaWNhdGU6IHRoaXMuc3NsQ2VydGlmaWNhdGUsXG4gICAgICBkZWZhdWx0QmVoYXZpb3IsXG4gICAgICB3ZWJBY2xJZFxuICAgIH0pO1xuICAgIHRoaXMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbiA9IGNmRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbjtcblxuICAgIGNvbnN0IGNmQWxpYXMgPSBuZXcgQ2xvdWRGcm9udEFsaWFzKHRoaXMsICdDbG91ZEZyb250QWxpYXMnLCB7XG4gICAgICBkaXN0cmlidXRpb246IGNmRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbixcbiAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICBob3N0ZWRab25lOiBob3N0ZWRab25lXG4gICAgfSk7XG4gICAgdGhpcy5hUmVjb3JkID0gY2ZBbGlhcy5hUmVjb3JkO1xuICAgIHRoaXMuYWFhYVJlY29yZCA9IGNmQWxpYXMuYWFhYVJlY29yZDtcbiAgfVxufSJdfQ==
@@ -11,7 +11,7 @@ export interface ResourceProps {
11
11
  tags?: Record<string, string>;
12
12
  }
13
13
 
14
- export interface SsmStringParameter {
15
- path: string;
16
- version?: number;
14
+ export interface BasicAuthCredentials {
15
+ user: string;
16
+ password: string;
17
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inizioevoke/evosynth",
3
- "version": "1.6.1",
3
+ "version": "1.7.1",
4
4
  "author": "",
5
5
  "license": "ISC",
6
6
  "description": "",
@@ -9,11 +9,12 @@
9
9
  ".": "./dist/index.js",
10
10
  "./constructs/*": "./dist/constructs/*.js",
11
11
  "./stacks/*": "./dist/stacks/*.js",
12
- "./stages/*": "./dist/stages/*.js"
12
+ "./stages/*": "./dist/stages/*.js",
13
+ "./types/*": "./dist/types.d.ts"
13
14
  },
14
15
  "scripts": {
15
16
  "prepublishOnly": "npm run build",
16
- "build": "node ./tasks/clean.js && npx tsc && node ./tasks/copy-templates.js"
17
+ "build": "node ./tasks/clean.js && npx tsc && node ./tasks/dist.js"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@types/node": "^25.3.0",
package/readme.md CHANGED
@@ -36,9 +36,9 @@ const tags: Record<string, string> = {
36
36
  };
37
37
 
38
38
  const repository: Omit<AddSourceStageParams, 'branch'> = {
39
- codestarConnection: 'ARN',
40
- // codestarConnection: { path: '/my/connection/arn' },
41
- repoOwner: 'evokegroup',
39
+ codestarConnection: { path: '/evosynth/provider/codeconnection' },
40
+ // codestarConnection: 'ARN',
41
+ repoOwner: 'orgname',
42
42
  repo: 'myproject-v1'
43
43
  };
44
44
 
@@ -57,20 +57,61 @@ new WebStaticServerlessStage(app, 'dev', {
57
57
  description: 'My Project DEV',
58
58
  hostedZone: 'evodev.net',
59
59
  domainName: 'myproject-v1.evodev.net',
60
- basicAuth: {
61
- user: 'user',
62
- password: 'password'
63
- },
60
+
61
+ basicAuth: { path: '/evosynth/web/security/basicauth' },
62
+ // basicAuth: {
63
+ // user: 'user',
64
+ // password: 'password'
65
+ // },
64
66
  // basicAuth: 'dXNlcjpwYXNzd29yZA==',
65
- // basicAuth: { path: '/my/basicAuth/credentials' }
66
- webAcl: 'ARN',
67
- // webAcl: { path: '/my/webacl/arn' },
68
- // webAcl: true, // create new, but you probably should reuse one
67
+
68
+ webAcl: { path: '/evosynth/web/security/webacl' },
69
+ // webAcl: 'ARN',
70
+ // webAcl: true, // create new, but you probably should reuse one,
71
+
72
+ // Use a custom CloudFront Viewer Request/Response function
73
+ // viewerRequestResponse: 'function handler(event) { /* do something */ }',
74
+
69
75
  redirects,
70
76
  pipeline: {
71
77
  sourceStage: {
72
78
  ...repository,
73
79
  branch: 'develop'
80
+ },
81
+ // Grant read access to Parameter Store parameters
82
+ // codeBuildProject: {
83
+ // ssmParameters: [{
84
+ // path: '/my/parameter',
85
+ // encrypted: true
86
+ // }, {
87
+ // path: '/my/other/parameter'
88
+ // }]
89
+ // }
90
+ }
91
+ });
92
+
93
+ new WebStaticServerlessStage(app, 'uat', {
94
+ env,
95
+ stageName: 'myproject-v1-uat',
96
+ tags,
97
+ envType: 'NOT_PROD',
98
+ description: 'My Project UAT',
99
+ hostedZone: 'evostg.net',
100
+ domainName: 'myproject-v1.evostg.net',
101
+ basicAuth: { path: '/evosynth/web/security/basicauth' },
102
+ // basicAuth: {
103
+ // user: 'user',
104
+ // password: 'password'
105
+ // },
106
+ // basicAuth: 'dXNlcjpwYXNzd29yZA==',
107
+ webAcl: { path: '/evosynth/web/security/webacl' },
108
+ // webAcl: 'ARN',
109
+ // webAcl: true, // create new, but you probably should reuse one,
110
+ redirects,
111
+ pipeline: {
112
+ sourceStage: {
113
+ ...repository,
114
+ branch: 'uat'
74
115
  }
75
116
  }
76
117
  });
@@ -83,8 +124,8 @@ new WebStaticServerlessStage(app, 'prd', {
83
124
  description: 'My Project PRD',
84
125
  hostedZone: 'myproject.com',
85
126
  domainName: 'www.myproject.com',
86
- webAcl: 'ARN',
87
- // webAcl: { path: '/my/webacl/arn' },
127
+ webAcl: { path: '/evosynth/web/security/webacl' },
128
+ // webAcl: 'ARN',
88
129
  // webAcl: true, // create new, but you probably should reuse one
89
130
  redirects,
90
131
  pipeline: {
@@ -102,6 +143,9 @@ Win
102
143
  cdk deploy dev/*
103
144
  ```
104
145
  ```
146
+ cdk deploy uat/*
147
+ ```
148
+ ```
105
149
  cdk deploy prd/*
106
150
  ```
107
151
 
@@ -110,5 +154,8 @@ MacOS
110
154
  cdk deploy "dev/*"
111
155
  ```
112
156
  ```
157
+ cdk deploy "uat/*"
158
+ ```
159
+ ```
113
160
  cdk deploy "prd/*"
114
161
  ```
package/samples/app.ts CHANGED
@@ -4,9 +4,14 @@ import { getEnv } from '@inizioevoke/evosynth';
4
4
  import { CloudFrontFunctionRedirects } from '@inizioevoke/evosynth/constructs/cloudfront';
5
5
  import { WebStaticServerlessStage } from '@inizioevoke/evosynth/stages/web-static-serverless-stage';
6
6
  import { AddSourceStageParams } from '@inizioevoke/evosynth/constructs/codepipeline';
7
+ import type { SsmStringParameter } from '@inizioevoke/evosynth/constructs/ssm';
8
+ // import { BasicAuthCredentials } from '@inizioevoke/evosynth/types';
7
9
 
8
10
  const app = new cdk.App();
9
11
 
12
+ const appName = 'myproject-v1';
13
+ const appDescription = 'My Project';
14
+
10
15
  const env = getEnv('us-east-1');
11
16
  // const env = getEnv('000000000000');
12
17
  // const env = getEnv({ account: '000000000000', region: 'us-east-1' });
@@ -18,7 +23,7 @@ const tags: Record<string, string> = {
18
23
 
19
24
  const repository: Omit<AddSourceStageParams, 'branch'> = {
20
25
  codestarConnection: { path: '/evosynth/provider/codeconnection' },
21
- // codestarConnection: 'ARN',
26
+ // codestarConnection: 'arn:aws:',
22
27
  repoOwner: 'orgname',
23
28
  repo: 'myproject-v1'
24
29
  };
@@ -30,49 +35,57 @@ const redirects: CloudFrontFunctionRedirects = {
30
35
  }
31
36
  };
32
37
 
38
+ const basicAuth: SsmStringParameter = { path: '/evosynth/web/security/basicauth' };
39
+ // const basicAuth: BasicAuthCredentials = {
40
+ // user: 'user',
41
+ // password: 'password'
42
+ // };
43
+ // const basicAuth: 'dXNlcjpwYXNzd29yZA=='; // base64 encoded credentials
44
+
45
+ const webAcl: SsmStringParameter = { path: '/evosynth/web/security/webacl' };
46
+ // const webAcl = 'arn:aws:';
47
+
33
48
  new WebStaticServerlessStage(app, 'dev', {
34
49
  env,
35
- stageName: 'myproject-v1-dev',
50
+ stageName: `${appName}-dev`,
36
51
  tags,
37
52
  envType: 'NOT_PROD',
38
- description: 'My Project DEV',
53
+ description: `${appDescription} DEV`,
39
54
  hostedZone: 'evodev.net',
40
- domainName: 'myproject-v1.evodev.net',
41
- basicAuth: { path: '/evosynth/web/security/basicauth' },
42
- // basicAuth: {
43
- // user: 'user',
44
- // password: 'password'
45
- // },
46
- // basicAuth: 'dXNlcjpwYXNzd29yZA==',
47
- webAcl: { path: '/evosynth/web/security/webacl' },
48
- // webAcl: 'ARN',
49
- // webAcl: true, // create new, but you probably should reuse one,
55
+ domainName: `${appName}.evodev.net`,
56
+ basicAuth,
57
+ webAcl,
58
+ // Use a custom CloudFront Viewer Request/Response function
59
+ // viewerRequestResponseFn: 'function handler(event) { /* do something */ }',
60
+
50
61
  redirects,
51
62
  pipeline: {
52
63
  sourceStage: {
53
64
  ...repository,
54
65
  branch: 'develop'
55
- }
66
+ },
67
+ // Grant read access to Parameter Store parameters
68
+ // codeBuildProject: {
69
+ // ssmParameters: [{
70
+ // path: '/my/parameter',
71
+ // encrypted: true
72
+ // }, {
73
+ // path: '/my/other/parameter'
74
+ // }]
75
+ // }
56
76
  }
57
77
  });
58
78
 
59
79
  new WebStaticServerlessStage(app, 'uat', {
60
80
  env,
61
- stageName: 'myproject-v1-uat',
81
+ stageName: `${appName}-uat`,
62
82
  tags,
63
83
  envType: 'NOT_PROD',
64
- description: 'My Project UAT',
84
+ description: `${appDescription} UAT`,
65
85
  hostedZone: 'evostg.net',
66
- domainName: 'myproject-v1.evostg.net',
67
- basicAuth: { path: '/evosynth/web/security/basicauth' },
68
- // basicAuth: {
69
- // user: 'user',
70
- // password: 'password'
71
- // },
72
- // basicAuth: 'dXNlcjpwYXNzd29yZA==',
73
- webAcl: { path: '/evosynth/web/security/webacl' },
74
- // webAcl: 'ARN',
75
- // webAcl: true, // create new, but you probably should reuse one,
86
+ domainName: `${appName}.evostg.net`,
87
+ basicAuth,
88
+ webAcl,
76
89
  redirects,
77
90
  pipeline: {
78
91
  sourceStage: {
@@ -84,15 +97,13 @@ new WebStaticServerlessStage(app, 'uat', {
84
97
 
85
98
  new WebStaticServerlessStage(app, 'prd', {
86
99
  env,
87
- stageName: 'myproject-v1-prd',
100
+ stageName: `${appName}-prd`,
88
101
  tags,
89
102
  envType: 'PROD',
90
- description: 'My Project PRD',
103
+ description: `${appDescription} PRD`,
91
104
  hostedZone: 'myproject.com',
92
105
  domainName: 'www.myproject.com',
93
- webAcl: { path: '/evosynth/web/security/webacl' },
94
- // webAcl: 'ARN',
95
- // webAcl: true, // create new, but you probably should reuse one
106
+ webAcl,
96
107
  redirects,
97
108
  pipeline: {
98
109
  sourceStage: {
@@ -1,8 +1,11 @@
1
1
  version: 0.2
2
-
2
+ # When using a Code Connection, git lfs is not supported. The solution is to create a read-only
3
+ # SSH key within the repository and use that to run `git lfs pull`
4
+ # Make sure CodePipeline is configured to perform a full clone
3
5
  env:
4
6
  parameter-store:
5
7
  # Get the SSH key stored as a SecureString in Systems Manager Parameter Store
8
+ # Make sure to give CodeBuild permission to read this parameter
6
9
  SSH_KEY: "/bitbucket/ssh/repository-name"
7
10
  variables:
8
11
  # NODE_ENV: production
@@ -3,7 +3,7 @@ import { Construct } from 'constructs';
3
3
  import { Certificate, CertificateValidation } from "aws-cdk-lib/aws-certificatemanager";
4
4
  import { IHostedZone } from "aws-cdk-lib/aws-route53";
5
5
  import { tagResource } from "../lib/tags.ts";
6
- import { ResourceProps } from "../lib/types.js";
6
+ import type { ResourceProps } from "../types.d.ts";
7
7
 
8
8
  export interface SSLCertificateProps extends ResourceProps {
9
9
  hostedZone: IHostedZone;
@@ -6,7 +6,7 @@ import { ICertificate } from 'aws-cdk-lib/aws-certificatemanager';
6
6
  import { BehaviorOptions, Distribution, Function, FunctionCode, FunctionRuntime, PriceClass } from 'aws-cdk-lib/aws-cloudfront';
7
7
  import { tagResource } from '../lib/tags.js';
8
8
  import { parseCsvRedirects } from '../lib/csv-redirects.js';
9
- import type { ResourceProps } from '../lib/types.js';
9
+ import type { ResourceProps } from '../types.d.ts';
10
10
 
11
11
  const __dirname = import.meta.dirname;
12
12
 
@@ -63,7 +63,7 @@ export interface CloudFrontFunctionRedirects {
63
63
  pathsCsvFile?: string;
64
64
  }
65
65
 
66
- export interface ViewerRequestResponseFunctionProps extends ResourceProps {
66
+ export interface ViewerEventFunctionProps extends ResourceProps {
67
67
  functionName?: string;
68
68
  defaultDocument?: string;
69
69
  redirects?: CloudFrontFunctionRedirects;
@@ -72,7 +72,7 @@ export interface ViewerRequestResponseFunctionProps extends ResourceProps {
72
72
  code: string;
73
73
  }
74
74
 
75
- export interface DefaultDocFunctionProps extends ResourceProps, Pick<ViewerRequestResponseFunctionProps, 'functionName' | 'defaultDocument' | 'redirects' | 'redirectsCsvPath'> {
75
+ export interface DefaultDocFunctionProps extends ResourceProps, Pick<ViewerEventFunctionProps, 'functionName' | 'defaultDocument' | 'redirects' | 'redirectsCsvPath'> {
76
76
  functionName?: string;
77
77
  defaultDocument?: string;
78
78
  redirects?: CloudFrontFunctionRedirects;
@@ -110,7 +110,7 @@ export class CloudFrontFunction extends Construct {
110
110
  static createDefaultDoc(scope: Construct, props: DefaultDocFunctionProps) {
111
111
  const code = readFileSync(resolve(__dirname, '../templates/cffn-default-doc.js'), 'utf8');
112
112
 
113
- return this.createViewerRequestResponseFunction(scope, 'DefaultDocFunction', {
113
+ return this.createFunction(scope, 'DefaultDocFunction', {
114
114
  ...props,
115
115
  credentials: '',
116
116
  code
@@ -120,14 +120,14 @@ export class CloudFrontFunction extends Construct {
120
120
  static createBasicAuthDefaultDoc(scope: Construct, props: BasicAuthDefaultDocFunctionProps) {
121
121
  const code = readFileSync(resolve(__dirname, '../templates/cffn-default-doc-basic-auth.js'), 'utf8');
122
122
 
123
- return this.createViewerRequestResponseFunction(scope, 'BasicAuthDefaultDocFunction', {
123
+ return this.createFunction(scope, 'BasicAuthDefaultDocFunction', {
124
124
  ...props,
125
125
  code
126
126
  });
127
127
 
128
128
  }
129
129
 
130
- static createViewerRequestResponseFunction(scope: Construct, id: string | null, props: ViewerRequestResponseFunctionProps) {
130
+ static createFunction(scope: Construct, id: string | null, props: ViewerEventFunctionProps) {
131
131
  const csvPath = props.redirects?.pathsCsvFile ?? props.redirectsCsvPath;
132
132
  const redirectPaths = csvPath ? parseCsvRedirects(csvPath) : (props.redirects?.paths ?? {});
133
133
  const hasRedirects = Object.keys(redirectPaths).length > 0;
@@ -5,13 +5,13 @@ import { Repository } from "aws-cdk-lib/aws-ecr";
5
5
  import { PolicyStatement } from 'aws-cdk-lib/aws-iam';
6
6
  import { Bucket } from 'aws-cdk-lib/aws-s3';
7
7
  import { IStringParameter, StringParameter } from 'aws-cdk-lib/aws-ssm';
8
+ import type { SsmStringParameter } from "./ssm.ts";
8
9
  import { tagResource } from "../lib/tags.js";
9
- import { ResourceProps } from "../lib/types.js";
10
- import { SsmStringParameter as _SsmStringParameter } from '../lib/types.ts';
10
+ import type { ResourceProps } from "../types.d.ts";
11
11
 
12
12
  export type EnvironmentVariables = Record<string, { value: any, type?: BuildEnvironmentVariableType }>;
13
13
 
14
- interface SsmStringParameter extends _SsmStringParameter {
14
+ interface SsmParameter extends SsmStringParameter {
15
15
  encrypted?: boolean;
16
16
  }
17
17
  export interface EcrBuildImage {
@@ -27,7 +27,7 @@ export interface CodeBuildPipelineProjectProps extends ResourceProps {
27
27
  environmentVariables?: EnvironmentVariables;
28
28
  cloudFrontDistributionArn?: string;
29
29
  s3BucketName?: string;
30
- ssmParameters?: SsmStringParameter[];
30
+ ssmParameters?: SsmParameter[];
31
31
  }
32
32
 
33
33
  export class CodeBuildPipelineProject extends Construct {
@@ -104,6 +104,10 @@ export class CodeBuildPipelineProject extends Construct {
104
104
  }
105
105
 
106
106
  if (props.ssmParameters) {
107
+ // dedup
108
+ props.ssmParameters = props.ssmParameters.filter((v, i, a) => {
109
+ return a.findIndex(p => p.path === v.path) === i;
110
+ });
107
111
  for (const param of props.ssmParameters) {
108
112
  let strParam: IStringParameter;
109
113
  if (param.encrypted) {
@@ -6,9 +6,10 @@ import { CodeBuildAction, CodeStarConnectionsSourceAction } from "aws-cdk-lib/aw
6
6
  import { Bucket } from 'aws-cdk-lib/aws-s3';
7
7
  import { StringParameter } from 'aws-cdk-lib/aws-ssm';
8
8
 
9
- import type { EnvironmentVariables } from './codebuild.js';
9
+ import type { EnvironmentVariables } from './codebuild.ts';
10
+ import type { SsmStringParameter } from './ssm.ts';
10
11
  import { tagResource } from "../lib/tags.js";
11
- import { ResourceProps, SsmStringParameter } from "../lib/types.js";
12
+ import type { ResourceProps } from '../types.d.ts';
12
13
 
13
14
  export interface AddSourceStageParams {
14
15
  stageName?: string;
@@ -2,7 +2,7 @@ import { RemovalPolicy } from "aws-cdk-lib";
2
2
  import { Construct } from 'constructs';
3
3
  import { Bucket } from 'aws-cdk-lib/aws-s3';
4
4
  import { tagResource } from '../lib/tags.js';
5
- import { ResourceProps } from "../lib/types.js";
5
+ import type { ResourceProps } from "../types.d.ts";
6
6
 
7
7
  export interface S3BucketProps extends ResourceProps {
8
8
  /** The name of the S3 bucket */
@@ -2,7 +2,12 @@
2
2
  import { Construct } from 'constructs';
3
3
  import { StringParameter } from 'aws-cdk-lib/aws-ssm';
4
4
 
5
- interface CreateStringParameterProps {
5
+ export interface SsmStringParameter {
6
+ path: string;
7
+ version?: number;
8
+ }
9
+
10
+ export interface CreateStringParameterProps {
6
11
  parameterName: string;
7
12
  stringValue: string;
8
13
  overwrite?: boolean;
@@ -3,7 +3,7 @@ import { Construct } from 'constructs';
3
3
  import { CfnWebACL } from 'aws-cdk-lib/aws-wafv2';
4
4
  import { tagResource } from '../lib/tags.js';
5
5
  import { cleanResourceName } from '../lib/utils.js';
6
- import type { ResourceProps } from '../lib/types.js';
6
+ import type { ResourceProps } from '../types.d.ts';
7
7
 
8
8
  export type WebAclManagedRule =
9
9
  'AWSManagedRulesAmazonIpReputationList' |
@@ -12,16 +12,13 @@ import { SSLCertificate } from '../../constructs/certificatemanager.js';
12
12
  import { CloudFrontFunctionRedirects, CloudFrontFunction, CloudFrontDistribution } from '../../constructs/cloudfront.js';
13
13
  import { getHostedZone, CloudFrontAlias } from '../../constructs/route53.js';
14
14
  import { S3Bucket } from '../../constructs/s3.js';
15
+ import type { SsmStringParameter } from '../../constructs/ssm.ts';
15
16
  import { CloudFrontWebAcl } from '../../constructs/waf.js';
16
17
  import { domainAsId } from '../../lib/utils.js';
17
18
  import { addEvoStackTags } from '../../lib/tags.ts';
18
- import { SsmStringParameter } from '../../lib/types.ts';
19
19
  import { S3BucketOrigin } from 'aws-cdk-lib/aws-cloudfront-origins';
20
+ import type { BasicAuthCredentials } from '../../types.d.ts';
20
21
 
21
- export interface BasicAuthCredentials {
22
- user: string;
23
- password: string;
24
- }
25
22
 
26
23
  type AWSManagedResponseHeadersPolicy =
27
24
  'CORS_ALLOW_ALL_ORIGINS' |
@@ -31,6 +28,8 @@ type AWSManagedResponseHeadersPolicy =
31
28
  'SECURITY_HEADERS';
32
29
 
33
30
  type UUID = `${string}-${string}-${string}-${string}-${string}`;
31
+ type CloudFrontFunctionEventType = keyof typeof FunctionEventType;
32
+
34
33
  export interface WebGlobalStackProps {
35
34
  envType: 'NOT_PROD' | 'PROD';
36
35
  description?: string;
@@ -38,7 +37,10 @@ export interface WebGlobalStackProps {
38
37
  hostedZone: string;
39
38
  domainName: string;
40
39
  basicAuth?: string | BasicAuthCredentials | SsmStringParameter;
41
- viewerRequestResponse?: string;
40
+ cloudfrontFunction?: {
41
+ eventType: CloudFrontFunctionEventType[];
42
+ code: string;
43
+ }
42
44
  redirects?: CloudFrontFunctionRedirects;
43
45
  redirectsCsvPath?: string;
44
46
  // attachWebAcl?: boolean | string;
@@ -116,12 +118,12 @@ export class WebGlobalStack extends Stack {
116
118
  }
117
119
  }
118
120
  }
119
- if (props.viewerRequestResponse) {
120
- cffn = CloudFrontFunction.createViewerRequestResponseFunction(this, null, {
121
+ if (props.cloudfrontFunction) {
122
+ cffn = CloudFrontFunction.createFunction(this, null, {
121
123
  credentials: props.basicAuth,
122
124
  redirects: props.redirects,
123
125
  redirectsCsvPath: props.redirectsCsvPath,
124
- code: props.viewerRequestResponse,
126
+ code: props.cloudfrontFunction.code,
125
127
  destroy: props.destroy
126
128
  });
127
129
  } else if (props.basicAuth) {
@@ -139,15 +141,30 @@ export class WebGlobalStack extends Stack {
139
141
  });
140
142
  }
141
143
  this.cloudFrontFunction = cffn.fn;
142
-
143
- defaultBehavior.functionAssociations!.push({
144
- eventType: FunctionEventType.VIEWER_REQUEST,
145
- function: this.cloudFrontFunction
146
- });
147
- defaultBehavior.functionAssociations!.push({
148
- eventType: FunctionEventType.VIEWER_RESPONSE,
149
- function: this.cloudFrontFunction
150
- });
144
+
145
+ // const eventTypes: CloudFrontFunctionEventType[] = props.cloudfrontFunction?.eventType && props.cloudfrontFunction.eventType.length > 0 ? props.cloudfrontFunction.eventType : ['VIEWER_REQUEST', 'VIEWER_RESPONSE'];
146
+
147
+ let eventTypes: CloudFrontFunctionEventType[] = ['VIEWER_REQUEST', 'VIEWER_RESPONSE'];
148
+ if (Array.isArray(props.cloudfrontFunction?.eventType) && props.cloudfrontFunction.eventType.length > 0) {
149
+ const ets = props.cloudfrontFunction.eventType
150
+ .filter((v, i, a) => {
151
+ return (
152
+ typeof v == 'string' &&
153
+ (v === 'VIEWER_REQUEST' || v === 'VIEWER_RESPONSE') &&
154
+ a.indexOf(v) === i // dedup
155
+ );
156
+ });
157
+ if (ets.length > 0) {
158
+ eventTypes = ets;
159
+ }
160
+ }
161
+
162
+ for (const eventType of eventTypes) {
163
+ defaultBehavior.functionAssociations!.push({
164
+ eventType: FunctionEventType[eventType],
165
+ function: this.cloudFrontFunction
166
+ });
167
+ }
151
168
 
152
169
  let webAclId: string | undefined = undefined;
153
170
  if (typeof props.webAcl == 'string' && props.webAcl.startsWith('arn:aws')) {
package/src/types.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ export type DeepPartial<T> = T extends object ? {
2
+ [P in keyof T]?: DeepPartial<T[P]>;
3
+ } : T;
4
+
5
+ export type WithRequiredProperty<Type, Key extends keyof Type> = Omit<Type, Key> & {
6
+ [Property in Key]-?: Type[Property];
7
+ };
8
+
9
+ export interface ResourceProps {
10
+ destroy?: boolean;
11
+ tags?: Record<string, string>;
12
+ }
13
+
14
+ export interface BasicAuthCredentials {
15
+ user: string;
16
+ password: string;
17
+ }
@@ -1,8 +1,12 @@
1
1
  import { readdirSync, copyFileSync, mkdirSync, existsSync } from 'node:fs';
2
2
  import { join, resolve } from 'node:path';
3
3
 
4
- const distDir = resolve(import.meta.dirname, '../dist/templates');
5
- const srcTemplates = resolve(import.meta.dirname, '../src/templates');
4
+ const root = resolve(import.meta.dirname, '../');
5
+
6
+ copyFileSync(join(root, 'src/types.d.ts'), join(root, 'dist/types.d.ts'));
7
+
8
+ const distDir = join(root, 'dist/templates');
9
+ const srcTemplates = join(root, 'src/templates');
6
10
 
7
11
  if (!existsSync(distDir)) {
8
12
  mkdirSync(distDir, { recursive: true });
@@ -1,14 +0,0 @@
1
- export type DeepPartial<T> = T extends object ? {
2
- [P in keyof T]?: DeepPartial<T[P]>;
3
- } : T;
4
- export type WithRequiredProperty<Type, Key extends keyof Type> = Omit<Type, Key> & {
5
- [Property in Key]-?: Type[Property];
6
- };
7
- export interface ResourceProps {
8
- destroy?: boolean;
9
- tags?: Record<string, string>;
10
- }
11
- export interface SsmStringParameter {
12
- path: string;
13
- version?: number;
14
- }
package/dist/lib/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IFQgZXh0ZW5kcyBvYmplY3QgPyB7XG4gIFtQIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtQXT47XG59IDogVDtcblxuZXhwb3J0IHR5cGUgV2l0aFJlcXVpcmVkUHJvcGVydHk8VHlwZSwgS2V5IGV4dGVuZHMga2V5b2YgVHlwZT4gPSBPbWl0PFR5cGUsIEtleT4gJiB7XG4gIFtQcm9wZXJ0eSBpbiBLZXldLT86IFR5cGVbUHJvcGVydHldO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVByb3BzIHtcbiAgZGVzdHJveT86IGJvb2xlYW47XG4gIHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNzbVN0cmluZ1BhcmFtZXRlciB7XG4gIHBhdGg6IHN0cmluZztcbiAgdmVyc2lvbj86IG51bWJlcjtcbn0iXX0=