@fintalk.ai/lambda-handlers 1.0.1 → 1.0.2
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/lib/constants.d.ts +6 -0
- package/lib/constants.js +10 -0
- package/lib/constants.js.map +1 -0
- package/lib/errors/bad-request-error.d.ts +4 -0
- package/lib/errors/bad-request-error.js +34 -0
- package/lib/errors/bad-request-error.js.map +1 -0
- package/lib/errors/conflict-error.d.ts +4 -0
- package/lib/errors/conflict-error.js +33 -0
- package/lib/errors/conflict-error.js.map +1 -0
- package/lib/errors/fintalk-error.d.ts +36 -0
- package/lib/errors/fintalk-error.js +54 -0
- package/lib/errors/fintalk-error.js.map +1 -0
- package/lib/errors/forbidden-error.d.ts +4 -0
- package/lib/errors/forbidden-error.js +33 -0
- package/lib/errors/forbidden-error.js.map +1 -0
- package/lib/errors/gone-error.d.ts +4 -0
- package/lib/errors/gone-error.js +33 -0
- package/lib/errors/gone-error.js.map +1 -0
- package/lib/errors/internal-server-error.d.ts +4 -0
- package/lib/errors/internal-server-error.js +33 -0
- package/lib/errors/internal-server-error.js.map +1 -0
- package/lib/errors/not-acceptable-error.d.ts +4 -0
- package/lib/errors/not-acceptable-error.js +33 -0
- package/lib/errors/not-acceptable-error.js.map +1 -0
- package/lib/errors/not-found-error.d.ts +4 -0
- package/lib/errors/not-found-error.js +33 -0
- package/lib/errors/not-found-error.js.map +1 -0
- package/lib/errors/payment-required-error.d.ts +4 -0
- package/lib/errors/payment-required-error.js +33 -0
- package/lib/errors/payment-required-error.js.map +1 -0
- package/lib/errors/precondition-failed-error.d.ts +4 -0
- package/lib/errors/precondition-failed-error.js +33 -0
- package/lib/errors/precondition-failed-error.js.map +1 -0
- package/lib/errors/service-unavailable-error.d.ts +4 -0
- package/lib/errors/service-unavailable-error.js +33 -0
- package/lib/errors/service-unavailable-error.js.map +1 -0
- package/lib/errors/teapot-error.d.ts +4 -0
- package/lib/errors/teapot-error.js +33 -0
- package/lib/errors/teapot-error.js.map +1 -0
- package/lib/errors/too-many-requests-error.d.ts +4 -0
- package/lib/errors/too-many-requests-error.js +33 -0
- package/lib/errors/too-many-requests-error.js.map +1 -0
- package/lib/errors/unauthorized-error.d.ts +4 -0
- package/lib/errors/unauthorized-error.js +33 -0
- package/lib/errors/unauthorized-error.js.map +1 -0
- package/lib/errors/unprocessable-entity-error.d.ts +4 -0
- package/lib/errors/unprocessable-entity-error.js +34 -0
- package/lib/errors/unprocessable-entity-error.js.map +1 -0
- package/lib/handlers/api-proxy.d.ts +13 -0
- package/lib/handlers/api-proxy.js +163 -0
- package/lib/handlers/api-proxy.js.map +1 -0
- package/lib/handlers/api.d.ts +7 -0
- package/lib/handlers/api.js +106 -0
- package/lib/handlers/api.js.map +1 -0
- package/lib/handlers/invoke.d.ts +7 -0
- package/lib/handlers/invoke.js +83 -0
- package/lib/handlers/invoke.js.map +1 -0
- package/lib/handlers/sqs-v2.d.ts +21 -0
- package/lib/handlers/sqs-v2.js +140 -0
- package/lib/handlers/sqs-v2.js.map +1 -0
- package/lib/handlers/sqs.d.ts +7 -0
- package/lib/handlers/sqs.js +77 -0
- package/lib/handlers/sqs.js.map +1 -0
- package/lib/index.d.ts +22 -0
- package/lib/index.js +64 -0
- package/lib/index.js.map +1 -0
- package/lib/models.d.ts +72 -0
- package/lib/models.js +3 -0
- package/lib/models.js.map +1 -0
- package/lib/utils/compare-ignore-case.d.ts +2 -0
- package/lib/utils/compare-ignore-case.js +10 -0
- package/lib/utils/compare-ignore-case.js.map +1 -0
- package/lib/utils/extract-ip.d.ts +3 -0
- package/lib/utils/extract-ip.js +12 -0
- package/lib/utils/extract-ip.js.map +1 -0
- package/lib/utils/extract-user.d.ts +4 -0
- package/lib/utils/extract-user.js +57 -0
- package/lib/utils/extract-user.js.map +1 -0
- package/lib/utils/get-user-id.d.ts +3 -0
- package/lib/utils/get-user-id.js +18 -0
- package/lib/utils/get-user-id.js.map +1 -0
- package/lib/utils/json-parse.d.ts +2 -0
- package/lib/utils/json-parse.js +27 -0
- package/lib/utils/json-parse.js.map +1 -0
- package/lib/utils/lower-case-headers.d.ts +3 -0
- package/lib/utils/lower-case-headers.js +22 -0
- package/lib/utils/lower-case-headers.js.map +1 -0
- package/lib/utils/parse-body.d.ts +2 -0
- package/lib/utils/parse-body.js +19 -0
- package/lib/utils/parse-body.js.map +1 -0
- package/lib/utils/parse-request.d.ts +5 -0
- package/lib/utils/parse-request.js +44 -0
- package/lib/utils/parse-request.js.map +1 -0
- package/package.json +3 -6
|
@@ -0,0 +1,140 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.LambdaSqsHandlerV2 = void 0;
|
|
43
|
+
var logger_1 = __importDefault(require("fintalk-logger/lib/logger"));
|
|
44
|
+
var LambdaSqsHandlerV2 = (function () {
|
|
45
|
+
function LambdaSqsHandlerV2(options) {
|
|
46
|
+
this.options = options;
|
|
47
|
+
}
|
|
48
|
+
LambdaSqsHandlerV2.prototype.parseBody = function (body, logger) {
|
|
49
|
+
try {
|
|
50
|
+
return {
|
|
51
|
+
success: true,
|
|
52
|
+
data: JSON.parse(body),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
logger.error(error);
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
LambdaSqsHandlerV2.prototype.executeWorker = function (record) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
+
var logger, parseResult, body;
|
|
65
|
+
return __generator(this, function (_a) {
|
|
66
|
+
logger = new logger_1.default();
|
|
67
|
+
logger.resetConfig();
|
|
68
|
+
logger.setService(this.options.service);
|
|
69
|
+
parseResult = this.parseBody(record.body, logger);
|
|
70
|
+
if (!parseResult.success) {
|
|
71
|
+
return [2, record.messageId];
|
|
72
|
+
}
|
|
73
|
+
body = parseResult.data;
|
|
74
|
+
logger.setRequestId(body.request_id);
|
|
75
|
+
logger.setUser({
|
|
76
|
+
id: body.user_id,
|
|
77
|
+
});
|
|
78
|
+
return [2, this.options.worker({
|
|
79
|
+
id: record.messageId,
|
|
80
|
+
body: body,
|
|
81
|
+
}, logger)
|
|
82
|
+
.then(function () { return null; })
|
|
83
|
+
.catch(function (error) {
|
|
84
|
+
if (!error.isTreated) {
|
|
85
|
+
logger.error(error);
|
|
86
|
+
}
|
|
87
|
+
return record.messageId;
|
|
88
|
+
})];
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
LambdaSqsHandlerV2.prototype.handler = function (event) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
94
|
+
var failures, results, _i, _a, record, result;
|
|
95
|
+
var _this = this;
|
|
96
|
+
return __generator(this, function (_b) {
|
|
97
|
+
switch (_b.label) {
|
|
98
|
+
case 0:
|
|
99
|
+
failures = [];
|
|
100
|
+
if (!this.options.parallel) return [3, 2];
|
|
101
|
+
return [4, Promise.all(event.Records.map(function (record) {
|
|
102
|
+
return _this.executeWorker(record);
|
|
103
|
+
}))];
|
|
104
|
+
case 1:
|
|
105
|
+
results = _b.sent();
|
|
106
|
+
results.forEach(function (result) {
|
|
107
|
+
if (result !== null) {
|
|
108
|
+
failures.push(result);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
return [3, 6];
|
|
112
|
+
case 2:
|
|
113
|
+
_i = 0, _a = event.Records;
|
|
114
|
+
_b.label = 3;
|
|
115
|
+
case 3:
|
|
116
|
+
if (!(_i < _a.length)) return [3, 6];
|
|
117
|
+
record = _a[_i];
|
|
118
|
+
return [4, this.executeWorker(record)];
|
|
119
|
+
case 4:
|
|
120
|
+
result = _b.sent();
|
|
121
|
+
if (result !== null) {
|
|
122
|
+
failures.push(result);
|
|
123
|
+
}
|
|
124
|
+
_b.label = 5;
|
|
125
|
+
case 5:
|
|
126
|
+
_i++;
|
|
127
|
+
return [3, 3];
|
|
128
|
+
case 6: return [2, {
|
|
129
|
+
batchItemFailures: failures.map(function (result) { return ({
|
|
130
|
+
itemIdentifier: result,
|
|
131
|
+
}); }),
|
|
132
|
+
}];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
return LambdaSqsHandlerV2;
|
|
138
|
+
}());
|
|
139
|
+
exports.LambdaSqsHandlerV2 = LambdaSqsHandlerV2;
|
|
140
|
+
//# sourceMappingURL=sqs-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs-v2.js","sourceRoot":"","sources":["../../src/handlers/sqs-v2.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qEAA8C;AAU9C;IAGE,4BAAa,OAAkC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,sCAAS,GAAT,UAAW,IAAY,EAAE,MAAc;QACrC,IAAI;YACF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACvB,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;aACf,CAAA;SACF;IACH,CAAC;IAEK,0CAAa,GAAnB,UAAqB,MAAiB;;;;gBAC9B,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAA;gBAC3B,MAAM,CAAC,WAAW,EAAE,CAAA;gBACpB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAEjC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBACvD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oBACxB,WAAO,MAAM,CAAC,SAAS,EAAA;iBACxB;gBAEK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAA;gBAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACpC,MAAM,CAAC,OAAO,CAAC;oBACb,EAAE,EAAE,IAAI,CAAC,OAAO;iBACjB,CAAC,CAAA;gBAEF,WAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB;wBACE,EAAE,EAAE,MAAM,CAAC,SAAS;wBACpB,IAAI,MAAA;qBACL,EACD,MAAM,CACP;yBACE,IAAI,CAAC,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAC;yBAChB,KAAK,CAAC,UAAC,KAAU;wBAChB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;4BACpB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;yBACpB;wBAED,OAAO,MAAM,CAAC,SAAS,CAAA;oBACzB,CAAC,CAAC,EAAA;;;KACL;IAEK,oCAAO,GAAb,UAAe,KAAe;;;;;;;wBACtB,QAAQ,GAAa,EAAE,CAAA;6BAEzB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAArB,cAAqB;wBACP,WAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,OAAO,CAAC,GAAG,CACf,UAAC,MAAM;gCACL,OAAO,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;4BACnC,CAAC,CACF,CACF,EAAA;;wBANK,OAAO,GAAG,SAMf;wBAED,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM;4BACrB,IAAI,MAAM,KAAK,IAAI,EAAE;gCACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;6BACtB;wBACH,CAAC,CAAC,CAAA;;;8BAEgC,EAAb,KAAA,KAAK,CAAC,OAAO;;;6BAAb,CAAA,cAAa,CAAA;wBAAvB,MAAM;wBACA,WAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAA;;wBAAzC,MAAM,GAAG,SAAgC;wBAC/C,IAAI,MAAM,KAAK,IAAI,EAAE;4BACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;yBACtB;;;wBAJkB,IAAa,CAAA;;4BAQpC,WAAO;4BACL,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC;gCAC3C,cAAc,EAAE,MAAM;6BACvB,CAAC,EAF0C,CAE1C,CAAC;yBACJ,EAAA;;;;KACF;IACH,yBAAC;AAAD,CAAC,AAtFD,IAsFC;AAtFY,gDAAkB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.LambdaSqsHandler = void 0;
|
|
43
|
+
var fintalk_logger_1 = __importDefault(require("fintalk-logger"));
|
|
44
|
+
var LambdaSqsHandler = (function () {
|
|
45
|
+
function LambdaSqsHandler(worker) {
|
|
46
|
+
this.worker = worker;
|
|
47
|
+
}
|
|
48
|
+
LambdaSqsHandler.prototype.handler = function (event) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
+
var error_1;
|
|
51
|
+
return __generator(this, function (_a) {
|
|
52
|
+
switch (_a.label) {
|
|
53
|
+
case 0:
|
|
54
|
+
_a.trys.push([0, 2, , 3]);
|
|
55
|
+
return [4, this.worker(event.Records.map(function (record) { return ({
|
|
56
|
+
id: record.messageId,
|
|
57
|
+
body: JSON.parse(record.body),
|
|
58
|
+
}); }))];
|
|
59
|
+
case 1:
|
|
60
|
+
_a.sent();
|
|
61
|
+
return [3, 3];
|
|
62
|
+
case 2:
|
|
63
|
+
error_1 = _a.sent();
|
|
64
|
+
if (error_1.isTreated) {
|
|
65
|
+
throw error_1;
|
|
66
|
+
}
|
|
67
|
+
fintalk_logger_1.default.error(error_1);
|
|
68
|
+
throw error_1;
|
|
69
|
+
case 3: return [2];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
return LambdaSqsHandler;
|
|
75
|
+
}());
|
|
76
|
+
exports.LambdaSqsHandler = LambdaSqsHandler;
|
|
77
|
+
//# sourceMappingURL=sqs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs.js","sourceRoot":"","sources":["../../src/handlers/sqs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kEAAmC;AAInC;IAGE,0BAAa,MAAc;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEK,kCAAO,GAAb,UAAe,KAAe;;;;;;;wBAE1B,WAAM,IAAI,CAAC,MAAM,CACf,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC;gCAC7B,EAAE,EAAE,MAAM,CAAC,SAAS;gCACpB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;6BAC9B,CAAC,EAH4B,CAG5B,CAAC,CACJ,EAAA;;wBALD,SAKC,CAAA;;;;wBAED,IAAI,OAAK,CAAC,SAAS,EAAE;4BACnB,MAAM,OAAK,CAAA;yBACZ;wBAED,wBAAM,CAAC,KAAK,CAAC,OAAK,CAAC,CAAA;wBACnB,MAAM,OAAK,CAAA;;;;;KAEd;IACH,uBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,4CAAgB"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { default as BadRequestError } from './errors/bad-request-error';
|
|
2
|
+
export { default as ConflictError } from './errors/conflict-error';
|
|
3
|
+
export { default as ForbiddenError } from './errors/forbidden-error';
|
|
4
|
+
export { default as GoneError } from './errors/gone-error';
|
|
5
|
+
export { default as InternalServerError } from './errors/internal-server-error';
|
|
6
|
+
export { default as NotAcceptableError } from './errors/not-acceptable-error';
|
|
7
|
+
export { default as NotFoundError } from './errors/not-found-error';
|
|
8
|
+
export { default as PaymentRequiredError } from './errors/payment-required-error';
|
|
9
|
+
export { default as PreconditionFailedError } from './errors/precondition-failed-error';
|
|
10
|
+
export { default as ServiceUnavailableError } from './errors/service-unavailable-error';
|
|
11
|
+
export { default as TeapotError } from './errors/teapot-error';
|
|
12
|
+
export { default as FintalkError } from './errors/fintalk-error';
|
|
13
|
+
export { default as TooManyRequestsError } from './errors/too-many-requests-error';
|
|
14
|
+
export { default as UnauthorizedError } from './errors/unauthorized-error';
|
|
15
|
+
export { default as UnprocessableEntityError } from './errors/unprocessable-entity-error';
|
|
16
|
+
export { LambdaApiProxyHandler } from './handlers/api-proxy';
|
|
17
|
+
export { LambdaApiHandler } from './handlers/api';
|
|
18
|
+
export { LambdaSqsHandler } from './handlers/sqs';
|
|
19
|
+
export { LambdaSqsHandlerV2, LambdaSqsHandlerV2Options } from './handlers/sqs-v2';
|
|
20
|
+
export { LambdaInvokeHandler } from './handlers/invoke';
|
|
21
|
+
export { default as getUserId } from './utils/get-user-id';
|
|
22
|
+
export * from './models';
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.getUserId = exports.LambdaInvokeHandler = exports.LambdaSqsHandlerV2 = exports.LambdaSqsHandler = exports.LambdaApiHandler = exports.LambdaApiProxyHandler = exports.UnprocessableEntityError = exports.UnauthorizedError = exports.TooManyRequestsError = exports.FintalkError = exports.TeapotError = exports.ServiceUnavailableError = exports.PreconditionFailedError = exports.PaymentRequiredError = exports.NotFoundError = exports.NotAcceptableError = exports.InternalServerError = exports.GoneError = exports.ForbiddenError = exports.ConflictError = exports.BadRequestError = void 0;
|
|
21
|
+
var bad_request_error_1 = require("./errors/bad-request-error");
|
|
22
|
+
Object.defineProperty(exports, "BadRequestError", { enumerable: true, get: function () { return __importDefault(bad_request_error_1).default; } });
|
|
23
|
+
var conflict_error_1 = require("./errors/conflict-error");
|
|
24
|
+
Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return __importDefault(conflict_error_1).default; } });
|
|
25
|
+
var forbidden_error_1 = require("./errors/forbidden-error");
|
|
26
|
+
Object.defineProperty(exports, "ForbiddenError", { enumerable: true, get: function () { return __importDefault(forbidden_error_1).default; } });
|
|
27
|
+
var gone_error_1 = require("./errors/gone-error");
|
|
28
|
+
Object.defineProperty(exports, "GoneError", { enumerable: true, get: function () { return __importDefault(gone_error_1).default; } });
|
|
29
|
+
var internal_server_error_1 = require("./errors/internal-server-error");
|
|
30
|
+
Object.defineProperty(exports, "InternalServerError", { enumerable: true, get: function () { return __importDefault(internal_server_error_1).default; } });
|
|
31
|
+
var not_acceptable_error_1 = require("./errors/not-acceptable-error");
|
|
32
|
+
Object.defineProperty(exports, "NotAcceptableError", { enumerable: true, get: function () { return __importDefault(not_acceptable_error_1).default; } });
|
|
33
|
+
var not_found_error_1 = require("./errors/not-found-error");
|
|
34
|
+
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return __importDefault(not_found_error_1).default; } });
|
|
35
|
+
var payment_required_error_1 = require("./errors/payment-required-error");
|
|
36
|
+
Object.defineProperty(exports, "PaymentRequiredError", { enumerable: true, get: function () { return __importDefault(payment_required_error_1).default; } });
|
|
37
|
+
var precondition_failed_error_1 = require("./errors/precondition-failed-error");
|
|
38
|
+
Object.defineProperty(exports, "PreconditionFailedError", { enumerable: true, get: function () { return __importDefault(precondition_failed_error_1).default; } });
|
|
39
|
+
var service_unavailable_error_1 = require("./errors/service-unavailable-error");
|
|
40
|
+
Object.defineProperty(exports, "ServiceUnavailableError", { enumerable: true, get: function () { return __importDefault(service_unavailable_error_1).default; } });
|
|
41
|
+
var teapot_error_1 = require("./errors/teapot-error");
|
|
42
|
+
Object.defineProperty(exports, "TeapotError", { enumerable: true, get: function () { return __importDefault(teapot_error_1).default; } });
|
|
43
|
+
var fintalk_error_1 = require("./errors/fintalk-error");
|
|
44
|
+
Object.defineProperty(exports, "FintalkError", { enumerable: true, get: function () { return __importDefault(fintalk_error_1).default; } });
|
|
45
|
+
var too_many_requests_error_1 = require("./errors/too-many-requests-error");
|
|
46
|
+
Object.defineProperty(exports, "TooManyRequestsError", { enumerable: true, get: function () { return __importDefault(too_many_requests_error_1).default; } });
|
|
47
|
+
var unauthorized_error_1 = require("./errors/unauthorized-error");
|
|
48
|
+
Object.defineProperty(exports, "UnauthorizedError", { enumerable: true, get: function () { return __importDefault(unauthorized_error_1).default; } });
|
|
49
|
+
var unprocessable_entity_error_1 = require("./errors/unprocessable-entity-error");
|
|
50
|
+
Object.defineProperty(exports, "UnprocessableEntityError", { enumerable: true, get: function () { return __importDefault(unprocessable_entity_error_1).default; } });
|
|
51
|
+
var api_proxy_1 = require("./handlers/api-proxy");
|
|
52
|
+
Object.defineProperty(exports, "LambdaApiProxyHandler", { enumerable: true, get: function () { return api_proxy_1.LambdaApiProxyHandler; } });
|
|
53
|
+
var api_1 = require("./handlers/api");
|
|
54
|
+
Object.defineProperty(exports, "LambdaApiHandler", { enumerable: true, get: function () { return api_1.LambdaApiHandler; } });
|
|
55
|
+
var sqs_1 = require("./handlers/sqs");
|
|
56
|
+
Object.defineProperty(exports, "LambdaSqsHandler", { enumerable: true, get: function () { return sqs_1.LambdaSqsHandler; } });
|
|
57
|
+
var sqs_v2_1 = require("./handlers/sqs-v2");
|
|
58
|
+
Object.defineProperty(exports, "LambdaSqsHandlerV2", { enumerable: true, get: function () { return sqs_v2_1.LambdaSqsHandlerV2; } });
|
|
59
|
+
var invoke_1 = require("./handlers/invoke");
|
|
60
|
+
Object.defineProperty(exports, "LambdaInvokeHandler", { enumerable: true, get: function () { return invoke_1.LambdaInvokeHandler; } });
|
|
61
|
+
var get_user_id_1 = require("./utils/get-user-id");
|
|
62
|
+
Object.defineProperty(exports, "getUserId", { enumerable: true, get: function () { return __importDefault(get_user_id_1).default; } });
|
|
63
|
+
__exportStar(require("./models"), exports);
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gEAAuE;AAA9D,qIAAA,OAAO,OAAmB;AACnC,0DAAkE;AAAzD,gIAAA,OAAO,OAAiB;AACjC,4DAAoE;AAA3D,kIAAA,OAAO,OAAkB;AAClC,kDAA0D;AAAjD,wHAAA,OAAO,OAAa;AAC7B,wEAA+E;AAAtE,6IAAA,OAAO,OAAuB;AACvC,sEAA6E;AAApE,2IAAA,OAAO,OAAsB;AACtC,4DAAmE;AAA1D,iIAAA,OAAO,OAAiB;AACjC,0EAAiF;AAAxE,+IAAA,OAAO,OAAwB;AACxC,gFAAuF;AAA9E,qJAAA,OAAO,OAA2B;AAC3C,gFAAuF;AAA9E,qJAAA,OAAO,OAA2B;AAC3C,sDAA8D;AAArD,4HAAA,OAAO,OAAe;AAC/B,wDAAgE;AAAvD,8HAAA,OAAO,OAAgB;AAChC,4EAAkF;AAAzE,gJAAA,OAAO,OAAwB;AACxC,kEAA0E;AAAjE,wIAAA,OAAO,OAAqB;AACrC,kFAAyF;AAAhF,uJAAA,OAAO,OAA4B;AAC5C,kDAA4D;AAAnD,kHAAA,qBAAqB,OAAA;AAC9B,sCAAiD;AAAxC,uGAAA,gBAAgB,OAAA;AACzB,sCAAiD;AAAxC,uGAAA,gBAAgB,OAAA;AACzB,4CAAiF;AAAxE,4GAAA,kBAAkB,OAAA;AAC3B,4CAAuD;AAA9C,6GAAA,mBAAmB,OAAA;AAC5B,mDAA0D;AAAjD,yHAAA,OAAO,OAAa;AAC7B,2CAAwB"}
|
package/lib/models.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { APIGatewayEventRequestContext, Context } from 'aws-lambda';
|
|
2
|
+
import Logger from 'fintalk-logger/lib/logger';
|
|
3
|
+
export interface Options {
|
|
4
|
+
base?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface User {
|
|
7
|
+
id: string;
|
|
8
|
+
groups?: string[];
|
|
9
|
+
email?: string;
|
|
10
|
+
type?: string;
|
|
11
|
+
scope?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface Request {
|
|
14
|
+
id: string;
|
|
15
|
+
auth?: any;
|
|
16
|
+
body: any;
|
|
17
|
+
context: Context;
|
|
18
|
+
headers: {
|
|
19
|
+
[key: string]: string | undefined;
|
|
20
|
+
};
|
|
21
|
+
ip: string;
|
|
22
|
+
method: string;
|
|
23
|
+
multiValueQuery: {
|
|
24
|
+
[key: string]: string[] | undefined;
|
|
25
|
+
};
|
|
26
|
+
params: Record<string, string>;
|
|
27
|
+
path: string;
|
|
28
|
+
pathParameters: {
|
|
29
|
+
[name: string]: string | undefined;
|
|
30
|
+
};
|
|
31
|
+
query: {
|
|
32
|
+
[key: string]: string | undefined;
|
|
33
|
+
};
|
|
34
|
+
rawBody?: string;
|
|
35
|
+
requestContext: APIGatewayEventRequestContext;
|
|
36
|
+
stageVariables: {
|
|
37
|
+
[name: string]: string | undefined;
|
|
38
|
+
};
|
|
39
|
+
userAgent?: string;
|
|
40
|
+
user?: User;
|
|
41
|
+
}
|
|
42
|
+
export interface Response<T = any> {
|
|
43
|
+
statusCode?: number;
|
|
44
|
+
headers?: {
|
|
45
|
+
[header: string]: boolean | number | string;
|
|
46
|
+
} | undefined;
|
|
47
|
+
multiValueHeaders?: {
|
|
48
|
+
[header: string]: Array<boolean | number | string>;
|
|
49
|
+
} | undefined;
|
|
50
|
+
body: T;
|
|
51
|
+
}
|
|
52
|
+
export interface Message<T> {
|
|
53
|
+
body: T;
|
|
54
|
+
id: string;
|
|
55
|
+
}
|
|
56
|
+
export interface InvokeResponse<T> {
|
|
57
|
+
success: boolean;
|
|
58
|
+
error?: any;
|
|
59
|
+
body?: T;
|
|
60
|
+
}
|
|
61
|
+
export type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
62
|
+
export type Controller<T = any> = (req: Request) => Promise<Response<T>>;
|
|
63
|
+
export type Worker<T = any> = (messages: Message<T>[]) => Promise<void>;
|
|
64
|
+
export type WorkerV2<T = any> = (message: Message<T>, logger: Logger) => Promise<void>;
|
|
65
|
+
export type Authentication = (request: Request) => Promise<any>;
|
|
66
|
+
export type InvokeHandler<T = any, R = any> = (event: T, context: Context) => Promise<InvokeResponse<R>>;
|
|
67
|
+
export interface Route {
|
|
68
|
+
method: Method;
|
|
69
|
+
path: string;
|
|
70
|
+
run: Controller;
|
|
71
|
+
auth?: Authentication;
|
|
72
|
+
}
|
package/lib/models.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var compareIgnoreCase = function (a, b) {
|
|
4
|
+
if (typeof a !== 'string' || typeof b !== 'string') {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
return a.toUpperCase() === b.toUpperCase();
|
|
8
|
+
};
|
|
9
|
+
exports.default = compareIgnoreCase;
|
|
10
|
+
//# sourceMappingURL=compare-ignore-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-ignore-case.js","sourceRoot":"","sources":["../../src/utils/compare-ignore-case.ts"],"names":[],"mappings":";;AAAA,IAAM,iBAAiB,GAAG,UAAC,CAAU,EAAE,CAAU;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAClD,OAAO,KAAK,CAAA;KACb;IAED,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;AAC5C,CAAC,CAAA;AAED,kBAAe,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var extractIP = function (headers, sourceIP) {
|
|
4
|
+
var ip = headers['x-forwarded-for']
|
|
5
|
+
|| headers['cf-connecting-ip']
|
|
6
|
+
|| headers['x-real-ip']
|
|
7
|
+
|| sourceIP
|
|
8
|
+
|| '';
|
|
9
|
+
return ip.split(',')[0];
|
|
10
|
+
};
|
|
11
|
+
exports.default = extractIP;
|
|
12
|
+
//# sourceMappingURL=extract-ip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-ip.js","sourceRoot":"","sources":["../../src/utils/extract-ip.ts"],"names":[],"mappings":";;AAEA,IAAM,SAAS,GAAG,UAChB,OAAoC,EAAE,QAAiB;IAEvD,IAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;WAChC,OAAO,CAAC,kBAAkB,CAAC;WAC3B,OAAO,CAAC,WAAW,CAAC;WACpB,QAAQ;WACR,EAAE,CAAA;IAEP,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var fintalk_logger_1 = __importDefault(require("fintalk-logger"));
|
|
18
|
+
var compare_ignore_case_1 = __importDefault(require("./compare-ignore-case"));
|
|
19
|
+
var extractPayload = function (headers) {
|
|
20
|
+
var authorization = headers.authorization;
|
|
21
|
+
if (!authorization) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
var authType = authorization.split(' ')[0];
|
|
25
|
+
if (!(0, compare_ignore_case_1.default)(authType, 'Bearer')) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
var payload = authorization.split('.')[1];
|
|
29
|
+
if (!payload) {
|
|
30
|
+
fintalk_logger_1.default.warn({
|
|
31
|
+
message: 'Invalid jwt',
|
|
32
|
+
authorization: "".concat(authorization.substring(0, 5), "***"),
|
|
33
|
+
});
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
return JSON.parse(Buffer.from(payload, 'base64').toString('utf-8'));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
fintalk_logger_1.default.warn({
|
|
41
|
+
message: 'Cannot parse json on jwt payload',
|
|
42
|
+
payload: payload,
|
|
43
|
+
error_message: error.message,
|
|
44
|
+
stack: error.stack,
|
|
45
|
+
});
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var extractUser = function (headers) {
|
|
50
|
+
var payload = extractPayload(headers);
|
|
51
|
+
if (!payload) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return __assign(__assign({}, payload), { id: payload.sub, groups: payload.groups || payload['cognito:groups'] });
|
|
55
|
+
};
|
|
56
|
+
exports.default = extractUser;
|
|
57
|
+
//# sourceMappingURL=extract-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-user.js","sourceRoot":"","sources":["../../src/utils/extract-user.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kEAAmC;AAInC,8EAAqD;AAErD,IAAM,cAAc,GAAG,UAAC,OAAoC;IAClD,IAAA,aAAa,GAAK,OAAO,cAAZ,CAAY;IAEjC,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,SAAS,CAAA;KACjB;IAED,IAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5C,IAAI,CAAC,IAAA,6BAAiB,EAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QAC1C,OAAO,SAAS,CAAA;KACjB;IAED,IAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3C,IAAI,CAAC,OAAO,EAAE;QACZ,wBAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,UAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAK;SACrD,CAAC,CAAA;QAEF,OAAO,SAAS,CAAA;KACjB;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACjD,CAAA;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,wBAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,kCAAkC;YAC3C,OAAO,SAAA;YACP,aAAa,EAAE,KAAK,CAAC,OAAO;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AAED,IAAM,WAAW,GAAG,UAAC,OAAoC;IACvD,IAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,SAAS,CAAA;KACjB;IAED,6BACK,OAAO,KACV,EAAE,EAAE,OAAO,CAAC,GAAG,EACf,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,IACpD;AACH,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var fintalk_logger_1 = __importDefault(require("fintalk-logger"));
|
|
7
|
+
var forbidden_error_1 = __importDefault(require("../errors/forbidden-error"));
|
|
8
|
+
var getUserId = function (request) {
|
|
9
|
+
if (!request.user) {
|
|
10
|
+
fintalk_logger_1.default.error({
|
|
11
|
+
message: 'User is undefined',
|
|
12
|
+
});
|
|
13
|
+
throw new forbidden_error_1.default();
|
|
14
|
+
}
|
|
15
|
+
return request.user.id;
|
|
16
|
+
};
|
|
17
|
+
exports.default = getUserId;
|
|
18
|
+
//# sourceMappingURL=get-user-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-user-id.js","sourceRoot":"","sources":["../../src/utils/get-user-id.ts"],"names":[],"mappings":";;;;;AAAA,kEAAmC;AAEnC,8EAAsD;AAGtD,IAAM,SAAS,GAAG,UAAC,OAAgB;IACjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACjB,wBAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAA;QACF,MAAM,IAAI,yBAAc,EAAE,CAAA;KAC3B;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;AACxB,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var fintalk_logger_1 = __importDefault(require("fintalk-logger"));
|
|
7
|
+
var bad_request_error_1 = __importDefault(require("../errors/bad-request-error"));
|
|
8
|
+
var jsonParse = function (body) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.parse(body);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
fintalk_logger_1.default.warn({
|
|
14
|
+
message: error.message,
|
|
15
|
+
stack: error.stack,
|
|
16
|
+
body: body,
|
|
17
|
+
});
|
|
18
|
+
throw new bad_request_error_1.default('JSON parse error', [
|
|
19
|
+
{
|
|
20
|
+
path: ['body'],
|
|
21
|
+
message: error.message,
|
|
22
|
+
},
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.default = jsonParse;
|
|
27
|
+
//# sourceMappingURL=json-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-parse.js","sourceRoot":"","sources":["../../src/utils/json-parse.ts"],"names":[],"mappings":";;;;;AAAA,kEAAmC;AAEnC,kFAAyD;AAEzD,IAAM,SAAS,GAAG,UAAC,IAAY;IAC7B,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;KACxB;IAAC,OAAO,KAAU,EAAE;QACnB,wBAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,MAAA;SACL,CAAC,CAAA;QAEF,MAAM,IAAI,2BAAe,CAAC,kBAAkB,EAAE;YAC5C;gBACE,IAAI,EAAE,CAAC,MAAM,CAAC;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB;SACF,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var lowerCaseHeaders = function (headers) {
|
|
15
|
+
return Object.entries(headers).reduce(function (acc, _a) {
|
|
16
|
+
var _b;
|
|
17
|
+
var headerName = _a[0], value = _a[1];
|
|
18
|
+
return (__assign(__assign({}, acc), (_b = {}, _b[headerName.toLocaleLowerCase()] = value, _b)));
|
|
19
|
+
}, {});
|
|
20
|
+
};
|
|
21
|
+
exports.default = lowerCaseHeaders;
|
|
22
|
+
//# sourceMappingURL=lower-case-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lower-case-headers.js","sourceRoot":"","sources":["../../src/utils/lower-case-headers.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEA,IAAM,gBAAgB,GAAG,UACvB,OAAoC;IAEpC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CACnC,UAAC,GAAG,EAAE,EAAmB;;YAAlB,UAAU,QAAA,EAAE,KAAK,QAAA;QAAM,OAAA,uBACzB,GAAG,gBACL,UAAU,CAAC,iBAAiB,EAAE,IAAG,KAAK,OACvC;IAH4B,CAG5B,EACF,EAAE,CACH,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,gBAAgB,CAAA"}
|