truemark-cdk-lib 1.3.0 → 1.3.1-alpha.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,5 +1,5 @@
1
1
  import { Construct } from "constructs";
2
- import { StandardTagsProps } from "./standard-tags";
2
+ import { StandardTags, StandardTagsProps } from "./standard-tags";
3
3
  /**
4
4
  * Props for ExtendedConstruct.
5
5
  */
@@ -10,5 +10,6 @@ export interface ExtendedConstructProps {
10
10
  readonly standardTags?: StandardTagsProps;
11
11
  }
12
12
  export declare class ExtendedConstruct extends Construct {
13
+ readonly standardTags: StandardTags;
13
14
  constructor(scope: Construct, id: string, props?: ExtendedConstructProps);
14
15
  }
@@ -7,8 +7,8 @@ class ExtendedConstruct extends constructs_1.Construct {
7
7
  constructor(scope, id, props) {
8
8
  super(scope, id);
9
9
  // Setup standard tags
10
- new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
10
+ this.standardTags = new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
11
11
  }
12
12
  }
13
13
  exports.ExtendedConstruct = ExtendedConstruct;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXh0ZW5kZWQtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQyxtREFBZ0U7QUFZaEUsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUM5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsc0JBQXNCO1FBQ3RCLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQVBELDhDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0YW5kYXJkVGFncywgU3RhbmRhcmRUYWdzUHJvcHN9IGZyb20gXCIuL3N0YW5kYXJkLXRhZ3NcIjtcblxuLyoqXG4gKiBQcm9wcyBmb3IgRXh0ZW5kZWRDb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBTZXRzIHN0YW5kYXJkIHRhZ3MgZm9yIHRoaXMgQ29uc3RydWN0LiBWYWx1ZXMgc2V0IGhlcmUgd2lsbCBvdmVycmlkZSB0aG9zZSBzZXQgb24gdGhlIHBhcmVudCBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YW5kYXJkVGFncz86IFN0YW5kYXJkVGFnc1Byb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEV4dGVuZGVkQ29uc3RydWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gU2V0dXAgc3RhbmRhcmQgdGFnc1xuICAgIG5ldyBTdGFuZGFyZFRhZ3ModGhpcywgcHJvcHM/LnN0YW5kYXJkVGFncyk7XG4gIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXh0ZW5kZWQtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQyxtREFBZ0U7QUFZaEUsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUc5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBVEQsOENBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7U3RhbmRhcmRUYWdzLCBTdGFuZGFyZFRhZ3NQcm9wc30gZnJvbSBcIi4vc3RhbmRhcmQtdGFnc1wiO1xuXG4vKipcbiAqIFByb3BzIGZvciBFeHRlbmRlZENvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZENvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFNldHMgc3RhbmRhcmQgdGFncyBmb3IgdGhpcyBDb25zdHJ1Y3QuIFZhbHVlcyBzZXQgaGVyZSB3aWxsIG92ZXJyaWRlIHRob3NlIHNldCBvbiB0aGUgcGFyZW50IHNjb3BlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhbmRhcmRUYWdzPzogU3RhbmRhcmRUYWdzUHJvcHM7XG59XG5cbmV4cG9ydCBjbGFzcyBFeHRlbmRlZENvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcmVhZG9ubHkgc3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3M7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBTZXR1cCBzdGFuZGFyZCB0YWdzXG4gICAgdGhpcy5zdGFuZGFyZFRhZ3MgPSBuZXcgU3RhbmRhcmRUYWdzKHRoaXMsIHByb3BzPy5zdGFuZGFyZFRhZ3MpO1xuICB9XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { ParameterStore, ParameterStoreOptions } from "../../aws-ssm";
3
3
  import { Construct } from "constructs";
4
4
  import { StringParameter } from "aws-cdk-lib/aws-ssm";
5
5
  import { DashboardRenderingPreference, MonitoringFacade } from "cdk-monitoring-constructs";
6
- import { StandardTagsProps } from "./standard-tags";
6
+ import { StandardTags, StandardTagsProps } from "./standard-tags";
7
7
  /**
8
8
  * Options for ExtStack.
9
9
  */
@@ -89,6 +89,7 @@ export declare class ExtendedStack extends Stack {
89
89
  protected readonly parameterExports: ParameterStore;
90
90
  readonly parameterExportOptions: ParameterStoreOptions;
91
91
  readonly monitoringFacade?: MonitoringFacade;
92
+ readonly standardTags: StandardTags;
92
93
  constructor(scope: Construct, id: string, props?: ExtendedStackProps);
93
94
  /**
94
95
  * Helper method to exports a parameter as an SSM Parameter.
@@ -39,7 +39,7 @@ class ExtendedStack extends aws_cdk_lib_1.Stack {
39
39
  });
40
40
  }
41
41
  // Setup standard tags
42
- new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
42
+ this.standardTags = new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
43
43
  }
44
44
  /**
45
45
  * Helper method to exports a parameter as an SSM Parameter.
@@ -63,4 +63,4 @@ class ExtendedStack extends aws_cdk_lib_1.Stack {
63
63
  }
64
64
  }
65
65
  exports.ExtendedStack = ExtendedStack;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEU7QUFDMUUsMkNBQW9FO0FBR3BFLHlFQUltQztBQUNuQyxtREFHeUI7QUE2RnpCOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsbUJBQUs7SUFNdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxTQUFTLFNBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDBDQUFFLFNBQVMsQ0FBQztRQUU1QyxJQUFJLENBQUMsc0JBQXNCLEdBQUc7WUFDNUIsTUFBTSxRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxzQkFBc0IsbUNBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsV0FBVztZQUM3RyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxHLFVBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHNCQUFzQixtQ0FBSSxJQUFJLEVBQUU7WUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLG1EQUF1QixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtnQkFDN0UsbUJBQW1CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxJQUFJLENBQUMsU0FBUztnQkFDakUsb0JBQW9CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQixtQ0FBSSxLQUFLO2dCQUMxRCxlQUFlLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGVBQWUsbUNBQUksS0FBSztnQkFDaEQsc0JBQXNCLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHNCQUFzQixtQ0FBSSxLQUFLO2dCQUM5RCxtQkFBbUIsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsNEJBQTRCLG1DQUFJLHdEQUE0QixDQUFDLGdCQUFnQjthQUMxRyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSw0Q0FBZ0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUMvRCxxQkFBcUIsRUFBRTtvQkFDckIsU0FBUyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlO29CQUNqQyxNQUFNLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVk7aUJBQzVCO2dCQUNELG9CQUFvQixFQUFFO29CQUNwQixjQUFjLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxJQUFJO29CQUNsRCxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQ2hDO2dCQUNELGdCQUFnQixFQUFFLGdCQUFnQjthQUNuQyxDQUFDLENBQUM7U0FDSjtRQUVELHNCQUFzQjtRQUN0QixJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDekMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDekMsT0FBTyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUMvQixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBaEVELHNDQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2ZuT3V0cHV0LCBEdXJhdGlvbiwgU3RhY2ssIFN0YWNrUHJvcHMsIFN0YWdlfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7UGFyYW1ldGVyU3RvcmUsIFBhcmFtZXRlclN0b3JlT3B0aW9uc30gZnJvbSBcIi4uLy4uL2F3cy1zc21cIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtTdHJpbmdQYXJhbWV0ZXJ9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCI7XG5pbXBvcnQge1xuICBEYXNoYm9hcmRSZW5kZXJpbmdQcmVmZXJlbmNlLFxuICBEZWZhdWx0RGFzaGJvYXJkRmFjdG9yeSxcbiAgTW9uaXRvcmluZ0ZhY2FkZVxufSBmcm9tIFwiY2RrLW1vbml0b3JpbmctY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgU3RhbmRhcmRUYWdzLFxuICBTdGFuZGFyZFRhZ3NQcm9wc1xufSBmcm9tIFwiLi9zdGFuZGFyZC10YWdzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgRXh0U3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGFja09wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBQcmVmaXggdG8gYmUgdXNlZCBieSBwYXJhbWV0ZXIgZXhwb3J0cyB0byBiZSBzdG9yZWQgaW4gdGhlXG4gICAqIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICR7c3RhZ2VOYW1lfS8ke3N0YWNrSWR9L0V4cG9ydHMvXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJFeHBvcnRzUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGRldGVybWluZSBpZiBhIGRlZmF1bHQgTW9uaXRvcmluZ0ZhY2FkZSBhbmRcbiAgICogRGVmYXVsdERhc2hib2FyZEZhY3Rvcnkgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhpcyBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlTW9uaXRvcmluZ0ZhY2FkZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByZWZpeCBhZGRlZCB0byBlYWNoIGRhc2hib2FyZCBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBzdGFja05hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRhc2hib2FyZE5hbWVQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZGV0ZXJtaW5lIGlmIHRoZSBkZWZhdWx0IGRhc2hib2FyZCBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZURhc2hib2FyZD86IGJvb2xlYW5cblxuICAvKipcbiAgICogRmxhZyB0byBkZXRlcm1pbmUgaWYgdGhlIHN1bW1hcnkgZGFzaGJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU3VtbWFyeURhc2hib2FyZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZGV0ZXJtaW5lIGlmIHRoZSBhbGFybSBkYXNoYm9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBbGFybURhc2hib2FyZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJlbmRlcmluZyBwcmVmZXJlbmNlIHRvIGRhc2hib2FyZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UuSU5URVJBQ1RJVkVfT05MWVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkUmVuZGVyaW5nUHJlZmVyZW5jZT86IERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbmFtZXNwYWNlIGZvciBtZXRyaWNzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG1ldHJpYyBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY1BlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggZm9yIGdlbmVyYXRlZCBhbGFybXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHN0YWNrTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1OYW1lUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGFsYXJtIGFjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtQWN0aW9uc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXRzIHN0YW5kYXJkIHRhZ3MgZm9yIHRoaXMgU3RhY2suXG4gICAqL1xuICByZWFkb25seSBzdGFuZGFyZFRhZ3M/OiBTdGFuZGFyZFRhZ3NQcm9wcztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBFeHRTdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZFN0YWNrUHJvcHMgZXh0ZW5kcyBFeHRlbmRlZFN0YWNrT3B0aW9ucywgU3RhY2tQcm9wcyB7fVxuXG4vKipcbiAqIEV4dGVuZGVkIHZlcnNpb24gb2YgU3RhY2sgcHJvdmlkaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIHBhcmFtZXRlciBleHBvcnRzIGFuZCBtb25pdG9yaW5nLlxuICovXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRTdGFjayBleHRlbmRzIFN0YWNrIHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1ldGVyRXhwb3J0czogUGFyYW1ldGVyU3RvcmU7XG4gIHJlYWRvbmx5IHBhcmFtZXRlckV4cG9ydE9wdGlvbnM6IFBhcmFtZXRlclN0b3JlT3B0aW9ucztcbiAgcmVhZG9ubHkgbW9uaXRvcmluZ0ZhY2FkZT86IE1vbml0b3JpbmdGYWNhZGU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFeHRlbmRlZFN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IHN0YWdlTmFtZSA9IFN0YWdlLm9mKHRoaXMpPy5zdGFnZU5hbWU7XG5cbiAgICB0aGlzLnBhcmFtZXRlckV4cG9ydE9wdGlvbnMgPSB7XG4gICAgICBwcmVmaXg6IHByb3BzPy5wYXJhbWV0ZXJFeHBvcnRzUHJlZml4ID8/IChzdGFnZU5hbWUgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBgLyR7c3RhZ2VOYW1lfWApICsgYC8ke2lkfS9FeHBvcnRzL2AsXG4gICAgICByZWdpb246IHRoaXMucmVnaW9uXG4gICAgfTtcbiAgICB0aGlzLnBhcmFtZXRlckV4cG9ydHMgPSBuZXcgUGFyYW1ldGVyU3RvcmUodGhpcywgXCJQYXJhbWV0ZXJFeHBvcnRzXCIsIHRoaXMucGFyYW1ldGVyRXhwb3J0T3B0aW9ucyk7XG5cbiAgICBpZiAocHJvcHM/LmNyZWF0ZU1vbml0b3JpbmdGYWNhZGUgPz8gdHJ1ZSkge1xuICAgICAgY29uc3QgZGFzaGJvYXJkRmFjdG9yeSA9IG5ldyBEZWZhdWx0RGFzaGJvYXJkRmFjdG9yeSh0aGlzLCBcIkRhc2hib2FyZEZhY3RvcnlcIiwge1xuICAgICAgICBkYXNoYm9hcmROYW1lUHJlZml4OiBwcm9wcz8uZGFzaGJvYXJkTmFtZVByZWZpeCA/PyB0aGlzLnN0YWNrTmFtZSxcbiAgICAgICAgY3JlYXRlQWxhcm1EYXNoYm9hcmQ6IHByb3BzPy5jcmVhdGVBbGFybURhc2hib2FyZCA/PyBmYWxzZSxcbiAgICAgICAgY3JlYXRlRGFzaGJvYXJkOiBwcm9wcz8uY3JlYXRlRGFzaGJvYXJkID8/IGZhbHNlLFxuICAgICAgICBjcmVhdGVTdW1tYXJ5RGFzaGJvYXJkOiBwcm9wcz8uY3JlYXRlU3VtbWFyeURhc2hib2FyZCA/PyBmYWxzZSxcbiAgICAgICAgcmVuZGVyaW5nUHJlZmVyZW5jZTogcHJvcHM/LmRhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UgPz8gRGFzaGJvYXJkUmVuZGVyaW5nUHJlZmVyZW5jZS5JTlRFUkFDVElWRV9PTkxZXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlID0gbmV3IE1vbml0b3JpbmdGYWNhZGUodGhpcywgXCJNb25pdG9yaW5nXCIsIHtcbiAgICAgICAgbWV0cmljRmFjdG9yeURlZmF1bHRzOiB7XG4gICAgICAgICAgbmFtZXNwYWNlOiBwcm9wcz8ubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgIHBlcmlvZDogcHJvcHM/Lm1ldHJpY1BlcmlvZFxuICAgICAgICB9LFxuICAgICAgICBhbGFybUZhY3RvcnlEZWZhdWx0czoge1xuICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcz8uYWxhcm1BY3Rpb25zRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgIGFsYXJtTmFtZVByZWZpeDogdGhpcy5zdGFja05hbWVcbiAgICAgICAgfSxcbiAgICAgICAgZGFzaGJvYXJkRmFjdG9yeTogZGFzaGJvYXJkRmFjdG9yeVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gU2V0dXAgc3RhbmRhcmQgdGFnc1xuICAgIG5ldyBTdGFuZGFyZFRhZ3ModGhpcywgcHJvcHM/LnN0YW5kYXJkVGFncyk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBleHBvcnRzIGEgcGFyYW1ldGVyIGFzIGFuIFNTTSBQYXJhbWV0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBwYXJhbWV0ZXIgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIHBhcmFtZXRlciB2YWx1ZVxuICAgKi9cbiAgZXhwb3J0UGFyYW1ldGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFN0cmluZ1BhcmFtZXRlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRXhwb3J0cy53cml0ZShuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBvdXRwdXQgYSBwYXJhbWV0ZXIgYXMgYSBDZm5PdXRwdXQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBwYXJhbWV0ZXIgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIHBhcmFtZXRlciB2YWx1ZVxuICAgKi9cbiAgb3V0cHV0UGFyYW1ldGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IENmbk91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBDZm5PdXRwdXQodGhpcywgbmFtZSwge1xuICAgICAgdmFsdWVcbiAgICB9KTtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEU7QUFDMUUsMkNBQW9FO0FBR3BFLHlFQUltQztBQUNuQyxtREFHeUI7QUE2RnpCOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsbUJBQUs7SUFPdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxTQUFTLFNBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDBDQUFFLFNBQVMsQ0FBQztRQUU1QyxJQUFJLENBQUMsc0JBQXNCLEdBQUc7WUFDNUIsTUFBTSxRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxzQkFBc0IsbUNBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsV0FBVztZQUM3RyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxHLFVBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHNCQUFzQixtQ0FBSSxJQUFJLEVBQUU7WUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLG1EQUF1QixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtnQkFDN0UsbUJBQW1CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxJQUFJLENBQUMsU0FBUztnQkFDakUsb0JBQW9CLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQixtQ0FBSSxLQUFLO2dCQUMxRCxlQUFlLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGVBQWUsbUNBQUksS0FBSztnQkFDaEQsc0JBQXNCLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLHNCQUFzQixtQ0FBSSxLQUFLO2dCQUM5RCxtQkFBbUIsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsNEJBQTRCLG1DQUFJLHdEQUE0QixDQUFDLGdCQUFnQjthQUMxRyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSw0Q0FBZ0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUMvRCxxQkFBcUIsRUFBRTtvQkFDckIsU0FBUyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlO29CQUNqQyxNQUFNLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVk7aUJBQzVCO2dCQUNELG9CQUFvQixFQUFFO29CQUNwQixjQUFjLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG1CQUFtQixtQ0FBSSxJQUFJO29CQUNsRCxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQ2hDO2dCQUNELGdCQUFnQixFQUFFLGdCQUFnQjthQUNuQyxDQUFDLENBQUM7U0FDSjtRQUVELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6QyxPQUFPLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqRUQsc0NBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZm5PdXRwdXQsIER1cmF0aW9uLCBTdGFjaywgU3RhY2tQcm9wcywgU3RhZ2V9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtQYXJhbWV0ZXJTdG9yZSwgUGFyYW1ldGVyU3RvcmVPcHRpb25zfSBmcm9tIFwiLi4vLi4vYXdzLXNzbVwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0cmluZ1BhcmFtZXRlcn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7XG4gIERhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UsXG4gIERlZmF1bHREYXNoYm9hcmRGYWN0b3J5LFxuICBNb25pdG9yaW5nRmFjYWRlXG59IGZyb20gXCJjZGstbW9uaXRvcmluZy1jb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBTdGFuZGFyZFRhZ3MsXG4gIFN0YW5kYXJkVGFnc1Byb3BzXG59IGZyb20gXCIuL3N0YW5kYXJkLXRhZ3NcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBFeHRTdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZFN0YWNrT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFByZWZpeCB0byBiZSB1c2VkIGJ5IHBhcmFtZXRlciBleHBvcnRzIHRvIGJlIHN0b3JlZCBpbiB0aGVcbiAgICogU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJHtzdGFnZU5hbWV9LyR7c3RhY2tJZH0vRXhwb3J0cy9cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlckV4cG9ydHNQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZGV0ZXJtaW5lIGlmIGEgZGVmYXVsdCBNb25pdG9yaW5nRmFjYWRlIGFuZFxuICAgKiBEZWZhdWx0RGFzaGJvYXJkRmFjdG9yeSBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGlzIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVNb25pdG9yaW5nRmFjYWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJlZml4IGFkZGVkIHRvIGVhY2ggZGFzaGJvYXJkIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHN0YWNrTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkTmFtZVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyB0byBkZXRlcm1pbmUgaWYgdGhlIGRlZmF1bHQgZGFzaGJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRGFzaGJvYXJkPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGRldGVybWluZSBpZiB0aGUgc3VtbWFyeSBkYXNoYm9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTdW1tYXJ5RGFzaGJvYXJkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyB0byBkZXRlcm1pbmUgaWYgdGhlIGFsYXJtIGRhc2hib2FyZCBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUFsYXJtRGFzaGJvYXJkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVuZGVyaW5nIHByZWZlcmVuY2UgdG8gZGFzaGJvYXJkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRGFzaGJvYXJkUmVuZGVyaW5nUHJlZmVyZW5jZS5JTlRFUkFDVElWRV9PTkxZXG4gICAqL1xuICByZWFkb25seSBkYXNoYm9hcmRSZW5kZXJpbmdQcmVmZXJlbmNlPzogRGFzaGJvYXJkUmVuZGVyaW5nUHJlZmVyZW5jZTtcblxuICAvKipcbiAgICogRGVmYXVsdCBuYW1lc3BhY2UgZm9yIG1ldHJpY3MuXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNOYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbWV0cmljIHBlcmlvZFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFByZWZpeCBmb3IgZ2VuZXJhdGVkIGFsYXJtcy5cbiAgICpcbiAgICogQGRlZmF1bHQgc3RhY2tOYW1lXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWVQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYWxhcm0gYWN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1BY3Rpb25zRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHMgc3RhbmRhcmQgdGFncyBmb3IgdGhpcyBTdGFjay5cbiAgICovXG4gIHJlYWRvbmx5IHN0YW5kYXJkVGFncz86IFN0YW5kYXJkVGFnc1Byb3BzO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEV4dFN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkU3RhY2tQcm9wcyBleHRlbmRzIEV4dGVuZGVkU3RhY2tPcHRpb25zLCBTdGFja1Byb3BzIHt9XG5cbi8qKlxuICogRXh0ZW5kZWQgdmVyc2lvbiBvZiBTdGFjayBwcm92aWRpbmcgZnVuY3Rpb25hbGl0eSBmb3IgcGFyYW1ldGVyIGV4cG9ydHMgYW5kIG1vbml0b3JpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHRlbmRlZFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYXJhbWV0ZXJFeHBvcnRzOiBQYXJhbWV0ZXJTdG9yZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyRXhwb3J0T3B0aW9uczogUGFyYW1ldGVyU3RvcmVPcHRpb25zO1xuICByZWFkb25seSBtb25pdG9yaW5nRmFjYWRlPzogTW9uaXRvcmluZ0ZhY2FkZTtcbiAgcmVhZG9ubHkgc3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3M7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFeHRlbmRlZFN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IHN0YWdlTmFtZSA9IFN0YWdlLm9mKHRoaXMpPy5zdGFnZU5hbWU7XG5cbiAgICB0aGlzLnBhcmFtZXRlckV4cG9ydE9wdGlvbnMgPSB7XG4gICAgICBwcmVmaXg6IHByb3BzPy5wYXJhbWV0ZXJFeHBvcnRzUHJlZml4ID8/IChzdGFnZU5hbWUgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBgLyR7c3RhZ2VOYW1lfWApICsgYC8ke2lkfS9FeHBvcnRzL2AsXG4gICAgICByZWdpb246IHRoaXMucmVnaW9uXG4gICAgfTtcbiAgICB0aGlzLnBhcmFtZXRlckV4cG9ydHMgPSBuZXcgUGFyYW1ldGVyU3RvcmUodGhpcywgXCJQYXJhbWV0ZXJFeHBvcnRzXCIsIHRoaXMucGFyYW1ldGVyRXhwb3J0T3B0aW9ucyk7XG5cbiAgICBpZiAocHJvcHM/LmNyZWF0ZU1vbml0b3JpbmdGYWNhZGUgPz8gdHJ1ZSkge1xuICAgICAgY29uc3QgZGFzaGJvYXJkRmFjdG9yeSA9IG5ldyBEZWZhdWx0RGFzaGJvYXJkRmFjdG9yeSh0aGlzLCBcIkRhc2hib2FyZEZhY3RvcnlcIiwge1xuICAgICAgICBkYXNoYm9hcmROYW1lUHJlZml4OiBwcm9wcz8uZGFzaGJvYXJkTmFtZVByZWZpeCA/PyB0aGlzLnN0YWNrTmFtZSxcbiAgICAgICAgY3JlYXRlQWxhcm1EYXNoYm9hcmQ6IHByb3BzPy5jcmVhdGVBbGFybURhc2hib2FyZCA/PyBmYWxzZSxcbiAgICAgICAgY3JlYXRlRGFzaGJvYXJkOiBwcm9wcz8uY3JlYXRlRGFzaGJvYXJkID8/IGZhbHNlLFxuICAgICAgICBjcmVhdGVTdW1tYXJ5RGFzaGJvYXJkOiBwcm9wcz8uY3JlYXRlU3VtbWFyeURhc2hib2FyZCA/PyBmYWxzZSxcbiAgICAgICAgcmVuZGVyaW5nUHJlZmVyZW5jZTogcHJvcHM/LmRhc2hib2FyZFJlbmRlcmluZ1ByZWZlcmVuY2UgPz8gRGFzaGJvYXJkUmVuZGVyaW5nUHJlZmVyZW5jZS5JTlRFUkFDVElWRV9PTkxZXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlID0gbmV3IE1vbml0b3JpbmdGYWNhZGUodGhpcywgXCJNb25pdG9yaW5nXCIsIHtcbiAgICAgICAgbWV0cmljRmFjdG9yeURlZmF1bHRzOiB7XG4gICAgICAgICAgbmFtZXNwYWNlOiBwcm9wcz8ubWV0cmljTmFtZXNwYWNlLFxuICAgICAgICAgIHBlcmlvZDogcHJvcHM/Lm1ldHJpY1BlcmlvZFxuICAgICAgICB9LFxuICAgICAgICBhbGFybUZhY3RvcnlEZWZhdWx0czoge1xuICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcz8uYWxhcm1BY3Rpb25zRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgIGFsYXJtTmFtZVByZWZpeDogdGhpcy5zdGFja05hbWVcbiAgICAgICAgfSxcbiAgICAgICAgZGFzaGJvYXJkRmFjdG9yeTogZGFzaGJvYXJkRmFjdG9yeVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gU2V0dXAgc3RhbmRhcmQgdGFnc1xuICAgIHRoaXMuc3RhbmRhcmRUYWdzID0gbmV3IFN0YW5kYXJkVGFncyh0aGlzLCBwcm9wcz8uc3RhbmRhcmRUYWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGV4cG9ydHMgYSBwYXJhbWV0ZXIgYXMgYW4gU1NNIFBhcmFtZXRlci5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgdGhlIHBhcmFtZXRlciBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGFyYW1ldGVyIHZhbHVlXG4gICAqL1xuICBleHBvcnRQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogU3RyaW5nUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJFeHBvcnRzLndyaXRlKG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIG91dHB1dCBhIHBhcmFtZXRlciBhcyBhIENmbk91dHB1dC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgdGhlIHBhcmFtZXRlciBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGFyYW1ldGVyIHZhbHVlXG4gICAqL1xuICBvdXRwdXRQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogQ2ZuT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IENmbk91dHB1dCh0aGlzLCBuYW1lLCB7XG4gICAgICB2YWx1ZVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Stage, StageProps } from "aws-cdk-lib";
2
- import { StandardTagsProps } from "./standard-tags";
2
+ import { StandardTags, StandardTagsProps } from "./standard-tags";
3
3
  import { Construct } from "constructs";
4
4
  export interface ExtendedStageOptions {
5
5
  readonly standardTags?: StandardTagsProps;
@@ -7,5 +7,6 @@ export interface ExtendedStageOptions {
7
7
  export interface ExtendedStageProps extends StageProps, ExtendedStageOptions {
8
8
  }
9
9
  export declare class ExtendedStage extends Stage {
10
+ readonly standardTags: StandardTags;
10
11
  constructor(scope: Construct, id: string, props?: ExtendedStageProps);
11
12
  }
@@ -7,8 +7,8 @@ class ExtendedStage extends aws_cdk_lib_1.Stage {
7
7
  constructor(scope, id, props) {
8
8
  super(scope, id, props);
9
9
  // Setup standard tags
10
- new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
10
+ this.standardTags = new standard_tags_1.StandardTags(this, props === null || props === void 0 ? void 0 : props.standardTags);
11
11
  }
12
12
  }
13
13
  exports.ExtendedStage = ExtendedStage;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtc3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1zdGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBOEM7QUFDOUMsbURBQWdFO0FBU2hFLE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBRXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsc0JBQXNCO1FBQ3RCLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQVJELHNDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdGFnZSwgU3RhZ2VQcm9wc30gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1N0YW5kYXJkVGFncywgU3RhbmRhcmRUYWdzUHJvcHN9IGZyb20gXCIuL3N0YW5kYXJkLXRhZ3NcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkU3RhZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgc3RhbmRhcmRUYWdzPzogU3RhbmRhcmRUYWdzUHJvcHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGFnZVByb3BzIGV4dGVuZHMgU3RhZ2VQcm9wcywgRXh0ZW5kZWRTdGFnZU9wdGlvbnMge31cblxuZXhwb3J0IGNsYXNzIEV4dGVuZGVkU3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFeHRlbmRlZFN0YWdlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIFNldHVwIHN0YW5kYXJkIHRhZ3NcbiAgICBuZXcgU3RhbmRhcmRUYWdzKHRoaXMsIHByb3BzPy5zdGFuZGFyZFRhZ3MpO1xuICB9XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtc3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1zdGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBOEM7QUFDOUMsbURBQWdFO0FBU2hFLE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBR3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBVEQsc0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0YWdlLCBTdGFnZVByb3BzfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7U3RhbmRhcmRUYWdzLCBTdGFuZGFyZFRhZ3NQcm9wc30gZnJvbSBcIi4vc3RhbmRhcmQtdGFnc1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGFnZU9wdGlvbnMge1xuICByZWFkb25seSBzdGFuZGFyZFRhZ3M/OiBTdGFuZGFyZFRhZ3NQcm9wcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZFN0YWdlUHJvcHMgZXh0ZW5kcyBTdGFnZVByb3BzLCBFeHRlbmRlZFN0YWdlT3B0aW9ucyB7fVxuXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRTdGFnZSBleHRlbmRzIFN0YWdlIHtcblxuICByZWFkb25seSBzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFeHRlbmRlZFN0YWdlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIFNldHVwIHN0YW5kYXJkIHRhZ3NcbiAgICB0aGlzLnN0YW5kYXJkVGFncyA9IG5ldyBTdGFuZGFyZFRhZ3ModGhpcywgcHJvcHM/LnN0YW5kYXJkVGFncyk7XG4gIH1cbn1cbiJdfQ==
@@ -5,6 +5,7 @@ import { ARecord } from "aws-cdk-lib/aws-route53";
5
5
  import { BucketDeployment } from "aws-cdk-lib/aws-s3-deployment";
6
6
  import { BundlingOptions, Duration } from "aws-cdk-lib";
7
7
  import { DomainNameProps } from "../../aws-route53";
8
+ import { ExtendedConstruct, ExtendedConstructProps } from "../../aws-cdk";
8
9
  export declare enum SourceType {
9
10
  Custom = "Custom",
10
11
  Hugo = "Hugo",
@@ -15,9 +16,14 @@ export declare enum SourceType {
15
16
  * Properties for WebsiteDomainName.
16
17
  */
17
18
  export interface WebsiteDomainNameProps extends DomainNameProps {
19
+ /**
20
+ * Whether to create a Route53 record for this domain name. Default is true.
21
+ *
22
+ * @default - true
23
+ */
18
24
  readonly createRecord?: boolean;
19
25
  }
20
- export interface WebsiteProps {
26
+ export interface WebsiteProps extends ExtendedConstructProps {
21
27
  /**
22
28
  * Bucket to use to store website content. If one is not provided, one will be generated.
23
29
  */
@@ -36,15 +42,15 @@ export interface WebsiteProps {
36
42
  */
37
43
  readonly domainNames?: WebsiteDomainNameProps[];
38
44
  /**
39
- * Redirect traffic to the first domain in the list of domainNames.
45
+ * Redirect traffic to the first domain in the list of domainNames. Defaults to true.
40
46
  *
41
- * @default true
47
+ * @default - true
42
48
  */
43
49
  readonly redirectToApexDomain?: boolean;
44
50
  /**
45
51
  * Price class for the CloudFront distribution.
46
52
  *
47
- * @default PriceClass.PRICE_CLASS_100
53
+ * @default - PriceClass.PRICE_CLASS_100
48
54
  */
49
55
  readonly priceClass?: PriceClass;
50
56
  /**
@@ -81,7 +87,7 @@ export interface WebsiteProps {
81
87
  */
82
88
  readonly sourceBundlingOptions?: BundlingOptions;
83
89
  }
84
- export declare class Website extends Construct {
90
+ export declare class Website extends ExtendedConstruct {
85
91
  /**
86
92
  * The default bundling options for SourceType.Hugo.
87
93
  */
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Website = exports.SourceType = void 0;
4
+ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
5
+ const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
6
+ const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
7
+ const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
8
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
9
+ const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
10
+ const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
11
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
12
+ const aws_route53_2 = require("../../aws-route53");
13
+ const aws_cdk_1 = require("../../aws-cdk");
14
+ const truemark_1 = require("../../truemark");
15
+ var SourceType;
16
+ (function (SourceType) {
17
+ SourceType["Custom"] = "Custom";
18
+ SourceType["Hugo"] = "Hugo";
19
+ SourceType["NpmDist"] = "NpmDist";
20
+ SourceType["Static"] = "Static";
21
+ })(SourceType = exports.SourceType || (exports.SourceType = {}));
22
+ class Website extends aws_cdk_1.ExtendedConstruct {
23
+ constructor(scope, id, props) {
24
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
25
+ super(scope, id, { standardTags: aws_cdk_1.StandardTags.merge(props.standardTags, truemark_1.LibStandardTags) });
26
+ const domainNames = aws_route53_2.DomainName.fromProps(props.domainNames);
27
+ let certificate = undefined;
28
+ if (props.certificateArn !== undefined) {
29
+ certificate = aws_certificatemanager_1.Certificate.fromCertificateArn(this, "Certificate", props.certificateArn);
30
+ }
31
+ else if (domainNames.length > 0) {
32
+ certificate = new aws_certificatemanager_1.Certificate(this, "Certificate", {
33
+ domainName: domainNames[0].toString(),
34
+ subjectAlternativeNames: aws_route53_2.DomainName.toStrings(domainNames).slice(1),
35
+ validation: aws_certificatemanager_1.CertificateValidation.fromDnsMultiZone(aws_route53_2.DomainName.toZoneMap(this, domainNames))
36
+ });
37
+ }
38
+ this.bucket = (_a = props.bucket) !== null && _a !== void 0 ? _a : new aws_s3_1.Bucket(this, "Bucket", {
39
+ encryption: aws_s3_1.BucketEncryption.S3_MANAGED,
40
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
41
+ autoDeleteObjects: true
42
+ });
43
+ this.fallbackBucket = props.fallbackBucket;
44
+ this.originAccessIdentity = new aws_cloudfront_1.OriginAccessIdentity(this, "Access");
45
+ this.bucket.grantRead(this.originAccessIdentity);
46
+ if (this.fallbackBucket) {
47
+ this.fallbackBucket.grantRead(this.originAccessIdentity);
48
+ }
49
+ this.apexDomain = domainNames.length > 0 ? domainNames[0].toString() : "";
50
+ this.viewerRequestFunction = new aws_cloudfront_1.Function(this, "ViewerRequestFunction", {
51
+ code: aws_cloudfront_1.FunctionCode.fromInline(`
52
+ function handler(event) {
53
+ var host = event.request.headers.host.value;
54
+ var uri = event.request.uri;
55
+ var matchApex = MATCH_APEX;
56
+ if (matchApex && host !== "APEX_DOMAIN") {
57
+ return {
58
+ statusCode: 301,
59
+ statusDescription: "Permanently moved",
60
+ headers: {
61
+ "location": { "value": "https://APEX_DOMAIN" + uri }
62
+ }
63
+ }
64
+ }
65
+ if (uri.endsWith("/")) {
66
+ event.request.uri = uri + "index.html";
67
+ }
68
+ return event.request;
69
+ }`
70
+ .replace(/APEX_DOMAIN/g, this.apexDomain)
71
+ .replace(/MATCH_APEX/g, this.apexDomain !== "" && ((_b = props.redirectToApexDomain) !== null && _b !== void 0 ? _b : true) ? "true" : "false"))
72
+ });
73
+ const bucketOrigin = new aws_cloudfront_origins_1.S3Origin(this.bucket, {
74
+ originAccessIdentity: this.originAccessIdentity
75
+ });
76
+ const fallbackBucketOrigin = this.fallbackBucket === undefined ? undefined : new aws_cloudfront_origins_1.S3Origin(this.fallbackBucket, {
77
+ originAccessIdentity: this.originAccessIdentity
78
+ });
79
+ const defaultOrigin = fallbackBucketOrigin === undefined ? bucketOrigin : new aws_cloudfront_origins_1.OriginGroup({
80
+ primaryOrigin: bucketOrigin,
81
+ fallbackOrigin: fallbackBucketOrigin
82
+ });
83
+ this.distribution = new aws_cloudfront_1.Distribution(this, "Distribution", {
84
+ defaultBehavior: {
85
+ origin: defaultOrigin,
86
+ viewerProtocolPolicy: aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
87
+ functionAssociations: [
88
+ {
89
+ function: this.viewerRequestFunction,
90
+ eventType: aws_cloudfront_1.FunctionEventType.VIEWER_REQUEST
91
+ }
92
+ ]
93
+ },
94
+ errorResponses: [
95
+ {
96
+ httpStatus: 404,
97
+ responseHttpStatus: 404,
98
+ responsePagePath: "/404.html"
99
+ }
100
+ ],
101
+ httpVersion: (_c = props.httpVersion) !== null && _c !== void 0 ? _c : aws_cloudfront_1.HttpVersion.HTTP1_1,
102
+ minimumProtocolVersion: (_d = props.minimumProtocolVersion) !== null && _d !== void 0 ? _d : aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021,
103
+ defaultRootObject: "index.html",
104
+ certificate,
105
+ domainNames: aws_route53_2.DomainName.toStrings(domainNames),
106
+ enableIpv6: true,
107
+ priceClass: (_e = props.priceClass) !== null && _e !== void 0 ? _e : aws_cloudfront_1.PriceClass.PRICE_CLASS_100
108
+ });
109
+ this.distributionUrl = `https://${(this.apexDomain != "" ? this.apexDomain : this.distribution.distributionDomainName)}`;
110
+ this.aRecords = [];
111
+ for (let domainNameProps of (_f = props.domainNames) !== null && _f !== void 0 ? _f : []) {
112
+ if ((_g = domainNameProps.createRecord) !== null && _g !== void 0 ? _g : true) {
113
+ let domainName = aws_route53_2.DomainName.findDomainName(domainNameProps, domainNames);
114
+ if (domainName !== undefined) {
115
+ this.aRecords.push(domainName.createARecord(this, aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.CloudFrontTarget(this.distribution))));
116
+ }
117
+ }
118
+ }
119
+ let bundlingOptions = undefined;
120
+ if (props.sourceType === SourceType.Custom) {
121
+ if (!props.sourceBundlingOptions) {
122
+ throw new Error("sourceBundlingOptions is required if source type is Custom");
123
+ }
124
+ bundlingOptions = props.sourceBundlingOptions;
125
+ }
126
+ if (props.sourceType === SourceType.Static) {
127
+ if (props.sourceBundlingOptions) {
128
+ throw new Error("Cannot use sourceBundlingOptions with source type Static");
129
+ }
130
+ }
131
+ if (props.sourceType === SourceType.Hugo) {
132
+ bundlingOptions = Website.HUGO_BUNDLING_OPTIONS;
133
+ if (props.sourceBundlingOptions) {
134
+ throw new Error("Cannot use sourceBundlingOptions with source type Hugo");
135
+ }
136
+ }
137
+ else if (props.sourceType === SourceType.NpmDist) {
138
+ bundlingOptions = Website.NPM_DIST_BUNDLING_OPTIONS;
139
+ if (props.sourceBundlingOptions) {
140
+ throw new Error("Cannot use sourceBundlingOptions with source type NpmDist");
141
+ }
142
+ }
143
+ const source = aws_s3_deployment_1.Source.asset(props.sourceDirectory, {
144
+ bundling: bundlingOptions
145
+ });
146
+ this.deployment = new aws_s3_deployment_1.BucketDeployment(this, "Assets", {
147
+ sources: [source],
148
+ destinationBucket: this.bucket,
149
+ distribution: this.distribution,
150
+ cacheControl: [aws_s3_deployment_1.CacheControl.maxAge((_h = props.maxAge) !== null && _h !== void 0 ? _h : aws_cdk_lib_1.Duration.minutes(60))],
151
+ prune: false
152
+ });
153
+ if (this.fallbackBucket) {
154
+ this.fallbackDeployment = new aws_s3_deployment_1.BucketDeployment(this, "FallbackAssets", {
155
+ sources: [source],
156
+ destinationBucket: this.fallbackBucket,
157
+ cacheControl: [aws_s3_deployment_1.CacheControl.maxAge((_j = props.maxAge) !== null && _j !== void 0 ? _j : aws_cdk_lib_1.Duration.minutes(60))],
158
+ prune: false
159
+ });
160
+ }
161
+ }
162
+ }
163
+ exports.Website = Website;
164
+ /**
165
+ * The default bundling options for SourceType.Hugo.
166
+ */
167
+ Website.HUGO_BUNDLING_OPTIONS = {
168
+ image: aws_cdk_lib_1.DockerImage.fromRegistry("klakegg/hugo:latest-ext"),
169
+ command: [
170
+ "-d", "/asset-output"
171
+ ]
172
+ };
173
+ /**
174
+ * The default bundling options for SourceType.NpmDist. It"s expected that "npm run dist" command
175
+ * will place files in ${CDK_BUNDLING_OUTPUT_DIR}. Example: "ng build --output-path=/asset-output"
176
+ */
177
+ Website.NPM_DIST_BUNDLING_OPTIONS = {
178
+ image: aws_cdk_lib_1.DockerImage.fromRegistry("node:16-alpine"),
179
+ command: [
180
+ // TODO Figure out how to cache .npmcache
181
+ "sh", "-c", [
182
+ "mkdir -p .npmcache",
183
+ "npm ci --cache .npmcache --prefer-offline",
184
+ "npm run dist"
185
+ ].join(" && ")
186
+ ]
187
+ };
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0NBQXFFO0FBQ3JFLCtEQVVvQztBQUNwQywrRUFBeUU7QUFDekUsK0VBQW9HO0FBQ3BHLHlEQUE4RDtBQUM5RCx5RUFBaUU7QUFDakUscUVBQXFGO0FBQ3JGLDZDQUFrRjtBQUNsRixtREFBOEQ7QUFDOUQsMkNBQXNGO0FBQ3RGLDZDQUErQztBQUUvQyxJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUtyQjtBQTZGRCxNQUFhLE9BQVEsU0FBUSwyQkFBaUI7SUF1QzVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7O1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUMsWUFBWSxFQUFFLHNCQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMEJBQWUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUUxRixNQUFNLFdBQVcsR0FBRyx3QkFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUQsSUFBSSxXQUFXLEdBQTZCLFNBQVMsQ0FBQztRQUN0RCxJQUFJLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ3RDLFdBQVcsR0FBRyxvQ0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1NBQ3hGO2FBQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQyxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7Z0JBQ2pELFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNyQyx1QkFBdUIsRUFBRSx3QkFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUMsd0JBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQzVGLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLE1BQU0sU0FBRyxLQUFLLENBQUMsTUFBTSxtQ0FBSSxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3ZELFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO1lBQ3ZDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87WUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFFM0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUkscUNBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTFFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLHlCQUFRLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ3ZFLElBQUksRUFBRSw2QkFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0JsQztpQkFDTyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQ3hDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFLElBQUksT0FBQyxLQUFLLENBQUMsb0JBQW9CLG1DQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVHLENBQUMsQ0FBQztRQUVILE1BQU0sWUFBWSxHQUFHLElBQUksaUNBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzdDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0I7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLGlDQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM3RyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1NBQ2hELENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLG9CQUFvQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLG9DQUFXLENBQUM7WUFDeEYsYUFBYSxFQUFFLFlBQVk7WUFDM0IsY0FBYyxFQUFFLG9CQUFvQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksNkJBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3pELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsYUFBYTtnQkFDckIsb0JBQW9CLEVBQUUscUNBQW9CLENBQUMsaUJBQWlCO2dCQUM1RCxvQkFBb0IsRUFBRTtvQkFDcEI7d0JBQ0UsUUFBUSxFQUFFLElBQUksQ0FBQyxxQkFBcUI7d0JBQ3BDLFNBQVMsRUFBRSxrQ0FBaUIsQ0FBQyxjQUFjO3FCQUM1QztpQkFDRjthQUNGO1lBQ0QsY0FBYyxFQUFFO2dCQUNkO29CQUNFLFVBQVUsRUFBRSxHQUFHO29CQUNmLGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLGdCQUFnQixFQUFFLFdBQVc7aUJBQzlCO2FBQ0Y7WUFDRCxXQUFXLFFBQUUsS0FBSyxDQUFDLFdBQVcsbUNBQUUsNEJBQVcsQ0FBQyxPQUFPO1lBQ25ELHNCQUFzQixRQUFFLEtBQUssQ0FBQyxzQkFBc0IsbUNBQUUsdUNBQXNCLENBQUMsYUFBYTtZQUMxRixpQkFBaUIsRUFBRSxZQUFZO1lBQy9CLFdBQVc7WUFDWCxXQUFXLEVBQUUsd0JBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQzlDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsUUFBRSxLQUFLLENBQUMsVUFBVSxtQ0FBRSwyQkFBVSxDQUFDLGVBQWU7U0FDekQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFBO1FBRXhILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRW5CLEtBQUssSUFBSSxlQUFlLFVBQUksS0FBSyxDQUFDLFdBQVcsbUNBQUksRUFBRSxFQUFFO1lBQ25ELFVBQUksZUFBZSxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO2dCQUN4QyxJQUFJLFVBQVUsR0FBRyx3QkFBVSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3pFLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQzlDLDBCQUFZLENBQUMsU0FBUyxDQUFDLElBQUksc0NBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNyRTthQUNGO1NBQ0Y7UUFFRCxJQUFJLGVBQWUsR0FBZ0MsU0FBUyxDQUFBO1FBRTVELElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUU7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQzthQUMvRTtZQUNELGVBQWUsR0FBRyxLQUFLLENBQUMscUJBQXFCLENBQUE7U0FDOUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUMxQyxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsRUFBRTtnQkFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO2FBQzdFO1NBQ0Y7UUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLElBQUksRUFBRTtZQUN4QyxlQUFlLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFBO1lBQy9DLElBQUksS0FBSyxDQUFDLHFCQUFxQixFQUFFO2dCQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7YUFDM0U7U0FDRjthQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ2xELGVBQWUsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUE7WUFDbkQsSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUU7Z0JBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQzthQUM5RTtTQUNGO1FBRUQsTUFBTSxNQUFNLEdBQUcsMEJBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUNqRCxRQUFRLEVBQUUsZUFBZTtTQUMxQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0NBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNyRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDOUIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFlBQVksRUFBRSxDQUFDLGdDQUFZLENBQUMsTUFBTSxPQUFDLEtBQUssQ0FBQyxNQUFNLG1DQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkUsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksb0NBQWdCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNyRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUN0QyxZQUFZLEVBQUUsQ0FBQyxnQ0FBWSxDQUFDLE1BQU0sT0FBQyxLQUFLLENBQUMsTUFBTSxtQ0FBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxLQUFLLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQzs7QUFuTUgsMEJBb01DO0FBbE1DOztHQUVHO0FBQ2EsNkJBQXFCLEdBQW9CO0lBQ3ZELEtBQUssRUFBRSx5QkFBVyxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztJQUMxRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsZUFBZTtLQUN0QjtDQUNGLENBQUE7QUFFRDs7O0dBR0c7QUFDYSxpQ0FBeUIsR0FBb0I7SUFDM0QsS0FBSyxFQUFFLHlCQUFXLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELE9BQU8sRUFBRTtRQUNQLHlDQUF5QztRQUN6QyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ1Ysb0JBQW9CO1lBQ3BCLDJDQUEyQztZQUMzQyxjQUFjO1NBQ2YsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ2Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0J1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgSUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtcbiAgRGlzdHJpYnV0aW9uLFxuICBGdW5jdGlvbixcbiAgRnVuY3Rpb25Db2RlLFxuICBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgSHR0cFZlcnNpb24sXG4gIE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICBQcmljZUNsYXNzLFxuICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7T3JpZ2luR3JvdXAsIFMzT3JpZ2lufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZSwgQ2VydGlmaWNhdGVWYWxpZGF0aW9uLCBJQ2VydGlmaWNhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge0FSZWNvcmQsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgU291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7QnVuZGxpbmdPcHRpb25zLCBEb2NrZXJJbWFnZSwgRHVyYXRpb24sIFJlbW92YWxQb2xpY3l9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtEb21haW5OYW1lLCBEb21haW5OYW1lUHJvcHN9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdCwgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcywgU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vYXdzLWNka1wiO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi90cnVlbWFya1wiO1xuXG5leHBvcnQgZW51bSBTb3VyY2VUeXBlIHtcbiAgQ3VzdG9tID0gXCJDdXN0b21cIixcbiAgSHVnbyA9IFwiSHVnb1wiLFxuICBOcG1EaXN0ID0gXCJOcG1EaXN0XCIsXG4gIFN0YXRpYyA9IFwiU3RhdGljXCJcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBXZWJzaXRlRG9tYWluTmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlRG9tYWluTmFtZVByb3BzIGV4dGVuZHMgRG9tYWluTmFtZVByb3BzIHtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjcmVhdGUgYSBSb3V0ZTUzIHJlY29yZCBmb3IgdGhpcyBkb21haW4gbmFtZS4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVJlY29yZD86IGJvb2xlYW47XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlUHJvcHMgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdFByb3BzIHtcblxuICAvKipcbiAgICogQnVja2V0IHRvIHVzZSB0byBzdG9yZSB3ZWJzaXRlIGNvbnRlbnQuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIEJ1Y2tldCB0byB1c2UgaWYgdGhlIHByaW1hcnkgYnVja2V0IGZhaWxzLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkIGEgZmFsbGJhY2sgaXMgbm90IHNldHVwLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tCdWNrZXQ/OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIHRvIHRoZSBBQ00gQ2VydGlmaWNhdGUgdG8gdXNlIG9uIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi4gSWYgb25lIGlzIG5vdFxuICAgKiBwcm92aWRlZCBhbmQgZG9tYWluTmFtZXMgaXMgcG9wdWxhdGVkLCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lcyB0byBiZSBzZXJ2aWNlZC4gVGhlIGZpcnN0IGRvbWFpbiBuYW1lIGluIHRoZSBsaXN0IGlzIHRyZWF0ZWQgYXMgdGhlIGFwZXggZG9tYWluLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZXM/OiBXZWJzaXRlRG9tYWluTmFtZVByb3BzW11cblxuICAvKipcbiAgICogUmVkaXJlY3QgdHJhZmZpYyB0byB0aGUgZmlyc3QgZG9tYWluIGluIHRoZSBsaXN0IG9mIGRvbWFpbk5hbWVzLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlZGlyZWN0VG9BcGV4RG9tYWluPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpY2UgY2xhc3MgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBQcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IFByaWNlQ2xhc3NcblxuICAvKipcbiAgICogTWluaW11bSBwcm90b2NvbCB2ZXJzaW9uIHRvIGFsbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uPzogU2VjdXJpdHlQb2xpY3lQcm90b2NvbDtcblxuICAvKipcbiAgICogTWluaW11bSBIVFRQIHZlcnNpb24gdG8gYWxsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IEh0dHBWZXJzaW9uLkhUVFAxXzFcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBWZXJzaW9uPzogSHR0cFZlcnNpb247XG5cbiAgLyoqXG4gICAqIENhY2hlLWNvbnRyb2wgbWF4IGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg2MClcbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIHR5cGUgb2YgdGhlIHdlYnNpdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFNvdXJjZVR5cGUuU3RhdGljXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VUeXBlPzogU291cmNlVHlwZTtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgd2Vic2l0ZSBzb3VyY2VzIGFyZSBsb2NhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBidW5kbGluZyBvcHRpb25zIHRvIHVzZSB0byBidW5kbGUgd2Vic2l0ZSBzb3VyY2VzLiBUaGUgc291cmNlVHlwZVxuICAgKiBtdXN0IGJlIHNldCB0byBTb3VyY2VUeXBlLkN1c3RvbS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUJ1bmRsaW5nT3B0aW9ucz86IEJ1bmRsaW5nT3B0aW9uc1xufVxuXG5leHBvcnQgY2xhc3MgV2Vic2l0ZSBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYnVuZGxpbmcgb3B0aW9ucyBmb3IgU291cmNlVHlwZS5IdWdvLlxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IEhVR09fQlVORExJTkdfT1BUSU9OUzogQnVuZGxpbmdPcHRpb25zID0ge1xuICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJrbGFrZWdnL2h1Z286bGF0ZXN0LWV4dFwiKSxcbiAgICBjb21tYW5kOiBbXG4gICAgICBcIi1kXCIsIFwiL2Fzc2V0LW91dHB1dFwiXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGJ1bmRsaW5nIG9wdGlvbnMgZm9yIFNvdXJjZVR5cGUuTnBtRGlzdC4gSXRcInMgZXhwZWN0ZWQgdGhhdCBcIm5wbSBydW4gZGlzdFwiIGNvbW1hbmRcbiAgICogd2lsbCBwbGFjZSBmaWxlcyBpbiAke0NES19CVU5ETElOR19PVVRQVVRfRElSfS4gRXhhbXBsZTogXCJuZyBidWlsZCAtLW91dHB1dC1wYXRoPS9hc3NldC1vdXRwdXRcIlxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IE5QTV9ESVNUX0JVTkRMSU5HX09QVElPTlM6IEJ1bmRsaW5nT3B0aW9ucyA9IHtcbiAgICBpbWFnZTogRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KFwibm9kZToxNi1hbHBpbmVcIiksXG4gICAgY29tbWFuZDogW1xuICAgICAgLy8gVE9ETyBGaWd1cmUgb3V0IGhvdyB0byBjYWNoZSAubnBtY2FjaGVcbiAgICAgIFwic2hcIiwgXCItY1wiLCBbXG4gICAgICAgIFwibWtkaXIgLXAgLm5wbWNhY2hlXCIsXG4gICAgICAgIFwibnBtIGNpIC0tY2FjaGUgLm5wbWNhY2hlIC0tcHJlZmVyLW9mZmxpbmVcIixcbiAgICAgICAgXCJucG0gcnVuIGRpc3RcIlxuICAgICAgXS5qb2luKFwiICYmIFwiKVxuICAgIF1cbiAgfVxuXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgcmVhZG9ubHkgZmFsbGJhY2tCdWNrZXQ/OiBJQnVja2V0O1xuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eTogT3JpZ2luQWNjZXNzSWRlbnRpdHk7XG4gIHJlYWRvbmx5IGFwZXhEb21haW46IHN0cmluZztcbiAgcmVhZG9ubHkgdmlld2VyUmVxdWVzdEZ1bmN0aW9uOiBGdW5jdGlvbjtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uOiBEaXN0cmlidXRpb247XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvblVybDogc3RyaW5nO1xuICByZWFkb25seSBhUmVjb3JkczogQVJlY29yZFtdO1xuICByZWFkb25seSBkZXBsb3ltZW50OiBCdWNrZXREZXBsb3ltZW50O1xuICByZWFkb25seSBmYWxsYmFja0RlcGxveW1lbnQ/OiBCdWNrZXREZXBsb3ltZW50O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXZWJzaXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncy5tZXJnZShwcm9wcy5zdGFuZGFyZFRhZ3MsIExpYlN0YW5kYXJkVGFncyl9KTtcblxuICAgIGNvbnN0IGRvbWFpbk5hbWVzID0gRG9tYWluTmFtZS5mcm9tUHJvcHMocHJvcHMuZG9tYWluTmFtZXMpO1xuXG4gICAgbGV0IGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmNlcnRpZmljYXRlQXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNlcnRpZmljYXRlID0gQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwgcHJvcHMuY2VydGlmaWNhdGVBcm4pXG4gICAgfSBlbHNlIGlmIChkb21haW5OYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBjZXJ0aWZpY2F0ZSA9IG5ldyBDZXJ0aWZpY2F0ZSh0aGlzLCBcIkNlcnRpZmljYXRlXCIsIHtcbiAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZXNbMF0udG9TdHJpbmcoKSxcbiAgICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IERvbWFpbk5hbWUudG9TdHJpbmdzKGRvbWFpbk5hbWVzKS5zbGljZSgxKSxcbiAgICAgICAgdmFsaWRhdGlvbjogQ2VydGlmaWNhdGVWYWxpZGF0aW9uLmZyb21EbnNNdWx0aVpvbmUoRG9tYWluTmFtZS50b1pvbmVNYXAodGhpcywgZG9tYWluTmFtZXMpKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5idWNrZXQgPSBwcm9wcy5idWNrZXQgPz8gbmV3IEJ1Y2tldCh0aGlzLCBcIkJ1Y2tldFwiLCB7XG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZVxuICAgIH0pO1xuICAgIHRoaXMuZmFsbGJhY2tCdWNrZXQgPSBwcm9wcy5mYWxsYmFja0J1Y2tldDtcblxuICAgIHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkgPSBuZXcgT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgXCJBY2Nlc3NcIik7XG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkKHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkpO1xuICAgIGlmICh0aGlzLmZhbGxiYWNrQnVja2V0KSB7XG4gICAgICB0aGlzLmZhbGxiYWNrQnVja2V0LmdyYW50UmVhZCh0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcbiAgICB9XG5cbiAgICB0aGlzLmFwZXhEb21haW4gPSBkb21haW5OYW1lcy5sZW5ndGggPiAwID8gZG9tYWluTmFtZXNbMF0udG9TdHJpbmcoKSA6IFwiXCI7XG5cbiAgICB0aGlzLnZpZXdlclJlcXVlc3RGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbih0aGlzLCBcIlZpZXdlclJlcXVlc3RGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBGdW5jdGlvbkNvZGUuZnJvbUlubGluZShgXG5mdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gIHZhciBob3N0ID0gZXZlbnQucmVxdWVzdC5oZWFkZXJzLmhvc3QudmFsdWU7XG4gIHZhciB1cmkgPSBldmVudC5yZXF1ZXN0LnVyaTtcbiAgdmFyIG1hdGNoQXBleCA9IE1BVENIX0FQRVg7XG4gIGlmIChtYXRjaEFwZXggJiYgaG9zdCAhPT0gXCJBUEVYX0RPTUFJTlwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IDMwMSxcbiAgICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIlBlcm1hbmVudGx5IG1vdmVkXCIsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwibG9jYXRpb25cIjogeyBcInZhbHVlXCI6IFwiaHR0cHM6Ly9BUEVYX0RPTUFJTlwiICsgdXJpIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKHVyaS5lbmRzV2l0aChcIi9cIikpIHtcbiAgICBldmVudC5yZXF1ZXN0LnVyaSA9IHVyaSArIFwiaW5kZXguaHRtbFwiO1xuICB9XG4gIHJldHVybiBldmVudC5yZXF1ZXN0O1xufWBcbiAgICAgICAgLnJlcGxhY2UoL0FQRVhfRE9NQUlOL2csIHRoaXMuYXBleERvbWFpbilcbiAgICAgICAgLnJlcGxhY2UoL01BVENIX0FQRVgvZywgdGhpcy5hcGV4RG9tYWluICE9PSBcIlwiICYmIChwcm9wcy5yZWRpcmVjdFRvQXBleERvbWFpbj8/dHJ1ZSkgPyBcInRydWVcIiA6IFwiZmFsc2VcIikpXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWNrZXRPcmlnaW4gPSBuZXcgUzNPcmlnaW4odGhpcy5idWNrZXQsIHtcbiAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gICAgfSk7XG5cbiAgICBjb25zdCBmYWxsYmFja0J1Y2tldE9yaWdpbiA9IHRoaXMuZmFsbGJhY2tCdWNrZXQgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IG5ldyBTM09yaWdpbih0aGlzLmZhbGxiYWNrQnVja2V0LCB7XG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eVxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdE9yaWdpbiA9IGZhbGxiYWNrQnVja2V0T3JpZ2luID09PSB1bmRlZmluZWQgPyBidWNrZXRPcmlnaW4gOiBuZXcgT3JpZ2luR3JvdXAoe1xuICAgICAgcHJpbWFyeU9yaWdpbjogYnVja2V0T3JpZ2luLFxuICAgICAgZmFsbGJhY2tPcmlnaW46IGZhbGxiYWNrQnVja2V0T3JpZ2luXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgXCJEaXN0cmlidXRpb25cIiwge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogZGVmYXVsdE9yaWdpbixcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uOiB0aGlzLnZpZXdlclJlcXVlc3RGdW5jdGlvbixcbiAgICAgICAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFUVVFU1RcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBlcnJvclJlc3BvbnNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgaHR0cFN0YXR1czogNDA0LFxuICAgICAgICAgIHJlc3BvbnNlSHR0cFN0YXR1czogNDA0LFxuICAgICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6IFwiLzQwNC5odG1sXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGh0dHBWZXJzaW9uOiBwcm9wcy5odHRwVmVyc2lvbj8/SHR0cFZlcnNpb24uSFRUUDFfMSxcbiAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IHByb3BzLm1pbmltdW1Qcm90b2NvbFZlcnNpb24/P1NlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMSxcbiAgICAgIGRlZmF1bHRSb290T2JqZWN0OiBcImluZGV4Lmh0bWxcIixcbiAgICAgIGNlcnRpZmljYXRlLFxuICAgICAgZG9tYWluTmFtZXM6IERvbWFpbk5hbWUudG9TdHJpbmdzKGRvbWFpbk5hbWVzKSxcbiAgICAgIGVuYWJsZUlwdjY6IHRydWUsXG4gICAgICBwcmljZUNsYXNzOiBwcm9wcy5wcmljZUNsYXNzPz9QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb25VcmwgPSBgaHR0cHM6Ly8keyh0aGlzLmFwZXhEb21haW4gIT0gXCJcIiA/IHRoaXMuYXBleERvbWFpbiA6IHRoaXMuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWUpfWBcblxuICAgIHRoaXMuYVJlY29yZHMgPSBbXTtcblxuICAgIGZvciAobGV0IGRvbWFpbk5hbWVQcm9wcyBvZiBwcm9wcy5kb21haW5OYW1lcyA/PyBbXSkge1xuICAgICAgaWYgKGRvbWFpbk5hbWVQcm9wcy5jcmVhdGVSZWNvcmQgPz8gdHJ1ZSkge1xuICAgICAgICBsZXQgZG9tYWluTmFtZSA9IERvbWFpbk5hbWUuZmluZERvbWFpbk5hbWUoZG9tYWluTmFtZVByb3BzLCBkb21haW5OYW1lcyk7XG4gICAgICAgIGlmIChkb21haW5OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmFSZWNvcmRzLnB1c2goZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKHRoaXMsXG4gICAgICAgICAgICBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBidW5kbGluZ09wdGlvbnM6IEJ1bmRsaW5nT3B0aW9ucyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuXG4gICAgaWYgKHByb3BzLnNvdXJjZVR5cGUgPT09IFNvdXJjZVR5cGUuQ3VzdG9tKSB7XG4gICAgICBpZiAoIXByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzb3VyY2VCdW5kbGluZ09wdGlvbnMgaXMgcmVxdWlyZWQgaWYgc291cmNlIHR5cGUgaXMgQ3VzdG9tXCIpO1xuICAgICAgfVxuICAgICAgYnVuZGxpbmdPcHRpb25zID0gcHJvcHMuc291cmNlQnVuZGxpbmdPcHRpb25zXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNvdXJjZVR5cGUgPT09IFNvdXJjZVR5cGUuU3RhdGljKSB7XG4gICAgICBpZiAocHJvcHMuc291cmNlQnVuZGxpbmdPcHRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCB1c2Ugc291cmNlQnVuZGxpbmdPcHRpb25zIHdpdGggc291cmNlIHR5cGUgU3RhdGljXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLkh1Z28pIHtcbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IFdlYnNpdGUuSFVHT19CVU5ETElOR19PUFRJT05TXG4gICAgICBpZiAocHJvcHMuc291cmNlQnVuZGxpbmdPcHRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCB1c2Ugc291cmNlQnVuZGxpbmdPcHRpb25zIHdpdGggc291cmNlIHR5cGUgSHVnb1wiKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLnNvdXJjZVR5cGUgPT09IFNvdXJjZVR5cGUuTnBtRGlzdCkge1xuICAgICAgYnVuZGxpbmdPcHRpb25zID0gV2Vic2l0ZS5OUE1fRElTVF9CVU5ETElOR19PUFRJT05TXG4gICAgICBpZiAocHJvcHMuc291cmNlQnVuZGxpbmdPcHRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCB1c2Ugc291cmNlQnVuZGxpbmdPcHRpb25zIHdpdGggc291cmNlIHR5cGUgTnBtRGlzdFwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2UgPSBTb3VyY2UuYXNzZXQocHJvcHMuc291cmNlRGlyZWN0b3J5LCB7XG4gICAgICBidW5kbGluZzogYnVuZGxpbmdPcHRpb25zXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcGxveW1lbnQgPSBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBcIkFzc2V0c1wiLCB7XG4gICAgICBzb3VyY2VzOiBbc291cmNlXSxcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIGRpc3RyaWJ1dGlvbjogdGhpcy5kaXN0cmlidXRpb24sXG4gICAgICBjYWNoZUNvbnRyb2w6IFtDYWNoZUNvbnRyb2wubWF4QWdlKHByb3BzLm1heEFnZT8/RHVyYXRpb24ubWludXRlcyg2MCkpXSxcbiAgICAgIHBydW5lOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZmFsbGJhY2tCdWNrZXQpIHtcbiAgICAgIHRoaXMuZmFsbGJhY2tEZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJGYWxsYmFja0Fzc2V0c1wiLCB7XG4gICAgICAgIHNvdXJjZXM6IFtzb3VyY2VdLFxuICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5mYWxsYmFja0J1Y2tldCxcbiAgICAgICAgY2FjaGVDb250cm9sOiBbQ2FjaGVDb250cm9sLm1heEFnZShwcm9wcy5tYXhBZ2U/P0R1cmF0aW9uLm1pbnV0ZXMoNjApKV0sXG4gICAgICAgIHBydW5lOiBmYWxzZVxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assertions_1 = require("aws-cdk-lib/assertions");
4
+ const test_helper_1 = require("../../test-helper");
5
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
6
+ const website_1 = require("./website");
7
+ test("Hugo Website Test", () => {
8
+ const stack = test_helper_1.TestHelper.stack();
9
+ new website_1.Website(stack, 'TestWebsite', {
10
+ sourceType: website_1.SourceType.Hugo,
11
+ sourceDirectory: test_helper_1.TestHelper.resolveTestFiles("hugo-website")
12
+ });
13
+ const template = assertions_1.Template.fromStack(stack);
14
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {});
15
+ });
16
+ test("ARecord Created for Website", () => {
17
+ const stack = test_helper_1.TestHelper.stack();
18
+ new website_1.Website(stack, 'TestWebsite', {
19
+ sourceType: website_1.SourceType.Hugo,
20
+ sourceDirectory: test_helper_1.TestHelper.resolveTestFiles("hugo-website"),
21
+ certificateArn: "arn:aws:acm:us-east-1:123456789012:certificate/XXXX",
22
+ domainNames: [
23
+ {
24
+ prefix: "www",
25
+ // TODO In the fugure need to figure out how to mock lookups
26
+ zone: new aws_route53_1.HostedZone(stack, "example-com", { zoneName: "example.com" })
27
+ }
28
+ ]
29
+ });
30
+ const template = assertions_1.Template.fromStack(stack);
31
+ // console.log(template.toJSON());
32
+ // TestHelper.logResources(template, "AWS::Route53::RecordSet");
33
+ template.hasResourceProperties("AWS::Route53::RecordSet", {});
34
+ });
35
+ // TODO We need to speed this up
36
+ // test("Npm Dist Website Test", () => {
37
+ // const stack = TestHelper.stack();
38
+ // new Website(stack, "TestWebsite", {
39
+ // sourceType: SourceType.NpmDist,
40
+ // sourceDirectory: TestHelper.resolveTestFiles("angular-website")
41
+ // });
42
+ // const template = Template.fromStack(stack);
43
+ // template.hasResourceProperties("AWS::CloudFront::Distribution", {});
44
+ // });
45
+ // TODO Need to fix
46
+ // test("Website Certificate Test", () => {
47
+ // const stack = TestHelper.stack();
48
+ // new Website(stack, "TestWebsite", {
49
+ // sourceType: SourceType.Hugo,
50
+ // sourceDirectory: TestHelper.resolveTestFiles("hugo-website"),
51
+ // domainNames: [
52
+ // new DomainName("test", "example.com"),
53
+ // new DomainName("test2", "example.com")
54
+ // ]
55
+ // });
56
+ // const template = Template.fromStack(stack);
57
+ // console.log(template.toJSON());
58
+ // // TestHelper.logResources()
59
+ // });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2Vic2l0ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQWdEO0FBQ2hELG1EQUE2QztBQUM3Qyx5REFBbUQ7QUFDbkQsdUNBQThDO0FBRTlDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDN0IsTUFBTSxLQUFLLEdBQUcsd0JBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxJQUFJLGlCQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtRQUNoQyxVQUFVLEVBQUUsb0JBQVUsQ0FBQyxJQUFJO1FBQzNCLGVBQWUsRUFBRSx3QkFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztLQUM3RCxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQ3ZDLE1BQU0sS0FBSyxHQUFHLHdCQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsSUFBSSxpQkFBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7UUFDaEMsVUFBVSxFQUFFLG9CQUFVLENBQUMsSUFBSTtRQUMzQixlQUFlLEVBQUUsd0JBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7UUFDNUQsY0FBYyxFQUFFLHFEQUFxRDtRQUNyRSxXQUFXLEVBQUU7WUFDWDtnQkFDRSxNQUFNLEVBQUUsS0FBSztnQkFDYiw0REFBNEQ7Z0JBQzVELElBQUksRUFBRSxJQUFJLHdCQUFVLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQzthQUN0RTtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0Msa0NBQWtDO0lBQ2xDLGdFQUFnRTtJQUNoRSxRQUFRLENBQUMscUJBQXFCLENBQUMseUJBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEUsQ0FBQyxDQUFDLENBQUM7QUFFSCxnQ0FBZ0M7QUFDaEMsd0NBQXdDO0FBQ3hDLHNDQUFzQztBQUN0Qyx3Q0FBd0M7QUFDeEMsc0NBQXNDO0FBQ3RDLHNFQUFzRTtBQUN0RSxRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELHlFQUF5RTtBQUN6RSxNQUFNO0FBRU4sbUJBQW1CO0FBQ25CLDJDQUEyQztBQUMzQyxzQ0FBc0M7QUFDdEMsd0NBQXdDO0FBQ3hDLG1DQUFtQztBQUNuQyxvRUFBb0U7QUFDcEUscUJBQXFCO0FBQ3JCLCtDQUErQztBQUMvQywrQ0FBK0M7QUFDL0MsUUFBUTtBQUNSLFFBQVE7QUFDUixnREFBZ0Q7QUFDaEQsb0NBQW9DO0FBQ3BDLGlDQUFpQztBQUNqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUZW1wbGF0ZX0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7VGVzdEhlbHBlcn0gZnJvbSBcIi4uLy4uL3Rlc3QtaGVscGVyXCI7XG5pbXBvcnQge0hvc3RlZFpvbmV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtTb3VyY2VUeXBlLCBXZWJzaXRlfSBmcm9tIFwiLi93ZWJzaXRlXCI7XG5cbnRlc3QoXCJIdWdvIFdlYnNpdGUgVGVzdFwiLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuICBuZXcgV2Vic2l0ZShzdGFjaywgJ1Rlc3RXZWJzaXRlJywge1xuICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuSHVnbyxcbiAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImh1Z28td2Vic2l0ZVwiKVxuICB9KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7fSk7XG59KTtcblxudGVzdChcIkFSZWNvcmQgQ3JlYXRlZCBmb3IgV2Vic2l0ZVwiLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuICBuZXcgV2Vic2l0ZShzdGFjaywgJ1Rlc3RXZWJzaXRlJywge1xuICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuSHVnbyxcbiAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImh1Z28td2Vic2l0ZVwiKSxcbiAgICBjZXJ0aWZpY2F0ZUFybjogXCJhcm46YXdzOmFjbTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmNlcnRpZmljYXRlL1hYWFhcIixcbiAgICBkb21haW5OYW1lczogW1xuICAgICAge1xuICAgICAgICBwcmVmaXg6IFwid3d3XCIsXG4gICAgICAgIC8vIFRPRE8gSW4gdGhlIGZ1Z3VyZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIG1vY2sgbG9va3Vwc1xuICAgICAgICB6b25lOiBuZXcgSG9zdGVkWm9uZShzdGFjaywgXCJleGFtcGxlLWNvbVwiLCB7em9uZU5hbWU6IFwiZXhhbXBsZS5jb21cIn0pXG4gICAgICB9XG4gICAgXVxuICB9KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICAvLyBjb25zb2xlLmxvZyh0ZW1wbGF0ZS50b0pTT04oKSk7XG4gIC8vIFRlc3RIZWxwZXIubG9nUmVzb3VyY2VzKHRlbXBsYXRlLCBcIkFXUzo6Um91dGU1Mzo6UmVjb3JkU2V0XCIpO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlJvdXRlNTM6OlJlY29yZFNldFwiLCB7fSk7XG59KTtcblxuLy8gVE9ETyBXZSBuZWVkIHRvIHNwZWVkIHRoaXMgdXBcbi8vIHRlc3QoXCJOcG0gRGlzdCBXZWJzaXRlIFRlc3RcIiwgKCkgPT4ge1xuLy8gICBjb25zdCBzdGFjayA9IFRlc3RIZWxwZXIuc3RhY2soKTtcbi8vICAgbmV3IFdlYnNpdGUoc3RhY2ssIFwiVGVzdFdlYnNpdGVcIiwge1xuLy8gICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuTnBtRGlzdCxcbi8vICAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImFuZ3VsYXItd2Vic2l0ZVwiKVxuLy8gICB9KTtcbi8vICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuLy8gICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7fSk7XG4vLyB9KTtcblxuLy8gVE9ETyBOZWVkIHRvIGZpeFxuLy8gdGVzdChcIldlYnNpdGUgQ2VydGlmaWNhdGUgVGVzdFwiLCAoKSA9PiB7XG4vLyAgIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuLy8gICBuZXcgV2Vic2l0ZShzdGFjaywgXCJUZXN0V2Vic2l0ZVwiLCB7XG4vLyAgICAgc291cmNlVHlwZTogU291cmNlVHlwZS5IdWdvLFxuLy8gICAgIHNvdXJjZURpcmVjdG9yeTogVGVzdEhlbHBlci5yZXNvbHZlVGVzdEZpbGVzKFwiaHVnby13ZWJzaXRlXCIpLFxuLy8gICAgIGRvbWFpbk5hbWVzOiBbXG4vLyAgICAgICBuZXcgRG9tYWluTmFtZShcInRlc3RcIiwgXCJleGFtcGxlLmNvbVwiKSxcbi8vICAgICAgIG5ldyBEb21haW5OYW1lKFwidGVzdDJcIiwgXCJleGFtcGxlLmNvbVwiKVxuLy8gICAgIF1cbi8vICAgfSk7XG4vLyAgIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbi8vICAgY29uc29sZS5sb2codGVtcGxhdGUudG9KU09OKCkpO1xuLy8gICAvLyBUZXN0SGVscGVyLmxvZ1Jlc291cmNlcygpXG4vLyB9KTtcbiJdfQ==
@@ -3,10 +3,11 @@ import { Bucket } from "aws-cdk-lib/aws-s3";
3
3
  import { OriginAccessIdentity } from "aws-cdk-lib/aws-cloudfront";
4
4
  import { BucketDeployment, ISource } from "aws-cdk-lib/aws-s3-deployment";
5
5
  import { Duration, RemovalPolicy } from "aws-cdk-lib";
6
+ import { ExtendedConstruct, ExtendedConstructProps } from "../../aws-cdk";
6
7
  /**
7
8
  * Properties for CloudFrontBucket.
8
9
  */
9
- export interface CloudFrontBucketProps {
10
+ export interface CloudFrontBucketProps extends ExtendedConstructProps {
10
11
  /**
11
12
  * Policy to apply when the bucket is removed from this stack.
12
13
  * @default RemovalPolicy.RETAIN
@@ -35,7 +36,7 @@ export interface CloudFrontBucketProps {
35
36
  /**
36
37
  * Simple Construct for creating buckets that will be accessed directly by CloudFront as an Origin.
37
38
  */
38
- export declare class CloudFrontBucket extends Construct {
39
+ export declare class CloudFrontBucket extends ExtendedConstruct {
39
40
  readonly bucket: Bucket;
40
41
  readonly bucketName: string;
41
42
  readonly bucketArn: string;
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CloudFrontBucket = void 0;
4
- const constructs_1 = require("constructs");
5
4
  const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
5
  const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
7
6
  const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
8
7
  const aws_cdk_lib_1 = require("aws-cdk-lib");
8
+ const aws_cdk_1 = require("../../aws-cdk");
9
+ const truemark_1 = require("../../truemark");
9
10
  /**
10
11
  * Simple Construct for creating buckets that will be accessed directly by CloudFront as an Origin.
11
12
  */
12
- class CloudFrontBucket extends constructs_1.Construct {
13
+ class CloudFrontBucket extends aws_cdk_1.ExtendedConstruct {
13
14
  constructor(scope, id, props) {
14
15
  var _a, _b, _c, _d;
15
- super(scope, id);
16
+ super(scope, id, { standardTags: aws_cdk_1.StandardTags.merge(props.standardTags, truemark_1.LibStandardTags) });
16
17
  const removalPolicy = (_a = props.removalPolicy) !== null && _a !== void 0 ? _a : aws_cdk_lib_1.RemovalPolicy.RETAIN;
17
18
  const autoDeleteObjects = ((_b = props.autoDeleteObjects) !== null && _b !== void 0 ? _b : false) && removalPolicy === aws_cdk_lib_1.RemovalPolicy.DESTROY;
18
19
  this.bucket = new aws_s3_1.Bucket(this, "Default", {
@@ -77,4 +78,4 @@ class CloudFrontBucket extends constructs_1.Construct {
77
78
  }
78
79
  }
79
80
  exports.CloudFrontBucket = CloudFrontBucket;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtZnJvbnQtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxQztBQUNyQywrQ0FBd0Y7QUFDeEYsK0RBQWdFO0FBQ2hFLHFFQUE4RjtBQUM5Riw2Q0FBb0Q7QUFvQ3BEOztHQUVHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQVE3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCOztRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sYUFBYSxTQUFHLEtBQUssQ0FBQyxhQUFhLG1DQUFJLDJCQUFhLENBQUMsTUFBTSxDQUFDO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsT0FBQyxLQUFLLENBQUMsaUJBQWlCLG1DQUFJLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sQ0FBQztRQUV4RyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEMsVUFBVSxFQUFFLHlCQUFnQixDQUFDLFVBQVU7WUFDdkMsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLFNBQVMsUUFBRSxLQUFLLENBQUMsU0FBUyxtQ0FBSSxLQUFLO1lBQ25DLG9CQUFvQixRQUFFLEtBQUssQ0FBQyxvQkFBb0IsbUNBQUksS0FBSztTQUMxRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUkscUNBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNuRSxPQUFPLEVBQUUsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtTQUMvQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDO1FBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxVQUFVLENBQUMsSUFBWSxFQUFFLE1BQWlCLEVBQUUsT0FBa0IsRUFBRSxLQUFlO1FBQzdFLE9BQU8sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNO1lBQzlCLEtBQUssRUFBRSxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxLQUFLO1lBQ3JCLFlBQVksRUFBRTtnQkFDWixnQ0FBWSxDQUFDLFNBQVMsRUFBRTtnQkFDeEIsZ0NBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELGdDQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksQ0FBQyxNQUFlLEVBQUUsTUFBaUIsRUFBRSxPQUFrQixFQUFFLEtBQWU7UUFDbEYsT0FBTyxJQUFJLG9DQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDMUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2pCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNO1lBQzlCLEtBQUssRUFBRSxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxLQUFLO1lBQ3JCLFlBQVksRUFBRTtnQkFDWixnQ0FBWSxDQUFDLFNBQVMsRUFBRTtnQkFDeEIsZ0NBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELGdDQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBNUVELDRDQTRFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtCbG9ja1B1YmxpY0FjY2VzcywgQnVja2V0LCBCdWNrZXRFbmNyeXB0aW9uLCBJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge09yaWdpbkFjY2Vzc0lkZW50aXR5fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7QnVja2V0RGVwbG95bWVudCwgQ2FjaGVDb250cm9sLCBJU291cmNlLCBTb3VyY2V9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQ2xvdWRGcm9udEJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250QnVja2V0UHJvcHMge1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgYnVja2V0IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWxsIG9iamVjdHMgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZCB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFjayBvciB3aGVuIHRoZSBzdGFjayBpcyBkZWxldGVkLlxuICAgKiBSZXF1aXJlcyB0aGUgcmVtb3ZhbFBvbGljeSB0byBiZSBzZXQgdG8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0RlbGV0ZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYnVja2V0IHNob3VsZCBoYXZlIHZlcnNpb25pbmcgdHVybmVkIG9uIG9yIG5vdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25lZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBidWNrZXQgc2hvdWxkIGhhdmUgdHJhbnNmZXIgYWNjZWxlcmF0aW9uIHR1cm5lZCBvbiBvciBub3QuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFuc2ZlckFjY2VsZXJhdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU2ltcGxlIENvbnN0cnVjdCBmb3IgY3JlYXRpbmcgYnVja2V0cyB0aGF0IHdpbGwgYmUgYWNjZXNzZWQgZGlyZWN0bHkgYnkgQ2xvdWRGcm9udCBhcyBhbiBPcmlnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEZyb250QnVja2V0IGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICByZWFkb25seSBidWNrZXQ6IEJ1Y2tldDtcbiAgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBidWNrZXRBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IE9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnRCdWNrZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCByZW1vdmFsUG9saWN5ID0gcHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTjtcbiAgICBjb25zdCBhdXRvRGVsZXRlT2JqZWN0cyA9IChwcm9wcy5hdXRvRGVsZXRlT2JqZWN0cyA/PyBmYWxzZSkgJiYgcmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIFwiRGVmYXVsdFwiLCB7XG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsIC8vIENsb3VkRnJvbnQgY2Fubm90IHVzZSBLTVMgd2l0aCBTM1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0cyxcbiAgICAgIHZlcnNpb25lZDogcHJvcHMudmVyc2lvbmVkID8/IGZhbHNlLFxuICAgICAgdHJhbnNmZXJBY2NlbGVyYXRpb246IHByb3BzLnRyYW5zZmVyQWNjZWxlcmF0aW9uID8/IGZhbHNlXG4gICAgfSk7XG4gICAgdGhpcy5idWNrZXROYW1lID0gdGhpcy5idWNrZXQuYnVja2V0TmFtZTtcbiAgICB0aGlzLmJ1Y2tldEFybiA9IHRoaXMuYnVja2V0LmJ1Y2tldEFybjtcbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIFwiQWNjZXNzXCIsIHtcbiAgICAgIGNvbW1lbnQ6IGBTMyBidWNrZXQgJHt0aGlzLmJ1Y2tldC5idWNrZXROYW1lfWBcbiAgICB9KTtcbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5SWQgPSB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5Lm9yaWdpbkFjY2Vzc0lkZW50aXR5SWQ7XG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkKHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZGVwbG95IGxvY2FsIGFzc2V0cyB0byB0aGUgY3JlYXRlZCBidWNrZXQuIFRocyBmdW5jdGlvbiBhc3N1bWVzXG4gICAqIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byB0aGUgbG9jYWwgYXNzZXRzXG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZSB0cnVlIHRvIHBydW5lIG9sZCBmaWxlczsgZGVmYXVsdCBpcyBmYWxzZVxuICAgKi9cbiAgZGVwbG95UGF0aChwYXRoOiBzdHJpbmcsIG1heEFnZT86IER1cmF0aW9uLCBzTWF4QWdlPzogRHVyYXRpb24sIHBydW5lPzogYm9vbGVhbik6IEJ1Y2tldERlcGxveW1lbnQge1xuICAgIHJldHVybiBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBcIkRlcGxveVwiLCB7XG4gICAgICBzb3VyY2VzOiBbU291cmNlLmFzc2V0KHBhdGgpXSxcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIHBydW5lOiBwcnVuZSA/PyBmYWxzZSxcbiAgICAgIGNhY2hlQ29udHJvbDogW1xuICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UobWF4QWdlID8/IER1cmF0aW9uLm1pbnV0ZXMoMTUpKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLnNNYXhBZ2Uoc01heEFnZSA/PyBEdXJhdGlvbi5kYXlzKDcpKVxuICAgICAgXVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYXNzZXRzIHRvIHRoZSBjcmVhdGVkIGJ1Y2tldC4gVGhpcyBmdW5jdGlvbiBhc3N1bWVzIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uXG4gICAqIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgdG8gZGVwbG95XG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZSB0cnVlIHRvIHBydW5lIG9sZCBmaWxlczsgZGVmYXVsdCBpcyBmYWxzZVxuICAgKi9cbiAgZGVwbG95U291cmNlKHNvdXJjZTogSVNvdXJjZSwgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRGVwbG95XCIsIHtcbiAgICAgIHNvdXJjZXM6IFtzb3VyY2VdLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgcHJ1bmU6IHBydW5lID8/IGZhbHNlLFxuICAgICAgY2FjaGVDb250cm9sOiBbXG4gICAgICAgIENhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLm1heEFnZShtYXhBZ2UgPz8gRHVyYXRpb24ubWludXRlcygxNSkpLFxuICAgICAgICBDYWNoZUNvbnRyb2wuc01heEFnZShzTWF4QWdlID8/IER1cmF0aW9uLmRheXMoNykpXG4gICAgICBdXG4gICAgfSlcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtZnJvbnQtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtDQUF3RjtBQUN4RiwrREFBZ0U7QUFDaEUscUVBQThGO0FBQzlGLDZDQUFvRDtBQUNwRCwyQ0FBc0Y7QUFDdEYsNkNBQStDO0FBb0MvQzs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsMkJBQWlCO0lBUXJELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7O1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUMsWUFBWSxFQUFFLHNCQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMEJBQWUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUUxRixNQUFNLGFBQWEsU0FBRyxLQUFLLENBQUMsYUFBYSxtQ0FBSSwyQkFBYSxDQUFDLE1BQU0sQ0FBQztRQUNsRSxNQUFNLGlCQUFpQixHQUFHLE9BQUMsS0FBSyxDQUFDLGlCQUFpQixtQ0FBSSxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssMkJBQWEsQ0FBQyxPQUFPLENBQUM7UUFFeEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3hDLFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO1lBQ3ZDLGlCQUFpQixFQUFFLDBCQUFpQixDQUFDLFNBQVM7WUFDOUMsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixTQUFTLFFBQUUsS0FBSyxDQUFDLFNBQVMsbUNBQUksS0FBSztZQUNuQyxvQkFBb0IsUUFBRSxLQUFLLENBQUMsb0JBQW9CLG1DQUFJLEtBQUs7U0FDMUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLHFDQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDbkUsT0FBTyxFQUFFLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsVUFBVSxDQUFDLElBQVksRUFBRSxNQUFpQixFQUFFLE9BQWtCLEVBQUUsS0FBZTtRQUM3RSxPQUFPLElBQUksb0NBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQywwQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUM5QixLQUFLLEVBQUUsS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksS0FBSztZQUNyQixZQUFZLEVBQUU7Z0JBQ1osZ0NBQVksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hCLGdDQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxnQ0FBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxZQUFZLENBQUMsTUFBZSxFQUFFLE1BQWlCLEVBQUUsT0FBa0IsRUFBRSxLQUFlO1FBQ2xGLE9BQU8sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUM5QixLQUFLLEVBQUUsS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksS0FBSztZQUNyQixZQUFZLEVBQUU7Z0JBQ1osZ0NBQVksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hCLGdDQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxnQ0FBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsRDtTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQTVFRCw0Q0E0RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7QmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgSUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtPcmlnaW5BY2Nlc3NJZGVudGl0eX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgSVNvdXJjZSwgU291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7RHVyYXRpb24sIFJlbW92YWxQb2xpY3l9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdCwgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcywgU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vYXdzLWNka1wiO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi90cnVlbWFya1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENsb3VkRnJvbnRCdWNrZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udEJ1Y2tldFByb3BzIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoaXMgc3RhY2suXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogV2hldGhlciBhbGwgb2JqZWN0cyBzaG91bGQgYmUgYXV0b21hdGljYWxseSBkZWxldGVkIHdoZW4gdGhlIGJ1Y2tldCBpcyByZW1vdmVkIGZyb20gdGhlIHN0YWNrIG9yIHdoZW4gdGhlIHN0YWNrIGlzIGRlbGV0ZWQuXG4gICAqIFJlcXVpcmVzIHRoZSByZW1vdmFsUG9saWN5IHRvIGJlIHNldCB0byBSZW1vdmFsUG9saWN5LkRFU1RST1kuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhdXRvRGVsZXRlT2JqZWN0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBidWNrZXQgc2hvdWxkIGhhdmUgdmVyc2lvbmluZyB0dXJuZWQgb24gb3Igbm90LiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbmVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGJ1Y2tldCBzaG91bGQgaGF2ZSB0cmFuc2ZlciBhY2NlbGVyYXRpb24gdHVybmVkIG9uIG9yIG5vdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZmVyQWNjZWxlcmF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTaW1wbGUgQ29uc3RydWN0IGZvciBjcmVhdGluZyBidWNrZXRzIHRoYXQgd2lsbCBiZSBhY2Nlc3NlZCBkaXJlY3RseSBieSBDbG91ZEZyb250IGFzIGFuIE9yaWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRCdWNrZXQgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG5cbiAgcmVhZG9ubHkgYnVja2V0OiBCdWNrZXQ7XG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYnVja2V0QXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBPcmlnaW5BY2Nlc3NJZGVudGl0eTtcbiAgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHlJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZEZyb250QnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncy5tZXJnZShwcm9wcy5zdGFuZGFyZFRhZ3MsIExpYlN0YW5kYXJkVGFncyl9KTtcblxuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgIGNvbnN0IGF1dG9EZWxldGVPYmplY3RzID0gKHByb3BzLmF1dG9EZWxldGVPYmplY3RzID8/IGZhbHNlKSAmJiByZW1vdmFsUG9saWN5ID09PSBSZW1vdmFsUG9saWN5LkRFU1RST1k7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCwgLy8gQ2xvdWRGcm9udCBjYW5ub3QgdXNlIEtNUyB3aXRoIFMzXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzLFxuICAgICAgdmVyc2lvbmVkOiBwcm9wcy52ZXJzaW9uZWQgPz8gZmFsc2UsXG4gICAgICB0cmFuc2ZlckFjY2VsZXJhdGlvbjogcHJvcHMudHJhbnNmZXJBY2NlbGVyYXRpb24gPz8gZmFsc2VcbiAgICB9KTtcbiAgICB0aGlzLmJ1Y2tldE5hbWUgPSB0aGlzLmJ1Y2tldC5idWNrZXROYW1lO1xuICAgIHRoaXMuYnVja2V0QXJuID0gdGhpcy5idWNrZXQuYnVja2V0QXJuO1xuICAgIHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkgPSBuZXcgT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgXCJBY2Nlc3NcIiwge1xuICAgICAgY29tbWVudDogYFMzIGJ1Y2tldCAke3RoaXMuYnVja2V0LmJ1Y2tldE5hbWV9YFxuICAgIH0pO1xuICAgIHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlJZCA9IHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkub3JpZ2luQWNjZXNzSWRlbnRpdHlJZDtcbiAgICB0aGlzLmJ1Y2tldC5ncmFudFJlYWQodGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBkZXBsb3kgbG9jYWwgYXNzZXRzIHRvIHRoZSBjcmVhdGVkIGJ1Y2tldC4gVGhzIGZ1bmN0aW9uIGFzc3VtZXNcbiAgICogQ2xvdWRGcm9udCBpbnZhbGlkYXRpb24gcmVxdWVzdHMgd2lsbCBiZSBzZW50IGZvciBtdXRhYmxlIGZpbGVzIHRvIHNlcnZlIG5ldyBjb250ZW50LlxuICAgKiBGb3IgbW9yZSBjb21wbGljYXRlZCBkZXBsb3ltZW50cywgdXNlIEJ1Y2tldERlcGxveW1lbnQgZGlyZWN0bHkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRoZSBsb2NhbCBhc3NldHNcbiAgICogQHBhcmFtIG1heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgdG8gYnJvd3NlcnMgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKiBAcGFyYW0gc01heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgQ2xvdWRGcm9udCB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLmRheXMoNylcbiAgICogQHBhcmFtIHBydW5lIHRydWUgdG8gcHJ1bmUgb2xkIGZpbGVzOyBkZWZhdWx0IGlzIGZhbHNlXG4gICAqL1xuICBkZXBsb3lQYXRoKHBhdGg6IHN0cmluZywgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRGVwbG95XCIsIHtcbiAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQocGF0aCldLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgcHJ1bmU6IHBydW5lID8/IGZhbHNlLFxuICAgICAgY2FjaGVDb250cm9sOiBbXG4gICAgICAgIENhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLm1heEFnZShtYXhBZ2UgPz8gRHVyYXRpb24ubWludXRlcygxNSkpLFxuICAgICAgICBDYWNoZUNvbnRyb2wuc01heEFnZShzTWF4QWdlID8/IER1cmF0aW9uLmRheXMoNykpXG4gICAgICBdXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBhc3NldHMgdG8gdGhlIGNyZWF0ZWQgYnVja2V0LiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgQ2xvdWRGcm9udCBpbnZhbGlkYXRpb25cbiAgICogcmVxdWVzdHMgd2lsbCBiZSBzZW50IGZvciBtdXRhYmxlIGZpbGVzIHRvIHNlcnZlIG5ldyBjb250ZW50LlxuICAgKiBGb3IgbW9yZSBjb21wbGljYXRlZCBkZXBsb3ltZW50cywgdXNlIEJ1Y2tldERlcGxveW1lbnQgZGlyZWN0bHkuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSB0byBkZXBsb3lcbiAgICogQHBhcmFtIG1heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgdG8gYnJvd3NlcnMgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKiBAcGFyYW0gc01heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgQ2xvdWRGcm9udCB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLmRheXMoNylcbiAgICogQHBhcmFtIHBydW5lIHRydWUgdG8gcHJ1bmUgb2xkIGZpbGVzOyBkZWZhdWx0IGlzIGZhbHNlXG4gICAqL1xuICBkZXBsb3lTb3VyY2Uoc291cmNlOiBJU291cmNlLCBtYXhBZ2U/OiBEdXJhdGlvbiwgc01heEFnZT86IER1cmF0aW9uLCBwcnVuZT86IGJvb2xlYW4pOiBCdWNrZXREZXBsb3ltZW50IHtcbiAgICByZXR1cm4gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJEZXBsb3lcIiwge1xuICAgICAgc291cmNlczogW3NvdXJjZV0sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBwcnVuZTogcHJ1bmUgPz8gZmFsc2UsXG4gICAgICBjYWNoZUNvbnRyb2w6IFtcbiAgICAgICAgQ2FjaGVDb250cm9sLnNldFB1YmxpYygpLFxuICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKG1heEFnZSA/PyBEdXJhdGlvbi5taW51dGVzKDE1KSksXG4gICAgICAgIENhY2hlQ29udHJvbC5zTWF4QWdlKHNNYXhBZ2UgPz8gRHVyYXRpb24uZGF5cyg3KSlcbiAgICAgIF1cbiAgICB9KVxuICB9XG59XG4iXX0=
package/index.d.ts CHANGED
@@ -14,7 +14,7 @@ export * as aws_ses from "./aws-ses";
14
14
  export * as aws_sqs from "./aws-sqs";
15
15
  export * as aws_ssm from "./aws-ssm";
16
16
  export * as aws_vpc from "./aws-vpc";
17
- export * as aws_website from "./aws-website";
18
- export * as helpers from "./helpers";
19
- export * as wordpress from "./aws-patterns-wordpress";
20
17
  export * as domain_redirect from "./aws-patterns-domain-redirect";
18
+ export * as website from "./aws-patterns-website";
19
+ export * as wordpress from "./aws-patterns-wordpress";
20
+ export * as helpers from "./helpers";
package/index.js CHANGED
@@ -16,8 +16,8 @@ exports.aws_ses = require("./aws-ses");
16
16
  exports.aws_sqs = require("./aws-sqs");
17
17
  exports.aws_ssm = require("./aws-ssm");
18
18
  exports.aws_vpc = require("./aws-vpc");
19
- exports.aws_website = require("./aws-website");
20
- exports.helpers = require("./helpers");
21
- exports.wordpress = require("./aws-patterns-wordpress");
22
19
  exports.domain_redirect = require("./aws-patterns-domain-redirect");
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlEQUF1RDtBQUN2RCx1Q0FBcUM7QUFDckMsdURBQXFEO0FBQ3JELHFEQUFtRDtBQUNuRCxxREFBbUQ7QUFDbkQseURBQXVEO0FBQ3ZELGlEQUErQztBQUMvQyx1Q0FBcUM7QUFDckMsNkNBQTJDO0FBQzNDLHFEQUFtRDtBQUNuRCwrQ0FBNkM7QUFDN0MscUNBQW1DO0FBQ25DLHVDQUFxQztBQUNyQyx1Q0FBcUM7QUFDckMsdUNBQXFDO0FBQ3JDLHVDQUFxQztBQUNyQywrQ0FBNkM7QUFDN0MsdUNBQXFDO0FBQ3JDLHdEQUFzRDtBQUN0RCxvRUFBa0UiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBhd3NfYXBpZ2F0ZXdheXYyIGZyb20gXCIuL2F3cy1hcGlnYXRld2F5djJcIjtcbmV4cG9ydCAqIGFzIGF3c19jZGsgZnJvbSBcIi4vYXdzLWNka1wiO1xuZXhwb3J0ICogYXMgYXdzX2NlbnRlcmdhdWdlIGZyb20gXCIuL2F3cy1jZW50ZXJnYXVnZVwiO1xuZXhwb3J0ICogYXMgYXdzX2Nsb3VkZnJvbnQgZnJvbSBcIi4vYXdzLWNsb3VkZnJvbnRcIjtcbmV4cG9ydCAqIGFzIGF3c19jbG91ZHdhdGNoIGZyb20gXCIuL2F3cy1jbG91ZHdhdGNoXCI7XG5leHBvcnQgKiBhcyBhd3NfY29kZXBpcGVsaW5lIGZyb20gXCIuL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmV4cG9ydCAqIGFzIGF3c19keW5hbW9kYiBmcm9tIFwiLi9hd3MtZHluYW1vZGJcIjtcbmV4cG9ydCAqIGFzIGF3c19lY3MgZnJvbSBcIi4vYXdzLWVjc1wiO1xuZXhwb3J0ICogYXMgYXdzX2xhbWJkYSBmcm9tIFwiLi9hd3MtbGFtYmRhXCI7XG5leHBvcnQgKiBhcyBhd3NfbW9uaXRvcmluZyBmcm9tIFwiLi9hd3MtbW9uaXRvcmluZ1wiO1xuZXhwb3J0ICogYXMgYXdzX3JvdXRlNTMgZnJvbSBcIi4vYXdzLXJvdXRlNTNcIjtcbmV4cG9ydCAqIGFzIGF3c19zMyBmcm9tIFwiLi9hd3MtczNcIjtcbmV4cG9ydCAqIGFzIGF3c19zZXMgZnJvbSBcIi4vYXdzLXNlc1wiO1xuZXhwb3J0ICogYXMgYXdzX3NxcyBmcm9tIFwiLi9hd3Mtc3FzXCI7XG5leHBvcnQgKiBhcyBhd3Nfc3NtIGZyb20gXCIuL2F3cy1zc21cIjtcbmV4cG9ydCAqIGFzIGF3c192cGMgZnJvbSBcIi4vYXdzLXZwY1wiO1xuZXhwb3J0ICogYXMgYXdzX3dlYnNpdGUgZnJvbSBcIi4vYXdzLXdlYnNpdGVcIjtcbmV4cG9ydCAqIGFzIGhlbHBlcnMgZnJvbSBcIi4vaGVscGVyc1wiO1xuZXhwb3J0ICogYXMgd29yZHByZXNzIGZyb20gXCIuL2F3cy1wYXR0ZXJucy13b3JkcHJlc3NcIjtcbmV4cG9ydCAqIGFzIGRvbWFpbl9yZWRpcmVjdCBmcm9tIFwiLi9hd3MtcGF0dGVybnMtZG9tYWluLXJlZGlyZWN0XCI7XG4iXX0=
20
+ exports.website = require("./aws-patterns-website");
21
+ exports.wordpress = require("./aws-patterns-wordpress");
22
+ exports.helpers = require("./helpers");
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlEQUF1RDtBQUN2RCx1Q0FBcUM7QUFDckMsdURBQXFEO0FBQ3JELHFEQUFtRDtBQUNuRCxxREFBbUQ7QUFDbkQseURBQXVEO0FBQ3ZELGlEQUErQztBQUMvQyx1Q0FBcUM7QUFDckMsNkNBQTJDO0FBQzNDLHFEQUFtRDtBQUNuRCwrQ0FBNkM7QUFDN0MscUNBQW1DO0FBQ25DLHVDQUFxQztBQUNyQyx1Q0FBcUM7QUFDckMsdUNBQXFDO0FBQ3JDLHVDQUFxQztBQUNyQyxvRUFBa0U7QUFDbEUsb0RBQWtEO0FBQ2xELHdEQUFzRDtBQUN0RCx1Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBhd3NfYXBpZ2F0ZXdheXYyIGZyb20gXCIuL2F3cy1hcGlnYXRld2F5djJcIjtcbmV4cG9ydCAqIGFzIGF3c19jZGsgZnJvbSBcIi4vYXdzLWNka1wiO1xuZXhwb3J0ICogYXMgYXdzX2NlbnRlcmdhdWdlIGZyb20gXCIuL2F3cy1jZW50ZXJnYXVnZVwiO1xuZXhwb3J0ICogYXMgYXdzX2Nsb3VkZnJvbnQgZnJvbSBcIi4vYXdzLWNsb3VkZnJvbnRcIjtcbmV4cG9ydCAqIGFzIGF3c19jbG91ZHdhdGNoIGZyb20gXCIuL2F3cy1jbG91ZHdhdGNoXCI7XG5leHBvcnQgKiBhcyBhd3NfY29kZXBpcGVsaW5lIGZyb20gXCIuL2F3cy1jb2RlcGlwZWxpbmVcIjtcbmV4cG9ydCAqIGFzIGF3c19keW5hbW9kYiBmcm9tIFwiLi9hd3MtZHluYW1vZGJcIjtcbmV4cG9ydCAqIGFzIGF3c19lY3MgZnJvbSBcIi4vYXdzLWVjc1wiO1xuZXhwb3J0ICogYXMgYXdzX2xhbWJkYSBmcm9tIFwiLi9hd3MtbGFtYmRhXCI7XG5leHBvcnQgKiBhcyBhd3NfbW9uaXRvcmluZyBmcm9tIFwiLi9hd3MtbW9uaXRvcmluZ1wiO1xuZXhwb3J0ICogYXMgYXdzX3JvdXRlNTMgZnJvbSBcIi4vYXdzLXJvdXRlNTNcIjtcbmV4cG9ydCAqIGFzIGF3c19zMyBmcm9tIFwiLi9hd3MtczNcIjtcbmV4cG9ydCAqIGFzIGF3c19zZXMgZnJvbSBcIi4vYXdzLXNlc1wiO1xuZXhwb3J0ICogYXMgYXdzX3NxcyBmcm9tIFwiLi9hd3Mtc3FzXCI7XG5leHBvcnQgKiBhcyBhd3Nfc3NtIGZyb20gXCIuL2F3cy1zc21cIjtcbmV4cG9ydCAqIGFzIGF3c192cGMgZnJvbSBcIi4vYXdzLXZwY1wiO1xuZXhwb3J0ICogYXMgZG9tYWluX3JlZGlyZWN0IGZyb20gXCIuL2F3cy1wYXR0ZXJucy1kb21haW4tcmVkaXJlY3RcIjtcbmV4cG9ydCAqIGFzIHdlYnNpdGUgZnJvbSBcIi4vYXdzLXBhdHRlcm5zLXdlYnNpdGVcIjtcbmV4cG9ydCAqIGFzIHdvcmRwcmVzcyBmcm9tIFwiLi9hd3MtcGF0dGVybnMtd29yZHByZXNzXCI7XG5leHBvcnQgKiBhcyBoZWxwZXJzIGZyb20gXCIuL2hlbHBlcnNcIjtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "1.3.0",
3
+ "version": "1.3.1-alpha.1+a50134f",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -55,8 +55,9 @@
55
55
  "./aws-ecs": "./aws-ecs/index.js",
56
56
  "./aws-lambda": "./aws-lambda/index.js",
57
57
  "./aws-monitoring": "./aws-monitoring/index.js",
58
- "./aws-patterns-wordpress": "./aws-patterns-wordpress/index.js",
59
58
  "./aws-patterns-domain-redirect": "./aws-patterns-domain-redirect/index.js",
59
+ "./aws-website": "./aws-patterns-website/index.js",
60
+ "./aws-patterns-wordpress": "./aws-patterns-wordpress/index.js",
60
61
  "./aws-route53": "./aws-route53/index.js",
61
62
  "./aws-s3": "./aws-s3/index.js",
62
63
  "./aws-ses": "./aws-ses/index.js",
@@ -64,11 +65,10 @@
64
65
  "./aws-ssm": "./aws-ssm/index.js",
65
66
  "./aws-tags": "./aws-tags/index.js",
66
67
  "./aws-vpc": "./aws-vpc/index.js",
67
- "./aws-website": "./aws-website/index.js",
68
68
  "./helpers": "./helpers/index.js"
69
69
  },
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "508b51fbc4767e7247d6d37b3110c05df70ef22c"
73
+ "gitHead": "a50134fb888ff111a9f3815c2ad13dd109f4a208"
74
74
  }
@@ -1,187 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Website = exports.SourceType = void 0;
4
- const constructs_1 = require("constructs");
5
- const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
- const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
7
- const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
8
- const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
9
- const aws_route53_1 = require("aws-cdk-lib/aws-route53");
10
- const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
11
- const aws_s3_deployment_1 = require("aws-cdk-lib/aws-s3-deployment");
12
- const aws_cdk_lib_1 = require("aws-cdk-lib");
13
- const aws_route53_2 = require("../../aws-route53");
14
- var SourceType;
15
- (function (SourceType) {
16
- SourceType["Custom"] = "Custom";
17
- SourceType["Hugo"] = "Hugo";
18
- SourceType["NpmDist"] = "NpmDist";
19
- SourceType["Static"] = "Static";
20
- })(SourceType = exports.SourceType || (exports.SourceType = {}));
21
- class Website extends constructs_1.Construct {
22
- constructor(scope, id, props) {
23
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
24
- super(scope, id);
25
- const domainNames = aws_route53_2.DomainName.fromProps(props.domainNames);
26
- let certificate = undefined;
27
- if (props.certificateArn !== undefined) {
28
- certificate = aws_certificatemanager_1.Certificate.fromCertificateArn(this, "Certificate", props.certificateArn);
29
- }
30
- else if (domainNames.length > 0) {
31
- certificate = new aws_certificatemanager_1.Certificate(this, "Certificate", {
32
- domainName: domainNames[0].toString(),
33
- subjectAlternativeNames: aws_route53_2.DomainName.toStrings(domainNames).slice(1),
34
- validation: aws_certificatemanager_1.CertificateValidation.fromDnsMultiZone(aws_route53_2.DomainName.toZoneMap(this, domainNames))
35
- });
36
- }
37
- this.bucket = (_a = props.bucket) !== null && _a !== void 0 ? _a : new aws_s3_1.Bucket(this, "Bucket", {
38
- encryption: aws_s3_1.BucketEncryption.S3_MANAGED,
39
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
40
- autoDeleteObjects: true
41
- });
42
- this.fallbackBucket = props.fallbackBucket;
43
- this.originAccessIdentity = new aws_cloudfront_1.OriginAccessIdentity(this, "Access");
44
- this.bucket.grantRead(this.originAccessIdentity);
45
- if (this.fallbackBucket) {
46
- this.fallbackBucket.grantRead(this.originAccessIdentity);
47
- }
48
- this.apexDomain = domainNames.length > 0 ? domainNames[0].toString() : "";
49
- this.viewerRequestFunction = new aws_cloudfront_1.Function(this, "ViewerRequestFunction", {
50
- code: aws_cloudfront_1.FunctionCode.fromInline(`
51
- function handler(event) {
52
- var host = event.request.headers.host.value;
53
- var uri = event.request.uri;
54
- var matchApex = MATCH_APEX;
55
- if (matchApex && host !== "APEX_DOMAIN") {
56
- return {
57
- statusCode: 301,
58
- statusDescription: "Permanently moved",
59
- headers: {
60
- "location": { "value": "https://APEX_DOMAIN" + uri }
61
- }
62
- }
63
- }
64
- if (uri.endsWith("/")) {
65
- event.request.uri = uri + "index.html";
66
- }
67
- return event.request;
68
- }`
69
- .replace(/APEX_DOMAIN/g, this.apexDomain)
70
- .replace(/MATCH_APEX/g, this.apexDomain !== "" && ((_b = props.redirectToApexDomain) !== null && _b !== void 0 ? _b : true) ? "true" : "false"))
71
- });
72
- const bucketOrigin = new aws_cloudfront_origins_1.S3Origin(this.bucket, {
73
- originAccessIdentity: this.originAccessIdentity
74
- });
75
- const fallbackBucketOrigin = this.fallbackBucket === undefined ? undefined : new aws_cloudfront_origins_1.S3Origin(this.fallbackBucket, {
76
- originAccessIdentity: this.originAccessIdentity
77
- });
78
- const defaultOrigin = fallbackBucketOrigin === undefined ? bucketOrigin : new aws_cloudfront_origins_1.OriginGroup({
79
- primaryOrigin: bucketOrigin,
80
- fallbackOrigin: fallbackBucketOrigin
81
- });
82
- this.distribution = new aws_cloudfront_1.Distribution(this, "Distribution", {
83
- defaultBehavior: {
84
- origin: defaultOrigin,
85
- viewerProtocolPolicy: aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
86
- functionAssociations: [
87
- {
88
- function: this.viewerRequestFunction,
89
- eventType: aws_cloudfront_1.FunctionEventType.VIEWER_REQUEST
90
- }
91
- ]
92
- },
93
- errorResponses: [
94
- {
95
- httpStatus: 404,
96
- responseHttpStatus: 404,
97
- responsePagePath: "/404.html"
98
- }
99
- ],
100
- httpVersion: (_c = props.httpVersion) !== null && _c !== void 0 ? _c : aws_cloudfront_1.HttpVersion.HTTP1_1,
101
- minimumProtocolVersion: (_d = props.minimumProtocolVersion) !== null && _d !== void 0 ? _d : aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021,
102
- defaultRootObject: "index.html",
103
- certificate,
104
- domainNames: aws_route53_2.DomainName.toStrings(domainNames),
105
- enableIpv6: true,
106
- priceClass: (_e = props.priceClass) !== null && _e !== void 0 ? _e : aws_cloudfront_1.PriceClass.PRICE_CLASS_100
107
- });
108
- this.distributionUrl = `https://${(this.apexDomain != "" ? this.apexDomain : this.distribution.distributionDomainName)}`;
109
- this.aRecords = [];
110
- for (let domainNameProps of (_f = props.domainNames) !== null && _f !== void 0 ? _f : []) {
111
- if ((_g = domainNameProps.createRecord) !== null && _g !== void 0 ? _g : true) {
112
- let domainName = aws_route53_2.DomainName.findDomainName(domainNameProps, domainNames);
113
- if (domainName !== undefined) {
114
- this.aRecords.push(domainName.createARecord(this, aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.CloudFrontTarget(this.distribution))));
115
- }
116
- }
117
- }
118
- let bundlingOptions = undefined;
119
- if (props.sourceType === SourceType.Custom) {
120
- if (!props.sourceBundlingOptions) {
121
- throw new Error("sourceBundlingOptions is required if source type is Custom");
122
- }
123
- bundlingOptions = props.sourceBundlingOptions;
124
- }
125
- if (props.sourceType === SourceType.Static) {
126
- if (props.sourceBundlingOptions) {
127
- throw new Error("Cannot use sourceBundlingOptions with source type Static");
128
- }
129
- }
130
- if (props.sourceType === SourceType.Hugo) {
131
- bundlingOptions = Website.HUGO_BUNDLING_OPTIONS;
132
- if (props.sourceBundlingOptions) {
133
- throw new Error("Cannot use sourceBundlingOptions with source type Hugo");
134
- }
135
- }
136
- else if (props.sourceType === SourceType.NpmDist) {
137
- bundlingOptions = Website.NPM_DIST_BUNDLING_OPTIONS;
138
- if (props.sourceBundlingOptions) {
139
- throw new Error("Cannot use sourceBundlingOptions with source type NpmDist");
140
- }
141
- }
142
- const source = aws_s3_deployment_1.Source.asset(props.sourceDirectory, {
143
- bundling: bundlingOptions
144
- });
145
- this.deployment = new aws_s3_deployment_1.BucketDeployment(this, "Assets", {
146
- sources: [source],
147
- destinationBucket: this.bucket,
148
- distribution: this.distribution,
149
- cacheControl: [aws_s3_deployment_1.CacheControl.maxAge((_h = props.maxAge) !== null && _h !== void 0 ? _h : aws_cdk_lib_1.Duration.minutes(60))],
150
- prune: false
151
- });
152
- if (this.fallbackBucket) {
153
- this.fallbackDeployment = new aws_s3_deployment_1.BucketDeployment(this, "FallbackAssets", {
154
- sources: [source],
155
- destinationBucket: this.fallbackBucket,
156
- cacheControl: [aws_s3_deployment_1.CacheControl.maxAge((_j = props.maxAge) !== null && _j !== void 0 ? _j : aws_cdk_lib_1.Duration.minutes(60))],
157
- prune: false
158
- });
159
- }
160
- }
161
- }
162
- exports.Website = Website;
163
- /**
164
- * The default bundling options for SourceType.Hugo.
165
- */
166
- Website.HUGO_BUNDLING_OPTIONS = {
167
- image: aws_cdk_lib_1.DockerImage.fromRegistry("klakegg/hugo:latest-ext"),
168
- command: [
169
- "-d", "/asset-output"
170
- ]
171
- };
172
- /**
173
- * The default bundling options for SourceType.NpmDist. It"s expected that "npm run dist" command
174
- * will place files in ${CDK_BUNDLING_OUTPUT_DIR}. Example: "ng build --output-path=/asset-output"
175
- */
176
- Website.NPM_DIST_BUNDLING_OPTIONS = {
177
- image: aws_cdk_lib_1.DockerImage.fromRegistry("node:16-alpine"),
178
- command: [
179
- // TODO Figure out how to cache .npmcache
180
- "sh", "-c", [
181
- "mkdir -p .npmcache",
182
- "npm ci --cache .npmcache --prefer-offline",
183
- "npm run dist"
184
- ].join(" && ")
185
- ]
186
- };
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXFDO0FBQ3JDLCtDQUFxRTtBQUNyRSwrREFVb0M7QUFDcEMsK0VBQXlFO0FBQ3pFLCtFQUFvRztBQUNwRyx5REFBOEQ7QUFDOUQseUVBQWlFO0FBQ2pFLHFFQUFxRjtBQUNyRiw2Q0FBa0Y7QUFDbEYsbURBQThEO0FBRTlELElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQiwyQkFBYSxDQUFBO0lBQ2IsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBS3JCO0FBd0ZELE1BQWEsT0FBUSxTQUFRLHNCQUFTO0lBdUNwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1COztRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sV0FBVyxHQUFHLHdCQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RCxJQUFJLFdBQVcsR0FBNkIsU0FBUyxDQUFDO1FBQ3RELElBQUksS0FBSyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDdEMsV0FBVyxHQUFHLG9DQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEY7YUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLFdBQVcsR0FBRyxJQUFJLG9DQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtnQkFDakQsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JDLHVCQUF1QixFQUFFLHdCQUFVLENBQUMsU0FBUyxDQUFD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bmltcG9ydCB7QnVja2V0LCBCdWNrZXRFbmNyeXB0aW9uLCBJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge1xuICBEaXN0cmlidXRpb24sXG4gIEZ1bmN0aW9uLFxuICBGdW5jdGlvbkNvZGUsXG4gIEZ1bmN0aW9uRXZlbnRUeXBlLFxuICBIdHRwVmVyc2lvbixcbiAgT3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gIFByaWNlQ2xhc3MsXG4gIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wsXG4gIFZpZXdlclByb3RvY29sUG9saWN5XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtPcmlnaW5Hcm91cCwgUzNPcmlnaW59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge0NlcnRpZmljYXRlLCBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24sIElDZXJ0aWZpY2F0ZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7QVJlY29yZCwgUmVjb3JkVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7Q2xvdWRGcm9udFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7QnVja2V0RGVwbG95bWVudCwgQ2FjaGVDb250cm9sLCBTb3VyY2V9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtCdW5kbGluZ09wdGlvbnMsIERvY2tlckltYWdlLCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0RvbWFpbk5hbWUsIERvbWFpbk5hbWVQcm9wc30gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5cbmV4cG9ydCBlbnVtIFNvdXJjZVR5cGUge1xuICBDdXN0b20gPSBcIkN1c3RvbVwiLFxuICBIdWdvID0gXCJIdWdvXCIsXG4gIE5wbURpc3QgPSBcIk5wbURpc3RcIixcbiAgU3RhdGljID0gXCJTdGF0aWNcIlxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFdlYnNpdGVEb21haW5OYW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdlYnNpdGVEb21haW5OYW1lUHJvcHMgZXh0ZW5kcyBEb21haW5OYW1lUHJvcHMge1xuXG4gIHJlYWRvbmx5IGNyZWF0ZVJlY29yZD86IGJvb2xlYW47XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlUHJvcHMge1xuXG4gIC8qKlxuICAgKiBCdWNrZXQgdG8gdXNlIHRvIHN0b3JlIHdlYnNpdGUgY29udGVudC4gSWYgb25lIGlzIG5vdCBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0PzogSUJ1Y2tldDtcblxuICAvKipcbiAgICogQnVja2V0IHRvIHVzZSBpZiB0aGUgcHJpbWFyeSBidWNrZXQgZmFpbHMuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQgYSBmYWxsYmFjayBpcyBub3Qgc2V0dXAuXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja0J1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gdG8gdGhlIEFDTSBDZXJ0aWZpY2F0ZSB0byB1c2Ugb24gdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLiBJZiBvbmUgaXMgbm90XG4gICAqIHByb3ZpZGVkIGFuZCBkb21haW5OYW1lcyBpcyBwb3B1bGF0ZWQsIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWVzIHRvIGJlIHNlcnZpY2VkLiBUaGUgZmlyc3QgZG9tYWluIG5hbWUgaW4gdGhlIGxpc3QgaXMgdHJlYXRlZCBhcyB0aGUgYXBleCBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lcz86IFdlYnNpdGVEb21haW5OYW1lUHJvcHNbXVxuXG4gIC8qKlxuICAgKiBSZWRpcmVjdCB0cmFmZmljIHRvIHRoZSBmaXJzdCBkb21haW4gaW4gdGhlIGxpc3Qgb2YgZG9tYWluTmFtZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlZGlyZWN0VG9BcGV4RG9tYWluPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHJpY2UgY2xhc3MgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDBcbiAgICovXG4gIHJlYWRvbmx5IHByaWNlQ2xhc3M/OiBQcmljZUNsYXNzXG5cbiAgLyoqXG4gICAqIE1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbiB0byBhbGxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxLFxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVByb3RvY29sVmVyc2lvbj86IFNlY3VyaXR5UG9saWN5UHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gSFRUUCB2ZXJzaW9uIHRvIGFsbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCBIdHRwVmVyc2lvbi5IVFRQMV8xXG4gICAqL1xuICByZWFkb25seSBodHRwVmVyc2lvbj86IEh0dHBWZXJzaW9uO1xuXG4gIC8qKlxuICAgKiBDYWNoZS1jb250cm9sIG1heCBhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNjApXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2U/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSB0eXBlIG9mIHRoZSB3ZWJzaXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTb3VyY2VUeXBlLlN0YXRpY1xuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlVHlwZT86IFNvdXJjZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHdlYnNpdGUgc291cmNlcyBhcmUgbG9jYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZURpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gYnVuZGxpbmcgb3B0aW9ucyB0byB1c2UgdG8gYnVuZGxlIHdlYnNpdGUgc291cmNlcy4gVGhlIHNvdXJjZVR5cGVcbiAgICogbXVzdCBiZSBzZXQgdG8gU291cmNlVHlwZS5DdXN0b20uXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VCdW5kbGluZ09wdGlvbnM/OiBCdW5kbGluZ09wdGlvbnNcbn1cblxuZXhwb3J0IGNsYXNzIFdlYnNpdGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBidW5kbGluZyBvcHRpb25zIGZvciBTb3VyY2VUeXBlLkh1Z28uXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgSFVHT19CVU5ETElOR19PUFRJT05TOiBCdW5kbGluZ09wdGlvbnMgPSB7XG4gICAgaW1hZ2U6IERvY2tlckltYWdlLmZyb21SZWdpc3RyeShcImtsYWtlZ2cvaHVnbzpsYXRlc3QtZXh0XCIpLFxuICAgIGNvbW1hbmQ6IFtcbiAgICAgIFwiLWRcIiwgXCIvYXNzZXQtb3V0cHV0XCJcbiAgICBdXG4gIH1cblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYnVuZGxpbmcgb3B0aW9ucyBmb3IgU291cmNlVHlwZS5OcG1EaXN0LiBJdFwicyBleHBlY3RlZCB0aGF0IFwibnBtIHJ1biBkaXN0XCIgY29tbWFuZFxuICAgKiB3aWxsIHBsYWNlIGZpbGVzIGluICR7Q0RLX0JVTkRMSU5HX09VVFBVVF9ESVJ9LiBFeGFtcGxlOiBcIm5nIGJ1aWxkIC0tb3V0cHV0LXBhdGg9L2Fzc2V0LW91dHB1dFwiXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgTlBNX0RJU1RfQlVORExJTkdfT1BUSU9OUzogQnVuZGxpbmdPcHRpb25zID0ge1xuICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJub2RlOjE2LWFscGluZVwiKSxcbiAgICBjb21tYW5kOiBbXG4gICAgICAvLyBUT0RPIEZpZ3VyZSBvdXQgaG93IHRvIGNhY2hlIC5ucG1jYWNoZVxuICAgICAgXCJzaFwiLCBcIi1jXCIsIFtcbiAgICAgICAgXCJta2RpciAtcCAubnBtY2FjaGVcIixcbiAgICAgICAgXCJucG0gY2kgLS1jYWNoZSAubnBtY2FjaGUgLS1wcmVmZXItb2ZmbGluZVwiLFxuICAgICAgICBcIm5wbSBydW4gZGlzdFwiXG4gICAgICBdLmpvaW4oXCIgJiYgXCIpXG4gICAgXVxuICB9XG5cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICByZWFkb25seSBmYWxsYmFja0J1Y2tldD86IElCdWNrZXQ7XG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBPcmlnaW5BY2Nlc3NJZGVudGl0eTtcbiAgcmVhZG9ubHkgYXBleERvbWFpbjogc3RyaW5nO1xuICByZWFkb25seSB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb246IEZ1bmN0aW9uO1xuICByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFSZWNvcmRzOiBBUmVjb3JkW107XG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ6IEJ1Y2tldERlcGxveW1lbnQ7XG4gIHJlYWRvbmx5IGZhbGxiYWNrRGVwbG95bWVudD86IEJ1Y2tldERlcGxveW1lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdlYnNpdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkb21haW5OYW1lcyA9IERvbWFpbk5hbWUuZnJvbVByb3BzKHByb3BzLmRvbWFpbk5hbWVzKTtcblxuICAgIGxldCBjZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5jZXJ0aWZpY2F0ZUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjZXJ0aWZpY2F0ZSA9IENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybih0aGlzLCBcIkNlcnRpZmljYXRlXCIsIHByb3BzLmNlcnRpZmljYXRlQXJuKVxuICAgIH0gZWxzZSBpZiAoZG9tYWluTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgY2VydGlmaWNhdGUgPSBuZXcgQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWVzWzBdLnRvU3RyaW5nKCksXG4gICAgICAgIHN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzOiBEb21haW5OYW1lLnRvU3RyaW5ncyhkb21haW5OYW1lcykuc2xpY2UoMSksXG4gICAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zTXVsdGlab25lKERvbWFpbk5hbWUudG9ab25lTWFwKHRoaXMsIGRvbWFpbk5hbWVzKSlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYnVja2V0ID0gcHJvcHMuYnVja2V0ID8/IG5ldyBCdWNrZXQodGhpcywgXCJCdWNrZXRcIiwge1xuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgICB9KTtcbiAgICB0aGlzLmZhbGxiYWNrQnVja2V0ID0gcHJvcHMuZmFsbGJhY2tCdWNrZXQ7XG5cbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIFwiQWNjZXNzXCIpO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZCh0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcbiAgICBpZiAodGhpcy5mYWxsYmFja0J1Y2tldCkge1xuICAgICAgdGhpcy5mYWxsYmFja0J1Y2tldC5ncmFudFJlYWQodGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eSk7XG4gICAgfVxuXG4gICAgdGhpcy5hcGV4RG9tYWluID0gZG9tYWluTmFtZXMubGVuZ3RoID4gMCA/IGRvbWFpbk5hbWVzWzBdLnRvU3RyaW5nKCkgOiBcIlwiO1xuXG4gICAgdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgXCJWaWV3ZXJSZXF1ZXN0RnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICB2YXIgaG9zdCA9IGV2ZW50LnJlcXVlc3QuaGVhZGVycy5ob3N0LnZhbHVlO1xuICB2YXIgdXJpID0gZXZlbnQucmVxdWVzdC51cmk7XG4gIHZhciBtYXRjaEFwZXggPSBNQVRDSF9BUEVYO1xuICBpZiAobWF0Y2hBcGV4ICYmIGhvc3QgIT09IFwiQVBFWF9ET01BSU5cIikge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiAzMDEsXG4gICAgICBzdGF0dXNEZXNjcmlwdGlvbjogXCJQZXJtYW5lbnRseSBtb3ZlZFwiLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcImxvY2F0aW9uXCI6IHsgXCJ2YWx1ZVwiOiBcImh0dHBzOi8vQVBFWF9ET01BSU5cIiArIHVyaSB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICh1cmkuZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgZXZlbnQucmVxdWVzdC51cmkgPSB1cmkgKyBcImluZGV4Lmh0bWxcIjtcbiAgfVxuICByZXR1cm4gZXZlbnQucmVxdWVzdDtcbn1gXG4gICAgICAgIC5yZXBsYWNlKC9BUEVYX0RPTUFJTi9nLCB0aGlzLmFwZXhEb21haW4pXG4gICAgICAgIC5yZXBsYWNlKC9NQVRDSF9BUEVYL2csIHRoaXMuYXBleERvbWFpbiAhPT0gXCJcIiAmJiAocHJvcHMucmVkaXJlY3RUb0FwZXhEb21haW4/P3RydWUpID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIpKVxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVja2V0T3JpZ2luID0gbmV3IFMzT3JpZ2luKHRoaXMuYnVja2V0LCB7XG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eVxuICAgIH0pO1xuXG4gICAgY29uc3QgZmFsbGJhY2tCdWNrZXRPcmlnaW4gPSB0aGlzLmZhbGxiYWNrQnVja2V0ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBuZXcgUzNPcmlnaW4odGhpcy5mYWxsYmFja0J1Y2tldCwge1xuICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRPcmlnaW4gPSBmYWxsYmFja0J1Y2tldE9yaWdpbiA9PT0gdW5kZWZpbmVkID8gYnVja2V0T3JpZ2luIDogbmV3IE9yaWdpbkdyb3VwKHtcbiAgICAgIHByaW1hcnlPcmlnaW46IGJ1Y2tldE9yaWdpbixcbiAgICAgIGZhbGxiYWNrT3JpZ2luOiBmYWxsYmFja0J1Y2tldE9yaWdpblxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IGRlZmF1bHRPcmlnaW4sXG4gICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmdW5jdGlvbjogdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24sXG4gICAgICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNUXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgZXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgICByZXNwb25zZUh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgICByZXNwb25zZVBhZ2VQYXRoOiBcIi80MDQuaHRtbFwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBodHRwVmVyc2lvbjogcHJvcHMuaHR0cFZlcnNpb24/P0h0dHBWZXJzaW9uLkhUVFAxXzEsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBwcm9wcy5taW5pbXVtUHJvdG9jb2xWZXJzaW9uPz9TZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdDogXCJpbmRleC5odG1sXCIsXG4gICAgICBjZXJ0aWZpY2F0ZSxcbiAgICAgIGRvbWFpbk5hbWVzOiBEb21haW5OYW1lLnRvU3RyaW5ncyhkb21haW5OYW1lcyksXG4gICAgICBlbmFibGVJcHY2OiB0cnVlLFxuICAgICAgcHJpY2VDbGFzczogcHJvcHMucHJpY2VDbGFzcz8/UHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDBcbiAgICB9KTtcblxuICAgIHRoaXMuZGlzdHJpYnV0aW9uVXJsID0gYGh0dHBzOi8vJHsodGhpcy5hcGV4RG9tYWluICE9IFwiXCIgPyB0aGlzLmFwZXhEb21haW4gOiB0aGlzLmRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Eb21haW5OYW1lKX1gXG5cbiAgICB0aGlzLmFSZWNvcmRzID0gW107XG5cbiAgICBmb3IgKGxldCBkb21haW5OYW1lUHJvcHMgb2YgcHJvcHMuZG9tYWluTmFtZXMgPz8gW10pIHtcbiAgICAgIGlmIChkb21haW5OYW1lUHJvcHMuY3JlYXRlUmVjb3JkID8/IHRydWUpIHtcbiAgICAgICAgbGV0IGRvbWFpbk5hbWUgPSBEb21haW5OYW1lLmZpbmREb21haW5OYW1lKGRvbWFpbk5hbWVQcm9wcywgZG9tYWluTmFtZXMpO1xuICAgICAgICBpZiAoZG9tYWluTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5hUmVjb3Jkcy5wdXNoKGRvbWFpbk5hbWUuY3JlYXRlQVJlY29yZCh0aGlzLFxuICAgICAgICAgICAgUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQ2xvdWRGcm9udFRhcmdldCh0aGlzLmRpc3RyaWJ1dGlvbikpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgYnVuZGxpbmdPcHRpb25zOiBCdW5kbGluZ09wdGlvbnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLkN1c3RvbSkge1xuICAgICAgaWYgKCFwcm9wcy5zb3VyY2VCdW5kbGluZ09wdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic291cmNlQnVuZGxpbmdPcHRpb25zIGlzIHJlcXVpcmVkIGlmIHNvdXJjZSB0eXBlIGlzIEN1c3RvbVwiKTtcbiAgICAgIH1cbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9uc1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLlN0YXRpYykge1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIFN0YXRpY1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc291cmNlVHlwZSA9PT0gU291cmNlVHlwZS5IdWdvKSB7XG4gICAgICBidW5kbGluZ09wdGlvbnMgPSBXZWJzaXRlLkhVR09fQlVORExJTkdfT1BUSU9OU1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIEh1Z29cIik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wcy5zb3VyY2VUeXBlID09PSBTb3VyY2VUeXBlLk5wbURpc3QpIHtcbiAgICAgIGJ1bmRsaW5nT3B0aW9ucyA9IFdlYnNpdGUuTlBNX0RJU1RfQlVORExJTkdfT1BUSU9OU1xuICAgICAgaWYgKHByb3BzLnNvdXJjZUJ1bmRsaW5nT3B0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIHNvdXJjZUJ1bmRsaW5nT3B0aW9ucyB3aXRoIHNvdXJjZSB0eXBlIE5wbURpc3RcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlID0gU291cmNlLmFzc2V0KHByb3BzLnNvdXJjZURpcmVjdG9yeSwge1xuICAgICAgYnVuZGxpbmc6IGJ1bmRsaW5nT3B0aW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50ID0gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgXCJBc3NldHNcIiwge1xuICAgICAgc291cmNlczogW3NvdXJjZV0sXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBkaXN0cmlidXRpb246IHRoaXMuZGlzdHJpYnV0aW9uLFxuICAgICAgY2FjaGVDb250cm9sOiBbQ2FjaGVDb250cm9sLm1heEFnZShwcm9wcy5tYXhBZ2U/P0R1cmF0aW9uLm1pbnV0ZXMoNjApKV0sXG4gICAgICBwcnVuZTogZmFsc2VcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZhbGxiYWNrQnVja2V0KSB7XG4gICAgICB0aGlzLmZhbGxiYWNrRGVwbG95bWVudCA9IG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRmFsbGJhY2tBc3NldHNcIiwge1xuICAgICAgICBzb3VyY2VzOiBbc291cmNlXSxcbiAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuZmFsbGJhY2tCdWNrZXQsXG4gICAgICAgIGNhY2hlQ29udHJvbDogW0NhY2hlQ29udHJvbC5tYXhBZ2UocHJvcHMubWF4QWdlPz9EdXJhdGlvbi5taW51dGVzKDYwKSldLFxuICAgICAgICBwcnVuZTogZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("../index");
4
- const assertions_1 = require("aws-cdk-lib/assertions");
5
- const test_helper_1 = require("../../test-helper");
6
- const aws_route53_1 = require("aws-cdk-lib/aws-route53");
7
- test("Hugo Website Test", () => {
8
- const stack = test_helper_1.TestHelper.stack();
9
- new index_1.Website(stack, 'TestWebsite', {
10
- sourceType: index_1.SourceType.Hugo,
11
- sourceDirectory: test_helper_1.TestHelper.resolveTestFiles("hugo-website")
12
- });
13
- const template = assertions_1.Template.fromStack(stack);
14
- template.hasResourceProperties("AWS::CloudFront::Distribution", {});
15
- });
16
- test("ARecord Created for Website", () => {
17
- const stack = test_helper_1.TestHelper.stack();
18
- new index_1.Website(stack, 'TestWebsite', {
19
- sourceType: index_1.SourceType.Hugo,
20
- sourceDirectory: test_helper_1.TestHelper.resolveTestFiles("hugo-website"),
21
- certificateArn: "arn:aws:acm:us-east-1:123456789012:certificate/XXXX",
22
- domainNames: [
23
- {
24
- prefix: "www",
25
- // TODO In the fugure need to figure out how to mock lookups
26
- zone: new aws_route53_1.HostedZone(stack, "example-com", { zoneName: "example.com" })
27
- }
28
- ]
29
- });
30
- const template = assertions_1.Template.fromStack(stack);
31
- // console.log(template.toJSON());
32
- // TestHelper.logResources(template, "AWS::Route53::RecordSet");
33
- template.hasResourceProperties("AWS::Route53::RecordSet", {});
34
- });
35
- // TODO We need to speed this up
36
- // test("Npm Dist Website Test", () => {
37
- // const stack = TestHelper.stack();
38
- // new Website(stack, "TestWebsite", {
39
- // sourceType: SourceType.NpmDist,
40
- // sourceDirectory: TestHelper.resolveTestFiles("angular-website")
41
- // });
42
- // const template = Template.fromStack(stack);
43
- // template.hasResourceProperties("AWS::CloudFront::Distribution", {});
44
- // });
45
- // TODO Need to fix
46
- // test("Website Certificate Test", () => {
47
- // const stack = TestHelper.stack();
48
- // new Website(stack, "TestWebsite", {
49
- // sourceType: SourceType.Hugo,
50
- // sourceDirectory: TestHelper.resolveTestFiles("hugo-website"),
51
- // domainNames: [
52
- // new DomainName("test", "example.com"),
53
- // new DomainName("test2", "example.com")
54
- // ]
55
- // });
56
- // const template = Template.fromStack(stack);
57
- // console.log(template.toJSON());
58
- // // TestHelper.logResources()
59
- // });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2Vic2l0ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsb0NBQTZDO0FBQzdDLHVEQUFnRDtBQUNoRCxtREFBNkM7QUFDN0MseURBQW1EO0FBRW5ELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDN0IsTUFBTSxLQUFLLEdBQUcsd0JBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxJQUFJLGVBQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ2hDLFVBQVUsRUFBRSxrQkFBVSxDQUFDLElBQUk7UUFDM0IsZUFBZSxFQUFFLHdCQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0tBQzdELENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQywrQkFBK0IsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7SUFDdkMsTUFBTSxLQUFLLEdBQUcsd0JBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxJQUFJLGVBQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ2hDLFVBQVUsRUFBRSxrQkFBVSxDQUFDLElBQUk7UUFDM0IsZUFBZSxFQUFFLHdCQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO1FBQzVELGNBQWMsRUFBRSxxREFBcUQ7UUFDckUsV0FBVyxFQUFFO1lBQ1g7Z0JBQ0UsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsNERBQTREO2dCQUM1RCxJQUFJLEVBQUUsSUFBSSx3QkFBVSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBQyxRQUFRLEVBQUUsYUFBYSxFQUFDLENBQUM7YUFDdEU7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLGtDQUFrQztJQUNsQyxnRUFBZ0U7SUFDaEUsUUFBUSxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsZ0NBQWdDO0FBQ2hDLHdDQUF3QztBQUN4QyxzQ0FBc0M7QUFDdEMsd0NBQXdDO0FBQ3hDLHNDQUFzQztBQUN0QyxzRUFBc0U7QUFDdEUsUUFBUTtBQUNSLGdEQUFnRDtBQUNoRCx5RUFBeUU7QUFDekUsTUFBTTtBQUVOLG1CQUFtQjtBQUNuQiwyQ0FBMkM7QUFDM0Msc0NBQXNDO0FBQ3RDLHdDQUF3QztBQUN4QyxtQ0FBbUM7QUFDbkMsb0VBQW9FO0FBQ3BFLHFCQUFxQjtBQUNyQiwrQ0FBK0M7QUFDL0MsK0NBQStDO0FBQy9DLFFBQVE7QUFDUixRQUFRO0FBQ1IsZ0RBQWdEO0FBQ2hELG9DQUFvQztBQUNwQyxpQ0FBaUM7QUFDakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U291cmNlVHlwZSwgV2Vic2l0ZX0gZnJvbSBcIi4uL2luZGV4XCI7XG5pbXBvcnQge1RlbXBsYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHtUZXN0SGVscGVyfSBmcm9tIFwiLi4vLi4vdGVzdC1oZWxwZXJcIjtcbmltcG9ydCB7SG9zdGVkWm9uZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5cbnRlc3QoXCJIdWdvIFdlYnNpdGUgVGVzdFwiLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuICBuZXcgV2Vic2l0ZShzdGFjaywgJ1Rlc3RXZWJzaXRlJywge1xuICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuSHVnbyxcbiAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImh1Z28td2Vic2l0ZVwiKVxuICB9KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7fSk7XG59KTtcblxudGVzdChcIkFSZWNvcmQgQ3JlYXRlZCBmb3IgV2Vic2l0ZVwiLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuICBuZXcgV2Vic2l0ZShzdGFjaywgJ1Rlc3RXZWJzaXRlJywge1xuICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuSHVnbyxcbiAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImh1Z28td2Vic2l0ZVwiKSxcbiAgICBjZXJ0aWZpY2F0ZUFybjogXCJhcm46YXdzOmFjbTp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOmNlcnRpZmljYXRlL1hYWFhcIixcbiAgICBkb21haW5OYW1lczogW1xuICAgICAge1xuICAgICAgICBwcmVmaXg6IFwid3d3XCIsXG4gICAgICAgIC8vIFRPRE8gSW4gdGhlIGZ1Z3VyZSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIG1vY2sgbG9va3Vwc1xuICAgICAgICB6b25lOiBuZXcgSG9zdGVkWm9uZShzdGFjaywgXCJleGFtcGxlLWNvbVwiLCB7em9uZU5hbWU6IFwiZXhhbXBsZS5jb21cIn0pXG4gICAgICB9XG4gICAgXVxuICB9KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICAvLyBjb25zb2xlLmxvZyh0ZW1wbGF0ZS50b0pTT04oKSk7XG4gIC8vIFRlc3RIZWxwZXIubG9nUmVzb3VyY2VzKHRlbXBsYXRlLCBcIkFXUzo6Um91dGU1Mzo6UmVjb3JkU2V0XCIpO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlJvdXRlNTM6OlJlY29yZFNldFwiLCB7fSk7XG59KTtcblxuLy8gVE9ETyBXZSBuZWVkIHRvIHNwZWVkIHRoaXMgdXBcbi8vIHRlc3QoXCJOcG0gRGlzdCBXZWJzaXRlIFRlc3RcIiwgKCkgPT4ge1xuLy8gICBjb25zdCBzdGFjayA9IFRlc3RIZWxwZXIuc3RhY2soKTtcbi8vICAgbmV3IFdlYnNpdGUoc3RhY2ssIFwiVGVzdFdlYnNpdGVcIiwge1xuLy8gICAgIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUuTnBtRGlzdCxcbi8vICAgICBzb3VyY2VEaXJlY3Rvcnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcImFuZ3VsYXItd2Vic2l0ZVwiKVxuLy8gICB9KTtcbi8vICAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuLy8gICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7fSk7XG4vLyB9KTtcblxuLy8gVE9ETyBOZWVkIHRvIGZpeFxuLy8gdGVzdChcIldlYnNpdGUgQ2VydGlmaWNhdGUgVGVzdFwiLCAoKSA9PiB7XG4vLyAgIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuLy8gICBuZXcgV2Vic2l0ZShzdGFjaywgXCJUZXN0V2Vic2l0ZVwiLCB7XG4vLyAgICAgc291cmNlVHlwZTogU291cmNlVHlwZS5IdWdvLFxuLy8gICAgIHNvdXJjZURpcmVjdG9yeTogVGVzdEhlbHBlci5yZXNvbHZlVGVzdEZpbGVzKFwiaHVnby13ZWJzaXRlXCIpLFxuLy8gICAgIGRvbWFpbk5hbWVzOiBbXG4vLyAgICAgICBuZXcgRG9tYWluTmFtZShcInRlc3RcIiwgXCJleGFtcGxlLmNvbVwiKSxcbi8vICAgICAgIG5ldyBEb21haW5OYW1lKFwidGVzdDJcIiwgXCJleGFtcGxlLmNvbVwiKVxuLy8gICAgIF1cbi8vICAgfSk7XG4vLyAgIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbi8vICAgY29uc29sZS5sb2codGVtcGxhdGUudG9KU09OKCkpO1xuLy8gICAvLyBUZXN0SGVscGVyLmxvZ1Jlc291cmNlcygpXG4vLyB9KTtcbiJdfQ==
File without changes