@fintalk.ai/lambda-handlers 1.0.3 → 1.0.4

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 (94) hide show
  1. package/lib/constants.d.ts +6 -0
  2. package/lib/constants.js +10 -0
  3. package/lib/constants.js.map +1 -0
  4. package/lib/errors/bad-request-error.d.ts +4 -0
  5. package/lib/errors/bad-request-error.js +34 -0
  6. package/lib/errors/bad-request-error.js.map +1 -0
  7. package/lib/errors/conflict-error.d.ts +4 -0
  8. package/lib/errors/conflict-error.js +33 -0
  9. package/lib/errors/conflict-error.js.map +1 -0
  10. package/lib/errors/fintalk-error.d.ts +36 -0
  11. package/lib/errors/fintalk-error.js +54 -0
  12. package/lib/errors/fintalk-error.js.map +1 -0
  13. package/lib/errors/forbidden-error.d.ts +4 -0
  14. package/lib/errors/forbidden-error.js +33 -0
  15. package/lib/errors/forbidden-error.js.map +1 -0
  16. package/lib/errors/gone-error.d.ts +4 -0
  17. package/lib/errors/gone-error.js +33 -0
  18. package/lib/errors/gone-error.js.map +1 -0
  19. package/lib/errors/internal-server-error.d.ts +4 -0
  20. package/lib/errors/internal-server-error.js +33 -0
  21. package/lib/errors/internal-server-error.js.map +1 -0
  22. package/lib/errors/not-acceptable-error.d.ts +4 -0
  23. package/lib/errors/not-acceptable-error.js +33 -0
  24. package/lib/errors/not-acceptable-error.js.map +1 -0
  25. package/lib/errors/not-found-error.d.ts +4 -0
  26. package/lib/errors/not-found-error.js +33 -0
  27. package/lib/errors/not-found-error.js.map +1 -0
  28. package/lib/errors/payment-required-error.d.ts +4 -0
  29. package/lib/errors/payment-required-error.js +33 -0
  30. package/lib/errors/payment-required-error.js.map +1 -0
  31. package/lib/errors/precondition-failed-error.d.ts +4 -0
  32. package/lib/errors/precondition-failed-error.js +33 -0
  33. package/lib/errors/precondition-failed-error.js.map +1 -0
  34. package/lib/errors/service-unavailable-error.d.ts +4 -0
  35. package/lib/errors/service-unavailable-error.js +33 -0
  36. package/lib/errors/service-unavailable-error.js.map +1 -0
  37. package/lib/errors/teapot-error.d.ts +4 -0
  38. package/lib/errors/teapot-error.js +33 -0
  39. package/lib/errors/teapot-error.js.map +1 -0
  40. package/lib/errors/too-many-requests-error.d.ts +4 -0
  41. package/lib/errors/too-many-requests-error.js +33 -0
  42. package/lib/errors/too-many-requests-error.js.map +1 -0
  43. package/lib/errors/unauthorized-error.d.ts +4 -0
  44. package/lib/errors/unauthorized-error.js +33 -0
  45. package/lib/errors/unauthorized-error.js.map +1 -0
  46. package/lib/errors/unprocessable-entity-error.d.ts +4 -0
  47. package/lib/errors/unprocessable-entity-error.js +34 -0
  48. package/lib/errors/unprocessable-entity-error.js.map +1 -0
  49. package/lib/handlers/api-proxy.d.ts +13 -0
  50. package/lib/handlers/api-proxy.js +163 -0
  51. package/lib/handlers/api-proxy.js.map +1 -0
  52. package/lib/handlers/api.d.ts +7 -0
  53. package/lib/handlers/api.js +106 -0
  54. package/lib/handlers/api.js.map +1 -0
  55. package/lib/handlers/invoke.d.ts +7 -0
  56. package/lib/handlers/invoke.js +83 -0
  57. package/lib/handlers/invoke.js.map +1 -0
  58. package/lib/handlers/sqs-v2.d.ts +21 -0
  59. package/lib/handlers/sqs-v2.js +140 -0
  60. package/lib/handlers/sqs-v2.js.map +1 -0
  61. package/lib/handlers/sqs.d.ts +7 -0
  62. package/lib/handlers/sqs.js +77 -0
  63. package/lib/handlers/sqs.js.map +1 -0
  64. package/lib/index.d.ts +22 -0
  65. package/lib/index.js +64 -0
  66. package/lib/index.js.map +1 -0
  67. package/lib/models.d.ts +72 -0
  68. package/lib/models.js +3 -0
  69. package/lib/models.js.map +1 -0
  70. package/lib/utils/compare-ignore-case.d.ts +2 -0
  71. package/lib/utils/compare-ignore-case.js +10 -0
  72. package/lib/utils/compare-ignore-case.js.map +1 -0
  73. package/lib/utils/extract-ip.d.ts +3 -0
  74. package/lib/utils/extract-ip.js +12 -0
  75. package/lib/utils/extract-ip.js.map +1 -0
  76. package/lib/utils/extract-user.d.ts +4 -0
  77. package/lib/utils/extract-user.js +57 -0
  78. package/lib/utils/extract-user.js.map +1 -0
  79. package/lib/utils/get-user-id.d.ts +3 -0
  80. package/lib/utils/get-user-id.js +18 -0
  81. package/lib/utils/get-user-id.js.map +1 -0
  82. package/lib/utils/json-parse.d.ts +2 -0
  83. package/lib/utils/json-parse.js +27 -0
  84. package/lib/utils/json-parse.js.map +1 -0
  85. package/lib/utils/lower-case-headers.d.ts +3 -0
  86. package/lib/utils/lower-case-headers.js +22 -0
  87. package/lib/utils/lower-case-headers.js.map +1 -0
  88. package/lib/utils/parse-body.d.ts +2 -0
  89. package/lib/utils/parse-body.js +19 -0
  90. package/lib/utils/parse-body.js.map +1 -0
  91. package/lib/utils/parse-request.d.ts +5 -0
  92. package/lib/utils/parse-request.js +44 -0
  93. package/lib/utils/parse-request.js.map +1 -0
  94. 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":"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"}
@@ -0,0 +1,7 @@
1
+ import { SQSEvent } from 'aws-lambda';
2
+ import { Worker } from '../models';
3
+ export declare class LambdaSqsHandler {
4
+ readonly worker: Worker;
5
+ constructor(worker: Worker);
6
+ handler(event: SQSEvent): Promise<void>;
7
+ }
@@ -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
@@ -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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ declare const compareIgnoreCase: (a?: string, b?: string) => boolean;
2
+ export default compareIgnoreCase;
@@ -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,3 @@
1
+ import { APIGatewayProxyEventHeaders } from 'aws-lambda';
2
+ declare const extractIP: (headers: APIGatewayProxyEventHeaders, sourceIP?: string) => string;
3
+ export default extractIP;
@@ -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,4 @@
1
+ import { APIGatewayProxyEventHeaders } from 'aws-lambda';
2
+ import { User } from '../models';
3
+ declare const extractUser: (headers: APIGatewayProxyEventHeaders) => User | undefined;
4
+ export default extractUser;
@@ -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,3 @@
1
+ import { Request } from '../models';
2
+ declare const getUserId: (request: Request) => string;
3
+ export default getUserId;
@@ -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,2 @@
1
+ declare const jsonParse: (body: string) => any;
2
+ export default jsonParse;
@@ -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,3 @@
1
+ import { APIGatewayProxyEventHeaders } from 'aws-lambda';
2
+ declare const lowerCaseHeaders: (headers: APIGatewayProxyEventHeaders) => APIGatewayProxyEventHeaders;
3
+ export default lowerCaseHeaders;
@@ -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"}
@@ -0,0 +1,2 @@
1
+ declare const parseBody: (contentType?: string, body?: string | null) => any;
2
+ export default parseBody;