@creator.co/wapi 1.1.7 → 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.
- package/.eslintrc.cjs +22 -22
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/package.json +48 -0
- package/dist/src/API/Request.d.ts +4 -5
- package/dist/src/API/Request.js +3 -4
- package/dist/src/API/Request.js.map +1 -1
- package/dist/src/API/Response.d.ts +1 -1
- package/dist/src/API/Response.js.map +1 -1
- package/dist/src/BaseEvent/EventProcessor.js +0 -1
- package/dist/src/BaseEvent/EventProcessor.js.map +1 -1
- package/dist/src/BaseEvent/Process.d.ts +0 -1
- package/dist/src/BaseEvent/Process.js +1 -2
- package/dist/src/BaseEvent/Process.js.map +1 -1
- package/dist/src/BaseEvent/Transaction.d.ts +6 -6
- package/dist/src/BaseEvent/Transaction.js +2 -4
- package/dist/src/BaseEvent/Transaction.js.map +1 -1
- package/dist/src/Config/EnvironmentVar.d.ts +17 -0
- package/dist/src/Config/EnvironmentVar.js +155 -0
- package/dist/src/Config/EnvironmentVar.js.map +1 -0
- package/dist/src/Globals.d.ts +11 -0
- package/dist/src/Globals.js +12 -0
- package/dist/src/Globals.js.map +1 -1
- package/dist/src/Logger/Logger.js +42 -11
- package/dist/src/Logger/Logger.js.map +1 -1
- package/dist/src/Mailer/Mailer.js +52 -26
- package/dist/src/Mailer/Mailer.js.map +1 -1
- package/dist/src/Server/Router.d.ts +30 -0
- package/dist/src/Server/Router.js +21 -0
- package/dist/src/Server/Router.js.map +1 -0
- package/dist/src/Server/lib/ContainerServer.d.ts +11 -0
- package/dist/src/Server/lib/ContainerServer.js +100 -0
- package/dist/src/Server/lib/ContainerServer.js.map +1 -0
- package/dist/src/Server/lib/Server.d.ts +9 -0
- package/dist/src/Server/lib/Server.js +137 -0
- package/dist/src/Server/lib/Server.js.map +1 -0
- package/dist/src/Server/lib/container/GenericHandler.d.ts +4 -0
- package/dist/src/Server/lib/container/GenericHandler.js +138 -0
- package/dist/src/Server/lib/container/GenericHandler.js.map +1 -0
- package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +14 -0
- package/dist/src/Server/lib/container/GenericHandlerEvent.js +164 -0
- package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +1 -0
- package/dist/src/Server/lib/container/HealthHandler.d.ts +3 -0
- package/dist/src/Server/lib/container/HealthHandler.js +44 -0
- package/dist/src/Server/lib/container/HealthHandler.js.map +1 -0
- package/dist/src/Server/lib/container/Proxy.d.ts +15 -0
- package/dist/src/Server/lib/container/Proxy.js +153 -0
- package/dist/src/Server/lib/container/Proxy.js.map +1 -0
- package/dist/src/Server/lib/container/Utils.d.ts +6 -0
- package/dist/src/Server/lib/container/Utils.js +109 -0
- package/dist/src/Server/lib/container/Utils.js.map +1 -0
- package/dist/src/Validation/Validator.d.ts +5 -0
- package/dist/src/Validation/Validator.js +39 -0
- package/dist/src/Validation/Validator.js.map +1 -0
- package/index.ts +2 -0
- package/package.json +12 -3
- package/src/API/Request.ts +6 -12
- package/src/API/Response.ts +1 -1
- package/src/BaseEvent/EventProcessor.ts +3 -2
- package/src/BaseEvent/Process.ts +4 -4
- package/src/BaseEvent/Transaction.ts +24 -16
- package/src/Config/EnvironmentVar.ts +94 -0
- package/src/Globals.ts +15 -0
- package/src/Mailer/Mailer.ts +2 -0
- package/src/Server/Router.ts +51 -0
- package/src/Server/lib/ContainerServer.ts +27 -0
- package/src/Server/lib/Server.ts +66 -0
- package/src/Server/lib/container/GenericHandler.ts +63 -0
- package/src/Server/lib/container/GenericHandlerEvent.ts +133 -0
- package/src/Server/lib/container/HealthHandler.ts +5 -0
- package/src/Server/lib/container/Proxy.ts +107 -0
- package/src/Server/lib/container/Utils.ts +45 -0
- package/src/Validation/Validator.ts +35 -0
- 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,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;
|