truemark-cdk-lib 0.0.15 → 0.0.16-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./lib"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ export * from "./standard-bucket";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./standard-bucket"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZC1idWNrZXRcIjtcbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { Bucket } from "aws-cdk-lib/aws-s3";
2
+ import { Construct } from "constructs";
3
+ import * as kms from "aws-cdk-lib/aws-kms";
4
+ import { RemovalPolicy } from "aws-cdk-lib";
5
+ import { BlockPublicAccess } from "aws-cdk-lib/aws-s3/lib/bucket";
6
+ export interface StandardBucketProps {
7
+ /**
8
+ * Key to be used for encryption. If left empty, encryption will be S3_MANAGED.
9
+ */
10
+ readonly encryptionKey?: kms.IKey;
11
+ /**
12
+ * Removal policy for this bucket.
13
+ *
14
+ * @default RemovalPolicy.DESTROY
15
+ */
16
+ readonly removalPolicy?: RemovalPolicy;
17
+ /**
18
+ * Whether this bucket should have versioning turned on or not.
19
+ *
20
+ * @default false
21
+ */
22
+ readonly versioned?: boolean;
23
+ /**
24
+ * Grants public read access to all objects in the bucket. Similar to calling bucket.grantPublicAccess()
25
+ *
26
+ * @default false
27
+ */
28
+ readonly publicReadAccess?: boolean;
29
+ /**
30
+ * The block public access configuration of this bucket.
31
+ *
32
+ * @default BlockPublicAccess.BLOCK_ALL
33
+ */
34
+ readonly blockPublicAccess?: BlockPublicAccess;
35
+ }
36
+ export declare class StandardBucket extends Bucket {
37
+ constructor(scope: Construct, id: string, props?: StandardBucketProps);
38
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardBucket = void 0;
4
+ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const bucket_1 = require("aws-cdk-lib/aws-s3/lib/bucket");
7
+ class StandardBucket extends aws_s3_1.Bucket {
8
+ constructor(scope, id, props) {
9
+ var _a, _b, _c, _d;
10
+ super(scope, id, {
11
+ ...props,
12
+ encryption: (props === null || props === void 0 ? void 0 : props.encryptionKey) ? aws_s3_1.BucketEncryption.KMS : aws_s3_1.BucketEncryption.S3_MANAGED,
13
+ removalPolicy: (_a = props === null || props === void 0 ? void 0 : props.removalPolicy) !== null && _a !== void 0 ? _a : aws_cdk_lib_1.RemovalPolicy.DESTROY,
14
+ autoDeleteObjects: (props === null || props === void 0 ? void 0 : props.removalPolicy) === undefined || props.removalPolicy !== aws_cdk_lib_1.RemovalPolicy.RETAIN,
15
+ versioned: (_b = props === null || props === void 0 ? void 0 : props.versioned) !== null && _b !== void 0 ? _b : false,
16
+ publicReadAccess: (_c = props === null || props === void 0 ? void 0 : props.publicReadAccess) !== null && _c !== void 0 ? _c : false,
17
+ blockPublicAccess: (_d = props === null || props === void 0 ? void 0 : props.blockPublicAccess) !== null && _d !== void 0 ? _d : bucket_1.BlockPublicAccess.BLOCK_ALL,
18
+ });
19
+ }
20
+ }
21
+ exports.StandardBucket = StandardBucket;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhcmQtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUE0RDtBQUc1RCw2Q0FBMEM7QUFDMUMsMERBQWdFO0FBcUNoRSxNQUFhLGNBQWUsU0FBUSxlQUFNO0lBRXhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsVUFBVSxFQUFFLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGFBQWEsRUFBQSxDQUFDLENBQUEseUJBQWdCLENBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSx5QkFBZ0IsQ0FBQyxVQUFVO1lBQ2pGLGFBQWEsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsYUFBYSxtQ0FBRSwyQkFBYSxDQUFDLE9BQU87WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsYUFBYSxNQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLDJCQUFhLENBQUMsTUFBTTtZQUNyRyxTQUFTLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsbUNBQUUsS0FBSztZQUNsQyxnQkFBZ0IsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLG1DQUFFLEtBQUs7WUFDaEQsaUJBQWlCLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGlCQUFpQixtQ0FBRSwwQkFBaUIsQ0FBQyxTQUFTO1NBQ3pFLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWJELHdDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb259IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMga21zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQge1JlbW92YWxQb2xpY3l9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtCbG9ja1B1YmxpY0FjY2Vzc30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy9saWIvYnVja2V0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBLZXkgdG8gYmUgdXNlZCBmb3IgZW5jcnlwdGlvbi4gSWYgbGVmdCBlbXB0eSwgZW5jcnlwdGlvbiB3aWxsIGJlIFMzX01BTkFHRUQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFJlbW92YWwgcG9saWN5IGZvciB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGJ1Y2tldCBzaG91bGQgaGF2ZSB2ZXJzaW9uaW5nIHR1cm5lZCBvbiBvciBub3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcHVibGljIHJlYWQgYWNjZXNzIHRvIGFsbCBvYmplY3RzIGluIHRoZSBidWNrZXQuIFNpbWlsYXIgdG8gY2FsbGluZyBidWNrZXQuZ3JhbnRQdWJsaWNBY2Nlc3MoKVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljUmVhZEFjY2Vzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBibG9jayBwdWJsaWMgYWNjZXNzIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBidWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTFxuICAgKi9cbiAgcmVhZG9ubHkgYmxvY2tQdWJsaWNBY2Nlc3M/OiBCbG9ja1B1YmxpY0FjY2Vzc1xufVxuXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRCdWNrZXQgZXh0ZW5kcyBCdWNrZXQge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhbmRhcmRCdWNrZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBlbmNyeXB0aW9uOiBwcm9wcz8uZW5jcnlwdGlvbktleT9CdWNrZXRFbmNyeXB0aW9uLktNUzpCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcz8ucmVtb3ZhbFBvbGljeT8/UmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHByb3BzPy5yZW1vdmFsUG9saWN5ID09PSB1bmRlZmluZWQgfHwgcHJvcHMucmVtb3ZhbFBvbGljeSAhPT0gUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgICB2ZXJzaW9uZWQ6IHByb3BzPy52ZXJzaW9uZWQ/P2ZhbHNlLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogcHJvcHM/LnB1YmxpY1JlYWRBY2Nlc3M/P2ZhbHNlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHByb3BzPy5ibG9ja1B1YmxpY0FjY2Vzcz8/QmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./lib"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export declare class DomainName {
2
+ prefix: string;
3
+ zone: string;
4
+ constructor(prefix: string, zone: string);
5
+ toString(): string;
6
+ toIdentifier(): string;
7
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomainName = void 0;
4
+ class DomainName {
5
+ constructor(prefix, zone) {
6
+ this.prefix = prefix;
7
+ this.zone = zone;
8
+ }
9
+ toString() {
10
+ return (this.prefix == '' ? '' : this.prefix + '.') + this.zone;
11
+ }
12
+ toIdentifier() {
13
+ return this.toString().replace('.', '-');
14
+ }
15
+ }
16
+ exports.DomainName = DomainName;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkb21haW4tbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLFVBQVU7SUFJckIsWUFBWSxNQUFjLEVBQUUsSUFBWTtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQWhCRCxnQ0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRG9tYWluTmFtZSB7XG4gIHByZWZpeDogc3RyaW5nXG4gIHpvbmU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHByZWZpeDogc3RyaW5nLCB6b25lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByZWZpeCA9IHByZWZpeDtcbiAgICB0aGlzLnpvbmUgPSB6b25lO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuICh0aGlzLnByZWZpeCA9PSAnJyA/ICcnIDogdGhpcy5wcmVmaXggKyAnLicpICsgdGhpcy56b25lO1xuICB9XG5cbiAgdG9JZGVudGlmaWVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsICctJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from "./domain-name";
2
+ export * from "./website";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./domain-name"), exports);
14
+ __exportStar(require("./website"), exports);
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxnREFBOEI7QUFDOUIsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZG9tYWluLW5hbWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3dlYnNpdGVcIjtcbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { Construct } from "constructs";
2
+ import { DomainName } from "./domain-name";
3
+ import { IBucket } from "aws-cdk-lib/aws-s3";
4
+ import { OriginAccessIdentity, Function, Distribution, HttpVersion, SecurityPolicyProtocol, PriceClass } from "aws-cdk-lib/aws-cloudfront";
5
+ import { ARecord } from "aws-cdk-lib/aws-route53";
6
+ import { BucketDeployment } from "aws-cdk-lib/aws-s3-deployment";
7
+ import { Duration } from "aws-cdk-lib";
8
+ export interface WebsiteProps {
9
+ /**
10
+ * Bucket to use to store website content. If one is not provided, one will be generated.
11
+ */
12
+ readonly bucket?: IBucket;
13
+ /**
14
+ * The ARN to the ACM Certificate to use on the CloudFront distribution. If one is not
15
+ * provided and domainNames is populated, one will be generated.
16
+ */
17
+ readonly certificateArn?: string;
18
+ /**
19
+ * The domain names to be serviced. The first domain name in the list is treated as the apex domain.
20
+ */
21
+ readonly domainNames?: DomainName[];
22
+ /**
23
+ * Price class for the CloudFront distribution.
24
+ *
25
+ * @default PriceClass.PRICE_CLASS_100
26
+ */
27
+ readonly priceClass?: PriceClass;
28
+ /**
29
+ * Minimum protocol version to allow.
30
+ *
31
+ * @default SecurityPolicyProtocol.TLS_V1_2_2021,
32
+ */
33
+ readonly minimumProtocolVersion?: SecurityPolicyProtocol;
34
+ /**
35
+ * Minimum HTTP version to allow.
36
+ *
37
+ * @default HttpVersion.HTTP1_1
38
+ */
39
+ readonly httpVersion?: HttpVersion;
40
+ /**
41
+ * Cache-control max age.
42
+ *
43
+ * @default Duration.minutes(60)
44
+ */
45
+ readonly maxAge?: Duration;
46
+ /**
47
+ * The directory where the website sources are located.
48
+ */
49
+ readonly websiteSourceDirectory: string;
50
+ }
51
+ export declare class Website extends Construct {
52
+ readonly bucket: IBucket;
53
+ readonly originAccessIdentity: OriginAccessIdentity;
54
+ readonly apexDomain: string;
55
+ readonly viewerRequestFunction: Function;
56
+ readonly distribution: Distribution;
57
+ readonly distributionUrl: string;
58
+ readonly aRecords: ARecord[];
59
+ readonly deployment: BucketDeployment;
60
+ constructor(scope: Construct, id: string, props: WebsiteProps);
61
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Website = void 0;
4
+ const constructs_1 = require("constructs");
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_cdk_lib_2 = require("aws-cdk-lib");
13
+ const aws_s3_1 = require("../../aws-s3");
14
+ class Website extends constructs_1.Construct {
15
+ constructor(scope, id, props) {
16
+ var _a, _b, _c, _d, _e, _f, _g;
17
+ super(scope, id);
18
+ this.bucket = (_a = props.bucket) !== null && _a !== void 0 ? _a : new aws_s3_1.StandardBucket(this, 'Bucket');
19
+ this.originAccessIdentity = new aws_cloudfront_1.OriginAccessIdentity(this, 'Access');
20
+ this.bucket.grantRead(this.originAccessIdentity);
21
+ this.apexDomain = ((_b = props === null || props === void 0 ? void 0 : props.domainNames) === null || _b === void 0 ? void 0 : _b[0].toString()) || '';
22
+ this.viewerRequestFunction = new aws_cloudfront_1.Function(this, 'ViewerRequestFunction', {
23
+ code: aws_cloudfront_1.FunctionCode.fromInline(`
24
+ function handler(event) {
25
+ var host = event.request.headers.host.value;
26
+ var uri = event.request.uri;
27
+ var matchApex = MATCH_APEX;
28
+ if (matchApex && host !== 'APEX_DOMAIN') {
29
+ return {
30
+ statusCode: 301,
31
+ statusDescription: 'Permanently moved',
32
+ headers: {
33
+ "location": { "value": "https://APEX_DOMAIN" + uri }
34
+ }
35
+ }
36
+ }
37
+ if (uri.endsWith('/')) {
38
+ event.request.uri = uri + 'index.html';
39
+ }
40
+ return event.request;
41
+ }`
42
+ .replace(/APEX_DOMAIN/g, this.apexDomain)
43
+ .replace(/MATCH_APEX/g, this.apexDomain !== '' ? 'true' : 'false'))
44
+ });
45
+ this.distribution = new aws_cloudfront_1.Distribution(this, 'Distribution', {
46
+ defaultBehavior: {
47
+ origin: new aws_cloudfront_origins_1.S3Origin(this.bucket, {
48
+ originAccessIdentity: this.originAccessIdentity
49
+ }),
50
+ viewerProtocolPolicy: aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
51
+ functionAssociations: [
52
+ {
53
+ function: this.viewerRequestFunction,
54
+ eventType: aws_cloudfront_1.FunctionEventType.VIEWER_REQUEST
55
+ }
56
+ ]
57
+ },
58
+ errorResponses: [
59
+ {
60
+ httpStatus: 404,
61
+ responseHttpStatus: 404,
62
+ responsePagePath: '/404.html'
63
+ }
64
+ ],
65
+ httpVersion: (_c = props.httpVersion) !== null && _c !== void 0 ? _c : aws_cloudfront_1.HttpVersion.HTTP1_1,
66
+ minimumProtocolVersion: (_d = props.minimumProtocolVersion) !== null && _d !== void 0 ? _d : aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021,
67
+ defaultRootObject: "index.html",
68
+ certificate: (props === null || props === void 0 ? void 0 : props.certificateArn) == undefined ? undefined : aws_certificatemanager_1.Certificate.fromCertificateArn(this, 'Certificate', props.certificateArn),
69
+ domainNames: (_e = props === null || props === void 0 ? void 0 : props.domainNames) === null || _e === void 0 ? void 0 : _e.map((domainName) => domainName.toString()),
70
+ enableIpv6: true,
71
+ priceClass: (_f = props.priceClass) !== null && _f !== void 0 ? _f : aws_cloudfront_1.PriceClass.PRICE_CLASS_100
72
+ });
73
+ this.distributionUrl = `https://${(this.apexDomain != '' ? this.apexDomain : this.distribution.distributionDomainName)}`;
74
+ this.aRecords = [];
75
+ if ((props === null || props === void 0 ? void 0 : props.domainNames) != undefined && props.domainNames.length > 0) {
76
+ for (let domainName of props.domainNames) {
77
+ let zone = aws_route53_1.HostedZone.fromLookup(this, 'zone-' + domainName.toIdentifier(), {
78
+ domainName: domainName.zone
79
+ });
80
+ this.aRecords.push(new aws_route53_1.ARecord(this, domainName.toIdentifier(), {
81
+ zone: zone,
82
+ recordName: domainName.toString(),
83
+ target: aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.CloudFrontTarget(this.distribution))
84
+ }));
85
+ }
86
+ }
87
+ this.deployment = new aws_s3_deployment_1.BucketDeployment(this, 'Assets', {
88
+ sources: [
89
+ aws_s3_deployment_1.Source.asset(props.websiteSourceDirectory, {
90
+ bundling: {
91
+ image: aws_cdk_lib_2.DockerImage.fromRegistry('klakegg/hugo:latest-ext'),
92
+ command: [
93
+ '-d', '/asset-output'
94
+ ]
95
+ }
96
+ })
97
+ ],
98
+ destinationBucket: this.bucket,
99
+ distribution: this.distribution,
100
+ cacheControl: [aws_s3_deployment_1.CacheControl.maxAge((_g = props.maxAge) !== null && _g !== void 0 ? _g : aws_cdk_lib_1.Duration.minutes(60))],
101
+ prune: false
102
+ });
103
+ }
104
+ }
105
+ exports.Website = Website;
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXFDO0FBR3JDLCtEQU1vQztBQUNwQywrRUFBNEQ7QUFDNUQsK0VBQStEO0FBQy9ELHlEQUEwRTtBQUMxRSx5RUFBaUU7QUFDakUscUVBQXFGO0FBQ3JGLDZDQUFxQztBQUNyQyw2Q0FBd0M7QUFDeEMseUNBQTRDO0FBc0Q1QyxNQUFhLE9BQVEsU0FBUSxzQkFBUztJQVdwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1COztRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxNQUFNLFNBQUcsS0FBSyxDQUFDLE1BQU0sbUNBQUUsSUFBSSx1QkFBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxxQ0FBb0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxXQUFXLDBDQUFHLENBQUMsRUFBRSxRQUFRLE9BQU0sRUFBRSxDQUFDO1FBRTNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLHlCQUFRLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ3ZFLElBQUksRUFBRSw2QkFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0JsQztpQkFDTyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQ3hDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFD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QUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRTtvQkFDekMsUUFBUSxFQUFFO3dCQUNSLEtBQUssRUFBRSx5QkFBVyxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQzt3QkFDMUQsT0FBTyxFQUFFOzRCQUNQLElBQUksRUFBRSxlQUFlO3lCQUN0QjtxQkFDRjtpQkFDRixDQUFDO2FBQ0g7WUFDRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUM5QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsWUFBWSxFQUFFLENBQUMsZ0NBQVksQ0FBQyxNQUFNLE9BQUMsS0FBSyxDQUFDLE1BQU0sbUNBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RSxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVHRCwwQkE0R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7RG9tYWluTmFtZX0gZnJvbSBcIi4vZG9tYWluLW5hbWVcIjtcbmltcG9ydCB7SUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtcbiAgRnVuY3Rpb25Db2RlLFxuICBPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgRnVuY3Rpb24sXG4gIERpc3RyaWJ1dGlvbixcbiAgVmlld2VyUHJvdG9jb2xQb2xpY3ksIEZ1bmN0aW9uRXZlbnRUeXBlLCBIdHRwVmVyc2lvbiwgU2VjdXJpdHlQb2xpY3lQcm90b2NvbCwgUHJpY2VDbGFzc1xufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7UzNPcmlnaW59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge0NlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtBUmVjb3JkLCBIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtDbG91ZEZyb250VGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtCdWNrZXREZXBsb3ltZW50LCBDYWNoZUNvbnRyb2wsIFNvdXJjZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQge0R1cmF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7RG9ja2VySW1hZ2V9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtTdGFuZGFyZEJ1Y2tldH0gZnJvbSBcIi4uLy4uL2F3cy1zM1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnNpdGVQcm9wcyB7XG5cbiAgLyoqXG4gICAqIEJ1Y2tldCB0byB1c2UgdG8gc3RvcmUgd2Vic2l0ZSBjb250ZW50LiBJZiBvbmUgaXMgbm90IHByb3ZpZGVkLCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIHRvIHRoZSBBQ00gQ2VydGlmaWNhdGUgdG8gdXNlIG9uIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi4gSWYgb25lIGlzIG5vdFxuICAgKiBwcm92aWRlZCBhbmQgZG9tYWluTmFtZXMgaXMgcG9wdWxhdGVkLCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWVzIHRvIGJlIHNlcnZpY2VkLiBUaGUgZmlyc3QgZG9tYWluIG5hbWUgaW4gdGhlIGxpc3QgaXMgdHJlYXRlZCBhcyB0aGUgYXBleCBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lcz86IERvbWFpbk5hbWVbXVxuXG4gIC8qKlxuICAgKiBQcmljZSBjbGFzcyBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBQcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IFByaWNlQ2xhc3NcblxuICAvKipcbiAgICogTWluaW11bSBwcm90b2NvbCB2ZXJzaW9uIHRvIGFsbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEsXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uPzogU2VjdXJpdHlQb2xpY3lQcm90b2NvbDtcblxuICAvKipcbiAgICogTWluaW11bSBIVFRQIHZlcnNpb24gdG8gYWxsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IEh0dHBWZXJzaW9uLkhUVFAxXzFcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBWZXJzaW9uPzogSHR0cFZlcnNpb247XG5cbiAgLyoqXG4gICAqIENhY2hlLWNvbnRyb2wgbWF4IGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg2MClcbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSB3ZWJzaXRlIHNvdXJjZXMgYXJlIGxvY2F0ZWQuXG4gICAqL1xuICByZWFkb25seSB3ZWJzaXRlU291cmNlRGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJzaXRlIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBPcmlnaW5BY2Nlc3NJZGVudGl0eTtcbiAgcmVhZG9ubHkgYXBleERvbWFpbjogc3RyaW5nO1xuICByZWFkb25seSB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb246IEZ1bmN0aW9uO1xuICByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFSZWNvcmRzOiBBUmVjb3JkW107XG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ6IEJ1Y2tldERlcGxveW1lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdlYnNpdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldD8/bmV3IFN0YW5kYXJkQnVja2V0KHRoaXMsICdCdWNrZXQnKTtcblxuICAgIHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkgPSBuZXcgT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ0FjY2VzcycpO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZCh0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcblxuICAgIHRoaXMuYXBleERvbWFpbiA9IHByb3BzPy5kb21haW5OYW1lcz8uWzBdLnRvU3RyaW5nKCkgfHwgJyc7XG5cbiAgICB0aGlzLnZpZXdlclJlcXVlc3RGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbih0aGlzLCAnVmlld2VyUmVxdWVzdEZ1bmN0aW9uJywge1xuICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICB2YXIgaG9zdCA9IGV2ZW50LnJlcXVlc3QuaGVhZGVycy5ob3N0LnZhbHVlO1xuICB2YXIgdXJpID0gZXZlbnQucmVxdWVzdC51cmk7XG4gIHZhciBtYXRjaEFwZXggPSBNQVRDSF9BUEVYO1xuICBpZiAobWF0Y2hBcGV4ICYmIGhvc3QgIT09ICdBUEVYX0RPTUFJTicpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogMzAxLFxuICAgICAgc3RhdHVzRGVzY3JpcHRpb246ICdQZXJtYW5lbnRseSBtb3ZlZCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwibG9jYXRpb25cIjogeyBcInZhbHVlXCI6IFwiaHR0cHM6Ly9BUEVYX0RPTUFJTlwiICsgdXJpIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKHVyaS5lbmRzV2l0aCgnLycpKSB7XG4gICAgZXZlbnQucmVxdWVzdC51cmkgPSB1cmkgKyAnaW5kZXguaHRtbCc7XG4gIH1cbiAgcmV0dXJuIGV2ZW50LnJlcXVlc3Q7XG59YFxuICAgICAgICAucmVwbGFjZSgvQVBFWF9ET01BSU4vZywgdGhpcy5hcGV4RG9tYWluKVxuICAgICAgICAucmVwbGFjZSgvTUFUQ0hfQVBFWC9nLCB0aGlzLmFwZXhEb21haW4gIT09ICcnID8gJ3RydWUnIDogJ2ZhbHNlJykpXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgJ0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG5ldyBTM09yaWdpbih0aGlzLmJ1Y2tldCwge1xuICAgICAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gICAgICAgIH0pLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZnVuY3Rpb246IHRoaXMudmlld2VyUmVxdWVzdEZ1bmN0aW9uLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGVycm9yUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBodHRwU3RhdHVzOiA0MDQsXG4gICAgICAgICAgcmVzcG9uc2VIdHRwU3RhdHVzOiA0MDQsXG4gICAgICAgICAgcmVzcG9uc2VQYWdlUGF0aDogJy80MDQuaHRtbCdcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGh0dHBWZXJzaW9uOiBwcm9wcy5odHRwVmVyc2lvbj8/SHR0cFZlcnNpb24uSFRUUDFfMSxcbiAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IHByb3BzLm1pbmltdW1Qcm90b2NvbFZlcnNpb24/P1NlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMSxcbiAgICAgIGRlZmF1bHRSb290T2JqZWN0OiBcImluZGV4Lmh0bWxcIixcbiAgICAgIGNlcnRpZmljYXRlOiBwcm9wcz8uY2VydGlmaWNhdGVBcm4gPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsICdDZXJ0aWZpY2F0ZScsIHByb3BzLmNlcnRpZmljYXRlQXJuKSxcbiAgICAgIGRvbWFpbk5hbWVzOiBwcm9wcz8uZG9tYWluTmFtZXM/Lm1hcCgoZG9tYWluTmFtZSkgPT4gZG9tYWluTmFtZS50b1N0cmluZygpKSxcbiAgICAgIGVuYWJsZUlwdjY6IHRydWUsXG4gICAgICBwcmljZUNsYXNzOiBwcm9wcy5wcmljZUNsYXNzPz9QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb25VcmwgPSBgaHR0cHM6Ly8keyh0aGlzLmFwZXhEb21haW4gIT0gJycgPyB0aGlzLmFwZXhEb21haW4gOiB0aGlzLmRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Eb21haW5OYW1lKX1gXG5cbiAgICB0aGlzLmFSZWNvcmRzID0gW107XG5cbiAgICBpZiAocHJvcHM/LmRvbWFpbk5hbWVzICE9IHVuZGVmaW5lZCAmJiBwcm9wcy5kb21haW5OYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBkb21haW5OYW1lIG9mIHByb3BzLmRvbWFpbk5hbWVzKSB7XG4gICAgICAgIGxldCB6b25lID0gSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsICd6b25lLScgKyBkb21haW5OYW1lLnRvSWRlbnRpZmllcigpLCB7XG4gICAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZS56b25lXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFSZWNvcmRzLnB1c2gobmV3IEFSZWNvcmQodGhpcywgZG9tYWluTmFtZS50b0lkZW50aWZpZXIoKSwge1xuICAgICAgICAgIHpvbmU6IHpvbmUsXG4gICAgICAgICAgcmVjb3JkTmFtZTogZG9tYWluTmFtZS50b1N0cmluZygpLFxuICAgICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQ2xvdWRGcm9udFRhcmdldCh0aGlzLmRpc3RyaWJ1dGlvbikpXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmRlcGxveW1lbnQgPSBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCAnQXNzZXRzJywge1xuICAgICAgc291cmNlczogW1xuICAgICAgICBTb3VyY2UuYXNzZXQocHJvcHMud2Vic2l0ZVNvdXJjZURpcmVjdG9yeSwge1xuICAgICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgICBpbWFnZTogRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KCdrbGFrZWdnL2h1Z286bGF0ZXN0LWV4dCcpLFxuICAgICAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICAgICAnLWQnLCAnL2Fzc2V0LW91dHB1dCdcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgZGlzdHJpYnV0aW9uOiB0aGlzLmRpc3RyaWJ1dGlvbixcbiAgICAgIGNhY2hlQ29udHJvbDogW0NhY2hlQ29udHJvbC5tYXhBZ2UocHJvcHMubWF4QWdlPz9EdXJhdGlvbi5taW51dGVzKDYwKSldLFxuICAgICAgcHJ1bmU6IGZhbHNlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
package/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export * as aws_cloudwatch from './aws-cloudwatch';
2
- export * as aws_codepipeline from './aws-codepipeline';
3
- export * as aws_lambda from './aws-lambda';
4
- export * as aws_monitoring from './aws-monitoring';
5
- export * as aws_route53 from './aws-route53';
6
- export * as aws_sqs from './aws-sqs';
7
- export * as helpers from './helpers';
1
+ export * as aws_cloudwatch from "./aws-cloudwatch";
2
+ export * as aws_codepipeline from "./aws-codepipeline";
3
+ export * as aws_lambda from "./aws-lambda";
4
+ export * as aws_monitoring from "./aws-monitoring";
5
+ export * as aws_route53 from "./aws-route53";
6
+ export * as aws_sqs from "./aws-sqs";
7
+ export * as aws_website from "./aws-website";
8
+ export * as helpers from "./helpers";
package/index.js CHANGED
@@ -6,5 +6,6 @@ exports.aws_lambda = require("./aws-lambda");
6
6
  exports.aws_monitoring = require("./aws-monitoring");
7
7
  exports.aws_route53 = require("./aws-route53");
8
8
  exports.aws_sqs = require("./aws-sqs");
9
+ exports.aws_website = require("./aws-website");
9
10
  exports.helpers = require("./helpers");
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFtRDtBQUNuRCx5REFBdUQ7QUFDdkQsNkNBQTJDO0FBQzNDLHFEQUFtRDtBQUNuRCwrQ0FBNkM7QUFDN0MsdUNBQXFDO0FBQ3JDLHVDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGF3c19jbG91ZHdhdGNoIGZyb20gJy4vYXdzLWNsb3Vkd2F0Y2gnO1xuZXhwb3J0ICogYXMgYXdzX2NvZGVwaXBlbGluZSBmcm9tICcuL2F3cy1jb2RlcGlwZWxpbmUnO1xuZXhwb3J0ICogYXMgYXdzX2xhbWJkYSBmcm9tICcuL2F3cy1sYW1iZGEnO1xuZXhwb3J0ICogYXMgYXdzX21vbml0b3JpbmcgZnJvbSAnLi9hd3MtbW9uaXRvcmluZyc7XG5leHBvcnQgKiBhcyBhd3Nfcm91dGU1MyBmcm9tICcuL2F3cy1yb3V0ZTUzJztcbmV4cG9ydCAqIGFzIGF3c19zcXMgZnJvbSAnLi9hd3Mtc3FzJztcbmV4cG9ydCAqIGFzIGhlbHBlcnMgZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFtRDtBQUNuRCx5REFBdUQ7QUFDdkQsNkNBQTJDO0FBQzNDLHFEQUFtRDtBQUNuRCwrQ0FBNkM7QUFDN0MsdUNBQXFDO0FBQ3JDLCtDQUE2QztBQUM3Qyx1Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBhd3NfY2xvdWR3YXRjaCBmcm9tIFwiLi9hd3MtY2xvdWR3YXRjaFwiO1xuZXhwb3J0ICogYXMgYXdzX2NvZGVwaXBlbGluZSBmcm9tIFwiLi9hd3MtY29kZXBpcGVsaW5lXCI7XG5leHBvcnQgKiBhcyBhd3NfbGFtYmRhIGZyb20gXCIuL2F3cy1sYW1iZGFcIjtcbmV4cG9ydCAqIGFzIGF3c19tb25pdG9yaW5nIGZyb20gXCIuL2F3cy1tb25pdG9yaW5nXCI7XG5leHBvcnQgKiBhcyBhd3Nfcm91dGU1MyBmcm9tIFwiLi9hd3Mtcm91dGU1M1wiO1xuZXhwb3J0ICogYXMgYXdzX3NxcyBmcm9tIFwiLi9hd3Mtc3FzXCI7XG5leHBvcnQgKiBhcyBhd3Nfd2Vic2l0ZSBmcm9tIFwiLi9hd3Mtd2Vic2l0ZVwiO1xuZXhwb3J0ICogYXMgaGVscGVycyBmcm9tIFwiLi9oZWxwZXJzXCI7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "0.0.15",
3
+ "version": "0.0.16-alpha.2+e7cf6f8",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -29,7 +29,9 @@
29
29
  "./aws-lambda": "./aws-lambda/index.js",
30
30
  "./aws-monitoring": "./aws-monitoring/index.js",
31
31
  "./aws-route53": "./aws-route53/index.js",
32
+ "./aws-s3": "./aws-s3/index.js",
32
33
  "./aws-sqs": "./aws-sqs/index.js",
34
+ "./aws-website": "./aws-website/index.js",
33
35
  "./helpers": "./helpers/index.js"
34
36
  },
35
37
  "publishConfig": {
@@ -43,5 +45,5 @@
43
45
  "@aws-cdk/aws-synthetics-alpha": "^2.18.0-alpha.0",
44
46
  "cdk-monitoring-constructs": "^1.6.4"
45
47
  },
46
- "gitHead": "690f448e7be5e1dc546ff2865f523d73e1b16e68"
48
+ "gitHead": "e7cf6f88f33e49e12adc46e06ca2c94b2056f5f7"
47
49
  }
@@ -12,7 +12,7 @@ test('Python Lambda Test', () => {
12
12
  });
13
13
  const template = assertions_1.Template.fromStack(stack);
14
14
  template.hasResourceProperties("AWS::Lambda::Function", {});
15
- console.log(template.findResources("AWS::CloudWatch::Alarm"));
16
- console.log(template.findResources("AWS::Lambda::Function"));
15
+ // console.log(template.findResources("AWS::CloudWatch::Alarm"));
16
+ // console.log(template.findResources("AWS::Lambda::Function"));
17
17
  });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLWZ1bmN0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJweXRob24tZnVuY3Rpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFtQztBQUNuQyw2QkFBNkI7QUFDN0IsdURBQWdEO0FBQ2hELGlEQUFnRDtBQUVoRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUMsSUFBSSwyQkFBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7UUFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztLQUM3QyxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztJQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtUZW1wbGF0ZX0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7UHl0aG9uRnVuY3Rpb259IGZyb20gXCIuLi8uLi9hd3MtbGFtYmRhXCI7XG5cbnRlc3QoJ1B5dGhvbiBMYW1iZGEgVGVzdCcsICgpID0+IHtcbiAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgJ1Rlc3RTdGFjaycpO1xuICBuZXcgUHl0aG9uRnVuY3Rpb24oc3RhY2ssICdUZXN0RnVuY3Rpb24nLCB7XG4gICAgZW50cnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdweXRob24tbGFtYmRhJylcbiAgfSk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpMYW1iZGE6OkZ1bmN0aW9uXCIsIHt9KTtcbiAgY29uc29sZS5sb2codGVtcGxhdGUuZmluZFJlc291cmNlcyhcIkFXUzo6Q2xvdWRXYXRjaDo6QWxhcm1cIikpO1xuICBjb25zb2xlLmxvZyh0ZW1wbGF0ZS5maW5kUmVzb3VyY2VzKFwiQVdTOjpMYW1iZGE6OkZ1bmN0aW9uXCIpKTtcbn0pO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLWZ1bmN0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJweXRob24tZnVuY3Rpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFtQztBQUNuQyw2QkFBNkI7QUFDN0IsdURBQWdEO0FBQ2hELGlEQUFnRDtBQUVoRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUMsSUFBSSwyQkFBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7UUFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztLQUM3QyxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsaUVBQWlFO0lBQ2pFLGdFQUFnRTtBQUNsRSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7VGVtcGxhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5pbXBvcnQge1B5dGhvbkZ1bmN0aW9ufSBmcm9tIFwiLi4vLi4vYXdzLWxhbWJkYVwiO1xuXG50ZXN0KCdQeXRob24gTGFtYmRhIFRlc3QnLCAoKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhhcHAsICdUZXN0U3RhY2snKTtcbiAgbmV3IFB5dGhvbkZ1bmN0aW9uKHN0YWNrLCAnVGVzdEZ1bmN0aW9uJywge1xuICAgIGVudHJ5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncHl0aG9uLWxhbWJkYScpXG4gIH0pO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6TGFtYmRhOjpGdW5jdGlvblwiLCB7fSk7XG4gIC8vIGNvbnNvbGUubG9nKHRlbXBsYXRlLmZpbmRSZXNvdXJjZXMoXCJBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtXCIpKTtcbiAgLy8gY29uc29sZS5sb2codGVtcGxhdGUuZmluZFJlc291cmNlcyhcIkFXUzo6TGFtYmRhOjpGdW5jdGlvblwiKSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: "{{ replace .Name "-" " " | title }}"
3
+ date: {{ .Date }}
4
+ draft: true
5
+ ---
6
+
@@ -0,0 +1,3 @@
1
+ baseURL = 'http://example.org/'
2
+ languageCode = 'en-us'
3
+ title = 'My New Hugo Site'
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cdk = require("aws-cdk-lib");
4
+ const aws_website_1 = require("../../aws-website");
5
+ const path = require("path");
6
+ const assertions_1 = require("aws-cdk-lib/assertions");
7
+ test("Create Website Test", () => {
8
+ const app = new cdk.App();
9
+ const stack = new cdk.Stack(app, "TestStack");
10
+ new aws_website_1.Website(stack, 'TestWebsite', {
11
+ websiteSourceDirectory: path.join(__dirname, "example-website")
12
+ });
13
+ const template = assertions_1.Template.fromStack(stack);
14
+ template.hasResourceProperties("AWS::CloudFront::Distribution", {});
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2Vic2l0ZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQW1DO0FBQ25DLG1EQUEwQztBQUMxQyw2QkFBNkI7QUFDN0IsdURBQWdEO0FBRWhELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5QyxJQUFJLHFCQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtRQUNoQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztLQUNoRSxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMscUJBQXFCLENBQUMsK0JBQStCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1dlYnNpdGV9IGZyb20gXCIuLi8uLi9hd3Mtd2Vic2l0ZVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtUZW1wbGF0ZX0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcblxudGVzdChcIkNyZWF0ZSBXZWJzaXRlIFRlc3RcIiwgKCkgPT4ge1xuICBjb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgbmV3IFdlYnNpdGUoc3RhY2ssICdUZXN0V2Vic2l0ZScsIHtcbiAgICB3ZWJzaXRlU291cmNlRGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcImV4YW1wbGUtd2Vic2l0ZVwiKVxuICB9KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvblwiLCB7fSk7XG59KTtcbiJdfQ==