evaengine 1.0.14 → 2.0.0

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 (199) hide show
  1. package/README.md +15 -1
  2. package/bin/engine +2 -31
  3. package/dist/bin.d.ts +1 -0
  4. package/dist/bin.js +40 -0
  5. package/dist/bin.js.map +1 -0
  6. package/{src/commands/index.js → dist/commands/index.d.ts} +1 -8
  7. package/dist/commands/index.js +6 -0
  8. package/dist/commands/index.js.map +1 -0
  9. package/dist/commands/interface.d.ts +18 -0
  10. package/dist/commands/interface.js +40 -0
  11. package/dist/commands/interface.js.map +1 -0
  12. package/dist/commands/make_entity.d.ts +47 -0
  13. package/dist/commands/make_entity.js +410 -0
  14. package/dist/commands/make_entity.js.map +1 -0
  15. package/dist/commands/tramp.d.ts +7 -0
  16. package/dist/commands/tramp.js +29 -0
  17. package/dist/commands/tramp.js.map +1 -0
  18. package/dist/config/index.d.ts +92 -0
  19. package/dist/config/index.js +96 -0
  20. package/dist/config/index.js.map +1 -0
  21. package/dist/di.d.ts +73 -0
  22. package/dist/di.js +76 -0
  23. package/dist/di.js.map +1 -0
  24. package/dist/engine.d.ts +85 -0
  25. package/dist/engine.js +404 -0
  26. package/dist/engine.js.map +1 -0
  27. package/dist/entities/index.d.ts +54 -0
  28. package/dist/entities/index.js +228 -0
  29. package/dist/entities/index.js.map +1 -0
  30. package/dist/exceptions/index.d.ts +153 -0
  31. package/dist/exceptions/index.js +439 -0
  32. package/dist/exceptions/index.js.map +1 -0
  33. package/dist/index.d.ts +45 -0
  34. package/dist/index.js +45 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/middlewares/auth.d.ts +5 -0
  37. package/dist/middlewares/auth.js +63 -0
  38. package/dist/middlewares/auth.js.map +1 -0
  39. package/dist/middlewares/auth_kong.d.ts +2 -0
  40. package/dist/middlewares/auth_kong.js +24 -0
  41. package/dist/middlewares/auth_kong.js.map +1 -0
  42. package/dist/middlewares/debug.d.ts +3 -0
  43. package/dist/middlewares/debug.js +50 -0
  44. package/dist/middlewares/debug.js.map +1 -0
  45. package/{src/middlewares/index.js → dist/middlewares/index.d.ts} +1 -11
  46. package/dist/middlewares/index.js +9 -0
  47. package/dist/middlewares/index.js.map +1 -0
  48. package/dist/middlewares/providers.d.ts +25 -0
  49. package/dist/middlewares/providers.js +63 -0
  50. package/dist/middlewares/providers.js.map +1 -0
  51. package/dist/middlewares/session.d.ts +6 -0
  52. package/dist/middlewares/session.js +51 -0
  53. package/dist/middlewares/session.js.map +1 -0
  54. package/dist/middlewares/trace.d.ts +52 -0
  55. package/dist/middlewares/trace.js +225 -0
  56. package/dist/middlewares/trace.js.map +1 -0
  57. package/dist/middlewares/validator.d.ts +10 -0
  58. package/dist/middlewares/validator.js +43 -0
  59. package/dist/middlewares/validator.js.map +1 -0
  60. package/dist/middlewares/view_cache.d.ts +14 -0
  61. package/dist/middlewares/view_cache.js +102 -0
  62. package/dist/middlewares/view_cache.js.map +1 -0
  63. package/dist/services/cache.d.ts +66 -0
  64. package/dist/services/cache.js +207 -0
  65. package/dist/services/cache.js.map +1 -0
  66. package/dist/services/config.d.ts +25 -0
  67. package/dist/services/config.js +88 -0
  68. package/dist/services/config.js.map +1 -0
  69. package/dist/services/env.d.ts +12 -0
  70. package/dist/services/env.js +24 -0
  71. package/dist/services/env.js.map +1 -0
  72. package/dist/services/event_manager.d.ts +29 -0
  73. package/dist/services/event_manager.js +75 -0
  74. package/dist/services/event_manager.js.map +1 -0
  75. package/dist/services/http_client.d.ts +66 -0
  76. package/dist/services/http_client.js +62 -0
  77. package/dist/services/http_client.js.map +1 -0
  78. package/{src/services/index.js → dist/services/index.d.ts} +1 -15
  79. package/dist/services/index.js +14 -0
  80. package/dist/services/index.js.map +1 -0
  81. package/{src/services/interface.js → dist/services/interface.d.ts} +1 -3
  82. package/dist/services/interface.js +6 -0
  83. package/dist/services/interface.js.map +1 -0
  84. package/{src/services/joi.js → dist/services/joi.d.ts} +2 -9
  85. package/dist/services/joi.js +11 -0
  86. package/dist/services/joi.js.map +1 -0
  87. package/dist/services/jwt_token.d.ts +24 -0
  88. package/dist/services/jwt_token.js +77 -0
  89. package/dist/services/jwt_token.js.map +1 -0
  90. package/dist/services/jwt_token_kong.d.ts +25 -0
  91. package/dist/services/jwt_token_kong.js +65 -0
  92. package/dist/services/jwt_token_kong.js.map +1 -0
  93. package/dist/services/logger.d.ts +30 -0
  94. package/dist/services/logger.js +126 -0
  95. package/dist/services/logger.js.map +1 -0
  96. package/dist/services/namespace.d.ts +55 -0
  97. package/dist/services/namespace.js +157 -0
  98. package/dist/services/namespace.js.map +1 -0
  99. package/dist/services/now.d.ts +14 -0
  100. package/dist/services/now.js +43 -0
  101. package/dist/services/now.js.map +1 -0
  102. package/dist/services/providers.d.ts +55 -0
  103. package/dist/services/providers.js +134 -0
  104. package/dist/services/providers.js.map +1 -0
  105. package/dist/services/redis.d.ts +18 -0
  106. package/dist/services/redis.js +53 -0
  107. package/dist/services/redis.js.map +1 -0
  108. package/dist/services/rest_client.d.ts +48 -0
  109. package/dist/services/rest_client.js +96 -0
  110. package/dist/services/rest_client.js.map +1 -0
  111. package/dist/swagger/index.d.ts +223 -0
  112. package/dist/swagger/index.js +564 -0
  113. package/dist/swagger/index.js.map +1 -0
  114. package/dist/types/express.d.ts +14 -0
  115. package/dist/types/vendor.d.ts +102 -0
  116. package/dist/utils/api_scaffold.d.ts +74 -0
  117. package/dist/utils/api_scaffold.js +220 -0
  118. package/dist/utils/api_scaffold.js.map +1 -0
  119. package/dist/utils/case_converter.d.ts +7 -0
  120. package/dist/utils/case_converter.js +29 -0
  121. package/dist/utils/case_converter.js.map +1 -0
  122. package/dist/utils/crc32.d.ts +2 -0
  123. package/dist/utils/crc32.js +43 -0
  124. package/dist/utils/crc32.js.map +1 -0
  125. package/dist/utils/cron.d.ts +27 -0
  126. package/dist/utils/cron.js +186 -0
  127. package/dist/utils/cron.js.map +1 -0
  128. package/dist/utils/datetime.d.ts +4 -0
  129. package/dist/utils/datetime.js +6 -0
  130. package/dist/utils/datetime.js.map +1 -0
  131. package/dist/utils/host.d.ts +18 -0
  132. package/dist/utils/host.js +33 -0
  133. package/dist/utils/host.js.map +1 -0
  134. package/{src/utils/index.js → dist/utils/index.d.ts} +2 -26
  135. package/dist/utils/index.js +12 -0
  136. package/dist/utils/index.js.map +1 -0
  137. package/dist/utils/pagination.d.ts +150 -0
  138. package/dist/utils/pagination.js +242 -0
  139. package/dist/utils/pagination.js.map +1 -0
  140. package/dist/utils/random.d.ts +3 -0
  141. package/dist/utils/random.js +18 -0
  142. package/dist/utils/random.js.map +1 -0
  143. package/dist/utils/request_client.d.ts +33 -0
  144. package/dist/utils/request_client.js +153 -0
  145. package/dist/utils/request_client.js.map +1 -0
  146. package/dist/utils/smart_query.d.ts +144 -0
  147. package/dist/utils/smart_query.js +310 -0
  148. package/dist/utils/smart_query.js.map +1 -0
  149. package/dist/utils/test.d.ts +14 -0
  150. package/dist/utils/test.js +37 -0
  151. package/dist/utils/test.js.map +1 -0
  152. package/dist/utils/wrapper.d.ts +3 -0
  153. package/dist/utils/wrapper.js +5 -0
  154. package/dist/utils/wrapper.js.map +1 -0
  155. package/package.json +24 -10
  156. package/index.js +0 -2
  157. package/src/commands/interface.js +0 -45
  158. package/src/commands/make_entity.js +0 -490
  159. package/src/commands/tramp.js +0 -34
  160. package/src/config/index.js +0 -95
  161. package/src/di.js +0 -96
  162. package/src/engine.js +0 -556
  163. package/src/entities/index.js +0 -272
  164. package/src/exceptions/index.js +0 -501
  165. package/src/index.js +0 -55
  166. package/src/middlewares/auth.js +0 -67
  167. package/src/middlewares/auth_kong.js +0 -28
  168. package/src/middlewares/debug.js +0 -88
  169. package/src/middlewares/providers.js +0 -73
  170. package/src/middlewares/session.js +0 -63
  171. package/src/middlewares/trace.js +0 -254
  172. package/src/middlewares/validator.js +0 -50
  173. package/src/middlewares/view_cache.js +0 -127
  174. package/src/services/cache.js +0 -223
  175. package/src/services/config.js +0 -115
  176. package/src/services/env.js +0 -28
  177. package/src/services/event_manager.js +0 -84
  178. package/src/services/http_client.js +0 -69
  179. package/src/services/jwt_token.js +0 -89
  180. package/src/services/jwt_token_kong.js +0 -75
  181. package/src/services/logger.js +0 -150
  182. package/src/services/namespace.js +0 -176
  183. package/src/services/now.js +0 -49
  184. package/src/services/providers.js +0 -158
  185. package/src/services/redis.js +0 -63
  186. package/src/services/rest_client.js +0 -112
  187. package/src/swagger/index.js +0 -665
  188. package/src/utils/api_scaffold.js +0 -240
  189. package/src/utils/case_converter.js +0 -33
  190. package/src/utils/crc32.js +0 -44
  191. package/src/utils/cron.js +0 -208
  192. package/src/utils/datetime.js +0 -13
  193. package/src/utils/host.js +0 -39
  194. package/src/utils/pagination.js +0 -260
  195. package/src/utils/random.js +0 -23
  196. package/src/utils/request_client.js +0 -179
  197. package/src/utils/smart_query.js +0 -352
  198. package/src/utils/test.js +0 -48
  199. package/src/utils/wrapper.js +0 -8
@@ -0,0 +1,439 @@
1
+ import * as appRoot from 'app-root-path';
2
+ import path from 'path';
3
+ import { format } from 'util';
4
+ import crc32 from "../utils/crc32.js";
5
+ /**
6
+ * Make Error be able to work with JSON.stringify()
7
+ */
8
+ if (!('toJSON' in Error.prototype)) {
9
+ Object.defineProperty(Error.prototype, 'toJSON', {
10
+ value: function toJSON() {
11
+ const alt = {};
12
+ Object.getOwnPropertyNames(this).forEach(function collect(key) {
13
+ alt[key] = this[key];
14
+ }, this);
15
+ return alt;
16
+ },
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ }
21
+ let i18nHandler = format;
22
+ let factory = () => undefined;
23
+ /**
24
+ * Exception interface
25
+ * Support usages:
26
+ * throw new Exception();
27
+ * throw new Exception('Something');
28
+ * throw new Exception(new Error());
29
+ * throw new Exception(new Exception());
30
+ * throw (new Exception()).i18n('some %d', 123)
31
+ */
32
+ export class StandardException extends Error {
33
+ /**
34
+ * Generate string hash by crc32
35
+ */
36
+ static hash(str, padstr = '0000000000') {
37
+ const crcstr = crc32(str).toString();
38
+ return padstr.substring(0, padstr.length - crcstr.length) + crcstr;
39
+ }
40
+ /**
41
+ * Hash an exception into an 18 bits code
42
+ */
43
+ static generateCode(className, fileName = import.meta.filename) {
44
+ const namespace = fileName.replace(appRoot.path, '').split(path.sep).join('/');
45
+ const group = fileName === import.meta.filename ? '11111' : crc32(namespace).toString().substring(0, 5);
46
+ return parseInt(`${group}000${StandardException.hash(className)}`, 10);
47
+ }
48
+ /**
49
+ * Remove useless info from error stack
50
+ */
51
+ static stackBeautifier(stack) {
52
+ const lines = stack.split('\n');
53
+ const stackOut = [];
54
+ for (const line of lines) {
55
+ if (!line.match(/node_modules|\(node\.js|\(native/)) {
56
+ stackOut.push(line);
57
+ }
58
+ }
59
+ return stackOut;
60
+ }
61
+ static setI18nHandler(handler) {
62
+ i18nHandler = handler;
63
+ }
64
+ /**
65
+ * Deserialize an exception from a JSON object
66
+ */
67
+ static factory(json = {}) {
68
+ return factory(json);
69
+ }
70
+ /**
71
+ * Http status code
72
+ */
73
+ get statusCode() {
74
+ return 500;
75
+ }
76
+ humanMessage;
77
+ throwingError;
78
+ details;
79
+ prevError;
80
+ code;
81
+ filename;
82
+ translated;
83
+ importance;
84
+ /**
85
+ * If throw a StandardException, keep throw to above
86
+ * If throw a Error, set Error message to exception message, set Error to details
87
+ * If throw a String, set String to exception message
88
+ * If throw a null or undefined, set exception name as exception message
89
+ * Otherwise, throw a TypeError
90
+ */
91
+ constructor(exceptionOrMsg) {
92
+ const throwingNothing = !exceptionOrMsg;
93
+ const throwingString = typeof exceptionOrMsg === 'string';
94
+ const throwingSelf = exceptionOrMsg instanceof StandardException;
95
+ const throwingError = exceptionOrMsg instanceof Error;
96
+ const throwingUnknown = Number(throwingNothing) + Number(throwingString) + Number(throwingSelf) + Number(throwingError) === 0;
97
+ if (throwingUnknown === true) {
98
+ throw new TypeError('Unexpected params for exception');
99
+ }
100
+ if (throwingSelf === true) {
101
+ throw exceptionOrMsg;
102
+ }
103
+ let message = 'Something wrong';
104
+ if (throwingString === true) {
105
+ message = exceptionOrMsg;
106
+ }
107
+ if (throwingError === true) {
108
+ ({ message } = exceptionOrMsg);
109
+ }
110
+ super(message);
111
+ if (throwingNothing === true) {
112
+ message = this.constructor.name;
113
+ }
114
+ this.message = message;
115
+ this.humanMessage = message;
116
+ this.throwingError = throwingError;
117
+ Error.captureStackTrace(this, this.constructor);
118
+ this.details = throwingError ? exceptionOrMsg : [];
119
+ this.prevError = {};
120
+ this.code = null;
121
+ this.filename = import.meta.filename;
122
+ this.translated = false;
123
+ this.importance = 0;
124
+ if (throwingError === true) {
125
+ this.setPrevError(exceptionOrMsg);
126
+ }
127
+ }
128
+ i18n(...args) {
129
+ this.message = format(...args);
130
+ this.humanMessage = i18nHandler(...args);
131
+ if (this.message !== this.humanMessage) {
132
+ this.translated = true;
133
+ }
134
+ return this;
135
+ }
136
+ getHumanMessage() {
137
+ if (this.translated) {
138
+ return this.humanMessage;
139
+ }
140
+ let message = i18nHandler(this.message);
141
+ if (message !== this.message) {
142
+ this.humanMessage = message;
143
+ this.translated = true;
144
+ return this.humanMessage;
145
+ }
146
+ message = i18nHandler(this.constructor.name);
147
+ if (message !== this.constructor.name) {
148
+ this.humanMessage = message;
149
+ this.translated = true;
150
+ return this.humanMessage;
151
+ }
152
+ return this.message;
153
+ }
154
+ setMessage(message) {
155
+ this.message = message;
156
+ return this;
157
+ }
158
+ setCode(code) {
159
+ this.code = parseInt(String(code), 10);
160
+ return this;
161
+ }
162
+ getCode() {
163
+ if (this.code) {
164
+ return this.code;
165
+ }
166
+ this.code = StandardException.generateCode(this.constructor.name, this.filename) || -1;
167
+ return this.code;
168
+ }
169
+ getStatusCode() {
170
+ return this.statusCode;
171
+ }
172
+ setImportance(importance) {
173
+ this.importance = parseInt(String(importance), 10);
174
+ return this;
175
+ }
176
+ getImportance() {
177
+ return this.importance;
178
+ }
179
+ setFileName(filename) {
180
+ this.filename = filename;
181
+ return this;
182
+ }
183
+ getFileName() {
184
+ return this.filename;
185
+ }
186
+ setDetails(details) {
187
+ this.details = details;
188
+ return this;
189
+ }
190
+ getDetails() {
191
+ return Array.isArray(this.details) ? this.details : [this.details];
192
+ }
193
+ setPrevError(prevError) {
194
+ this.prevError = prevError;
195
+ return this;
196
+ }
197
+ getPrevError() {
198
+ return this.prevError;
199
+ }
200
+ toJSON() {
201
+ return {
202
+ statusCode: this.statusCode,
203
+ code: this.getCode(),
204
+ name: this.constructor.name,
205
+ message: this.message,
206
+ humanMessage: this.getHumanMessage(),
207
+ filename: this.getFileName(),
208
+ prevError: this.getPrevError(),
209
+ errors: Array.isArray(this.getDetails()) ?
210
+ this.getDetails() : [this.getDetails()],
211
+ stack: StandardException.stackBeautifier(this.stack),
212
+ fullStack: this.stack.split('\n')
213
+ };
214
+ }
215
+ }
216
+ export class LogicException extends StandardException {
217
+ get statusCode() {
218
+ return 400;
219
+ }
220
+ }
221
+ export class InvalidArgumentException extends LogicException {
222
+ }
223
+ export class FormInvalidateException extends InvalidArgumentException {
224
+ constructor(exceptionOrMsg) {
225
+ super(exceptionOrMsg);
226
+ const joiError = exceptionOrMsg;
227
+ if (this.throwingError && joiError.isJoi === true) {
228
+ this.message = joiError.details[0].message;
229
+ this.details = joiError.details;
230
+ this.i18n(this.message);
231
+ this.translated = true;
232
+ }
233
+ }
234
+ }
235
+ export class ModelInvalidateException extends InvalidArgumentException {
236
+ constructor(exceptionOrMsg) {
237
+ super(exceptionOrMsg);
238
+ if (this.throwingError) {
239
+ this.details = exceptionOrMsg.errors;
240
+ }
241
+ }
242
+ }
243
+ export class HttpRequestLogicException extends InvalidArgumentException {
244
+ response;
245
+ request;
246
+ requestParams;
247
+ responseParams;
248
+ businessCode;
249
+ /**
250
+ * Support request promise error
251
+ * https://github.com/request/promise-core/blob/master/lib/errors.js
252
+ */
253
+ constructor(exceptionOrMsg) {
254
+ super(exceptionOrMsg);
255
+ const requestError = exceptionOrMsg;
256
+ if (this.throwingError && ['StatusCodeError', 'RequestError', 'TransformError'].includes(requestError.name ?? '')) {
257
+ this.details = exceptionOrMsg;
258
+ const { response } = requestError;
259
+ this.response = response || null;
260
+ this.request = response ? response.request : null;
261
+ }
262
+ this.requestParams = null;
263
+ this.responseParams = null;
264
+ this.businessCode = null;
265
+ }
266
+ setResponse(response) {
267
+ this.response = response || null;
268
+ this.request = response ? response.request : null;
269
+ return this;
270
+ }
271
+ getRequest() {
272
+ if (!this.request) {
273
+ throw new Error('No request set into exception');
274
+ }
275
+ return this.request;
276
+ }
277
+ getResponse() {
278
+ if (!this.response) {
279
+ throw new Error('No response set into exception');
280
+ }
281
+ return this.response;
282
+ }
283
+ setRequestParams(params) {
284
+ this.requestParams = params;
285
+ return this;
286
+ }
287
+ getRequestParams() {
288
+ return this.requestParams;
289
+ }
290
+ setResponseParams(params) {
291
+ this.responseParams = params;
292
+ return this;
293
+ }
294
+ getResponseParams() {
295
+ return this.responseParams;
296
+ }
297
+ setBusinessCode(code) {
298
+ this.businessCode = code;
299
+ return this;
300
+ }
301
+ getBusinessCode() {
302
+ return this.businessCode;
303
+ }
304
+ }
305
+ export class RestServiceLogicException extends HttpRequestLogicException {
306
+ constructor(exceptionOrMsg) {
307
+ super(exceptionOrMsg);
308
+ if (this.throwingError && this.response && this.response.body) {
309
+ this.prevError = factory(this.response.body);
310
+ }
311
+ }
312
+ }
313
+ export class UnauthorizedException extends LogicException {
314
+ get statusCode() {
315
+ return 401;
316
+ }
317
+ }
318
+ export class OperationNotPermittedException extends LogicException {
319
+ get statusCode() {
320
+ return 403;
321
+ }
322
+ }
323
+ export class ResourceNotFoundException extends LogicException {
324
+ get statusCode() {
325
+ return 404;
326
+ }
327
+ }
328
+ export class OperationUnsupportedException extends LogicException {
329
+ get statusCode() {
330
+ return 405;
331
+ }
332
+ }
333
+ export class ResourceConflictedException extends LogicException {
334
+ get statusCode() {
335
+ return 409;
336
+ }
337
+ }
338
+ export class RuntimeException extends StandardException {
339
+ }
340
+ export class IOException extends RuntimeException {
341
+ }
342
+ export class HttpRequestIOException extends IOException {
343
+ response;
344
+ request;
345
+ requestParams;
346
+ responseParams;
347
+ businessCode;
348
+ constructor(exceptionOrMsg) {
349
+ super(exceptionOrMsg);
350
+ const requestError = exceptionOrMsg;
351
+ if (this.throwingError && ['StatusCodeError', 'RequestError', 'TransformError'].includes(requestError.name ?? '')) {
352
+ this.details = exceptionOrMsg;
353
+ const { response } = requestError;
354
+ this.response = response || null;
355
+ this.request = response ? response.request : null;
356
+ }
357
+ this.requestParams = null;
358
+ this.responseParams = null;
359
+ this.businessCode = null;
360
+ }
361
+ getRequest() {
362
+ return this.request;
363
+ }
364
+ getResponse() {
365
+ return this.response;
366
+ }
367
+ setRequestParams(params) {
368
+ this.requestParams = params;
369
+ return this;
370
+ }
371
+ getRequestParams() {
372
+ return this.requestParams;
373
+ }
374
+ setResponseParams(params) {
375
+ this.responseParams = params;
376
+ return this;
377
+ }
378
+ getResponseParams() {
379
+ return this.responseParams;
380
+ }
381
+ setBusinessCode(code) {
382
+ this.businessCode = code;
383
+ return this;
384
+ }
385
+ getBusinessCode() {
386
+ return this.businessCode;
387
+ }
388
+ }
389
+ export class RestServiceIOException extends HttpRequestIOException {
390
+ constructor(exceptionOrMsg) {
391
+ super(exceptionOrMsg);
392
+ if (this.throwingError && this.response && this.response.body) {
393
+ this.prevError = factory(this.response.body);
394
+ }
395
+ }
396
+ }
397
+ export class DatabaseIOException extends IOException {
398
+ }
399
+ const exceptions = {
400
+ StandardException,
401
+ LogicException,
402
+ InvalidArgumentException,
403
+ FormInvalidateException,
404
+ ModelInvalidateException,
405
+ HttpRequestLogicException,
406
+ RestServiceLogicException,
407
+ UnauthorizedException,
408
+ OperationUnsupportedException,
409
+ OperationNotPermittedException,
410
+ ResourceNotFoundException,
411
+ ResourceConflictedException,
412
+ RuntimeException,
413
+ IOException,
414
+ HttpRequestIOException,
415
+ RestServiceIOException,
416
+ DatabaseIOException
417
+ };
418
+ factory = (json) => {
419
+ const { code, name, statusCode, message, prevError, errors, fullStack = [] } = json;
420
+ if (!code || !name || !statusCode || !message) {
421
+ return {};
422
+ }
423
+ let e;
424
+ if (Object.keys(exceptions).includes(name)) {
425
+ e = new exceptions[name]();
426
+ }
427
+ else if (statusCode < 500) {
428
+ e = new LogicException(message);
429
+ }
430
+ else {
431
+ e = new RuntimeException(message);
432
+ }
433
+ e.setCode(code)
434
+ .setDetails(errors)
435
+ .setPrevError(prevError);
436
+ e.stack = fullStack.join('\n');
437
+ return e;
438
+ };
439
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /// <reference path="./types/vendor.d.ts" />
2
+ /// <reference path="./types/express.d.ts" />
3
+ import sequelize from 'sequelize';
4
+ import Joi from 'joi';
5
+ import EvaEngine, * as engine from './engine.js';
6
+ import * as swagger from './swagger/index.js';
7
+ import * as exceptions from './exceptions/index.js';
8
+ import * as services from './services/index.js';
9
+ import * as middlewares from './middlewares/index.js';
10
+ import * as ServiceProviders from './services/providers.js';
11
+ import * as MiddlewareProviders from './middlewares/providers.js';
12
+ import * as utils from './utils/index.js';
13
+ import Command, * as commands from './commands/index.js';
14
+ import Entities from './entities/index.js';
15
+ declare const core: {
16
+ EvaEngine: typeof EvaEngine;
17
+ Command: typeof Command;
18
+ DI: typeof engine.DI;
19
+ Entities: typeof Entities;
20
+ engine: typeof engine;
21
+ express: typeof engine.express;
22
+ commands: typeof commands;
23
+ dependencies: {
24
+ Joi: Joi.Root;
25
+ constitute: {
26
+ Container: typeof import("constitute").Container;
27
+ Dependencies: typeof import("constitute").Dependencies;
28
+ };
29
+ sequelize: typeof sequelize;
30
+ };
31
+ exceptions: typeof exceptions;
32
+ middlewares: typeof middlewares;
33
+ sequelize: typeof sequelize;
34
+ Joi: Joi.Root;
35
+ swagger: typeof swagger;
36
+ services: typeof services;
37
+ providers: {
38
+ services: typeof ServiceProviders;
39
+ middlewares: typeof MiddlewareProviders;
40
+ };
41
+ wrapper: (fn: engine.express.RequestHandler) => engine.express.RequestHandler;
42
+ utils: typeof utils;
43
+ };
44
+ export default core;
45
+ export { core };
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ import constitute from 'constitute';
2
+ import sequelize from 'sequelize';
3
+ import Joi from 'joi';
4
+ import EvaEngine, * as engine from "./engine.js";
5
+ import * as swagger from "./swagger/index.js";
6
+ import * as exceptions from "./exceptions/index.js";
7
+ import * as services from "./services/index.js";
8
+ import * as middlewares from "./middlewares/index.js";
9
+ import * as ServiceProviders from "./services/providers.js";
10
+ import * as MiddlewareProviders from "./middlewares/providers.js";
11
+ import * as utils from "./utils/index.js";
12
+ import Command, * as commands from "./commands/index.js";
13
+ import Entities from "./entities/index.js";
14
+ const providers = {
15
+ services: ServiceProviders,
16
+ middlewares: MiddlewareProviders
17
+ };
18
+ const { wrapper } = utils;
19
+ const { DI, express } = engine;
20
+ const core = {
21
+ EvaEngine,
22
+ Command,
23
+ DI,
24
+ Entities,
25
+ engine,
26
+ express,
27
+ commands,
28
+ dependencies: {
29
+ Joi,
30
+ constitute,
31
+ sequelize
32
+ },
33
+ exceptions,
34
+ middlewares,
35
+ sequelize,
36
+ Joi,
37
+ swagger,
38
+ services,
39
+ providers,
40
+ wrapper,
41
+ utils
42
+ };
43
+ export default core;
44
+ export { core };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,SAAS,EAAE,KAAK,MAAM,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,mBAAmB,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,OAAO,EAAE,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AACzD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,MAAM,SAAS,GAAG;IAChB,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,mBAAmB;CACjC,CAAC;AAEF,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AAE1B,MAAM,EACJ,EAAE,EACF,OAAO,EACR,GAAG,MAAM,CAAC;AAEX,MAAM,IAAI,GAAG;IACX,SAAS;IACT,OAAO;IACP,EAAE;IACF,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,YAAY,EAAE;QACZ,GAAG;QACH,UAAU;QACV,SAAS;KACV;IACD,UAAU;IACV,WAAW;IACX,SAAS;IACT,GAAG;IACH,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,KAAK;CACN,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import Config from '../services/config.js';
2
+ import Now from '../services/now.js';
3
+ import JsonWebToken from '../services/jwt_token.js';
4
+ declare function AuthMiddleware(_config: Config, token: JsonWebToken, now: Now): () => import("express").RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
5
+ export default AuthMiddleware;
@@ -0,0 +1,63 @@
1
+ import constitute from 'constitute';
2
+ import wrapper from "../utils/wrapper.js";
3
+ import { UnauthorizedException } from "../exceptions/index.js";
4
+ import Config from "../services/config.js";
5
+ import Now from "../services/now.js";
6
+ import JsonWebToken from "../services/jwt_token.js";
7
+ function AuthMiddleware(_config, token, now) {
8
+ const config = _config.get();
9
+ return () => wrapper(async (req, res, next) => {
10
+ const jwToken = req.header('X-Token') || req.query.api_key;
11
+ if (config.token.faker.enable === true && req.auth && req.auth.uid) {
12
+ //express 类型将 header 值限制为 string,运行时 Node 接受数字并自动强转
13
+ res.set('X-Uid', req.auth.uid);
14
+ return next();
15
+ }
16
+ if (config.token.faker.enable === true && jwToken === config.token.faker.key) {
17
+ req.auth = {
18
+ type: 'fake',
19
+ uid: config.token.faker.uid,
20
+ token: config.token.faker.key
21
+ };
22
+ res.set('X-Uid', config.token.faker.uid);
23
+ return next();
24
+ }
25
+ if (jwToken) {
26
+ let parsedToken = {};
27
+ try {
28
+ parsedToken = await token.find(jwToken);
29
+ }
30
+ catch {
31
+ throw new UnauthorizedException('Token not recognizable');
32
+ }
33
+ const { uid, expiredAt } = parsedToken;
34
+ if (!uid) {
35
+ throw new UnauthorizedException('User info not found in token');
36
+ }
37
+ if (typeof expiredAt !== 'number' || expiredAt <= now.getTimestamp()) {
38
+ throw new UnauthorizedException('Token expired');
39
+ }
40
+ req.auth = {
41
+ type: 'jwt',
42
+ uid,
43
+ token: jwToken
44
+ };
45
+ res.set('X-Uid', uid);
46
+ return next();
47
+ }
48
+ if (req.session && req.session.uid) {
49
+ const sessionUid = req.session.uid;
50
+ req.auth = {
51
+ type: 'session',
52
+ uid: sessionUid,
53
+ token: ''
54
+ };
55
+ res.set('X-Uid', sessionUid);
56
+ return next();
57
+ }
58
+ throw new UnauthorizedException('No authority token found');
59
+ });
60
+ }
61
+ constitute.Dependencies(Config, JsonWebToken, Now)(AuthMiddleware);
62
+ export default AuthMiddleware;
63
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middlewares/auth.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAYpD,SAAS,cAAc,CAAC,OAAe,EAAE,KAAmB,EAAE,GAAQ;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAiB,CAAC;IAC5C,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACnE,mDAAmD;YACnD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC;YACzC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,GAAG;gBACT,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;aAC9B,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAa,CAAC,CAAC;YACnD,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,WAAW,GAAY,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,WAAqD,CAAC;YACjF,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC;gBACrE,MAAM,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;YACD,GAAG,CAAC,IAAI,GAAG;gBACT,IAAI,EAAE,KAAK;gBACX,GAAG;gBACH,KAAK,EAAE,OAAiB;aACzB,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAa,CAAC,CAAC;YAChC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,IAAK,GAAG,CAAC,OAAqC,CAAC,GAAG,EAAE,CAAC;YAClE,MAAM,UAAU,GAAI,GAAG,CAAC,OAAqC,CAAC,GAAG,CAAC;YAClE,GAAG,CAAC,IAAI,GAAG;gBACT,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,EAAE;aACV,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,UAAoB,CAAC,CAAC;YACvC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AACD,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;AACnE,eAAe,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare function AuthKongMiddleware(): () => import("express").RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
2
+ export default AuthKongMiddleware;
@@ -0,0 +1,24 @@
1
+ import { UnauthorizedException } from "../exceptions/index.js";
2
+ import wrapper from "../utils/wrapper.js";
3
+ function AuthKongMiddleware() {
4
+ return () => wrapper(async (req, res, next) => {
5
+ if (req.headers['x-anonymous-consumer'] === 'true') {
6
+ throw new UnauthorizedException('Authentication failed');
7
+ }
8
+ const uid = Number.parseInt(req.headers['x-consumer-custom-id'], 10);
9
+ const mobile = req.headers['x-consumer-custom-username'];
10
+ if (uid > 0) {
11
+ //express 类型将 header 值限制为 string,运行时 Node 接受数字并自动强转
12
+ res.set('X-Uid', uid);
13
+ res.set('X-Mobile', mobile);
14
+ req.auth = {
15
+ uid,
16
+ mobile
17
+ };
18
+ return next();
19
+ }
20
+ throw new UnauthorizedException('Authentication failed, invalid UID');
21
+ });
22
+ }
23
+ export default AuthKongMiddleware;
24
+ //# sourceMappingURL=auth_kong.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth_kong.js","sourceRoot":"","sources":["../../src/middlewares/auth_kong.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAE1C,SAAS,kBAAkB;IACzB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC5C,IAAI,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAW,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,mDAAmD;YACnD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAwB,CAAC,CAAC;YAC3C,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC5B,GAAG,CAAC,IAAI,GAAG;gBACT,GAAG;gBACH,MAAM;aACP,CAAC;YACF,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,qBAAqB,CAAC,oCAAoC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import Logger from '../services/logger.js';
2
+ declare function DebugMiddleware(logger: Logger): () => (req: import("http").IncomingMessage, res: import("http").ServerResponse<import("http").IncomingMessage>, callback: (err?: Error) => void) => void;
3
+ export default DebugMiddleware;