truemark-cdk-lib 1.2.4-alpha.45 → 1.2.4-alpha.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Function } from "aws-cdk-lib/aws-cloudfront";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
import { DomainName } from "../../aws-route53";
|
|
4
|
+
export declare type Behavior = "None" | "ForwardToIndex" | "RedirectToIndex";
|
|
4
5
|
export interface WebsiteRedirectFunctionProps {
|
|
5
6
|
/**
|
|
6
7
|
* Optional domain to redirect to if the host header does not match.
|
|
@@ -12,6 +13,18 @@ export interface WebsiteRedirectFunctionProps {
|
|
|
12
13
|
* @default "index.html"
|
|
13
14
|
*/
|
|
14
15
|
readonly indexFile?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Sets the behavior of paths with trailing slashes. Default is "ForwardToIndex".
|
|
18
|
+
*
|
|
19
|
+
* @default "ForwardToIndex"
|
|
20
|
+
*/
|
|
21
|
+
readonly trailingSlashBehavior?: Behavior;
|
|
22
|
+
/**
|
|
23
|
+
* Sets the behavior of paths with no file extension. Default is "None"
|
|
24
|
+
*
|
|
25
|
+
* @default "None"
|
|
26
|
+
*/
|
|
27
|
+
readonly noFileExtensionBehavior?: Behavior;
|
|
15
28
|
}
|
|
16
29
|
export declare class WebsiteRedirectFunction extends Function {
|
|
17
30
|
constructor(scope: Construct, id: string, props: WebsiteRedirectFunctionProps);
|
|
@@ -4,7 +4,7 @@ exports.WebsiteRedirectFunction = void 0;
|
|
|
4
4
|
const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
|
|
5
5
|
class WebsiteRedirectFunction extends aws_cloudfront_1.Function {
|
|
6
6
|
constructor(scope, id, props) {
|
|
7
|
-
var _a, _b, _c;
|
|
7
|
+
var _a, _b, _c, _d, _e;
|
|
8
8
|
super(scope, id, {
|
|
9
9
|
code: aws_cloudfront_1.FunctionCode.fromInline(`
|
|
10
10
|
function handler(event) {
|
|
@@ -19,15 +19,40 @@ function handler(event) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
if ("INDEX_FILE" !== "" && uri.
|
|
23
|
-
|
|
22
|
+
if ("INDEX_FILE" !== "" && "NO_FILE_EXTENSION_BEHAVIOR" !== "None" && uri.split("/").pop().split(".") <= 1) {
|
|
23
|
+
if ("NO_FILE_EXTENSION_BEHAVIOR" === "ForwardToIndex") {
|
|
24
|
+
event.request.uri = uri + "/INDEX_FILE";
|
|
25
|
+
} else {
|
|
26
|
+
return {
|
|
27
|
+
statusCode: 301,
|
|
28
|
+
statusDescription: "Permanently moved",
|
|
29
|
+
headers: {
|
|
30
|
+
"location": { "value": "uri + "/INDEX_FILE" }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if ("INDEX_FILE" !== "" && "TRAILING_SLASH_BEHAVIOR" !== "None" && (uri.endsWith("/") || ) {
|
|
36
|
+
if ("TRAILING_SLASH_BEHAVIOR" === "ForwardToIndex") {
|
|
37
|
+
event.request.uri = uri + "INDEX_FILE";
|
|
38
|
+
} else {
|
|
39
|
+
return {
|
|
40
|
+
statusCode: 301,
|
|
41
|
+
statusDescription: "Permanently moved",
|
|
42
|
+
headers: {
|
|
43
|
+
"location": { "value": "uri + "INDEX_FILE" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
24
47
|
}
|
|
25
48
|
return event.request;
|
|
26
49
|
}`
|
|
27
50
|
.replace(/APEX_DOMAIN/g, (_b = (_a = props.apexDomain) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "")
|
|
28
|
-
.replace(/INDEX_FILE/g, (_c = props.indexFile) !== null && _c !== void 0 ? _c : "index.html")
|
|
51
|
+
.replace(/INDEX_FILE/g, (_c = props.indexFile) !== null && _c !== void 0 ? _c : "index.html")
|
|
52
|
+
.replace(/NO_FILE_EXTENSION_BEHAVIOR/g, (_d = props.noFileExtensionBehavior) !== null && _d !== void 0 ? _d : "None")
|
|
53
|
+
.replace(/TRAILING_SLASH_BEHAVIOR/g, (_e = props.trailingSlashBehavior) !== null && _e !== void 0 ? _e : "ForwardToIndex"))
|
|
29
54
|
});
|
|
30
55
|
}
|
|
31
56
|
}
|
|
32
57
|
exports.WebsiteRedirectFunction = WebsiteRedirectFunction;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS1yZWRpcmVjdC1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUtcmVkaXJlY3QtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTBHO0FBbUMxRyxNQUFhLHVCQUF3QixTQUFRLHlCQUFRO0lBRW5ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUM7O1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLDZCQUFZLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBd0NsQztpQkFDTyxPQUFPLENBQUMsY0FBYyxjQUFFLEtBQUssQ0FBQyxVQUFVLDBDQUFFLFFBQVEscUNBQU0sRUFBRSxDQUFDO2lCQUMzRCxPQUFPLENBQUMsYUFBYSxRQUFFLEtBQUssQ0FBQyxTQUFTLG1DQUFJLFlBQVksQ0FBQztpQkFDdkQsT0FBTyxDQUFDLDZCQUE2QixRQUFFLEtBQUssQ0FBQyx1QkFBdUIsbUNBQUksTUFBTSxDQUFDO2lCQUMvRSxPQUFPLENBQUMsMEJBQTBCLFFBQUUsS0FBSyxDQUFDLHFCQUFxQixtQ0FBSSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3pGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQW5ERCwwREFtREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Z1bmN0aW9uLCBGdW5jdGlvbkFzc29jaWF0aW9uLCBGdW5jdGlvbkNvZGUsIEZ1bmN0aW9uRXZlbnRUeXBlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtEb21haW5OYW1lfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcblxuZXhwb3J0IHR5cGUgQmVoYXZpb3IgPSBcIk5vbmVcIiB8IFwiRm9yd2FyZFRvSW5kZXhcIiB8IFwiUmVkaXJlY3RUb0luZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcyB7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRvbWFpbiB0byByZWRpcmVjdCB0byBpZiB0aGUgaG9zdCBoZWFkZXIgZG9lcyBub3QgbWF0Y2guXG4gICAqL1xuICByZWFkb25seSBhcGV4RG9tYWluPzogc3RyaW5nIHwgRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgZmlsZSB0byByZXF1ZXN0IHdoZW4gdGhlIFVSSSBlbmRzIHdpdGggYSAnLycuIFNldCB0byBlbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJpbmRleC5odG1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGluZGV4RmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0cyB0aGUgYmVoYXZpb3Igb2YgcGF0aHMgd2l0aCB0cmFpbGluZyBzbGFzaGVzLiBEZWZhdWx0IGlzIFwiRm9yd2FyZFRvSW5kZXhcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJGb3J3YXJkVG9JbmRleFwiXG4gICAqL1xuICByZWFkb25seSB0cmFpbGluZ1NsYXNoQmVoYXZpb3I/OiBCZWhhdmlvcjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYmVoYXZpb3Igb2YgcGF0aHMgd2l0aCBubyBmaWxlIGV4dGVuc2lvbi4gRGVmYXVsdCBpcyBcIk5vbmVcIlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIk5vbmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgbm9GaWxlRXh0ZW5zaW9uQmVoYXZpb3I/OiBCZWhhdmlvcjtcbn1cblxuZXhwb3J0IGNsYXNzIFdlYnNpdGVSZWRpcmVjdEZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXZWJzaXRlUmVkaXJlY3RGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBjb2RlOiBGdW5jdGlvbkNvZGUuZnJvbUlubGluZShgXG5mdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gIHZhciBob3N0ID0gZXZlbnQucmVxdWVzdC5oZWFkZXJzLmhvc3QudmFsdWU7XG4gIHZhciB1cmkgPSBldmVudC5yZXF1ZXN0LnVyaTtcbiAgaWYgKFwiQVBFWF9ET01BSU5cIiAhPT0gXCJcIiAmJiBob3N0ICE9PSBcIkFQRVhfRE9NQUlOXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogMzAxLFxuICAgICAgc3RhdHVzRGVzY3JpcHRpb246IFwiUGVybWFuZW50bHkgbW92ZWRcIixcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7IFwidmFsdWVcIjogXCJodHRwczovL0FQRVhfRE9NQUlOXCIgKyB1cmkgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoXCJJTkRFWF9GSUxFXCIgIT09IFwiXCIgJiYgXCJOT19GSUxFX0VYVEVOU0lPTl9CRUhBVklPUlwiICE9PSBcIk5vbmVcIiAmJiB1cmkuc3BsaXQoXCIvXCIpLnBvcCgpLnNwbGl0KFwiLlwiKSA8PSAxKSB7XG4gICAgaWYgKFwiTk9fRklMRV9FWFRFTlNJT05fQkVIQVZJT1JcIiA9PT0gXCJGb3J3YXJkVG9JbmRleFwiKSB7XG4gICAgICBldmVudC5yZXF1ZXN0LnVyaSA9IHVyaSArIFwiL0lOREVYX0ZJTEVcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZTogMzAxLFxuICAgICAgICBzdGF0dXNEZXNjcmlwdGlvbjogXCJQZXJtYW5lbnRseSBtb3ZlZFwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7IFwidmFsdWVcIjogXCJ1cmkgKyBcIi9JTkRFWF9GSUxFXCIgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChcIklOREVYX0ZJTEVcIiAhPT0gXCJcIiAmJiBcIlRSQUlMSU5HX1NMQVNIX0JFSEFWSU9SXCIgIT09IFwiTm9uZVwiICYmICh1cmkuZW5kc1dpdGgoXCIvXCIpIHx8ICkge1xuICAgIGlmIChcIlRSQUlMSU5HX1NMQVNIX0JFSEFWSU9SXCIgPT09IFwiRm9yd2FyZFRvSW5kZXhcIikge1xuICAgICAgZXZlbnQucmVxdWVzdC51cmkgPSB1cmkgKyBcIklOREVYX0ZJTEVcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzQ29kZTogMzAxLFxuICAgICAgICBzdGF0dXNEZXNjcmlwdGlvbjogXCJQZXJtYW5lbnRseSBtb3ZlZFwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7IFwidmFsdWVcIjogXCJ1cmkgKyBcIklOREVYX0ZJTEVcIiB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGV2ZW50LnJlcXVlc3Q7XG59YFxuICAgICAgICAucmVwbGFjZSgvQVBFWF9ET01BSU4vZywgcHJvcHMuYXBleERvbWFpbj8udG9TdHJpbmcoKSA/PyBcIlwiKVxuICAgICAgICAucmVwbGFjZSgvSU5ERVhfRklMRS9nLCBwcm9wcy5pbmRleEZpbGUgPz8gXCJpbmRleC5odG1sXCIpXG4gICAgICAgIC5yZXBsYWNlKC9OT19GSUxFX0VYVEVOU0lPTl9CRUhBVklPUi9nLCBwcm9wcy5ub0ZpbGVFeHRlbnNpb25CZWhhdmlvciA/PyBcIk5vbmVcIilcbiAgICAgICAgLnJlcGxhY2UoL1RSQUlMSU5HX1NMQVNIX0JFSEFWSU9SL2csIHByb3BzLnRyYWlsaW5nU2xhc2hCZWhhdmlvciA/PyBcIkZvcndhcmRUb0luZGV4XCIpKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "truemark-cdk-lib",
|
|
3
|
-
"version": "1.2.4-alpha.
|
|
3
|
+
"version": "1.2.4-alpha.47+a7cd796",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -21,8 +21,15 @@
|
|
|
21
21
|
"typescript": "~3.9.7"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"@aws-cdk/aws-apigatewayv2-alpha": "^2.18.0-alpha.0",
|
|
25
|
+
"@aws-cdk/aws-appsync-alpha": "^2.18.0-alpha.0",
|
|
26
|
+
"@aws-cdk/aws-lambda-go-alpha": "^2.18.0-alpha.0",
|
|
27
|
+
"@aws-cdk/aws-lambda-python-alpha": "^2.18.0-alpha.0",
|
|
28
|
+
"@aws-cdk/aws-redshift-alpha": "^2.18.0-alpha.0",
|
|
29
|
+
"@aws-cdk/aws-synthetics-alpha": "^2.18.0-alpha.0",
|
|
24
30
|
"aws-cdk-lib": "^2.50.0",
|
|
25
|
-
"cdk-monitoring-constructs": "^1.27.1"
|
|
31
|
+
"cdk-monitoring-constructs": "^1.27.1",
|
|
32
|
+
"constructs": "^10.1.230"
|
|
26
33
|
},
|
|
27
34
|
"peerDependencies": {
|
|
28
35
|
"@aws-cdk/aws-apigatewayv2-alpha": "^2.18.0-alpha.0",
|
|
@@ -62,5 +69,5 @@
|
|
|
62
69
|
"publishConfig": {
|
|
63
70
|
"access": "public"
|
|
64
71
|
},
|
|
65
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "a7cd796d33e5d85f0412e23506b93d8ac1916b3d"
|
|
66
73
|
}
|