evaengine 1.0.14 → 3.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 (202) hide show
  1. package/README.md +15 -7
  2. package/bin/engine +2 -31
  3. package/dist/bin.d.ts +1 -0
  4. package/dist/bin.js +32 -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 +131 -0
  22. package/dist/di.js +197 -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 +466 -0
  32. package/dist/exceptions/index.js.map +1 -0
  33. package/dist/index.d.ts +41 -0
  34. package/dist/index.js +43 -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 +5 -0
  52. package/dist/middlewares/session.js +46 -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 +68 -0
  64. package/dist/services/cache.js +206 -0
  65. package/dist/services/cache.js.map +1 -0
  66. package/dist/services/config.d.ts +17 -0
  67. package/dist/services/config.js +67 -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 +30 -0
  73. package/dist/services/event_manager.js +74 -0
  74. package/dist/services/event_manager.js.map +1 -0
  75. package/dist/services/http_client.d.ts +67 -0
  76. package/dist/services/http_client.js +61 -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 +25 -0
  88. package/dist/services/jwt_token.js +76 -0
  89. package/dist/services/jwt_token.js.map +1 -0
  90. package/dist/services/jwt_token_kong.d.ts +26 -0
  91. package/dist/services/jwt_token_kong.js +64 -0
  92. package/dist/services/jwt_token_kong.js.map +1 -0
  93. package/dist/services/logger.d.ts +31 -0
  94. package/dist/services/logger.js +125 -0
  95. package/dist/services/logger.js.map +1 -0
  96. package/dist/services/namespace.d.ts +62 -0
  97. package/dist/services/namespace.js +171 -0
  98. package/dist/services/namespace.js.map +1 -0
  99. package/dist/services/now.d.ts +15 -0
  100. package/dist/services/now.js +42 -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 +19 -0
  106. package/dist/services/redis.js +52 -0
  107. package/dist/services/redis.js.map +1 -0
  108. package/dist/services/rest_client.d.ts +49 -0
  109. package/dist/services/rest_client.js +95 -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 +30 -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/jwt.d.ts +16 -0
  138. package/dist/utils/jwt.js +93 -0
  139. package/dist/utils/jwt.js.map +1 -0
  140. package/dist/utils/pagination.d.ts +150 -0
  141. package/dist/utils/pagination.js +242 -0
  142. package/dist/utils/pagination.js.map +1 -0
  143. package/dist/utils/random.d.ts +3 -0
  144. package/dist/utils/random.js +18 -0
  145. package/dist/utils/random.js.map +1 -0
  146. package/dist/utils/request_client.d.ts +33 -0
  147. package/dist/utils/request_client.js +153 -0
  148. package/dist/utils/request_client.js.map +1 -0
  149. package/dist/utils/smart_query.d.ts +144 -0
  150. package/dist/utils/smart_query.js +310 -0
  151. package/dist/utils/smart_query.js.map +1 -0
  152. package/dist/utils/test.d.ts +14 -0
  153. package/dist/utils/test.js +37 -0
  154. package/dist/utils/test.js.map +1 -0
  155. package/dist/utils/wrapper.d.ts +3 -0
  156. package/dist/utils/wrapper.js +5 -0
  157. package/dist/utils/wrapper.js.map +1 -0
  158. package/package.json +22 -15
  159. package/index.js +0 -2
  160. package/src/commands/interface.js +0 -45
  161. package/src/commands/make_entity.js +0 -490
  162. package/src/commands/tramp.js +0 -34
  163. package/src/config/index.js +0 -95
  164. package/src/di.js +0 -96
  165. package/src/engine.js +0 -556
  166. package/src/entities/index.js +0 -272
  167. package/src/exceptions/index.js +0 -501
  168. package/src/index.js +0 -55
  169. package/src/middlewares/auth.js +0 -67
  170. package/src/middlewares/auth_kong.js +0 -28
  171. package/src/middlewares/debug.js +0 -88
  172. package/src/middlewares/providers.js +0 -73
  173. package/src/middlewares/session.js +0 -63
  174. package/src/middlewares/trace.js +0 -254
  175. package/src/middlewares/validator.js +0 -50
  176. package/src/middlewares/view_cache.js +0 -127
  177. package/src/services/cache.js +0 -223
  178. package/src/services/config.js +0 -115
  179. package/src/services/env.js +0 -28
  180. package/src/services/event_manager.js +0 -84
  181. package/src/services/http_client.js +0 -69
  182. package/src/services/jwt_token.js +0 -89
  183. package/src/services/jwt_token_kong.js +0 -75
  184. package/src/services/logger.js +0 -150
  185. package/src/services/namespace.js +0 -176
  186. package/src/services/now.js +0 -49
  187. package/src/services/providers.js +0 -158
  188. package/src/services/redis.js +0 -63
  189. package/src/services/rest_client.js +0 -112
  190. package/src/swagger/index.js +0 -665
  191. package/src/utils/api_scaffold.js +0 -240
  192. package/src/utils/case_converter.js +0 -33
  193. package/src/utils/crc32.js +0 -44
  194. package/src/utils/cron.js +0 -208
  195. package/src/utils/datetime.js +0 -13
  196. package/src/utils/host.js +0 -39
  197. package/src/utils/pagination.js +0 -260
  198. package/src/utils/random.js +0 -23
  199. package/src/utils/request_client.js +0 -179
  200. package/src/utils/smart_query.js +0 -352
  201. package/src/utils/test.js +0 -48
  202. package/src/utils/wrapper.js +0 -8
@@ -0,0 +1,466 @@
1
+ import { existsSync } from 'node:fs';
2
+ import path from 'path';
3
+ import { format } from 'util';
4
+ import crc32 from "../utils/crc32.js";
5
+ /**
6
+ * Resolve the consumer application root the way app-root-path did: walk up
7
+ * from the working directory to the nearest ancestor (or self) containing a
8
+ * package.json, falling back to the working directory itself. generateCode
9
+ * relies on it to strip the machine-specific prefix from exception file
10
+ * paths so that error codes stay stable across environments.
11
+ */
12
+ let appRootPath = null;
13
+ function findAppRoot() {
14
+ if (appRootPath === null) {
15
+ const cwd = path.resolve(process.cwd());
16
+ let dir = cwd;
17
+ for (;;) {
18
+ if (existsSync(path.join(dir, 'package.json'))) {
19
+ appRootPath = dir;
20
+ break;
21
+ }
22
+ const parent = path.dirname(dir);
23
+ if (parent === dir) {
24
+ appRootPath = cwd;
25
+ break;
26
+ }
27
+ dir = parent;
28
+ }
29
+ }
30
+ return appRootPath;
31
+ }
32
+ /**
33
+ * Make Error be able to work with JSON.stringify()
34
+ */
35
+ if (!('toJSON' in Error.prototype)) {
36
+ Object.defineProperty(Error.prototype, 'toJSON', {
37
+ value: function toJSON() {
38
+ const alt = {};
39
+ Object.getOwnPropertyNames(this).forEach(function collect(key) {
40
+ alt[key] = this[key];
41
+ }, this);
42
+ return alt;
43
+ },
44
+ configurable: true,
45
+ writable: true
46
+ });
47
+ }
48
+ let i18nHandler = format;
49
+ let factory = () => undefined;
50
+ /**
51
+ * Exception interface
52
+ * Support usages:
53
+ * throw new Exception();
54
+ * throw new Exception('Something');
55
+ * throw new Exception(new Error());
56
+ * throw new Exception(new Exception());
57
+ * throw (new Exception()).i18n('some %d', 123)
58
+ */
59
+ export class StandardException extends Error {
60
+ /**
61
+ * Generate string hash by crc32
62
+ */
63
+ static hash(str, padstr = '0000000000') {
64
+ const crcstr = crc32(str).toString();
65
+ return padstr.substring(0, padstr.length - crcstr.length) + crcstr;
66
+ }
67
+ /**
68
+ * Hash an exception into an 18 bits code
69
+ */
70
+ static generateCode(className, fileName = import.meta.filename) {
71
+ const namespace = fileName.replace(findAppRoot(), '').split(path.sep).join('/');
72
+ const group = fileName === import.meta.filename ? '11111' : crc32(namespace).toString().substring(0, 5);
73
+ return parseInt(`${group}000${StandardException.hash(className)}`, 10);
74
+ }
75
+ /**
76
+ * Remove useless info from error stack
77
+ */
78
+ static stackBeautifier(stack) {
79
+ const lines = stack.split('\n');
80
+ const stackOut = [];
81
+ for (const line of lines) {
82
+ if (!line.match(/node_modules|\(node\.js|\(native/)) {
83
+ stackOut.push(line);
84
+ }
85
+ }
86
+ return stackOut;
87
+ }
88
+ static setI18nHandler(handler) {
89
+ i18nHandler = handler;
90
+ }
91
+ /**
92
+ * Deserialize an exception from a JSON object
93
+ */
94
+ static factory(json = {}) {
95
+ return factory(json);
96
+ }
97
+ /**
98
+ * Http status code
99
+ */
100
+ get statusCode() {
101
+ return 500;
102
+ }
103
+ humanMessage;
104
+ throwingError;
105
+ details;
106
+ prevError;
107
+ code;
108
+ filename;
109
+ translated;
110
+ importance;
111
+ /**
112
+ * If throw a StandardException, keep throw to above
113
+ * If throw a Error, set Error message to exception message, set Error to details
114
+ * If throw a String, set String to exception message
115
+ * If throw a null or undefined, set exception name as exception message
116
+ * Otherwise, throw a TypeError
117
+ */
118
+ constructor(exceptionOrMsg) {
119
+ const throwingNothing = !exceptionOrMsg;
120
+ const throwingString = typeof exceptionOrMsg === 'string';
121
+ const throwingSelf = exceptionOrMsg instanceof StandardException;
122
+ const throwingError = exceptionOrMsg instanceof Error;
123
+ const throwingUnknown = Number(throwingNothing) + Number(throwingString) + Number(throwingSelf) + Number(throwingError) === 0;
124
+ if (throwingUnknown === true) {
125
+ throw new TypeError('Unexpected params for exception');
126
+ }
127
+ if (throwingSelf === true) {
128
+ throw exceptionOrMsg;
129
+ }
130
+ let message = 'Something wrong';
131
+ if (throwingString === true) {
132
+ message = exceptionOrMsg;
133
+ }
134
+ if (throwingError === true) {
135
+ ({ message } = exceptionOrMsg);
136
+ }
137
+ super(message);
138
+ if (throwingNothing === true) {
139
+ message = this.constructor.name;
140
+ }
141
+ this.message = message;
142
+ this.humanMessage = message;
143
+ this.throwingError = throwingError;
144
+ Error.captureStackTrace(this, this.constructor);
145
+ this.details = throwingError ? exceptionOrMsg : [];
146
+ this.prevError = {};
147
+ this.code = null;
148
+ this.filename = import.meta.filename;
149
+ this.translated = false;
150
+ this.importance = 0;
151
+ if (throwingError === true) {
152
+ this.setPrevError(exceptionOrMsg);
153
+ }
154
+ }
155
+ i18n(...args) {
156
+ this.message = format(...args);
157
+ this.humanMessage = i18nHandler(...args);
158
+ if (this.message !== this.humanMessage) {
159
+ this.translated = true;
160
+ }
161
+ return this;
162
+ }
163
+ getHumanMessage() {
164
+ if (this.translated) {
165
+ return this.humanMessage;
166
+ }
167
+ let message = i18nHandler(this.message);
168
+ if (message !== this.message) {
169
+ this.humanMessage = message;
170
+ this.translated = true;
171
+ return this.humanMessage;
172
+ }
173
+ message = i18nHandler(this.constructor.name);
174
+ if (message !== this.constructor.name) {
175
+ this.humanMessage = message;
176
+ this.translated = true;
177
+ return this.humanMessage;
178
+ }
179
+ return this.message;
180
+ }
181
+ setMessage(message) {
182
+ this.message = message;
183
+ return this;
184
+ }
185
+ setCode(code) {
186
+ this.code = parseInt(String(code), 10);
187
+ return this;
188
+ }
189
+ getCode() {
190
+ if (this.code) {
191
+ return this.code;
192
+ }
193
+ this.code = StandardException.generateCode(this.constructor.name, this.filename) || -1;
194
+ return this.code;
195
+ }
196
+ getStatusCode() {
197
+ return this.statusCode;
198
+ }
199
+ setImportance(importance) {
200
+ this.importance = parseInt(String(importance), 10);
201
+ return this;
202
+ }
203
+ getImportance() {
204
+ return this.importance;
205
+ }
206
+ setFileName(filename) {
207
+ this.filename = filename;
208
+ return this;
209
+ }
210
+ getFileName() {
211
+ return this.filename;
212
+ }
213
+ setDetails(details) {
214
+ this.details = details;
215
+ return this;
216
+ }
217
+ getDetails() {
218
+ return Array.isArray(this.details) ? this.details : [this.details];
219
+ }
220
+ setPrevError(prevError) {
221
+ this.prevError = prevError;
222
+ return this;
223
+ }
224
+ getPrevError() {
225
+ return this.prevError;
226
+ }
227
+ toJSON() {
228
+ return {
229
+ statusCode: this.statusCode,
230
+ code: this.getCode(),
231
+ name: this.constructor.name,
232
+ message: this.message,
233
+ humanMessage: this.getHumanMessage(),
234
+ filename: this.getFileName(),
235
+ prevError: this.getPrevError(),
236
+ errors: Array.isArray(this.getDetails()) ?
237
+ this.getDetails() : [this.getDetails()],
238
+ stack: StandardException.stackBeautifier(this.stack),
239
+ fullStack: this.stack.split('\n')
240
+ };
241
+ }
242
+ }
243
+ export class LogicException extends StandardException {
244
+ get statusCode() {
245
+ return 400;
246
+ }
247
+ }
248
+ export class InvalidArgumentException extends LogicException {
249
+ }
250
+ export class FormInvalidateException extends InvalidArgumentException {
251
+ constructor(exceptionOrMsg) {
252
+ super(exceptionOrMsg);
253
+ const joiError = exceptionOrMsg;
254
+ if (this.throwingError && joiError.isJoi === true) {
255
+ this.message = joiError.details[0].message;
256
+ this.details = joiError.details;
257
+ this.i18n(this.message);
258
+ this.translated = true;
259
+ }
260
+ }
261
+ }
262
+ export class ModelInvalidateException extends InvalidArgumentException {
263
+ constructor(exceptionOrMsg) {
264
+ super(exceptionOrMsg);
265
+ if (this.throwingError) {
266
+ this.details = exceptionOrMsg.errors;
267
+ }
268
+ }
269
+ }
270
+ export class HttpRequestLogicException extends InvalidArgumentException {
271
+ response;
272
+ request;
273
+ requestParams;
274
+ responseParams;
275
+ businessCode;
276
+ /**
277
+ * Support request promise error
278
+ * https://github.com/request/promise-core/blob/master/lib/errors.js
279
+ */
280
+ constructor(exceptionOrMsg) {
281
+ super(exceptionOrMsg);
282
+ const requestError = exceptionOrMsg;
283
+ if (this.throwingError && ['StatusCodeError', 'RequestError', 'TransformError'].includes(requestError.name ?? '')) {
284
+ this.details = exceptionOrMsg;
285
+ const { response } = requestError;
286
+ this.response = response || null;
287
+ this.request = response ? response.request : null;
288
+ }
289
+ this.requestParams = null;
290
+ this.responseParams = null;
291
+ this.businessCode = null;
292
+ }
293
+ setResponse(response) {
294
+ this.response = response || null;
295
+ this.request = response ? response.request : null;
296
+ return this;
297
+ }
298
+ getRequest() {
299
+ if (!this.request) {
300
+ throw new Error('No request set into exception');
301
+ }
302
+ return this.request;
303
+ }
304
+ getResponse() {
305
+ if (!this.response) {
306
+ throw new Error('No response set into exception');
307
+ }
308
+ return this.response;
309
+ }
310
+ setRequestParams(params) {
311
+ this.requestParams = params;
312
+ return this;
313
+ }
314
+ getRequestParams() {
315
+ return this.requestParams;
316
+ }
317
+ setResponseParams(params) {
318
+ this.responseParams = params;
319
+ return this;
320
+ }
321
+ getResponseParams() {
322
+ return this.responseParams;
323
+ }
324
+ setBusinessCode(code) {
325
+ this.businessCode = code;
326
+ return this;
327
+ }
328
+ getBusinessCode() {
329
+ return this.businessCode;
330
+ }
331
+ }
332
+ export class RestServiceLogicException extends HttpRequestLogicException {
333
+ constructor(exceptionOrMsg) {
334
+ super(exceptionOrMsg);
335
+ if (this.throwingError && this.response && this.response.body) {
336
+ this.prevError = factory(this.response.body);
337
+ }
338
+ }
339
+ }
340
+ export class UnauthorizedException extends LogicException {
341
+ get statusCode() {
342
+ return 401;
343
+ }
344
+ }
345
+ export class OperationNotPermittedException extends LogicException {
346
+ get statusCode() {
347
+ return 403;
348
+ }
349
+ }
350
+ export class ResourceNotFoundException extends LogicException {
351
+ get statusCode() {
352
+ return 404;
353
+ }
354
+ }
355
+ export class OperationUnsupportedException extends LogicException {
356
+ get statusCode() {
357
+ return 405;
358
+ }
359
+ }
360
+ export class ResourceConflictedException extends LogicException {
361
+ get statusCode() {
362
+ return 409;
363
+ }
364
+ }
365
+ export class RuntimeException extends StandardException {
366
+ }
367
+ export class IOException extends RuntimeException {
368
+ }
369
+ export class HttpRequestIOException extends IOException {
370
+ response;
371
+ request;
372
+ requestParams;
373
+ responseParams;
374
+ businessCode;
375
+ constructor(exceptionOrMsg) {
376
+ super(exceptionOrMsg);
377
+ const requestError = exceptionOrMsg;
378
+ if (this.throwingError && ['StatusCodeError', 'RequestError', 'TransformError'].includes(requestError.name ?? '')) {
379
+ this.details = exceptionOrMsg;
380
+ const { response } = requestError;
381
+ this.response = response || null;
382
+ this.request = response ? response.request : null;
383
+ }
384
+ this.requestParams = null;
385
+ this.responseParams = null;
386
+ this.businessCode = null;
387
+ }
388
+ getRequest() {
389
+ return this.request;
390
+ }
391
+ getResponse() {
392
+ return this.response;
393
+ }
394
+ setRequestParams(params) {
395
+ this.requestParams = params;
396
+ return this;
397
+ }
398
+ getRequestParams() {
399
+ return this.requestParams;
400
+ }
401
+ setResponseParams(params) {
402
+ this.responseParams = params;
403
+ return this;
404
+ }
405
+ getResponseParams() {
406
+ return this.responseParams;
407
+ }
408
+ setBusinessCode(code) {
409
+ this.businessCode = code;
410
+ return this;
411
+ }
412
+ getBusinessCode() {
413
+ return this.businessCode;
414
+ }
415
+ }
416
+ export class RestServiceIOException extends HttpRequestIOException {
417
+ constructor(exceptionOrMsg) {
418
+ super(exceptionOrMsg);
419
+ if (this.throwingError && this.response && this.response.body) {
420
+ this.prevError = factory(this.response.body);
421
+ }
422
+ }
423
+ }
424
+ export class DatabaseIOException extends IOException {
425
+ }
426
+ const exceptions = {
427
+ StandardException,
428
+ LogicException,
429
+ InvalidArgumentException,
430
+ FormInvalidateException,
431
+ ModelInvalidateException,
432
+ HttpRequestLogicException,
433
+ RestServiceLogicException,
434
+ UnauthorizedException,
435
+ OperationUnsupportedException,
436
+ OperationNotPermittedException,
437
+ ResourceNotFoundException,
438
+ ResourceConflictedException,
439
+ RuntimeException,
440
+ IOException,
441
+ HttpRequestIOException,
442
+ RestServiceIOException,
443
+ DatabaseIOException
444
+ };
445
+ factory = (json) => {
446
+ const { code, name, statusCode, message, prevError, errors, fullStack = [] } = json;
447
+ if (!code || !name || !statusCode || !message) {
448
+ return {};
449
+ }
450
+ let e;
451
+ if (Object.keys(exceptions).includes(name)) {
452
+ e = new exceptions[name]();
453
+ }
454
+ else if (statusCode < 500) {
455
+ e = new LogicException(message);
456
+ }
457
+ else {
458
+ e = new RuntimeException(message);
459
+ }
460
+ e.setCode(code)
461
+ .setDetails(errors)
462
+ .setPrevError(prevError);
463
+ e.stack = fullStack.join('\n');
464
+ return e;
465
+ };
466
+ //# 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,41 @@
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
+ sequelize: typeof sequelize;
26
+ };
27
+ exceptions: typeof exceptions;
28
+ middlewares: typeof middlewares;
29
+ sequelize: typeof sequelize;
30
+ Joi: Joi.Root;
31
+ swagger: typeof swagger;
32
+ services: typeof services;
33
+ providers: {
34
+ services: typeof ServiceProviders;
35
+ middlewares: typeof MiddlewareProviders;
36
+ };
37
+ wrapper: (fn: engine.express.RequestHandler) => engine.express.RequestHandler;
38
+ utils: typeof utils;
39
+ };
40
+ export default core;
41
+ export { core };
package/dist/index.js ADDED
@@ -0,0 +1,43 @@
1
+ import sequelize from 'sequelize';
2
+ import Joi from 'joi';
3
+ import EvaEngine, * as engine from "./engine.js";
4
+ import * as swagger from "./swagger/index.js";
5
+ import * as exceptions from "./exceptions/index.js";
6
+ import * as services from "./services/index.js";
7
+ import * as middlewares from "./middlewares/index.js";
8
+ import * as ServiceProviders from "./services/providers.js";
9
+ import * as MiddlewareProviders from "./middlewares/providers.js";
10
+ import * as utils from "./utils/index.js";
11
+ import Command, * as commands from "./commands/index.js";
12
+ import Entities from "./entities/index.js";
13
+ const providers = {
14
+ services: ServiceProviders,
15
+ middlewares: MiddlewareProviders
16
+ };
17
+ const { wrapper } = utils;
18
+ const { DI, express } = engine;
19
+ const core = {
20
+ EvaEngine,
21
+ Command,
22
+ DI,
23
+ Entities,
24
+ engine,
25
+ express,
26
+ commands,
27
+ dependencies: {
28
+ Joi,
29
+ sequelize
30
+ },
31
+ exceptions,
32
+ middlewares,
33
+ sequelize,
34
+ Joi,
35
+ swagger,
36
+ services,
37
+ providers,
38
+ wrapper,
39
+ utils
40
+ };
41
+ export default core;
42
+ export { core };
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,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 { Dependencies } from "../di.js";
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
+ 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":"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"}
@@ -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