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.
- package/aws-cdk/lib/extended-construct.d.ts +2 -1
- package/aws-cdk/lib/extended-construct.js +2 -2
- package/aws-cdk/lib/extended-stack.d.ts +2 -1
- package/aws-cdk/lib/extended-stack.js +2 -2
- package/aws-cdk/lib/extended-stage.d.ts +2 -1
- package/aws-cdk/lib/extended-stage.js +2 -2
- package/{aws-website → aws-patterns-website}/lib/website.d.ts +11 -5
- package/aws-patterns-website/lib/website.js +188 -0
- package/aws-patterns-website/lib/website.test.js +60 -0
- package/aws-s3/lib/cloud-front-bucket.d.ts +3 -2
- package/aws-s3/lib/cloud-front-bucket.js +5 -4
- package/index.d.ts +3 -3
- package/index.js +4 -4
- package/package.json +4 -4
- package/aws-website/lib/website.js +0 -187
- package/aws-website/lib/website.test.js +0 -60
- /package/{aws-website → aws-patterns-website}/index.d.ts +0 -0
- /package/{aws-website → aws-patterns-website}/index.js +0 -0
- /package/{aws-website → aws-patterns-website}/lib/index.d.ts +0 -0
- /package/{aws-website → aws-patterns-website}/lib/index.js +0 -0
- /package/{aws-website → aws-patterns-website}/lib/website.test.d.ts +0 -0
|
@@ -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,
|
|
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,
|
|
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,
|
|
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
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0NBQXFFO0FBQ3JFLCtEQVVvQztBQUNwQywrRUFBeUU7QUFDekUsK0VBQW9HO0FBQ3BHLHlEQUE4RDtBQUM5RCx5RUFBaUU7QUFDakUscUVBQXFGO0FBQ3JGLDZDQUFrRjtBQUNsRixtREFBOEQ7QUFDOUQsMkNBQXNGO0FBQ3RGLDZDQUErQztBQUUvQyxJQUFZLFVBS1g7QUFMRCxXQUFZLFVBQVU7SUFDcEIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUtyQjtBQTZGRCxNQUFhLE9BQVEsU0FBUSwyQkFBaUI7SUF1QzVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7O1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUMsWUFBWSxFQUFFLHNCQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMEJBQWUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUUxRixNQUFNLFdBQVcsR0FBRyx3QkFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUQsSUFBSSxXQUFXLEdBQTZCLFNBQVMsQ0FBQztRQUN0RCxJQUFJLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ3RDLFdBQVcsR0FBRyxvQ0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1NBQ3hGO2FBQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQyxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7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LENBQUMsTUFBTSxDQUFDO0tBQ2Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0J1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgSUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtcbiAgRGlzdHJpYnV0aW9uLFxuICBGdW5jdGlvbixcbiAgRnVuY3Rpb25Db2RlLFxuICBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgSHR0cFZlcnNpb24sXG4gIE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICBQcmljZUNsYXNzLFxuICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7T3JpZ2luR3JvdXAsIFMzT3JpZ2lufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZSwgQ2VydGlmaWNhdGVWYWxpZGF0aW9uLCBJQ2VydGlmaWNhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge0FSZWNvcmQsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgU291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7QnVuZGxpbmdPcHRpb25zLCBEb2NrZXJJbWFnZSwgRHVyYXRpb24sIFJlbW92YWxQb2xpY3l9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtEb21haW5OYW1lLCBEb21haW5OYW1lUHJvcHN9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdCwgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcywgU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vYXdzLWNka1wiO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi90cnVlbWFya1wiO1xuXG5leHBvcnQgZW51bSBTb3VyY2VUeXBlIHtcbiAgQ3VzdG9tID0gXCJDdXN0b21cIixcbiAgSHVnbyA9IFwiSHVnb1wiLFxuICBOcG1EaXN0ID0gXCJOcG1EaXN0XCIsXG4gIFN0YXRpYyA9IFwiU3RhdGljXCJcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBXZWJzaXRlRG9tYWluTmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlRG9tYWluTmFtZVByb3BzIGV4dGVuZHMgRG9tYWluTmFtZVByb3BzIHtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjcmVhdGUgYSBSb3V0ZTUzIHJlY29yZCBmb3IgdGhpcyBkb21haW4gbmFtZS4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVJlY29yZD86IGJvb2xlYW47XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlUHJvcHMgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdFByb3BzIHtcblxuICAvKipcbiAgICogQnVja2V0IHRvIHVzZSB0byBzdG9yZSB3ZWJzaXRlIGNvbnRlbnQuIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldD86IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIEJ1Y2tldCB0byB1c2UgaWYgdGhlIHByaW1hcnkgYnVja2V0IGZhaWxzLiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkIGEgZmFsbGJhY2sgaXMgbm90IHNldHVwLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tCdWNrZXQ/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
|
|
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
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|