@creator.co/wapi 1.1.8 → 1.2.0-alpha1

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 (74) hide show
  1. package/.eslintrc.cjs +22 -22
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/package.json +48 -0
  6. package/dist/src/API/Request.d.ts +4 -5
  7. package/dist/src/API/Request.js +3 -4
  8. package/dist/src/API/Request.js.map +1 -1
  9. package/dist/src/API/Response.d.ts +1 -1
  10. package/dist/src/API/Response.js.map +1 -1
  11. package/dist/src/BaseEvent/EventProcessor.js +0 -1
  12. package/dist/src/BaseEvent/EventProcessor.js.map +1 -1
  13. package/dist/src/BaseEvent/Process.d.ts +0 -1
  14. package/dist/src/BaseEvent/Process.js +1 -2
  15. package/dist/src/BaseEvent/Process.js.map +1 -1
  16. package/dist/src/BaseEvent/Transaction.d.ts +6 -6
  17. package/dist/src/BaseEvent/Transaction.js +2 -4
  18. package/dist/src/BaseEvent/Transaction.js.map +1 -1
  19. package/dist/src/Config/EnvironmentVar.d.ts +17 -0
  20. package/dist/src/Config/EnvironmentVar.js +155 -0
  21. package/dist/src/Config/EnvironmentVar.js.map +1 -0
  22. package/dist/src/Globals.d.ts +11 -0
  23. package/dist/src/Globals.js +12 -0
  24. package/dist/src/Globals.js.map +1 -1
  25. package/dist/src/Logger/Logger.js +42 -11
  26. package/dist/src/Logger/Logger.js.map +1 -1
  27. package/dist/src/Mailer/Mailer.js +50 -24
  28. package/dist/src/Mailer/Mailer.js.map +1 -1
  29. package/dist/src/Server/Router.d.ts +30 -0
  30. package/dist/src/Server/Router.js +21 -0
  31. package/dist/src/Server/Router.js.map +1 -0
  32. package/dist/src/Server/lib/ContainerServer.d.ts +11 -0
  33. package/dist/src/Server/lib/ContainerServer.js +100 -0
  34. package/dist/src/Server/lib/ContainerServer.js.map +1 -0
  35. package/dist/src/Server/lib/Server.d.ts +9 -0
  36. package/dist/src/Server/lib/Server.js +137 -0
  37. package/dist/src/Server/lib/Server.js.map +1 -0
  38. package/dist/src/Server/lib/container/GenericHandler.d.ts +4 -0
  39. package/dist/src/Server/lib/container/GenericHandler.js +138 -0
  40. package/dist/src/Server/lib/container/GenericHandler.js.map +1 -0
  41. package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +14 -0
  42. package/dist/src/Server/lib/container/GenericHandlerEvent.js +164 -0
  43. package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +1 -0
  44. package/dist/src/Server/lib/container/HealthHandler.d.ts +3 -0
  45. package/dist/src/Server/lib/container/HealthHandler.js +44 -0
  46. package/dist/src/Server/lib/container/HealthHandler.js.map +1 -0
  47. package/dist/src/Server/lib/container/Proxy.d.ts +15 -0
  48. package/dist/src/Server/lib/container/Proxy.js +153 -0
  49. package/dist/src/Server/lib/container/Proxy.js.map +1 -0
  50. package/dist/src/Server/lib/container/Utils.d.ts +6 -0
  51. package/dist/src/Server/lib/container/Utils.js +109 -0
  52. package/dist/src/Server/lib/container/Utils.js.map +1 -0
  53. package/dist/src/Validation/Validator.d.ts +5 -0
  54. package/dist/src/Validation/Validator.js +39 -0
  55. package/dist/src/Validation/Validator.js.map +1 -0
  56. package/index.ts +2 -0
  57. package/package.json +12 -3
  58. package/src/API/Request.ts +6 -12
  59. package/src/API/Response.ts +1 -1
  60. package/src/BaseEvent/EventProcessor.ts +3 -2
  61. package/src/BaseEvent/Process.ts +4 -4
  62. package/src/BaseEvent/Transaction.ts +24 -16
  63. package/src/Config/EnvironmentVar.ts +94 -0
  64. package/src/Globals.ts +15 -0
  65. package/src/Server/Router.ts +51 -0
  66. package/src/Server/lib/ContainerServer.ts +27 -0
  67. package/src/Server/lib/Server.ts +66 -0
  68. package/src/Server/lib/container/GenericHandler.ts +63 -0
  69. package/src/Server/lib/container/GenericHandlerEvent.ts +133 -0
  70. package/src/Server/lib/container/HealthHandler.ts +5 -0
  71. package/src/Server/lib/container/Proxy.ts +107 -0
  72. package/src/Server/lib/container/Utils.ts +45 -0
  73. package/src/Validation/Validator.ts +35 -0
  74. package/tsconfig.json +2 -0
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __values = (this && this.__values) || function(o) {
50
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
51
+ if (m) return m.call(o);
52
+ if (o && typeof o.length === "number") return {
53
+ next: function () {
54
+ if (o && i >= o.length) o = void 0;
55
+ return { value: o && o[i++], done: !o };
56
+ }
57
+ };
58
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ var GenericHandlerEvent_1 = require("./GenericHandlerEvent");
62
+ var Globals_1 = require("../../../Globals");
63
+ exports.default = (function (serverlessHandler) {
64
+ return function (request, res) { return __awaiter(void 0, void 0, void 0, function () {
65
+ var startTime, resp, event_1, invokationResp, e_1;
66
+ return __generator(this, function (_a) {
67
+ switch (_a.label) {
68
+ case 0:
69
+ startTime = Date.now();
70
+ resp = null;
71
+ _a.label = 1;
72
+ case 1:
73
+ _a.trys.push([1, 3, , 4]);
74
+ event_1 = new GenericHandlerEvent_1.default(request, serverlessHandler);
75
+ return [4 /*yield*/, event_1.invoke()
76
+ // Respond
77
+ ];
78
+ case 2:
79
+ invokationResp = _a.sent();
80
+ // Respond
81
+ resp = processServerlessResponse(invokationResp, res);
82
+ return [3 /*break*/, 4];
83
+ case 3:
84
+ e_1 = _a.sent();
85
+ console.error("[Proxy] - Exception during execution!", e_1);
86
+ resp = res
87
+ .json(__assign(__assign({}, e_1), { err: Globals_1.default.Resp_MSG_EXCEPTION, errCode: Globals_1.default.Resp_CODE_EXCEPTION }))
88
+ .status(Globals_1.default.Resp_STATUSCODE_EXCEPTION); //bad gateway
89
+ return [3 /*break*/, 4];
90
+ case 4:
91
+ console.debug("[Proxy] - Request took ".concat(Date.now() - startTime, "ms"));
92
+ return [2 /*return*/, resp];
93
+ }
94
+ });
95
+ }); };
96
+ });
97
+ var processServerlessResponse = function (invokation, res) {
98
+ var e_2, _a;
99
+ var _b;
100
+ // translate answer to http layer
101
+ if (invokation && invokation.err) {
102
+ // err came
103
+ return res.json({ err: invokation.err }).status(400);
104
+ }
105
+ else if (!invokation || !invokation.data) {
106
+ // invalid response came
107
+ return res
108
+ .json({
109
+ err: Globals_1.default.Resp_MSG_INVALIDRESP,
110
+ errCode: Globals_1.default.Resp_CODE_INVALIDRESP,
111
+ })
112
+ .status(Globals_1.default.Resp_STATUSCODE_INVALIDRESP);
113
+ }
114
+ else {
115
+ // valid
116
+ var response = res
117
+ .json(invokation.data.body || {})
118
+ .status(invokation.data.statusCode);
119
+ // Check for headers
120
+ if ((_b = invokation === null || invokation === void 0 ? void 0 : invokation.data) === null || _b === void 0 ? void 0 : _b.headers) {
121
+ try {
122
+ for (var _c = __values(Object.keys(invokation.data.headers)), _d = _c.next(); !_d.done; _d = _c.next()) {
123
+ var hKey = _d.value;
124
+ response.header(hKey, invokation.data.headers[hKey]);
125
+ }
126
+ }
127
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
128
+ finally {
129
+ try {
130
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
131
+ }
132
+ finally { if (e_2) throw e_2.error; }
133
+ }
134
+ }
135
+ return response;
136
+ }
137
+ };
138
+ //# sourceMappingURL=GenericHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericHandler.js","sourceRoot":"","sources":["../../../../../src/Server/lib/container/GenericHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6DAE8B;AAC9B,4CAAsC;AAGtC,mBAAe,UAAC,iBAAkD;IAChE,OAAO,UAAO,OAAgB,EAAE,GAAa;;;;;oBACrC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBACxB,IAAI,GAAG,IAAI,CAAA;;;;oBAGP,UAAQ,IAAI,6BAAmB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;oBAE1C,qBAAM,OAAK,CAAC,MAAM,EAAE;wBAC3C,UAAU;sBADiC;;oBAArC,cAAc,GAAG,SAAoB;oBAC3C,UAAU;oBACV,IAAI,GAAG,yBAAyB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;;;;oBAErD,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAC,CAAC,CAAA;oBACzD,IAAI,GAAG,GAAG;yBACP,IAAI,uBACA,GAAC,KACJ,GAAG,EAAE,iBAAO,CAAC,kBAAkB,EAC/B,OAAO,EAAE,iBAAO,CAAC,mBAAmB,IACpC;yBACD,MAAM,CAAC,iBAAO,CAAC,yBAAyB,CAAC,CAAA,CAAC,aAAa;;;oBAE5D,OAAO,CAAC,KAAK,CAAC,iCAA0B,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,OAAI,CAAC,CAAA;oBACnE,sBAAO,IAAI,EAAA;;;SACZ,CAAA;AACH,CAAC,EAAA;AACD,IAAM,yBAAyB,GAAG,UAChC,UAAuC,EACvC,GAAa;;;IAEb,iCAAiC;IACjC,IAAI,UAAU,IAAI,UAAU,CAAC,GAAG,EAAE;QAChC,WAAW;QACX,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KACrD;SAAM,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAC1C,wBAAwB;QACxB,OAAO,GAAG;aACP,IAAI,CAAC;YACJ,GAAG,EAAE,iBAAO,CAAC,oBAAoB;YACjC,OAAO,EAAE,iBAAO,CAAC,qBAAqB;SACvC,CAAC;aACD,MAAM,CAAC,iBAAO,CAAC,2BAA2B,CAAC,CAAA;KAC/C;SAAM;QACL,QAAQ;QACR,IAAM,QAAQ,GAAG,GAAG;aACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrC,oBAAoB;QACpB,IAAI,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,0CAAE,OAAO,EAAE;;gBAC7B,KAAmB,IAAA,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,gBAAA,4BAAE;oBAApD,IAAM,IAAI,WAAA;oBACb,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;iBACrD;;;;;;;;;SACF;QACD,OAAO,QAAQ,CAAA;KAChB;AACH,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Request } from "express";
2
+ import Server from "../Server";
3
+ export type GenericHandlerEventResponse = {
4
+ err?: Error | string;
5
+ data?: any;
6
+ };
7
+ export default class GenericHandlerEvent {
8
+ request: Request;
9
+ serverlessHandler: Server["handleServerlessEvent"];
10
+ constructor(request: Request, serverlessHandler: Server["handleServerlessEvent"]);
11
+ invoke(): Promise<GenericHandlerEventResponse>;
12
+ private buildEvent;
13
+ private buildContext;
14
+ }
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var cuid = require("cuid");
40
+ var unflatten_1 = require("unflatten");
41
+ var Utils_1 = require("./Utils");
42
+ var Globals_1 = require("../../../Globals");
43
+ //
44
+ var GenericHandlerEvent = /** @class */ (function () {
45
+ function GenericHandlerEvent(request, serverlessHandler) {
46
+ this.request = request;
47
+ this.serverlessHandler = serverlessHandler;
48
+ }
49
+ GenericHandlerEvent.prototype.invoke = function () {
50
+ return __awaiter(this, void 0, void 0, function () {
51
+ var _this = this;
52
+ return __generator(this, function (_a) {
53
+ // eslint-disable-next-line no-async-promise-executor
54
+ return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
55
+ var event_1, context, e_1;
56
+ return __generator(this, function (_a) {
57
+ switch (_a.label) {
58
+ case 0:
59
+ _a.trys.push([0, 2, , 3]);
60
+ event_1 = this.buildEvent();
61
+ context = this.buildContext(event_1, function (err, data) {
62
+ resolve({ err: err, data: data });
63
+ });
64
+ // Invoke
65
+ return [4 /*yield*/, this.serverlessHandler(event_1, context)];
66
+ case 1:
67
+ // Invoke
68
+ _a.sent();
69
+ return [3 /*break*/, 3];
70
+ case 2:
71
+ e_1 = _a.sent();
72
+ reject(e_1); // forward rejection
73
+ return [3 /*break*/, 3];
74
+ case 3: return [2 /*return*/];
75
+ }
76
+ });
77
+ }); })];
78
+ });
79
+ });
80
+ };
81
+ /* private */
82
+ GenericHandlerEvent.prototype.buildEvent = function () {
83
+ var _a;
84
+ return {
85
+ body: this.request.body || null,
86
+ headers: this.request.headers ? (0, unflatten_1.default)(this.request.headers, 2) : [],
87
+ httpMethod: this.request.method
88
+ ? this.request.method.toUpperCase()
89
+ : null,
90
+ isBase64Encoded: false,
91
+ multiValueHeaders: (0, Utils_1.parseMultiValueHeaders)(this.request.headers ? this.request.headers || [] : []),
92
+ multiValueQueryStringParameters: (0, Utils_1.parseMultiValueQueryStringParameters)(this.request.url),
93
+ path: this.request.path,
94
+ pathParameters: this.request.params
95
+ ? (0, Utils_1.nullIfEmpty)(this.request.params)
96
+ : null,
97
+ queryStringParameters: this.request.query
98
+ ? (0, Utils_1.parseQueryStringParameters)(this.request.query)
99
+ : null,
100
+ requestContext: {
101
+ accountId: process.env.AWS_ACCOUNT_ID || null,
102
+ apiId: null,
103
+ authorizer: null,
104
+ domainName: null,
105
+ domainPrefix: null,
106
+ extendedRequestId: cuid(),
107
+ httpMethod: this.request.method
108
+ ? this.request.method.toUpperCase()
109
+ : null,
110
+ identity: {
111
+ accessKey: null,
112
+ accountId: process.env.AWS_ACCOUNT_ID || null,
113
+ caller: null,
114
+ apiKey: null,
115
+ apiKeyId: null,
116
+ clientCert: null,
117
+ cognitoAuthenticationProvider: null,
118
+ cognitoAuthenticationType: null,
119
+ cognitoIdentityId: null,
120
+ cognitoIdentityPoolId: null,
121
+ principalOrgId: null,
122
+ sourceIp: ((_a = this.request.headers) === null || _a === void 0 ? void 0 : _a["x-forwarded-for"]) ||
123
+ this.request.socket.remoteAddress,
124
+ user: null,
125
+ userAgent: this.request.headers
126
+ ? this.request.headers["user-agent"]
127
+ : null,
128
+ userArn: null,
129
+ },
130
+ path: this.request.path,
131
+ protocol: "HTTP/1.1",
132
+ requestId: "".concat(cuid(), "-").concat(cuid()),
133
+ requestTime: new Date().toISOString(),
134
+ requestTimeEpoch: Date.now(),
135
+ resourceId: null,
136
+ resourcePath: Globals_1.default.Listener_HTTP_ProxyRoute,
137
+ stage: process.env.STAGE,
138
+ },
139
+ resource: Globals_1.default.Listener_HTTP_ProxyRoute,
140
+ stageVariables: null,
141
+ };
142
+ };
143
+ GenericHandlerEvent.prototype.buildContext = function (event, callback) {
144
+ return {
145
+ awsRequestId: event.requestContext.requestId,
146
+ callbackWaitsForEmptyEventLoop: true,
147
+ getRemainingTimeInMillis: function () {
148
+ return 0;
149
+ },
150
+ done: function (err, data) { return callback(err, data); },
151
+ fail: function (err) { return callback(err); },
152
+ succeed: function (res) { return callback(null, res); },
153
+ functionName: null,
154
+ functionVersion: "LATEST",
155
+ invokedFunctionArn: null,
156
+ memoryLimitInMB: "-1",
157
+ logGroupName: null,
158
+ logStreamName: null,
159
+ };
160
+ };
161
+ return GenericHandlerEvent;
162
+ }());
163
+ exports.default = GenericHandlerEvent;
164
+ //# sourceMappingURL=GenericHandlerEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericHandlerEvent.js","sourceRoot":"","sources":["../../../../../src/Server/lib/container/GenericHandlerEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Request, Response } from "express";
2
+ declare const _default: (_request: Request, res: Response) => Promise<Response<any, Record<string, any>>>;
3
+ export default _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = (function (_request, res) { return __awaiter(void 0, void 0, void 0, function () {
40
+ return __generator(this, function (_a) {
41
+ return [2 /*return*/, res.send("Healthy!")];
42
+ });
43
+ }); });
44
+ //# sourceMappingURL=HealthHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthHandler.js","sourceRoot":"","sources":["../../../../../src/Server/lib/container/HealthHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mBAAe,UAAO,QAAiB,EAAE,GAAa;;QACpD,sBAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;KAC5B,EAAA"}
@@ -0,0 +1,15 @@
1
+ import Server from "./../Server";
2
+ import { RouterConfig } from "../../Router";
3
+ export default class Proxy {
4
+ private stopping;
5
+ private readonly config;
6
+ private readonly app;
7
+ private readonly serverlessHandler;
8
+ private listener;
9
+ constructor(config: RouterConfig, serverlessHandler: Server["handleServerlessEvent"]);
10
+ load(): Promise<void>;
11
+ unload(err: any): Promise<void>;
12
+ private startListeners;
13
+ private stopListeners;
14
+ private installRoutes;
15
+ }
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var http_1 = require("http");
40
+ var cors_1 = require("cors");
41
+ var express = require("express");
42
+ var GenericHandler_1 = require("./GenericHandler");
43
+ var HealthHandler_1 = require("./HealthHandler");
44
+ var package_json_1 = require("../../../../package.json");
45
+ var Globals_1 = require("../../../Globals");
46
+ var Proxy = /** @class */ (function () {
47
+ function Proxy(config, serverlessHandler) {
48
+ var _a, _b, _c, _d, _e, _f;
49
+ this.stopping = false;
50
+ this.config = config;
51
+ this.serverlessHandler = serverlessHandler;
52
+ this.app = express();
53
+ this.app.use((0, cors_1.default)(this.config.cors
54
+ ? {
55
+ options: {
56
+ origin: (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.cors) === null || _b === void 0 ? void 0 : _b.origin,
57
+ allowedHeaders: (_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.cors) === null || _d === void 0 ? void 0 : _d.headers,
58
+ credentials: !!((_f = (_e = this.config) === null || _e === void 0 ? void 0 : _e.cors) === null || _f === void 0 ? void 0 : _f.allowCredentials),
59
+ },
60
+ }
61
+ : {}));
62
+ // //This supposedly fix some 502 codes where nodejs socket would hang during
63
+ // //a request and if behind ALB, it would cause 502 codes. Had experiencied this
64
+ // //and 502 codes reduced dramastically, but still some appearances. Maybe this
65
+ // //is just a palliative work-around for the real issue; TODO: need to investigate
66
+ // //in the future.
67
+ // this.listener.listener.keepAliveTimeout = 120e3
68
+ // this.listener.listener.headersTimeout = 120e3
69
+ }
70
+ Proxy.prototype.load = function () {
71
+ return __awaiter(this, void 0, void 0, function () {
72
+ return __generator(this, function (_a) {
73
+ switch (_a.label) {
74
+ case 0: return [4 /*yield*/, this.startListeners()];
75
+ case 1:
76
+ _a.sent();
77
+ this.installRoutes();
78
+ return [2 /*return*/];
79
+ }
80
+ });
81
+ });
82
+ };
83
+ Proxy.prototype.unload = function (err) {
84
+ return __awaiter(this, void 0, void 0, function () {
85
+ return __generator(this, function (_a) {
86
+ switch (_a.label) {
87
+ case 0: return [4 /*yield*/, this.stopListeners(err)];
88
+ case 1:
89
+ _a.sent();
90
+ return [2 /*return*/];
91
+ }
92
+ });
93
+ });
94
+ };
95
+ /* lifecycle */
96
+ Proxy.prototype.startListeners = function () {
97
+ return __awaiter(this, void 0, void 0, function () {
98
+ var _this = this;
99
+ return __generator(this, function (_a) {
100
+ return [2 /*return*/, new Promise(function (resolve) {
101
+ var port = _this.config.port || Globals_1.default.Listener_HTTP_DefaultPort;
102
+ console.log("[Proxy] - [STARTING] - v.".concat(package_json_1.version, " - :").concat(port));
103
+ // Create Server
104
+ _this.listener = (0, http_1.createServer)(_this.app);
105
+ // Set defaults
106
+ _this.listener.setTimeout(_this.config.timeout || Globals_1.default.Listener_HTTP_DefaultTimeout);
107
+ // Start Server
108
+ _this.listener.listen(port, function () {
109
+ console.log("[Proxy] - [STARTED]");
110
+ resolve();
111
+ });
112
+ })];
113
+ });
114
+ });
115
+ };
116
+ Proxy.prototype.stopListeners = function (err) {
117
+ return __awaiter(this, void 0, void 0, function () {
118
+ return __generator(this, function (_a) {
119
+ if (this.stopping)
120
+ return [2 /*return*/];
121
+ this.stopping = true;
122
+ console.debug("[Proxy] - [STOPPING]");
123
+ this.listener.close(function (_err) {
124
+ if (err || _err)
125
+ console.log("[Proxy] - exit output:", err || _err);
126
+ console.log("[Proxy] - [STOPPED]");
127
+ process.exit(err || _err ? 1 : 0);
128
+ });
129
+ return [2 /*return*/];
130
+ });
131
+ });
132
+ };
133
+ /* routing */
134
+ Proxy.prototype.installRoutes = function () {
135
+ //Health check route -- This is a bypass route to only check if
136
+ //runtime proxy is working and responding to calls.
137
+ console.log("[Proxy] - [HEALTH-ROUTE] - ".concat(this.config.healthCheckRoute ||
138
+ Globals_1.default.Listener_HTTP_DefaultHealthCheckRoute));
139
+ this.app
140
+ .route(this.config.healthCheckRoute ||
141
+ Globals_1.default.Listener_HTTP_DefaultHealthCheckRoute)
142
+ .get(HealthHandler_1.default);
143
+ //Main route -- We use a wildcard route because is not the job of the runtime and neither
144
+ //the task to deny/constrain routes that invoked this task; all the job is done by the
145
+ //load balancer and we just foward everything we have to the function.
146
+ this.app
147
+ .route(Globals_1.default.Listener_HTTP_ProxyRoute)
148
+ .all((0, GenericHandler_1.default)(this.serverlessHandler));
149
+ };
150
+ return Proxy;
151
+ }());
152
+ exports.default = Proxy;
153
+ //# sourceMappingURL=Proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../../../../src/Server/lib/container/Proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function parseMultiValueHeaders(rawHeaders: any): any;
2
+ export declare function parseMultiValueQueryStringParameters(url: any): any;
3
+ export declare function parseQueryStringParameters(url: any): {
4
+ [k: string]: string;
5
+ };
6
+ export declare function nullIfEmpty(obj: any): any;