cloudstructs 0.4.9 → 0.4.13

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.
Files changed (81) hide show
  1. package/.gitattributes +6 -0
  2. package/.jsii +10 -10
  3. package/assets/email-receiver/s3.lambda/index.js +38 -0
  4. package/assets/email-receiver/whitelist.lambda/index.js +46 -0
  5. package/assets/slack-app/provider.lambda/index.js +6335 -0
  6. package/assets/slack-events/events.lambda/index.js +112 -0
  7. package/assets/slack-textract/detect.lambda/index.js +20542 -0
  8. package/assets/url-shortener/shortener.lambda/index.js +101 -0
  9. package/changelog.md +1 -6
  10. package/lib/codecommit-mirror/index.js +2 -2
  11. package/lib/ecs-service-roller/index.js +2 -2
  12. package/lib/email-receiver/receiver.js +6 -7
  13. package/lib/email-receiver/s3-function.d.ts +13 -0
  14. package/lib/email-receiver/s3-function.js +23 -0
  15. package/lib/email-receiver/{receiver.s3.d.ts → s3.lambda.d.ts} +0 -0
  16. package/lib/email-receiver/s3.lambda.js +11 -0
  17. package/lib/email-receiver/whitelist-function.d.ts +13 -0
  18. package/lib/email-receiver/whitelist-function.js +23 -0
  19. package/lib/email-receiver/{receiver.whitelist.d.ts → whitelist.lambda.d.ts} +0 -0
  20. package/lib/email-receiver/whitelist.lambda.js +19 -0
  21. package/lib/saml-identity-provider/index.js +2 -2
  22. package/lib/slack-app/manifest.js +1 -1
  23. package/lib/slack-app/provider-function.d.ts +13 -0
  24. package/lib/slack-app/provider-function.js +23 -0
  25. package/lib/slack-app/provider.d.ts +2 -2
  26. package/lib/slack-app/provider.js +3 -3
  27. package/lib/slack-app/{provider.handler.d.ts → provider.lambda.d.ts} +0 -0
  28. package/lib/slack-app/provider.lambda.js +101 -0
  29. package/lib/slack-app/slack-app.js +2 -2
  30. package/lib/slack-events/events-function.d.ts +13 -0
  31. package/lib/slack-events/events-function.js +23 -0
  32. package/lib/slack-events/{index.handler.d.ts → events.lambda.d.ts} +0 -0
  33. package/lib/slack-events/{index.handler.js → events.lambda.js} +1 -1
  34. package/lib/slack-events/index.js +4 -4
  35. package/lib/slack-textract/detect-function.d.ts +13 -0
  36. package/lib/slack-textract/detect-function.js +23 -0
  37. package/lib/slack-textract/{index.handler.d.ts → detect.lambda.d.ts} +0 -0
  38. package/lib/slack-textract/{index.handler.js → detect.lambda.js} +1 -1
  39. package/lib/slack-textract/index.js +4 -4
  40. package/lib/state-machine-cr-provider/index.js +1 -1
  41. package/lib/static-website/index.js +1 -1
  42. package/lib/toolkit-cleaner/clean-images-function.js +2 -1
  43. package/lib/toolkit-cleaner/clean-objects-function.js +2 -1
  44. package/lib/toolkit-cleaner/get-stack-names-function.js +2 -1
  45. package/lib/toolkit-cleaner/index.js +1 -1
  46. package/lib/url-shortener/index.js +4 -4
  47. package/lib/url-shortener/shortener-function.d.ts +13 -0
  48. package/lib/url-shortener/shortener-function.js +23 -0
  49. package/lib/url-shortener/{index.handler.d.ts → shortener.lambda.d.ts} +0 -0
  50. package/lib/url-shortener/shortener.lambda.js +79 -0
  51. package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +1 -1
  52. package/node_modules/@types/cacheable-request/node_modules/@types/node/crypto.d.ts +1 -1
  53. package/node_modules/@types/cacheable-request/node_modules/@types/node/events.d.ts +31 -3
  54. package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -2
  55. package/node_modules/@types/cacheable-request/node_modules/@types/node/url.d.ts +27 -1
  56. package/node_modules/@types/cacheable-request/node_modules/@types/node/util.d.ts +1 -1
  57. package/node_modules/@types/is-stream/node_modules/@types/node/README.md +1 -1
  58. package/node_modules/@types/is-stream/node_modules/@types/node/crypto.d.ts +1 -1
  59. package/node_modules/@types/is-stream/node_modules/@types/node/events.d.ts +31 -3
  60. package/node_modules/@types/is-stream/node_modules/@types/node/package.json +2 -2
  61. package/node_modules/@types/is-stream/node_modules/@types/node/url.d.ts +27 -1
  62. package/node_modules/@types/is-stream/node_modules/@types/node/util.d.ts +1 -1
  63. package/node_modules/@types/keyv/node_modules/@types/node/README.md +1 -1
  64. package/node_modules/@types/keyv/node_modules/@types/node/crypto.d.ts +1 -1
  65. package/node_modules/@types/keyv/node_modules/@types/node/events.d.ts +31 -3
  66. package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -2
  67. package/node_modules/@types/keyv/node_modules/@types/node/url.d.ts +27 -1
  68. package/node_modules/@types/keyv/node_modules/@types/node/util.d.ts +1 -1
  69. package/node_modules/@types/responselike/node_modules/@types/node/README.md +1 -1
  70. package/node_modules/@types/responselike/node_modules/@types/node/crypto.d.ts +1 -1
  71. package/node_modules/@types/responselike/node_modules/@types/node/events.d.ts +31 -3
  72. package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -2
  73. package/node_modules/@types/responselike/node_modules/@types/node/url.d.ts +27 -1
  74. package/node_modules/@types/responselike/node_modules/@types/node/util.d.ts +1 -1
  75. package/package.json +26 -13
  76. package/releasetag.txt +1 -1
  77. package/version.txt +1 -1
  78. package/lib/email-receiver/receiver.s3.js +0 -11
  79. package/lib/email-receiver/receiver.whitelist.js +0 -19
  80. package/lib/slack-app/provider.handler.js +0 -101
  81. package/lib/url-shortener/index.handler.js +0 -79
@@ -0,0 +1,112 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+
29
+ // src/slack-events/events.lambda.ts
30
+ var events_lambda_exports = {};
31
+ __export(events_lambda_exports, {
32
+ handler: () => handler
33
+ });
34
+ var import_aws_sdk = require("aws-sdk");
35
+
36
+ // src/slack-events/signature.ts
37
+ var crypto = __toESM(require("crypto"));
38
+ function verifyRequestSignature(options) {
39
+ const fiveMinutesAgo = Math.floor(Date.now() / 1e3) - 60 * 5;
40
+ if (options.requestTimestamp < fiveMinutesAgo) {
41
+ console.error("Slack request signing verification outdated");
42
+ return false;
43
+ }
44
+ const hmac = crypto.createHmac("sha256", options.signingSecret);
45
+ const [version, hash] = options.requestSignature.split("=");
46
+ hmac.update(`${version}:${options.requestTimestamp}:${options.body}`);
47
+ const hex = hmac.digest("hex");
48
+ if (hash.length !== hex.length || !crypto.timingSafeEqual(Buffer.from(hash), Buffer.from(hex))) {
49
+ console.error("Slack request signing verification failed");
50
+ return false;
51
+ }
52
+ return true;
53
+ }
54
+
55
+ // src/slack-events/events.lambda.ts
56
+ async function handler(event) {
57
+ console.log("Event: %j", event);
58
+ const response = {
59
+ statusCode: 200,
60
+ body: ""
61
+ };
62
+ try {
63
+ if (!process.env.SLACK_SIGNING_SECRET)
64
+ throw new Error("The environment variable SLACK_SIGNING_SECRET is not defined");
65
+ if (!event.body)
66
+ throw new Error("Missing body");
67
+ if (!event.headers["X-Slack-Signature"])
68
+ throw new Error("Missing X-Slack-Signature");
69
+ if (!event.headers["X-Slack-Request-Timestamp"])
70
+ throw new Error("Missing X-Slack-Request-Timestamp");
71
+ if (!verifyRequestSignature({
72
+ body: event.body,
73
+ requestSignature: event.headers["X-Slack-Signature"],
74
+ requestTimestamp: parseInt(event.headers["X-Slack-Request-Timestamp"], 10),
75
+ signingSecret: process.env.SLACK_SIGNING_SECRET
76
+ })) {
77
+ response.statusCode = 403;
78
+ return response;
79
+ }
80
+ const body = JSON.parse(event.body);
81
+ console.log("Body: %j", body);
82
+ if (body.type === "url_verification") {
83
+ console.log("URL verification");
84
+ response.body = JSON.stringify({ challenge: body.challenge });
85
+ return response;
86
+ }
87
+ const eventBridge = new import_aws_sdk.EventBridge({ apiVersion: "2015-10-07" });
88
+ const putEvents = await eventBridge.putEvents({
89
+ Entries: [
90
+ {
91
+ Detail: event.body,
92
+ DetailType: "Slack Event",
93
+ Source: "slack",
94
+ Resources: [body.api_app_id],
95
+ EventBusName: process.env.EVENT_BUS_NAME,
96
+ Time: new Date(body.event_time)
97
+ }
98
+ ]
99
+ }).promise();
100
+ console.log("Put events: %j", putEvents);
101
+ return response;
102
+ } catch (err) {
103
+ console.log(err);
104
+ response.statusCode = 500;
105
+ return response;
106
+ }
107
+ }
108
+ module.exports = __toCommonJS(events_lambda_exports);
109
+ // Annotate the CommonJS export names for ESM import in node:
110
+ 0 && (module.exports = {
111
+ handler
112
+ });