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.
- package/README.md +15 -7
- package/bin/engine +2 -31
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +32 -0
- package/dist/bin.js.map +1 -0
- package/{src/commands/index.js → dist/commands/index.d.ts} +1 -8
- package/dist/commands/index.js +6 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/interface.d.ts +18 -0
- package/dist/commands/interface.js +40 -0
- package/dist/commands/interface.js.map +1 -0
- package/dist/commands/make_entity.d.ts +47 -0
- package/dist/commands/make_entity.js +410 -0
- package/dist/commands/make_entity.js.map +1 -0
- package/dist/commands/tramp.d.ts +7 -0
- package/dist/commands/tramp.js +29 -0
- package/dist/commands/tramp.js.map +1 -0
- package/dist/config/index.d.ts +92 -0
- package/dist/config/index.js +96 -0
- package/dist/config/index.js.map +1 -0
- package/dist/di.d.ts +131 -0
- package/dist/di.js +197 -0
- package/dist/di.js.map +1 -0
- package/dist/engine.d.ts +85 -0
- package/dist/engine.js +404 -0
- package/dist/engine.js.map +1 -0
- package/dist/entities/index.d.ts +54 -0
- package/dist/entities/index.js +228 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/exceptions/index.d.ts +153 -0
- package/dist/exceptions/index.js +466 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares/auth.d.ts +5 -0
- package/dist/middlewares/auth.js +63 -0
- package/dist/middlewares/auth.js.map +1 -0
- package/dist/middlewares/auth_kong.d.ts +2 -0
- package/dist/middlewares/auth_kong.js +24 -0
- package/dist/middlewares/auth_kong.js.map +1 -0
- package/dist/middlewares/debug.d.ts +3 -0
- package/dist/middlewares/debug.js +50 -0
- package/dist/middlewares/debug.js.map +1 -0
- package/{src/middlewares/index.js → dist/middlewares/index.d.ts} +1 -11
- package/dist/middlewares/index.js +9 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/providers.d.ts +25 -0
- package/dist/middlewares/providers.js +63 -0
- package/dist/middlewares/providers.js.map +1 -0
- package/dist/middlewares/session.d.ts +5 -0
- package/dist/middlewares/session.js +46 -0
- package/dist/middlewares/session.js.map +1 -0
- package/dist/middlewares/trace.d.ts +52 -0
- package/dist/middlewares/trace.js +225 -0
- package/dist/middlewares/trace.js.map +1 -0
- package/dist/middlewares/validator.d.ts +10 -0
- package/dist/middlewares/validator.js +43 -0
- package/dist/middlewares/validator.js.map +1 -0
- package/dist/middlewares/view_cache.d.ts +14 -0
- package/dist/middlewares/view_cache.js +102 -0
- package/dist/middlewares/view_cache.js.map +1 -0
- package/dist/services/cache.d.ts +68 -0
- package/dist/services/cache.js +206 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/config.d.ts +17 -0
- package/dist/services/config.js +67 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/env.d.ts +12 -0
- package/dist/services/env.js +24 -0
- package/dist/services/env.js.map +1 -0
- package/dist/services/event_manager.d.ts +30 -0
- package/dist/services/event_manager.js +74 -0
- package/dist/services/event_manager.js.map +1 -0
- package/dist/services/http_client.d.ts +67 -0
- package/dist/services/http_client.js +61 -0
- package/dist/services/http_client.js.map +1 -0
- package/{src/services/index.js → dist/services/index.d.ts} +1 -15
- package/dist/services/index.js +14 -0
- package/dist/services/index.js.map +1 -0
- package/{src/services/interface.js → dist/services/interface.d.ts} +1 -3
- package/dist/services/interface.js +6 -0
- package/dist/services/interface.js.map +1 -0
- package/{src/services/joi.js → dist/services/joi.d.ts} +2 -9
- package/dist/services/joi.js +11 -0
- package/dist/services/joi.js.map +1 -0
- package/dist/services/jwt_token.d.ts +25 -0
- package/dist/services/jwt_token.js +76 -0
- package/dist/services/jwt_token.js.map +1 -0
- package/dist/services/jwt_token_kong.d.ts +26 -0
- package/dist/services/jwt_token_kong.js +64 -0
- package/dist/services/jwt_token_kong.js.map +1 -0
- package/dist/services/logger.d.ts +31 -0
- package/dist/services/logger.js +125 -0
- package/dist/services/logger.js.map +1 -0
- package/dist/services/namespace.d.ts +62 -0
- package/dist/services/namespace.js +171 -0
- package/dist/services/namespace.js.map +1 -0
- package/dist/services/now.d.ts +15 -0
- package/dist/services/now.js +42 -0
- package/dist/services/now.js.map +1 -0
- package/dist/services/providers.d.ts +55 -0
- package/dist/services/providers.js +134 -0
- package/dist/services/providers.js.map +1 -0
- package/dist/services/redis.d.ts +19 -0
- package/dist/services/redis.js +52 -0
- package/dist/services/redis.js.map +1 -0
- package/dist/services/rest_client.d.ts +49 -0
- package/dist/services/rest_client.js +95 -0
- package/dist/services/rest_client.js.map +1 -0
- package/dist/swagger/index.d.ts +223 -0
- package/dist/swagger/index.js +564 -0
- package/dist/swagger/index.js.map +1 -0
- package/dist/types/express.d.ts +14 -0
- package/dist/types/vendor.d.ts +30 -0
- package/dist/utils/api_scaffold.d.ts +74 -0
- package/dist/utils/api_scaffold.js +220 -0
- package/dist/utils/api_scaffold.js.map +1 -0
- package/dist/utils/case_converter.d.ts +7 -0
- package/dist/utils/case_converter.js +29 -0
- package/dist/utils/case_converter.js.map +1 -0
- package/dist/utils/crc32.d.ts +2 -0
- package/dist/utils/crc32.js +43 -0
- package/dist/utils/crc32.js.map +1 -0
- package/dist/utils/cron.d.ts +27 -0
- package/dist/utils/cron.js +186 -0
- package/dist/utils/cron.js.map +1 -0
- package/dist/utils/datetime.d.ts +4 -0
- package/dist/utils/datetime.js +6 -0
- package/dist/utils/datetime.js.map +1 -0
- package/dist/utils/host.d.ts +18 -0
- package/dist/utils/host.js +33 -0
- package/dist/utils/host.js.map +1 -0
- package/{src/utils/index.js → dist/utils/index.d.ts} +2 -26
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/jwt.d.ts +16 -0
- package/dist/utils/jwt.js +93 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/pagination.d.ts +150 -0
- package/dist/utils/pagination.js +242 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/random.d.ts +3 -0
- package/dist/utils/random.js +18 -0
- package/dist/utils/random.js.map +1 -0
- package/dist/utils/request_client.d.ts +33 -0
- package/dist/utils/request_client.js +153 -0
- package/dist/utils/request_client.js.map +1 -0
- package/dist/utils/smart_query.d.ts +144 -0
- package/dist/utils/smart_query.js +310 -0
- package/dist/utils/smart_query.js.map +1 -0
- package/dist/utils/test.d.ts +14 -0
- package/dist/utils/test.js +37 -0
- package/dist/utils/test.js.map +1 -0
- package/dist/utils/wrapper.d.ts +3 -0
- package/dist/utils/wrapper.js +5 -0
- package/dist/utils/wrapper.js.map +1 -0
- package/package.json +22 -15
- package/index.js +0 -2
- package/src/commands/interface.js +0 -45
- package/src/commands/make_entity.js +0 -490
- package/src/commands/tramp.js +0 -34
- package/src/config/index.js +0 -95
- package/src/di.js +0 -96
- package/src/engine.js +0 -556
- package/src/entities/index.js +0 -272
- package/src/exceptions/index.js +0 -501
- package/src/index.js +0 -55
- package/src/middlewares/auth.js +0 -67
- package/src/middlewares/auth_kong.js +0 -28
- package/src/middlewares/debug.js +0 -88
- package/src/middlewares/providers.js +0 -73
- package/src/middlewares/session.js +0 -63
- package/src/middlewares/trace.js +0 -254
- package/src/middlewares/validator.js +0 -50
- package/src/middlewares/view_cache.js +0 -127
- package/src/services/cache.js +0 -223
- package/src/services/config.js +0 -115
- package/src/services/env.js +0 -28
- package/src/services/event_manager.js +0 -84
- package/src/services/http_client.js +0 -69
- package/src/services/jwt_token.js +0 -89
- package/src/services/jwt_token_kong.js +0 -75
- package/src/services/logger.js +0 -150
- package/src/services/namespace.js +0 -176
- package/src/services/now.js +0 -49
- package/src/services/providers.js +0 -158
- package/src/services/redis.js +0 -63
- package/src/services/rest_client.js +0 -112
- package/src/swagger/index.js +0 -665
- package/src/utils/api_scaffold.js +0 -240
- package/src/utils/case_converter.js +0 -33
- package/src/utils/crc32.js +0 -44
- package/src/utils/cron.js +0 -208
- package/src/utils/datetime.js +0 -13
- package/src/utils/host.js +0 -39
- package/src/utils/pagination.js +0 -260
- package/src/utils/random.js +0 -23
- package/src/utils/request_client.js +0 -179
- package/src/utils/smart_query.js +0 -352
- package/src/utils/test.js +0 -48
- 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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,MAAM,mBAAmB,CAAC;AAGtC;;;;;;GAMG;AACH,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,SAAS,WAAW;IAClB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,SAAS,CAAC;YACR,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBAC/C,WAAW,GAAG,GAAG,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,WAAW,GAAG,GAAG,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAWD;;GAEG;AACH,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE;QAC/C,KAAK,EAAE,SAAS,MAAM;YACpB,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,OAAO,CAAc,GAAW;gBAChF,GAAG,CAAC,GAAG,CAAC,GAAI,IAA2C,CAAC,GAAG,CAAC,CAAC;YAC/D,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO,GAAG,CAAC;QACb,CAAC;QACD,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC;AAGD,IAAI,WAAW,GAAmC,MAAM,CAAC;AAEzD,IAAI,OAAO,GAAqB,GAAG,EAAE,CAAC,SAAS,CAAC;AAsBhD;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,MAAM,GAAG,YAAY;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,SAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ;QACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxG,OAAO,QAAQ,CAAC,GAAG,KAAK,MAAM,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAa;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAuC;QAC3D,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAgC,EAAE;QAC/C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,GAAG,CAAC;IACb,CAAC;IAED,YAAY,CAAS;IACrB,aAAa,CAAU;IACvB,OAAO,CAAU;IACjB,SAAS,CAAU;IACnB,IAAI,CAAgB;IACpB,QAAQ,CAAS;IACjB,UAAU,CAAU;IACpB,UAAU,CAAS;IAEnB;;;;;;OAMG;IACH,YAAY,cAA+B;QACzC,MAAM,eAAe,GAAG,CAAC,cAAc,CAAC;QACxC,MAAM,cAAc,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC;QAC1D,MAAM,YAAY,GAAG,cAAc,YAAY,iBAAiB,CAAC;QACjE,MAAM,aAAa,GAAG,cAAc,YAAY,KAAK,CAAC;QACtD,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE9H,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,cAAc,CAAC;QACvB,CAAC;QAED,IAAI,OAAO,GAAG,iBAAiB,CAAC;QAChC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,GAAG,cAAc,CAAC;QAC3B,CAAC;QACD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAqB;QAC3B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,UAA2B;QACvC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,YAAY,CAAC,SAAkB;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,MAAM;QACJ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;YAC5B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAe,CAAC;YAC9D,SAAS,EAAG,IAAI,CAAC,KAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;SAC9C,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IACnD,IAAa,UAAU;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,cAAc;CAC3D;AAED,MAAM,OAAO,uBAAwB,SAAQ,wBAAwB;IACnE,YAAY,cAA+B;QACzC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,cAAiC,CAAC;QACnD,IAAI,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAEhC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,wBAAwB;IACpE,YAAY,cAA+B;QACzC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAI,cAA+C,CAAC,MAAM,CAAC;QACzE,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IACrE,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,aAAa,CAAU;IACvB,cAAc,CAAU;IACxB,YAAY,CAAU;IAEtB;;;OAGG;IACH,YAAY,cAA+B;QACzC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,cAAkC,CAAC;QACxD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAClH,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;YAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,QAAiB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,OAAO,GAAI,QAAyC,CAAC,CAAC,CAAE,QAAkC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,gBAAgB,CAAC,MAAe;QAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,MAAe;QAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,IAAa;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,yBAAyB;IACtE,YAAY,cAA+B;QACzC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,QAA+B,CAAC,IAAI,EAAE,CAAC;YACtF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAE,IAAI,CAAC,QAA8C,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD,IAAa,UAAU;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,cAAc;IAChE,IAAa,UAAU;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,cAAc;IAC3D,IAAa,UAAU;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,cAAc;IAC/D,IAAa,UAAU;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,cAAc;IAC7D,IAAa,UAAU;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,iBAAiB;CACtD;AAED,MAAM,OAAO,WAAY,SAAQ,gBAAgB;CAChD;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,aAAa,CAAU;IACvB,cAAc,CAAU;IACxB,YAAY,CAAU;IAEtB,YAAY,cAA+B;QACzC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,cAAkC,CAAC;QACxD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAClH,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;YAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,gBAAgB,CAAC,MAAe;QAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,MAAe;QAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,IAAa;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,sBAAsB;IAChE,YAAY,cAA+B;QACzC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,QAA+B,CAAC,IAAI,EAAE,CAAC;YACtF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAE,IAAI,CAAC,QAA8C,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;CACnD;AAED,MAAM,UAAU,GAA+E;IAC7F,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,yBAAyB;IACzB,qBAAqB;IACrB,6BAA6B;IAC7B,8BAA8B;IAC9B,yBAAyB;IACzB,2BAA2B;IAC3B,gBAAgB;IAChB,WAAW;IACX,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;CACpB,CAAC;AAEF,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE;IACjB,MAAM,EACJ,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,EACnE,GAAG,IAA2B,CAAC;IAChC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAoB,CAAC;IACzB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QAC5B,CAAC,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;SACZ,UAAU,CAAC,MAAM,CAAC;SAClB,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -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,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
|