node-pluginsmanager-plugin 4.8.8 → 5.0.2
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/lib/cjs/checkers/RangeError/checkArrayLength.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkArrayLength.js +26 -0
- package/lib/cjs/checkers/RangeError/checkArrayLengthBetween.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkArrayLengthBetween.js +33 -0
- package/lib/cjs/checkers/RangeError/checkIntegerBetween.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkIntegerBetween.js +32 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyArray.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyArray.js +22 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyInteger.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyInteger.js +22 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyNumber.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyNumber.js +22 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyObject.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyObject.js +22 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyString.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkNonEmptyString.js +22 -0
- package/lib/cjs/checkers/RangeError/checkNumberBetween.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkNumberBetween.js +32 -0
- package/lib/cjs/checkers/RangeError/checkObjectLength.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkObjectLength.js +31 -0
- package/lib/cjs/checkers/RangeError/checkObjectLengthBetween.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkObjectLengthBetween.js +36 -0
- package/lib/cjs/checkers/RangeError/checkStringLength.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkStringLength.js +26 -0
- package/lib/cjs/checkers/RangeError/checkStringLengthBetween.d.ts +2 -0
- package/lib/cjs/checkers/RangeError/checkStringLengthBetween.js +33 -0
- package/lib/cjs/checkers/ReferenceError/checkExists.d.ts +2 -0
- package/lib/cjs/checkers/ReferenceError/checkExists.js +19 -0
- package/lib/cjs/checkers/TypeError/checkArray.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkArray.js +22 -0
- package/lib/cjs/checkers/TypeError/checkBoolean.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkBoolean.js +22 -0
- package/lib/cjs/checkers/TypeError/checkFunction.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkFunction.js +22 -0
- package/lib/cjs/checkers/TypeError/checkInteger.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkInteger.js +22 -0
- package/lib/cjs/checkers/TypeError/checkNumber.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkNumber.js +22 -0
- package/lib/cjs/checkers/TypeError/checkObject.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkObject.js +22 -0
- package/lib/cjs/checkers/TypeError/checkString.d.ts +2 -0
- package/lib/cjs/checkers/TypeError/checkString.js +22 -0
- package/lib/cjs/components/DescriptorUser.d.ts +27 -0
- package/lib/cjs/components/DescriptorUser.js +120 -0
- package/lib/cjs/components/Mediator.d.ts +20 -0
- package/lib/cjs/components/Mediator.js +145 -0
- package/lib/cjs/components/MediatorUser.d.ts +12 -0
- package/lib/cjs/components/MediatorUser.js +40 -0
- package/lib/cjs/components/NotFoundError.d.ts +2 -0
- package/lib/cjs/components/NotFoundError.js +7 -0
- package/lib/cjs/components/Orchestrator.d.ts +55 -0
- package/lib/cjs/components/Orchestrator.js +386 -0
- package/lib/cjs/components/Server.d.ts +55 -0
- package/lib/cjs/components/Server.js +535 -0
- package/lib/cjs/main.cjs +90 -0
- package/lib/cjs/main.d.cts +30 -0
- package/lib/cjs/utils/cleanSendedError.d.ts +1 -0
- package/lib/cjs/utils/cleanSendedError.js +43 -0
- package/lib/cjs/utils/descriptor/extractParams.d.ts +3 -0
- package/lib/cjs/utils/descriptor/extractParams.js +21 -0
- package/lib/cjs/utils/descriptor/extractPathMethodByOperationId.d.ts +8 -0
- package/lib/cjs/utils/descriptor/extractPathMethodByOperationId.js +34 -0
- package/lib/cjs/utils/descriptor/extractPattern.d.ts +2 -0
- package/lib/cjs/utils/descriptor/extractPattern.js +28 -0
- package/lib/cjs/utils/descriptor/extractSchemaType.d.ts +4 -0
- package/lib/cjs/utils/descriptor/extractSchemaType.js +18 -0
- package/lib/cjs/utils/file/checkFile.d.ts +1 -0
- package/lib/cjs/utils/file/checkFile.js +17 -0
- package/lib/cjs/utils/file/isFile.d.ts +1 -0
- package/lib/cjs/utils/file/isFile.js +19 -0
- package/lib/cjs/utils/file/readJSONFile.d.ts +1 -0
- package/lib/cjs/utils/file/readJSONFile.js +24 -0
- package/lib/cjs/utils/getUniqueID.d.ts +1 -0
- package/lib/cjs/utils/getUniqueID.js +16 -0
- package/lib/cjs/utils/removeFirstSlash.d.ts +1 -0
- package/lib/cjs/utils/removeFirstSlash.js +8 -0
- package/lib/cjs/utils/request/extractBody.d.ts +7 -0
- package/lib/cjs/utils/request/extractBody.js +52 -0
- package/lib/cjs/utils/request/extractCookies.d.ts +4 -0
- package/lib/cjs/utils/request/extractCookies.js +53 -0
- package/lib/cjs/utils/request/extractIp.d.ts +1 -0
- package/lib/cjs/utils/request/extractIp.js +40 -0
- package/lib/cjs/utils/send.d.ts +2 -0
- package/lib/cjs/utils/send.js +57 -0
- package/lib/cjs/utils/serverCodes.d.ts +14 -0
- package/lib/cjs/utils/serverCodes.js +15 -0
- package/package.json +32 -13
- package/lib/checkers/RangeError/checkArrayLength.js +0 -74
- package/lib/checkers/RangeError/checkArrayLengthBetween.js +0 -97
- package/lib/checkers/RangeError/checkIntegerBetween.js +0 -96
- package/lib/checkers/RangeError/checkNonEmptyArray.js +0 -61
- package/lib/checkers/RangeError/checkNonEmptyInteger.js +0 -61
- package/lib/checkers/RangeError/checkNonEmptyNumber.js +0 -61
- package/lib/checkers/RangeError/checkNonEmptyObject.js +0 -61
- package/lib/checkers/RangeError/checkNonEmptyString.js +0 -61
- package/lib/checkers/RangeError/checkNumberBetween.js +0 -96
- package/lib/checkers/RangeError/checkObjectLength.js +0 -78
- package/lib/checkers/RangeError/checkObjectLengthBetween.js +0 -101
- package/lib/checkers/RangeError/checkStringLength.js +0 -70
- package/lib/checkers/RangeError/checkStringLengthBetween.js +0 -97
- package/lib/checkers/ReferenceError/checkExists.js +0 -49
- package/lib/checkers/TypeError/checkArray.js +0 -61
- package/lib/checkers/TypeError/checkBoolean.js +0 -61
- package/lib/checkers/TypeError/checkFunction.js +0 -61
- package/lib/checkers/TypeError/checkInteger.js +0 -61
- package/lib/checkers/TypeError/checkNumber.js +0 -61
- package/lib/checkers/TypeError/checkObject.js +0 -61
- package/lib/checkers/TypeError/checkString.js +0 -61
- package/lib/checkers/main.js +0 -76
- package/lib/components/DescriptorUser.js +0 -179
- package/lib/components/Mediator.js +0 -220
- package/lib/components/MediatorUser.js +0 -63
- package/lib/components/NotFoundError.js +0 -5
- package/lib/components/Orchestrator.js +0 -634
- package/lib/components/Server.js +0 -777
- package/lib/components/main.js +0 -25
- package/lib/index.d.ts +0 -279
- package/lib/main.js +0 -17
- package/lib/utils/cleanSendedError.js +0 -47
- package/lib/utils/descriptor/extractParams.js +0 -29
- package/lib/utils/descriptor/extractPathMethodByOperationId.js +0 -47
- package/lib/utils/descriptor/extractPattern.js +0 -38
- package/lib/utils/descriptor/extractSchemaType.js +0 -24
- package/lib/utils/descriptor/main.js +0 -21
- package/lib/utils/file/checkFile.js +0 -22
- package/lib/utils/file/isFile.js +0 -29
- package/lib/utils/file/main.js +0 -19
- package/lib/utils/file/readJSONFile.js +0 -30
- package/lib/utils/getUniqueID.js +0 -20
- package/lib/utils/removeFirstSlash.js +0 -7
- package/lib/utils/request/extractBody.js +0 -79
- package/lib/utils/request/extractCookies.js +0 -68
- package/lib/utils/request/extractIp.js +0 -47
- package/lib/utils/request/main.js +0 -19
- package/lib/utils/send.js +0 -75
- package/lib/utils/serverCodes.json +0 -17
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
// deps
|
|
4
|
-
|
|
5
|
-
// natives
|
|
6
|
-
const { join } = require("path");
|
|
7
|
-
|
|
8
|
-
// externals
|
|
9
|
-
const { OpenApiValidator, ValidationError } = require("express-openapi-validate");
|
|
10
|
-
|
|
11
|
-
// locals
|
|
12
|
-
const {
|
|
13
|
-
checkNonEmptyString,
|
|
14
|
-
checkObject,
|
|
15
|
-
checkNonEmptyObject
|
|
16
|
-
} = require(join(__dirname, "..", "checkers", "main.js"));
|
|
17
|
-
const { extractPathMethodByOperationId } = require(join(__dirname, "..", "utils", "descriptor", "main.js"));
|
|
18
|
-
const DescriptorUser = require(join(__dirname, "DescriptorUser.js"));
|
|
19
|
-
|
|
20
|
-
// module
|
|
21
|
-
|
|
22
|
-
module.exports = class Mediator extends DescriptorUser {
|
|
23
|
-
|
|
24
|
-
constructor (options) {
|
|
25
|
-
|
|
26
|
-
super(options);
|
|
27
|
-
|
|
28
|
-
this._validator = null;
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// public
|
|
33
|
-
|
|
34
|
-
checkParameters (operationId, urlParams, bodyParams) {
|
|
35
|
-
|
|
36
|
-
// parameters validation
|
|
37
|
-
return this.checkDescriptor().then(() => {
|
|
38
|
-
return checkNonEmptyString("operationId", operationId);
|
|
39
|
-
}).then(() => {
|
|
40
|
-
|
|
41
|
-
return checkNonEmptyObject("urlParams", urlParams).then(() => {
|
|
42
|
-
return checkObject("urlParams.path", urlParams.path);
|
|
43
|
-
}).then(() => {
|
|
44
|
-
return checkObject("urlParams.query", urlParams.query);
|
|
45
|
-
}).then(() => {
|
|
46
|
-
return checkObject("urlParams.headers", urlParams.headers);
|
|
47
|
-
}).then(() => {
|
|
48
|
-
return checkObject("urlParams.cookies", urlParams.cookies);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
}).then(() => {
|
|
52
|
-
return checkObject("bodyParams", bodyParams);
|
|
53
|
-
}).then(() => {
|
|
54
|
-
|
|
55
|
-
// search wanted operation
|
|
56
|
-
const foundPathMethod = extractPathMethodByOperationId(this._Descriptor.paths, operationId);
|
|
57
|
-
|
|
58
|
-
return !foundPathMethod ? Promise.reject(
|
|
59
|
-
new ReferenceError("Unknown operationId \"" + operationId + "\"")
|
|
60
|
-
) : new Promise((resolve, reject) => {
|
|
61
|
-
|
|
62
|
-
const req = {
|
|
63
|
-
"path": foundPathMethod.path,
|
|
64
|
-
"method": foundPathMethod.method,
|
|
65
|
-
"params": urlParams.path,
|
|
66
|
-
"query": urlParams.query,
|
|
67
|
-
"headers": urlParams.headers,
|
|
68
|
-
"cookies": urlParams.cookies,
|
|
69
|
-
"body": bodyParams
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
const validateRequest = this._validator.validate(req.method, req.path);
|
|
73
|
-
|
|
74
|
-
validateRequest(req, null, (err) => {
|
|
75
|
-
return err ? reject(err) : resolve();
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
}).catch((err) => {
|
|
79
|
-
|
|
80
|
-
return err instanceof ValidationError ? Promise.resolve().then(() => {
|
|
81
|
-
|
|
82
|
-
switch (err.data[0].keyword) { // extract first Error
|
|
83
|
-
|
|
84
|
-
case "required":
|
|
85
|
-
return Promise.reject(new ReferenceError(err.message));
|
|
86
|
-
|
|
87
|
-
case "type":
|
|
88
|
-
return Promise.reject(new TypeError(err.message));
|
|
89
|
-
|
|
90
|
-
case "minimum":
|
|
91
|
-
case "maximum":
|
|
92
|
-
case "minLength":
|
|
93
|
-
case "maxLength":
|
|
94
|
-
case "minItems":
|
|
95
|
-
case "maxItems":
|
|
96
|
-
case "enum":
|
|
97
|
-
return Promise.reject(new RangeError(err.message));
|
|
98
|
-
|
|
99
|
-
default:
|
|
100
|
-
return Promise.reject(new Error(err.message));
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
}) : Promise.reject(err);
|
|
105
|
-
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
checkResponse (operationId, res) {
|
|
113
|
-
|
|
114
|
-
// parameters validation
|
|
115
|
-
return this.checkDescriptor().then(() => {
|
|
116
|
-
return checkNonEmptyString("operationId", operationId);
|
|
117
|
-
}).then(() => {
|
|
118
|
-
|
|
119
|
-
// search wanted operation
|
|
120
|
-
const foundPathMethod = extractPathMethodByOperationId(this._Descriptor.paths, operationId);
|
|
121
|
-
|
|
122
|
-
return !foundPathMethod ? Promise.reject(
|
|
123
|
-
new ReferenceError("Unknown operationId \"" + operationId + "\"")
|
|
124
|
-
) : new Promise((resolve, reject) => {
|
|
125
|
-
|
|
126
|
-
// no content, no validation
|
|
127
|
-
if (204 === res.statusCode) {
|
|
128
|
-
|
|
129
|
-
return "undefined" !== typeof res.body ? reject(
|
|
130
|
-
new ReferenceError("You should not have content data with 204 statusCode")
|
|
131
|
-
) : resolve();
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// no content, no validation (put requests)
|
|
136
|
-
else if (201 === res.statusCode && "undefined" === typeof res.body) {
|
|
137
|
-
return resolve();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
// validator cannot correctly check pure boolean return
|
|
141
|
-
else if ("undefined" !== typeof res.body && [ "true", "false" ].includes(res.body)) {
|
|
142
|
-
return resolve();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
else {
|
|
146
|
-
|
|
147
|
-
const validateResponse = this._validator.validateResponse(foundPathMethod.method, foundPathMethod.path);
|
|
148
|
-
|
|
149
|
-
try {
|
|
150
|
-
|
|
151
|
-
res.headers = res.getHeaders();
|
|
152
|
-
|
|
153
|
-
if ("undefined" === typeof res.body) {
|
|
154
|
-
res.body = null;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
res.body = "string" === typeof res.body ? JSON.parse(res.body) : res.body;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
validateResponse(res);
|
|
161
|
-
|
|
162
|
-
return resolve();
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
catch (e) {
|
|
166
|
-
|
|
167
|
-
return reject(new Error(
|
|
168
|
-
"[" + foundPathMethod.method + "]" +
|
|
169
|
-
foundPathMethod.path +
|
|
170
|
-
" (" + foundPathMethod.operationId + ") => " +
|
|
171
|
-
res.statusCode +
|
|
172
|
-
"\r\n" +
|
|
173
|
-
(e.message ? e.message : e)
|
|
174
|
-
));
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// init / release
|
|
187
|
-
|
|
188
|
-
init (...data) {
|
|
189
|
-
|
|
190
|
-
return this._initWorkSpace(...data).then(() => {
|
|
191
|
-
|
|
192
|
-
this._validator = new OpenApiValidator(this._Descriptor);
|
|
193
|
-
|
|
194
|
-
this.initialized = true;
|
|
195
|
-
this.emit("initialized", ...data);
|
|
196
|
-
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
release (...data) {
|
|
202
|
-
|
|
203
|
-
return this._releaseWorkSpace(...data).then(() => {
|
|
204
|
-
|
|
205
|
-
// can only be released by Orchestrator
|
|
206
|
-
this._Descriptor = null;
|
|
207
|
-
this._validator = null;
|
|
208
|
-
|
|
209
|
-
this.initialized = false;
|
|
210
|
-
this.emit("released", ...data);
|
|
211
|
-
|
|
212
|
-
}).then(() => {
|
|
213
|
-
|
|
214
|
-
this.removeAllListeners();
|
|
215
|
-
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
// deps
|
|
4
|
-
|
|
5
|
-
// natives
|
|
6
|
-
const { join } = require("path");
|
|
7
|
-
|
|
8
|
-
// locals
|
|
9
|
-
const DescriptorUser = require(join(__dirname, "DescriptorUser.js"));
|
|
10
|
-
const Mediator = require(join(__dirname, "Mediator.js"));
|
|
11
|
-
|
|
12
|
-
// module
|
|
13
|
-
|
|
14
|
-
module.exports = class MediatorUser extends DescriptorUser {
|
|
15
|
-
|
|
16
|
-
constructor (options) {
|
|
17
|
-
|
|
18
|
-
super(options);
|
|
19
|
-
|
|
20
|
-
this._Mediator = options && "undefined" !== typeof options.mediator ?
|
|
21
|
-
options.mediator : null;
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// protected
|
|
26
|
-
|
|
27
|
-
_initWorkSpace () {
|
|
28
|
-
|
|
29
|
-
return Promise.resolve();
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
_releaseWorkSpace () {
|
|
34
|
-
|
|
35
|
-
return Promise.resolve();
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// public
|
|
40
|
-
|
|
41
|
-
checkMediator () {
|
|
42
|
-
|
|
43
|
-
if ("undefined" === typeof this._Mediator || null === this._Mediator) {
|
|
44
|
-
|
|
45
|
-
return Promise.reject(new ReferenceError("Mediator not registered"));
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
else if ("object" !== typeof this._Mediator || !(this._Mediator instanceof Mediator)) {
|
|
49
|
-
|
|
50
|
-
return Promise.reject(new TypeError(
|
|
51
|
-
"The plugin has an invalid Mediator which is not an instance (or a child) of the official Mediator class"
|
|
52
|
-
));
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
|
|
57
|
-
return Promise.resolve();
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
};
|