@creator.co/wapi 1.2.2 → 1.2.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 (135) hide show
  1. package/.eslintrc.cjs +29 -22
  2. package/.github/workflows/npmpublish.yml +2 -5
  3. package/.github/workflows/prs.yml +1 -1
  4. package/README.md +1 -3
  5. package/dist/index.d.ts +11 -0
  6. package/dist/index.js +24 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/jest.config.d.ts +3 -0
  9. package/dist/jest.config.js +34 -0
  10. package/dist/jest.config.js.map +1 -0
  11. package/dist/package.json +64 -0
  12. package/dist/src/API/Request.d.ts +140 -0
  13. package/dist/src/API/Request.js +182 -0
  14. package/dist/src/API/Request.js.map +1 -0
  15. package/dist/src/API/Response.d.ts +256 -0
  16. package/dist/src/API/Response.js +398 -0
  17. package/dist/src/API/Response.js.map +1 -0
  18. package/dist/src/API/Utils.d.ts +63 -0
  19. package/dist/src/API/Utils.js +104 -0
  20. package/dist/src/API/Utils.js.map +1 -0
  21. package/dist/src/BaseEvent/EventProcessor.d.ts +81 -0
  22. package/dist/src/BaseEvent/EventProcessor.js +182 -0
  23. package/dist/src/BaseEvent/EventProcessor.js.map +1 -0
  24. package/dist/src/BaseEvent/Process.d.ts +74 -0
  25. package/dist/src/BaseEvent/Process.js +142 -0
  26. package/dist/src/BaseEvent/Process.js.map +1 -0
  27. package/dist/src/BaseEvent/Transaction.d.ts +29 -0
  28. package/dist/src/BaseEvent/Transaction.js +244 -0
  29. package/dist/src/BaseEvent/Transaction.js.map +1 -0
  30. package/dist/src/Config/Configuration.d.ts +131 -0
  31. package/dist/src/Config/Configuration.js +153 -0
  32. package/dist/src/Config/Configuration.js.map +1 -0
  33. package/dist/src/Config/EnvironmentVar.d.ts +101 -0
  34. package/dist/src/Config/EnvironmentVar.js +213 -0
  35. package/dist/src/Config/EnvironmentVar.js.map +1 -0
  36. package/dist/src/Crypto/Crypto.d.ts +57 -0
  37. package/dist/src/Crypto/Crypto.js +126 -0
  38. package/dist/src/Crypto/Crypto.js.map +1 -0
  39. package/dist/src/Crypto/JWT.d.ts +64 -0
  40. package/dist/src/Crypto/JWT.js +74 -0
  41. package/dist/src/Crypto/JWT.js.map +1 -0
  42. package/dist/src/Globals.d.ts +161 -0
  43. package/dist/src/Globals.js +173 -0
  44. package/dist/src/Globals.js.map +1 -0
  45. package/dist/src/Logger/Logger.d.ts +180 -0
  46. package/dist/src/Logger/Logger.js +412 -0
  47. package/dist/src/Logger/Logger.js.map +1 -0
  48. package/dist/src/Mailer/Mailer.d.ts +107 -0
  49. package/dist/src/Mailer/Mailer.js +313 -0
  50. package/dist/src/Mailer/Mailer.js.map +1 -0
  51. package/dist/src/Publisher/Publisher.d.ts +47 -0
  52. package/dist/src/Publisher/Publisher.js +141 -0
  53. package/dist/src/Publisher/Publisher.js.map +1 -0
  54. package/dist/src/Server/RouteResolver.d.ts +41 -0
  55. package/dist/src/Server/RouteResolver.js +135 -0
  56. package/dist/src/Server/RouteResolver.js.map +1 -0
  57. package/dist/src/Server/Router.d.ts +104 -0
  58. package/dist/src/Server/Router.js +45 -0
  59. package/dist/src/Server/Router.js.map +1 -0
  60. package/dist/src/Server/lib/ContainerServer.d.ts +58 -0
  61. package/dist/src/Server/lib/ContainerServer.js +143 -0
  62. package/dist/src/Server/lib/ContainerServer.js.map +1 -0
  63. package/dist/src/Server/lib/Server.d.ts +60 -0
  64. package/dist/src/Server/lib/Server.js +137 -0
  65. package/dist/src/Server/lib/Server.js.map +1 -0
  66. package/dist/src/Server/lib/container/GenericHandler.d.ts +4 -0
  67. package/dist/src/Server/lib/container/GenericHandler.js +138 -0
  68. package/dist/src/Server/lib/container/GenericHandler.js.map +1 -0
  69. package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +67 -0
  70. package/dist/src/Server/lib/container/GenericHandlerEvent.js +189 -0
  71. package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +1 -0
  72. package/dist/src/Server/lib/container/HealthHandler.d.ts +3 -0
  73. package/dist/src/Server/lib/container/HealthHandler.js +45 -0
  74. package/dist/src/Server/lib/container/HealthHandler.js.map +1 -0
  75. package/dist/src/Server/lib/container/Proxy.d.ts +95 -0
  76. package/dist/src/Server/lib/container/Proxy.js +201 -0
  77. package/dist/src/Server/lib/container/Proxy.js.map +1 -0
  78. package/dist/src/Server/lib/container/Utils.d.ts +18 -0
  79. package/dist/src/Server/lib/container/Utils.js +84 -0
  80. package/dist/src/Server/lib/container/Utils.js.map +1 -0
  81. package/dist/src/Validation/Validator.d.ts +21 -0
  82. package/dist/src/Validation/Validator.js +48 -0
  83. package/dist/src/Validation/Validator.js.map +1 -0
  84. package/index.ts +12 -10
  85. package/jest.config.ts +14 -21
  86. package/package.json +3 -3
  87. package/src/API/Request.ts +17 -35
  88. package/src/API/Response.ts +24 -42
  89. package/src/API/Utils.ts +5 -7
  90. package/src/BaseEvent/EventProcessor.ts +16 -24
  91. package/src/BaseEvent/Process.ts +7 -12
  92. package/src/BaseEvent/Transaction.ts +25 -43
  93. package/src/Config/Configuration.ts +8 -14
  94. package/src/Config/EnvironmentVar.ts +10 -20
  95. package/src/Crypto/Crypto.ts +10 -10
  96. package/src/Crypto/JWT.ts +4 -10
  97. package/src/Globals.ts +19 -25
  98. package/src/Logger/Logger.ts +36 -51
  99. package/src/Mailer/Mailer.ts +19 -31
  100. package/src/Publisher/Publisher.ts +7 -12
  101. package/src/Server/RouteResolver.ts +5 -6
  102. package/src/Server/Router.ts +7 -12
  103. package/src/Server/lib/ContainerServer.ts +5 -5
  104. package/src/Server/lib/Server.ts +26 -38
  105. package/src/Server/lib/container/GenericHandler.ts +8 -13
  106. package/src/Server/lib/container/GenericHandlerEvent.ts +21 -35
  107. package/src/Server/lib/container/HealthHandler.ts +2 -2
  108. package/src/Server/lib/container/Proxy.ts +26 -38
  109. package/src/Server/lib/container/Utils.ts +2 -2
  110. package/src/Validation/Validator.ts +6 -6
  111. package/tests/API/Request.test.ts +107 -111
  112. package/tests/API/Response.test.ts +86 -91
  113. package/tests/API/Utils.test.ts +64 -64
  114. package/tests/BaseEvent/EventProcessor.test.ts +68 -84
  115. package/tests/BaseEvent/Process.test.ts +11 -11
  116. package/tests/BaseEvent/Transaction.test.ts +44 -53
  117. package/tests/Config/Config.test.ts +50 -50
  118. package/tests/Config/EnvironmentVar.test.ts +50 -59
  119. package/tests/Crypto/Crypto.test.ts +20 -22
  120. package/tests/Crypto/JWT.test.ts +40 -40
  121. package/tests/Logger/Logger.test.ts +24 -36
  122. package/tests/Mailer/Mailer.test.ts +21 -29
  123. package/tests/Publisher/Publisher.test.ts +18 -18
  124. package/tests/Server/RouteResolver.test.ts +56 -59
  125. package/tests/Server/Router.test.ts +16 -16
  126. package/tests/Server/lib/ContainerServer.test.ts +83 -85
  127. package/tests/Server/lib/Server.test.ts +4 -4
  128. package/tests/Server/lib/container/GenericHandler.test.ts +31 -41
  129. package/tests/Server/lib/container/GenericHandlerEvent.test.ts +35 -36
  130. package/tests/Server/lib/container/HealthHandler.test.ts +7 -7
  131. package/tests/Server/lib/container/Proxy.test.ts +66 -79
  132. package/tests/Server/lib/container/Utils.test.ts +16 -17
  133. package/tests/Test.utils.ts +9 -9
  134. package/tests/Validation/Validator.test.ts +28 -40
  135. package/tests/main.test.ts +2 -2
@@ -0,0 +1,313 @@
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 SES = require("@aws-sdk/client-ses");
62
+ var credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
63
+ var Email = require("email-templates");
64
+ var nodemailer = require("nodemailer");
65
+ /**
66
+ * ${1:Description placeholder}
67
+ *
68
+ * @export
69
+ * @class Mailer
70
+ * @typedef {Mailer}
71
+ */
72
+ var Mailer = /** @class */ (function () {
73
+ /**
74
+ * Creates an instance of Mailer.
75
+ *
76
+ * @constructor
77
+ * @param {string} defaultFrom
78
+ * @param {string} region
79
+ */
80
+ function Mailer(defaultFrom, region) {
81
+ /**
82
+ * ${1:Description placeholder}
83
+ *
84
+ * @private
85
+ * @readonly
86
+ * @type {string}
87
+ */
88
+ this.templateDefaultFile = 'html';
89
+ this.from = defaultFrom;
90
+ this.transporter = nodemailer.createTransport({
91
+ SES: {
92
+ ses: new SES.SESClient({
93
+ credentials: (0, credential_provider_node_1.defaultProvider)(),
94
+ apiVersion: '2010-12-01',
95
+ region: region,
96
+ }),
97
+ aws: SES,
98
+ },
99
+ });
100
+ }
101
+ /**
102
+ * ${1:Description placeholder}
103
+ *
104
+ * @public
105
+ * @async
106
+ * @param {(string | Array<string>)} to
107
+ * @param {string} htmlMessage
108
+ * @param {string} subject
109
+ * @param {?(string | Array<string>)} [optionalCC]
110
+ * @param {?string} [optionalFrom]
111
+ * @param {?string} [optionalReplyTo]
112
+ * @param {?any[]} [optionalAttachments]
113
+ * @param {?Email.NodeMailerTransportOptions} [optionalTransport]
114
+ * @returns {unknown}
115
+ */
116
+ Mailer.prototype.sendRawEmail = function (to, htmlMessage, subject, optionalCC, optionalFrom, optionalReplyTo,
117
+ // TODO: improve attachment type -> Attachment
118
+ optionalAttachments, optionalTransport) {
119
+ return __awaiter(this, void 0, void 0, function () {
120
+ var email, resp, e_1;
121
+ return __generator(this, function (_a) {
122
+ switch (_a.label) {
123
+ case 0:
124
+ email = new Email({
125
+ message: __assign(__assign(__assign({ from: optionalFrom || this.from, to: to, html: htmlMessage, subject: subject }, (optionalAttachments ? { attachments: optionalAttachments } : {})), (optionalCC ? { cc: optionalCC } : {})), (optionalReplyTo ? { replyTo: optionalReplyTo } : {})),
126
+ transport: optionalTransport || this.transporter,
127
+ send: true,
128
+ });
129
+ resp = null;
130
+ _a.label = 1;
131
+ case 1:
132
+ _a.trys.push([1, 3, , 4]);
133
+ return [4 /*yield*/, email.send()];
134
+ case 2:
135
+ resp = _a.sent();
136
+ console.debug('Mailer resp:', resp);
137
+ return [3 /*break*/, 4];
138
+ case 3:
139
+ e_1 = _a.sent();
140
+ console.error('Mailer error:', e_1);
141
+ throw e_1;
142
+ case 4: return [2 /*return*/, resp];
143
+ }
144
+ });
145
+ });
146
+ };
147
+ /**
148
+ * ${1:Description placeholder}
149
+ *
150
+ * @public
151
+ * @async
152
+ * @param {(string | Array<string>)} to
153
+ * @param {(string | Array<string>)} templates
154
+ * @param {object} data
155
+ * @param {?(string | Array<string>)} [optionalCC]
156
+ * @param {?string} [optionalFrom]
157
+ * @param {?string} [optionalReplyTo]
158
+ * @param {?any[]} [optionalAttachments]
159
+ * @param {?Email.NodeMailerTransportOptions} [optionalTransport]
160
+ * @returns {unknown}
161
+ */
162
+ Mailer.prototype.sendTemplatedEmail = function (to, templates, data, optionalCC, optionalFrom, optionalReplyTo,
163
+ // TODO: improve attachment type -> Attachment
164
+ optionalAttachments, optionalTransport) {
165
+ return __awaiter(this, void 0, void 0, function () {
166
+ var email, resp, chosenTemplate, e_2;
167
+ return __generator(this, function (_a) {
168
+ switch (_a.label) {
169
+ case 0:
170
+ email = new Email({
171
+ message: __assign(__assign(__assign({ from: optionalFrom || this.from, to: to }, (optionalAttachments ? { attachments: optionalAttachments } : {})), (optionalCC ? { cc: optionalCC } : {})), (optionalReplyTo ? { replyTo: optionalReplyTo } : {})),
172
+ transport: optionalTransport || this.transporter,
173
+ send: true,
174
+ });
175
+ resp = null;
176
+ _a.label = 1;
177
+ case 1:
178
+ _a.trys.push([1, 4, , 5]);
179
+ return [4 /*yield*/, this.chooseTemplate(templates, data)];
180
+ case 2:
181
+ chosenTemplate = _a.sent();
182
+ return [4 /*yield*/, email.send({ template: chosenTemplate, locals: data })];
183
+ case 3:
184
+ resp = _a.sent();
185
+ console.debug('Mailer resp:', resp);
186
+ return [3 /*break*/, 5];
187
+ case 4:
188
+ e_2 = _a.sent();
189
+ console.error('Mailer error:', e_2);
190
+ throw e_2;
191
+ case 5: return [2 /*return*/, resp];
192
+ }
193
+ });
194
+ });
195
+ };
196
+ /**
197
+ * ${1:Description placeholder}
198
+ *
199
+ * @public
200
+ * @param {string} host
201
+ * @param {number} portNumber
202
+ * @param {string} user
203
+ * @param {string} password
204
+ * @returns {Email.NodeMailerTransportOptions}
205
+ */
206
+ Mailer.prototype.newSMTPTransporter = function (host, portNumber, user, password) {
207
+ var smtpTransporter = nodemailer.createTransport({
208
+ host: host,
209
+ port: portNumber,
210
+ connectionTimeout: 2000,
211
+ auth: {
212
+ user: user,
213
+ pass: password,
214
+ },
215
+ });
216
+ return smtpTransporter;
217
+ };
218
+ /* private */
219
+ /**
220
+ * ${1:Description placeholder}
221
+ *
222
+ * @private
223
+ * @async
224
+ * @param {(string | Array<string>)} templates
225
+ * @param {object} data
226
+ * @returns {Promise<string>}
227
+ */
228
+ Mailer.prototype.chooseTemplate = function (templates, data) {
229
+ return __awaiter(this, void 0, void 0, function () {
230
+ var templates_1, templates_1_1, template, e_3_1;
231
+ var e_3, _a;
232
+ return __generator(this, function (_b) {
233
+ switch (_b.label) {
234
+ case 0:
235
+ if (!Array.isArray(templates)) return [3 /*break*/, 9];
236
+ _b.label = 1;
237
+ case 1:
238
+ _b.trys.push([1, 6, 7, 8]);
239
+ templates_1 = __values(templates), templates_1_1 = templates_1.next();
240
+ _b.label = 2;
241
+ case 2:
242
+ if (!!templates_1_1.done) return [3 /*break*/, 5];
243
+ template = templates_1_1.value;
244
+ return [4 /*yield*/, this.canRenderTemplate(template, data)];
245
+ case 3:
246
+ if (_b.sent())
247
+ return [2 /*return*/, template];
248
+ _b.label = 4;
249
+ case 4:
250
+ templates_1_1 = templates_1.next();
251
+ return [3 /*break*/, 2];
252
+ case 5: return [3 /*break*/, 8];
253
+ case 6:
254
+ e_3_1 = _b.sent();
255
+ e_3 = { error: e_3_1 };
256
+ return [3 /*break*/, 8];
257
+ case 7:
258
+ try {
259
+ if (templates_1_1 && !templates_1_1.done && (_a = templates_1.return)) _a.call(templates_1);
260
+ }
261
+ finally { if (e_3) throw e_3.error; }
262
+ return [7 /*endfinally*/];
263
+ case 8: return [3 /*break*/, 11];
264
+ case 9:
265
+ if (!templates) return [3 /*break*/, 11];
266
+ return [4 /*yield*/, this.canRenderTemplate(templates, data)];
267
+ case 10:
268
+ if (_b.sent())
269
+ return [2 /*return*/, templates];
270
+ _b.label = 11;
271
+ case 11: throw new Error("Could not render email with template ".concat(templates, " and following data. Please, check logs above! ") +
272
+ JSON.stringify(data, null, 2));
273
+ }
274
+ });
275
+ });
276
+ };
277
+ /**
278
+ * ${1:Description placeholder}
279
+ *
280
+ * @private
281
+ * @async
282
+ * @param {string} template
283
+ * @param {object} data
284
+ * @returns {Promise<boolean>}
285
+ */
286
+ Mailer.prototype.canRenderTemplate = function (template, data) {
287
+ return __awaiter(this, void 0, void 0, function () {
288
+ var validRenderResp, email, e_4;
289
+ return __generator(this, function (_a) {
290
+ switch (_a.label) {
291
+ case 0:
292
+ validRenderResp = null;
293
+ _a.label = 1;
294
+ case 1:
295
+ _a.trys.push([1, 3, , 4]);
296
+ email = new Email();
297
+ return [4 /*yield*/, email.render("".concat(template, "/").concat(this.templateDefaultFile), data)];
298
+ case 2:
299
+ validRenderResp = _a.sent();
300
+ return [3 /*break*/, 4];
301
+ case 3:
302
+ e_4 = _a.sent();
303
+ console.log("Error while checking renderability of email template ".concat(template), e_4);
304
+ return [3 /*break*/, 4];
305
+ case 4: return [2 /*return*/, validRenderResp != null];
306
+ }
307
+ });
308
+ });
309
+ };
310
+ return Mailer;
311
+ }());
312
+ exports.default = Mailer;
313
+ //# sourceMappingURL=Mailer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../../src/Mailer/Mailer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { PublishCommandOutput } from '@aws-sdk/client-sns';
2
+ /**
3
+ * ${1:Description placeholder}
4
+ *
5
+ * @export
6
+ * @typedef {PublisherConfig}
7
+ */
8
+ export type PublisherConfig = {
9
+ region?: string;
10
+ };
11
+ /**
12
+ * ${1:Description placeholder}
13
+ *
14
+ * @export
15
+ * @class Publisher
16
+ * @typedef {Publisher}
17
+ */
18
+ export default class Publisher {
19
+ /**
20
+ * ${1:Description placeholder}
21
+ *
22
+ * @private
23
+ * @type {string}
24
+ */
25
+ private region;
26
+ /**
27
+ * Creates an instance of Publisher.
28
+ *
29
+ * @constructor
30
+ * @param {?PublisherConfig} [config]
31
+ */
32
+ constructor(config?: PublisherConfig);
33
+ /**
34
+ * ${1:Description placeholder}
35
+ *
36
+ * @async
37
+ * @param {*} messageObject
38
+ * @param {string} topic
39
+ * @param {?object} [additionalProps]
40
+ * @returns {Promise<PublishCommandOutput>}
41
+ */
42
+ publishOnTopic(messageObject: any, topic: string, additionalProps?: object): Promise<PublishCommandOutput>;
43
+ /**
44
+ * ${1:Description placeholder}
45
+ */
46
+ _connect(): void;
47
+ }
@@ -0,0 +1,141 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ var client_sns_1 = require("@aws-sdk/client-sns");
51
+ var sha1 = require("sha1");
52
+ //reusable client
53
+ // eslint-disable-next-line no-var
54
+ /**
55
+ * ${1:Description placeholder}
56
+ *
57
+ * @type {(SNSClient | null)}
58
+ */
59
+ var PUBLISHER_CONN = null;
60
+ // eslint-disable-next-line no-var
61
+ /**
62
+ * ${1:Description placeholder}
63
+ *
64
+ * @type {(string | null)}
65
+ */
66
+ var PUBLISHER_CONN_HASH = null;
67
+ //
68
+ /**
69
+ * ${1:Description placeholder}
70
+ *
71
+ * @export
72
+ * @class Publisher
73
+ * @typedef {Publisher}
74
+ */
75
+ var Publisher = /** @class */ (function () {
76
+ /**
77
+ * Creates an instance of Publisher.
78
+ *
79
+ * @constructor
80
+ * @param {?PublisherConfig} [config]
81
+ */
82
+ function Publisher(config) {
83
+ if (config && config.region) {
84
+ this.region = config.region;
85
+ // console.debug(`Using region: ${this.region}`);
86
+ }
87
+ }
88
+ /* Public */
89
+ /**
90
+ * ${1:Description placeholder}
91
+ *
92
+ * @async
93
+ * @param {*} messageObject
94
+ * @param {string} topic
95
+ * @param {?object} [additionalProps]
96
+ * @returns {Promise<PublishCommandOutput>}
97
+ */
98
+ Publisher.prototype.publishOnTopic = function (messageObject, topic, additionalProps) {
99
+ return __awaiter(this, void 0, void 0, function () {
100
+ var resp, params, e_1;
101
+ return __generator(this, function (_a) {
102
+ switch (_a.label) {
103
+ case 0:
104
+ resp = null;
105
+ _a.label = 1;
106
+ case 1:
107
+ _a.trys.push([1, 3, , 4]);
108
+ this._connect();
109
+ params = __assign({ Message: JSON.stringify(messageObject), TopicArn: topic }, (additionalProps ? additionalProps : {}));
110
+ return [4 /*yield*/, PUBLISHER_CONN.send(new client_sns_1.PublishCommand(params))];
111
+ case 2:
112
+ resp = _a.sent();
113
+ return [3 /*break*/, 4];
114
+ case 3:
115
+ e_1 = _a.sent();
116
+ console.error("Error while publishing into topic ".concat(topic, " with error: ").concat(e_1));
117
+ return [3 /*break*/, 4];
118
+ case 4:
119
+ console.debug('Publisher resp', resp);
120
+ return [2 /*return*/, resp];
121
+ }
122
+ });
123
+ });
124
+ };
125
+ /* Private */
126
+ /**
127
+ * ${1:Description placeholder}
128
+ */
129
+ Publisher.prototype._connect = function () {
130
+ if ((!PUBLISHER_CONN && !PUBLISHER_CONN_HASH) || PUBLISHER_CONN_HASH != sha1(this.region)) {
131
+ PUBLISHER_CONN = new client_sns_1.SNSClient({
132
+ apiVersion: '2010-03-31',
133
+ region: this.region,
134
+ });
135
+ PUBLISHER_CONN_HASH = sha1(this.region).toString();
136
+ }
137
+ };
138
+ return Publisher;
139
+ }());
140
+ exports.default = Publisher;
141
+ //# sourceMappingURL=Publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Publisher.js","sourceRoot":"","sources":["../../../src/Publisher/Publisher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAK4B;AAC5B,2BAA4B;AAC5B,iBAAiB;AACjB,kCAAkC;AAClC;;;;GAIG;AACH,IAAI,cAAc,GAAqB,IAAI,CAAA;AAC3C,kCAAkC;AAClC;;;;GAIG;AACH,IAAI,mBAAmB,GAAkB,IAAI,CAAA;AAW7C,EAAE;AACF;;;;;;GAMG;AACH;IAQE;;;;;OAKG;IACH,mBAAY,MAAwB;QAClC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC3B,iDAAiD;SAClD;IACH,CAAC;IACD,YAAY;IACZ;;;;;;;;OAQG;IACG,kCAAc,GAApB,UACE,aAAkB,EAClB,KAAa,EACb,eAAwB;;;;;;wBAEpB,IAAI,GAAgC,IAAI,CAAA;;;;wBAE1C,IAAI,CAAC,QAAQ,EAAE,CAAA;wBAET,MAAM,cACV,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EACtC,QAAQ,EAAE,KAAK,IACZ,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5C,CAAA;wBACM,qBAAM,cAAc,CAAC,IAAI,CAAC,IAAI,2BAAc,CAAC,MAAM,CAAC,CAAC,EAAA;;wBAA5D,IAAI,GAAG,SAAqD,CAAA;;;;wBAE5D,OAAO,CAAC,KAAK,CAAC,4CAAqC,KAAK,0BAAgB,GAAC,CAAE,CAAC,CAAA;;;wBAE9E,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;wBACrC,sBAAO,IAAI,EAAA;;;;KACZ;IACD,aAAa;IACb;;OAEG;IACH,4BAAQ,GAAR;QACE,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACzF,cAAc,GAAG,IAAI,sBAAS,CAAC;gBAC7B,UAAU,EAAE,YAAY;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;YACF,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;SACnD;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,AAhED,IAgEC"}
@@ -0,0 +1,41 @@
1
+ import { Route, RouterConfig } from './Router';
2
+ /**
3
+ * ${1:Description placeholder}
4
+ *
5
+ * @export
6
+ * @class RouteResolver
7
+ * @typedef {RouteResolver}
8
+ */
9
+ export default class RouteResolver {
10
+ readonly config: RouterConfig;
11
+ /**
12
+ * ${1:Description placeholder}
13
+ *
14
+ * @private
15
+ * @type {{ [method: string]: Routes }\}
16
+ */
17
+ private routes;
18
+ /**
19
+ * Creates an instance of RouteResolver.
20
+ *
21
+ * @constructor
22
+ * @param {RouterConfig} config
23
+ */
24
+ constructor(config: RouterConfig);
25
+ /**
26
+ * ${1:Description placeholder}
27
+ *
28
+ * @public
29
+ * @param {string} method
30
+ * @param {string} path
31
+ * @returns {(Route | undefined)}
32
+ */
33
+ resolveRoute(method: string, path: string): Route | undefined;
34
+ /**
35
+ * Description placeholder
36
+ *
37
+ * @private
38
+ * @param {RouterConfig} config
39
+ */
40
+ private buildRoutes;
41
+ }