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.endsWith("/")) {
23
- event.request.uri = uri + "INDEX_FILE";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS1yZWRpcmVjdC1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndlYnNpdGUtcmVkaXJlY3QtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTBHO0FBbUIxRyxNQUFhLHVCQUF3QixTQUFRLHlCQUFRO0lBRW5ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUM7O1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLDZCQUFZLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCbEM7aUJBQ08sT0FBTyxDQUFDLGNBQWMsY0FBRSxLQUFLLENBQUMsVUFBVSwwQ0FBRSxRQUFRLHFDQUFNLEVBQUUsQ0FBQztpQkFDM0QsT0FBTyxDQUFDLGFBQWEsUUFBRSxLQUFLLENBQUMsU0FBUyxtQ0FBSSxZQUFZLENBQUMsQ0FBQztTQUM1RCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUExQkQsMERBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGdW5jdGlvbiwgRnVuY3Rpb25Bc3NvY2lhdGlvbiwgRnVuY3Rpb25Db2RlLCBGdW5jdGlvbkV2ZW50VHlwZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7RG9tYWluTmFtZX0gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcyB7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRvbWFpbiB0byByZWRpcmVjdCB0byBpZiB0aGUgaG9zdCBoZWFkZXIgZG9lcyBub3QgbWF0Y2guXG4gICAqL1xuICByZWFkb25seSBhcGV4RG9tYWluPzogc3RyaW5nIHwgRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgZmlsZSB0byByZXF1ZXN0IHdoZW4gdGhlIFVSSSBlbmRzIHdpdGggYSAnLycuIFNldCB0byBlbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJpbmRleC5odG1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGluZGV4RmlsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFdlYnNpdGVSZWRpcmVjdEZ1bmN0aW9uIGV4dGVuZHMgRnVuY3Rpb24ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXZWJzaXRlUmVkaXJlY3RGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBjb2RlOiBGdW5jdGlvbkNvZGUuZnJvbUlubGluZShgXG5mdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gIHZhciBob3N0ID0gZXZlbnQucmVxdWVzdC5oZWFkZXJzLmhvc3QudmFsdWU7XG4gIHZhciB1cmkgPSBldmVudC5yZXF1ZXN0LnVyaTtcbiAgaWYgKFwiQVBFWF9ET01BSU5cIiAhPT0gXCJcIiAmJiBob3N0ICE9PSBcIkFQRVhfRE9NQUlOXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogMzAxLFxuICAgICAgc3RhdHVzRGVzY3JpcHRpb246IFwiUGVybWFuZW50bHkgbW92ZWRcIixcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7IFwidmFsdWVcIjogXCJodHRwczovL0FQRVhfRE9NQUlOXCIgKyB1cmkgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoXCJJTkRFWF9GSUxFXCIgIT09IFwiXCIgJiYgdXJpLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgIGV2ZW50LnJlcXVlc3QudXJpID0gdXJpICsgXCJJTkRFWF9GSUxFXCI7XG4gIH1cbiAgcmV0dXJuIGV2ZW50LnJlcXVlc3Q7XG59YFxuICAgICAgICAucmVwbGFjZSgvQVBFWF9ET01BSU4vZywgcHJvcHMuYXBleERvbWFpbj8udG9TdHJpbmcoKSA/PyBcIlwiKVxuICAgICAgICAucmVwbGFjZSgvSU5ERVhfRklMRS9nLCBwcm9wcy5pbmRleEZpbGUgPz8gXCJpbmRleC5odG1sXCIpKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
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.45+7b8259e",
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": "7b8259e2cc6d97839a0328d3840b1d900c67460f"
72
+ "gitHead": "a7cd796d33e5d85f0412e23506b93d8ac1916b3d"
66
73
  }