truemark-cdk-lib 1.5.2 → 1.5.3-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.
|
@@ -3,6 +3,7 @@ import { Construct } from "constructs";
|
|
|
3
3
|
import { DomainName } from "../../aws-route53";
|
|
4
4
|
export declare type TrailingSlashBehavior = "None" | "ForwardToIndex" | "RedirectNoSlash";
|
|
5
5
|
export declare type NoFileIndexBehavior = "None" | "ForwardToIndex" | "RedirectToSlash";
|
|
6
|
+
export declare type RobotsBehavior = "None" | "Allow" | "Disallow";
|
|
6
7
|
export interface WebsiteRedirectFunctionProps {
|
|
7
8
|
/**
|
|
8
9
|
* Optional domain to redirect to if the host header does not match.
|
|
@@ -26,6 +27,10 @@ export interface WebsiteRedirectFunctionProps {
|
|
|
26
27
|
* @default "None"
|
|
27
28
|
*/
|
|
28
29
|
readonly noFileExtensionBehavior?: NoFileIndexBehavior;
|
|
30
|
+
/**
|
|
31
|
+
* Sets the behavior for /robots.txt requests. Default is "Allow".
|
|
32
|
+
*/
|
|
33
|
+
readonly robotsBehavior?: RobotsBehavior;
|
|
29
34
|
}
|
|
30
35
|
export declare class WebsiteRedirectFunction extends Function {
|
|
31
36
|
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, _d, _e;
|
|
7
|
+
var _a, _b, _c, _d, _e, _f;
|
|
8
8
|
super(scope, id, {
|
|
9
9
|
code: aws_cloudfront_1.FunctionCode.fromInline(`
|
|
10
10
|
function handler(event) {
|
|
@@ -45,14 +45,32 @@ function handler(event) {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
if (event.request.uri === "/robots.txt" && "ROBOTS_BEHAVIOR" !== "None") {
|
|
49
|
+
if ("ROBOTS_BEHAVIOR" === "Allow") {
|
|
50
|
+
return {
|
|
51
|
+
statusCode: 200,
|
|
52
|
+
statusDescription: "OK",
|
|
53
|
+
contentType: "text/plain",
|
|
54
|
+
body: "User-agent: *\nAllow: /"
|
|
55
|
+
}
|
|
56
|
+
} else { // Disallow
|
|
57
|
+
return {
|
|
58
|
+
statusCode: 200,
|
|
59
|
+
statusDescription: "OK",
|
|
60
|
+
contentType: "text/plain",
|
|
61
|
+
body: "User-agent: *\nDisallow: /"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
48
65
|
return event.request;
|
|
49
66
|
}`
|
|
50
67
|
.replace(/APEX_DOMAIN/g, (_b = (_a = props.apexDomain) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "")
|
|
51
68
|
.replace(/INDEX_FILE/g, (_c = props.indexFile) !== null && _c !== void 0 ? _c : "index.html")
|
|
52
69
|
.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")
|
|
70
|
+
.replace(/TRAILING_SLASH_BEHAVIOR/g, (_e = props.trailingSlashBehavior) !== null && _e !== void 0 ? _e : "ForwardToIndex")
|
|
71
|
+
.replace("/ROBOTS_BEHAVIOR/g", (_f = props.robotsBehavior) !== null && _f !== void 0 ? _f : "Allow"))
|
|
54
72
|
});
|
|
55
73
|
}
|
|
56
74
|
}
|
|
57
75
|
exports.WebsiteRedirectFunction = WebsiteRedirectFunction;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS1yZWRpcmVjdC1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUtcmVkaXJlY3QtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTBHO0FBNEMxRyxNQUFhLHVCQUF3QixTQUFRLHlCQUFRO0lBRW5ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUM7O1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLDZCQUFZLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5RGxDO2lCQUNPLE9BQU8sQ0FBQyxjQUFjLGNBQUUsS0FBSyxDQUFDLFVBQVUsMENBQUUsUUFBUSxxQ0FBTSxFQUFFLENBQUM7aUJBQzNELE9BQU8sQ0FBQyxhQUFhLFFBQUUsS0FBSyxDQUFDLFNBQVMsbUNBQUksWUFBWSxDQUFDO2lCQUN2RCxPQUFPLENBQUMsNkJBQTZCLFFBQUUsS0FBSyxDQUFDLHVCQUF1QixtQ0FBSSxNQUFNLENBQUM7aUJBQy9FLE9BQU8sQ0FBQywwQkFBMEIsUUFBRSxLQUFLLENBQUMscUJBQXFCLG1DQUFJLGdCQUFnQixDQUFDO2lCQUNwRixPQUFPLENBQUMsb0JBQW9CLFFBQUUsS0FBSyxDQUFDLGNBQWMsbUNBQUksT0FBTyxDQUFDLENBQUM7U0FDbkUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBckVELDBEQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RnVuY3Rpb24sIEZ1bmN0aW9uQXNzb2NpYXRpb24sIEZ1bmN0aW9uQ29kZSwgRnVuY3Rpb25FdmVudFR5cGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0RvbWFpbk5hbWV9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuXG5leHBvcnQgdHlwZSBUcmFpbGluZ1NsYXNoQmVoYXZpb3IgPSBcIk5vbmVcIiB8IFwiRm9yd2FyZFRvSW5kZXhcIiB8IFwiUmVkaXJlY3ROb1NsYXNoXCI7XG5cbmV4cG9ydCB0eXBlIE5vRmlsZUluZGV4QmVoYXZpb3IgPSBcIk5vbmVcIiB8IFwiRm9yd2FyZFRvSW5kZXhcIiB8IFwiUmVkaXJlY3RUb1NsYXNoXCI7XG5cbmV4cG9ydCB0eXBlIFJvYm90c0JlaGF2aW9yID0gXCJOb25lXCIgfCBcIkFsbG93XCIgfCBcIkRpc2FsbG93XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcyB7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRvbWFpbiB0byByZWRpcmVjdCB0byBpZiB0aGUgaG9zdCBoZWFkZXIgZG9lcyBub3QgbWF0Y2guXG4gICAqL1xuICByZWFkb25seSBhcGV4RG9tYWluPzogc3RyaW5nIHwgRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgZmlsZSB0byByZXF1ZXN0IHdoZW4gdGhlIFVSSSBlbmRzIHdpdGggYSAnLycuIFNldCB0byBlbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJpbmRleC5odG1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGluZGV4RmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0cyB0aGUgYmVoYXZpb3Igb2YgcGF0aHMgd2l0aCB0cmFpbGluZyBzbGFzaGVzLiBEZWZhdWx0IGlzIFwiRm9yd2FyZFRvSW5kZXhcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJGb3J3YXJkVG9JbmRleFwiXG4gICAqL1xuICByZWFkb25seSB0cmFpbGluZ1NsYXNoQmVoYXZpb3I/OiBUcmFpbGluZ1NsYXNoQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGJlaGF2aW9yIG9mIHBhdGhzIHdpdGggbm8gZmlsZSBleHRlbnNpb24uIERlZmF1bHQgaXMgXCJOb25lXCJcbiAgICpcbiAgICogQGRlZmF1bHQgXCJOb25lXCJcbiAgICovXG4gIHJlYWRvbmx5IG5vRmlsZUV4dGVuc2lvbkJlaGF2aW9yPzogTm9GaWxlSW5kZXhCZWhhdmlvcjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYmVoYXZpb3IgZm9yIC9yb2JvdHMudHh0IHJlcXVlc3RzLiBEZWZhdWx0IGlzIFwiQWxsb3dcIi5cbiAgICovXG4gIHJlYWRvbmx5IHJvYm90c0JlaGF2aW9yPzogUm9ib3RzQmVoYXZpb3I7XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJzaXRlUmVkaXJlY3RGdW5jdGlvbiBleHRlbmRzIEZ1bmN0aW9uIHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICB2YXIgaG9zdCA9IGV2ZW50LnJlcXVlc3QuaGVhZGVycy5ob3N0LnZhbHVlO1xuICB2YXIgdXJpID0gZXZlbnQucmVxdWVzdC51cmk7XG4gIGlmIChcIkFQRVhfRE9NQUlOXCIgIT09IFwiXCIgJiYgaG9zdCAhPT0gXCJBUEVYX0RPTUFJTlwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IDMwMSxcbiAgICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIlBlcm1hbmVudGx5IG1vdmVkXCIsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwibG9jYXRpb25cIjogeyBcInZhbHVlXCI6IFwiaHR0cHM6Ly9BUEVYX0RPTUFJTlwiICsgdXJpIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKFwiSU5ERVhfRklMRVwiICE9PSBcIlwiICYmIFwiTk9fRklMRV9FWFRFTlNJT05fQkVIQVZJT1JcIiAhPT0gXCJOb25lXCIgJiYgdXJpLnNwbGl0KFwiL1wiKS5wb3AoKS5zcGxpdChcIi5cIikubGVuZ3RoIDw9IDEpIHtcbiAgICBpZiAoXCJOT19GSUxFX0VYVEVOU0lPTl9CRUhBVklPUlwiID09PSBcIkZvcndhcmRUb0luZGV4XCIpIHtcbiAgICAgIGV2ZW50LnJlcXVlc3QudXJpID0gdXJpICsgXCIvSU5ERVhfRklMRVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXNDb2RlOiAzMDEsXG4gICAgICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIlBlcm1hbmVudGx5IG1vdmVkXCIsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IHsgXCJ2YWx1ZVwiOiB1cmkgKyBcIi9cIiB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKFwiSU5ERVhfRklMRVwiICE9PSBcIlwiICYmIFwiVFJBSUxJTkdfU0xBU0hfQkVIQVZJT1JcIiAhPT0gXCJOb25lXCIgJiYgdXJpLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgIGlmIChcIlRSQUlMSU5HX1NMQVNIX0JFSEFWSU9SXCIgPT09IFwiRm9yd2FyZFRvSW5kZXhcIiB8fCB1cmkgPT09IFwiL1wiKSB7XG4gICAgICBldmVudC5yZXF1ZXN0LnVyaSA9IHVyaSArIFwiSU5ERVhfRklMRVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXNDb2RlOiAzMDEsXG4gICAgICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIlBlcm1hbmVudGx5IG1vdmVkXCIsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IHsgXCJ2YWx1ZVwiOiB1cmkucmVwbGFjZSgvLiQvLCBcIlwiKSB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGV2ZW50LnJlcXVlc3QudXJpID09PSBcIi9yb2JvdHMudHh0XCIgJiYgXCJST0JPVFNfQkVIQVZJT1JcIiAhPT0gXCJOb25lXCIpIHtcbiAgICBpZiAoXCJST0JPVFNfQkVIQVZJT1JcIiA9PT0gXCJBbGxvd1wiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIk9LXCIsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgICAgICAgYm9keTogXCJVc2VyLWFnZW50OiAqXFxuQWxsb3c6IC9cIlxuICAgICAgfVxuICAgIH0gZWxzZSB7IC8vIERpc2FsbG93XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIk9LXCIsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBcInRleHQvcGxhaW5cIixcbiAgICAgICAgYm9keTogXCJVc2VyLWFnZW50OiAqXFxuRGlzYWxsb3c6IC9cIlxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXZlbnQucmVxdWVzdDtcbn1gXG4gICAgICAgIC5yZXBsYWNlKC9BUEVYX0RPTUFJTi9nLCBwcm9wcy5hcGV4RG9tYWluPy50b1N0cmluZygpID8/IFwiXCIpXG4gICAgICAgIC5yZXBsYWNlKC9JTkRFWF9GSUxFL2csIHByb3BzLmluZGV4RmlsZSA/PyBcImluZGV4Lmh0bWxcIilcbiAgICAgICAgLnJlcGxhY2UoL05PX0ZJTEVfRVhURU5TSU9OX0JFSEFWSU9SL2csIHByb3BzLm5vRmlsZUV4dGVuc2lvbkJlaGF2aW9yID8/IFwiTm9uZVwiKVxuICAgICAgICAucmVwbGFjZSgvVFJBSUxJTkdfU0xBU0hfQkVIQVZJT1IvZywgcHJvcHMudHJhaWxpbmdTbGFzaEJlaGF2aW9yID8/IFwiRm9yd2FyZFRvSW5kZXhcIilcbiAgICAgICAgLnJlcGxhY2UoXCIvUk9CT1RTX0JFSEFWSU9SL2dcIiwgcHJvcHMucm9ib3RzQmVoYXZpb3IgPz8gXCJBbGxvd1wiKSlcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "truemark-cdk-lib",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.3-alpha.1+699d39b",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"publishConfig": {
|
|
74
74
|
"access": "public"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "699d39bb8d6083a71708ff1da14d457f8ba633ff"
|
|
77
77
|
}
|