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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { checkExists, checkExistsSync } from "./checkers/ReferenceError/checkExists";
|
|
2
|
+
import { checkBoolean, checkBooleanSync } from "./checkers/TypeError/checkBoolean";
|
|
3
|
+
import { checkFunction, checkFunctionSync } from "./checkers/TypeError/checkFunction";
|
|
4
|
+
import { checkNumber, checkNumberSync } from "./checkers/TypeError/checkNumber";
|
|
5
|
+
import { checkObject, checkObjectSync } from "./checkers/TypeError/checkObject";
|
|
6
|
+
import { checkString, checkStringSync } from "./checkers/TypeError/checkString";
|
|
7
|
+
import { checkArray, checkArraySync } from "./checkers/TypeError/checkArray";
|
|
8
|
+
import { checkInteger, checkIntegerSync } from "./checkers/TypeError/checkInteger";
|
|
9
|
+
import { checkNonEmptyArray, checkNonEmptyArraySync } from "./checkers/RangeError/checkNonEmptyArray";
|
|
10
|
+
import { checkNonEmptyInteger, checkNonEmptyIntegerSync } from "./checkers/RangeError/checkNonEmptyInteger";
|
|
11
|
+
import { checkNonEmptyNumber, checkNonEmptyNumberSync } from "./checkers/RangeError/checkNonEmptyNumber";
|
|
12
|
+
import { checkNonEmptyObject, checkNonEmptyObjectSync } from "./checkers/RangeError/checkNonEmptyObject";
|
|
13
|
+
import { checkNonEmptyString, checkNonEmptyStringSync } from "./checkers/RangeError/checkNonEmptyString";
|
|
14
|
+
import { checkNumberBetween, checkNumberBetweenSync } from "./checkers/RangeError/checkNumberBetween";
|
|
15
|
+
import { checkObjectLength, checkObjectLengthSync } from "./checkers/RangeError/checkObjectLength";
|
|
16
|
+
import { checkObjectLengthBetween, checkObjectLengthBetweenSync } from "./checkers/RangeError/checkObjectLengthBetween";
|
|
17
|
+
import { checkStringLength, checkStringLengthSync } from "./checkers/RangeError/checkStringLength";
|
|
18
|
+
import { checkStringLengthBetween, checkStringLengthBetweenSync } from "./checkers/RangeError/checkStringLengthBetween";
|
|
19
|
+
import { checkIntegerBetween, checkIntegerBetweenSync } from "./checkers/RangeError/checkIntegerBetween";
|
|
20
|
+
import { checkArrayLength, checkArrayLengthSync } from "./checkers/RangeError/checkArrayLength";
|
|
21
|
+
import { checkArrayLengthBetween, checkArrayLengthBetweenSync } from "./checkers/RangeError/checkArrayLengthBetween";
|
|
22
|
+
export { checkExists, checkExistsSync, checkBoolean, checkBooleanSync, checkFunction, checkFunctionSync, checkNumber, checkNumberSync, checkObject, checkObjectSync, checkString, checkStringSync, checkArray, checkArraySync, checkInteger, checkIntegerSync, checkNonEmptyArray, checkNonEmptyArraySync, checkNonEmptyInteger, checkNonEmptyIntegerSync, checkNonEmptyNumber, checkNonEmptyNumberSync, checkNonEmptyObject, checkNonEmptyObjectSync, checkNonEmptyString, checkNonEmptyStringSync, checkNumberBetween, checkNumberBetweenSync, checkObjectLength, checkObjectLengthSync, checkObjectLengthBetween, checkObjectLengthBetweenSync, checkStringLength, checkStringLengthSync, checkStringLengthBetween, checkStringLengthBetweenSync, checkIntegerBetween, checkIntegerBetweenSync, checkArrayLength, checkArrayLengthSync, checkArrayLengthBetween, checkArrayLengthBetweenSync };
|
|
23
|
+
import DescriptorUser, { tLogType, tLogger } from "./components/DescriptorUser";
|
|
24
|
+
import Mediator, { iUrlParameters, iBodyParameters } from "./components/Mediator";
|
|
25
|
+
import MediatorUser from "./components/MediatorUser";
|
|
26
|
+
import NotFoundError from "./components/NotFoundError";
|
|
27
|
+
import Orchestrator from "./components/Orchestrator";
|
|
28
|
+
import Server, { iClient, iIncomingMessage, iServerResponse } from "./components/Server";
|
|
29
|
+
export { tLogType, tLogger, iUrlParameters, iBodyParameters, iClient, iIncomingMessage, iServerResponse };
|
|
30
|
+
export { DescriptorUser, Mediator, MediatorUser, NotFoundError, Orchestrator, Server };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function cleanSendedError(data: any): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// module
|
|
4
|
+
function cleanSendedError(data) {
|
|
5
|
+
if ("object" === typeof data) {
|
|
6
|
+
if (data instanceof Error) {
|
|
7
|
+
return data.message;
|
|
8
|
+
}
|
|
9
|
+
else if (data.message) {
|
|
10
|
+
return data.message instanceof Error ? data.message.message : data.message;
|
|
11
|
+
}
|
|
12
|
+
else if (data.error) { // 1 level recursive for "error" data (avoid too deep recursive analyse)
|
|
13
|
+
if (data.error instanceof Error) {
|
|
14
|
+
return data.error.message;
|
|
15
|
+
}
|
|
16
|
+
else if (data.error.message) {
|
|
17
|
+
return data.error.message instanceof Error ? data.error.message.message : data.error.message;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return data.error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else if (data.err) { // 1 level recursive for "err" data (avoid too deep recursive analyse)
|
|
24
|
+
if (data.err instanceof Error) {
|
|
25
|
+
return data.err.message;
|
|
26
|
+
}
|
|
27
|
+
else if (data.err.message) {
|
|
28
|
+
return data.err.message instanceof Error ? data.err.message.message : data.err.message;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return data.err;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return data;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = cleanSendedError;
|
|
43
|
+
;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// deps
|
|
7
|
+
// locals
|
|
8
|
+
const removeFirstSlash_1 = __importDefault(require("../removeFirstSlash"));
|
|
9
|
+
// module
|
|
10
|
+
function extractParams(patternPath, realPath) {
|
|
11
|
+
const params = {};
|
|
12
|
+
const patternPathSplitted = (0, removeFirstSlash_1.default)(patternPath).split("/");
|
|
13
|
+
(0, removeFirstSlash_1.default)(realPath).split("/").forEach((p, i) => {
|
|
14
|
+
if ("{" === patternPathSplitted[i][0]) {
|
|
15
|
+
params[patternPathSplitted[i].replace("{", "").replace("}", "")] = decodeURI(p);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return params;
|
|
19
|
+
}
|
|
20
|
+
exports.default = extractParams;
|
|
21
|
+
;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OpenApiDocument } from "express-openapi-validate";
|
|
2
|
+
export declare type tMethod = "get" | "put" | "post" | "delete" | "options" | "head" | "patch" | "trace";
|
|
3
|
+
export interface iPathMethod {
|
|
4
|
+
"path": string;
|
|
5
|
+
"method": tMethod;
|
|
6
|
+
"operationId": string;
|
|
7
|
+
}
|
|
8
|
+
export default function extractPathMethodByOperationId(paths: OpenApiDocument["paths"], operationId: string): iPathMethod | null;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
;
|
|
4
|
+
// module
|
|
5
|
+
function extractPathMethodByOperationId(paths, operationId) {
|
|
6
|
+
// no paths in this Descriptor
|
|
7
|
+
if ("object" !== typeof paths || null === paths) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
// no operationId given
|
|
11
|
+
else if ("string" !== typeof operationId || "" === operationId.trim()) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
let result = null;
|
|
16
|
+
for (let i = 0, pathnames = Object.keys(paths); i < pathnames.length; ++i) {
|
|
17
|
+
const pathname = pathnames[i];
|
|
18
|
+
const method = Object.keys(paths[pathname]).find((m) => {
|
|
19
|
+
return Boolean(paths[pathname][m]) && paths[pathname][m].operationId === operationId;
|
|
20
|
+
});
|
|
21
|
+
if ("undefined" !== typeof method) {
|
|
22
|
+
result = {
|
|
23
|
+
"path": pathname,
|
|
24
|
+
method,
|
|
25
|
+
operationId
|
|
26
|
+
};
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.default = extractPathMethodByOperationId;
|
|
34
|
+
;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// deps
|
|
7
|
+
// locals
|
|
8
|
+
const removeFirstSlash_1 = __importDefault(require("../removeFirstSlash"));
|
|
9
|
+
// module
|
|
10
|
+
function extractPattern(paths, pathname, method) {
|
|
11
|
+
return "object" !== typeof paths ? "" : Object.keys(paths).filter((p) => {
|
|
12
|
+
return "undefined" !== typeof paths[p][method];
|
|
13
|
+
}).find((p) => {
|
|
14
|
+
const pathnameSplitted = (0, removeFirstSlash_1.default)(pathname).split("/");
|
|
15
|
+
const pathSplitted = (0, removeFirstSlash_1.default)(p).split("/");
|
|
16
|
+
if (pathnameSplitted.length !== pathSplitted.length) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
for (let i = 0; i < pathnameSplitted.length; ++i) {
|
|
20
|
+
if ("{" !== pathSplitted[i][0] && pathSplitted[i] !== pathnameSplitted[i]) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}) || "";
|
|
26
|
+
}
|
|
27
|
+
exports.default = extractPattern;
|
|
28
|
+
;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// module
|
|
4
|
+
function extractSchemaType(schema, schemas) {
|
|
5
|
+
let result = "string";
|
|
6
|
+
if (schema.type) {
|
|
7
|
+
result = schema.type;
|
|
8
|
+
}
|
|
9
|
+
else if (schema.$ref) {
|
|
10
|
+
const ref = schema.$ref.replace("#/components/schemas/", "");
|
|
11
|
+
if (schemas[ref] && schemas[ref].type) {
|
|
12
|
+
result = schemas[ref].type;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
exports.default = extractSchemaType;
|
|
18
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function checkFile(filename: string): Promise<void>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// deps
|
|
7
|
+
// locals
|
|
8
|
+
const isFile_1 = __importDefault(require("./isFile"));
|
|
9
|
+
// module
|
|
10
|
+
function checkFile(filename) {
|
|
11
|
+
return (0, isFile_1.default)(filename).then((exists) => {
|
|
12
|
+
return exists ? Promise.resolve() :
|
|
13
|
+
Promise.reject(new Error("\"" + filename + "\" does not exist."));
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
exports.default = checkFile;
|
|
17
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isFile(filename: string): Promise<boolean>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// deps
|
|
4
|
+
// natives
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
// locals
|
|
7
|
+
const checkNonEmptyString_1 = require("../../checkers/RangeError/checkNonEmptyString");
|
|
8
|
+
// module
|
|
9
|
+
function isFile(filename) {
|
|
10
|
+
return (0, checkNonEmptyString_1.checkNonEmptyString)("filename", filename).then(() => {
|
|
11
|
+
return new Promise((resolve) => {
|
|
12
|
+
(0, fs_1.lstat)(filename, (err, stats) => {
|
|
13
|
+
return resolve(Boolean(!err && stats.isFile()));
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
exports.default = isFile;
|
|
19
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function readJSONFile(file: string): Promise<any>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// deps
|
|
7
|
+
// natives
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
// locals
|
|
10
|
+
const checkFile_1 = __importDefault(require("./checkFile"));
|
|
11
|
+
// module
|
|
12
|
+
function readJSONFile(file) {
|
|
13
|
+
return (0, checkFile_1.default)(file).then(() => {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
(0, fs_1.readFile)(file, "utf8", (err, content) => {
|
|
16
|
+
return err ? reject(err) : resolve(content);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}).then((content) => {
|
|
20
|
+
return Promise.resolve(JSON.parse(content));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.default = readJSONFile;
|
|
24
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getUniqueID(): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// private
|
|
4
|
+
// methods
|
|
5
|
+
/**
|
|
6
|
+
* @return {string} formated random id fragment
|
|
7
|
+
*/
|
|
8
|
+
function _s4() {
|
|
9
|
+
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
|
|
10
|
+
}
|
|
11
|
+
// module
|
|
12
|
+
function getUniqueID() {
|
|
13
|
+
return _s4() + _s4() + "-" + _s4();
|
|
14
|
+
}
|
|
15
|
+
exports.default = getUniqueID;
|
|
16
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function removeFirstSlash(path: string): string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// module
|
|
4
|
+
function removeFirstSlash(path) {
|
|
5
|
+
return "string" === typeof path && "/" === path[0] ? path.substring(1, path.length) : String(path);
|
|
6
|
+
}
|
|
7
|
+
exports.default = removeFirstSlash;
|
|
8
|
+
;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// deps
|
|
4
|
+
// locals
|
|
5
|
+
const checkInteger_1 = require("../../checkers/TypeError/checkInteger");
|
|
6
|
+
const checkFunction_1 = require("../../checkers/TypeError/checkFunction");
|
|
7
|
+
const checkNonEmptyObject_1 = require("../../checkers/RangeError/checkNonEmptyObject");
|
|
8
|
+
// module
|
|
9
|
+
function extractBody(req) {
|
|
10
|
+
return (0, checkNonEmptyObject_1.checkNonEmptyObject)("req", req).then(() => {
|
|
11
|
+
return (0, checkFunction_1.checkFunction)("req.on", req.on);
|
|
12
|
+
}).then(() => {
|
|
13
|
+
return (0, checkNonEmptyObject_1.checkNonEmptyObject)("req.headers", req.headers);
|
|
14
|
+
}).then(() => {
|
|
15
|
+
return (0, checkInteger_1.checkInteger)("req.headers[\"content-length\"]", req.headers["content-length"]);
|
|
16
|
+
}).then(() => {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
let queryData = "";
|
|
19
|
+
req.on("data", (data) => {
|
|
20
|
+
queryData += data.toString("utf8");
|
|
21
|
+
}).on("end", () => {
|
|
22
|
+
if ("" === queryData || "null" === queryData) {
|
|
23
|
+
resolve({
|
|
24
|
+
"value": "",
|
|
25
|
+
"parsed": {}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
req.headers["content-length"] = parseInt(req.headers["content-length"], 10);
|
|
30
|
+
if (req.headers["content-length"] !== Buffer.byteLength(queryData)) {
|
|
31
|
+
reject(new Error("\"Content-Length\" header (" + Buffer.byteLength(queryData) + ")" +
|
|
32
|
+
" is not as expected (" + req.headers["content-length"] + ")." +
|
|
33
|
+
" Do not forget the fact that it is a 8-bit bytes number."));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
try {
|
|
37
|
+
resolve({
|
|
38
|
+
"value": queryData,
|
|
39
|
+
"parsed": JSON.parse(queryData)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
reject(e);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
exports.default = extractBody;
|
|
52
|
+
;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// private
|
|
4
|
+
// methods
|
|
5
|
+
/**
|
|
6
|
+
* Extract cookies from string
|
|
7
|
+
* @param {string} cookies: data string to parse
|
|
8
|
+
* @returns {object} Parsed data
|
|
9
|
+
*/
|
|
10
|
+
function _parseCookies(cookies) {
|
|
11
|
+
if ("string" !== typeof cookies) {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const result = {};
|
|
16
|
+
cookies.split(";").forEach((cookie) => {
|
|
17
|
+
const parts = cookie.split("=");
|
|
18
|
+
result[parts[0]] = decodeURI(parts[1]);
|
|
19
|
+
});
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// module
|
|
24
|
+
function extractCookies(req) {
|
|
25
|
+
if ("object" !== typeof req) {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
else if ("object" === typeof req.cookies) {
|
|
29
|
+
return req.cookies;
|
|
30
|
+
}
|
|
31
|
+
else if (req.headers) {
|
|
32
|
+
if (req.headers.cookie) {
|
|
33
|
+
return _parseCookies(req.headers.cookie);
|
|
34
|
+
}
|
|
35
|
+
else if (req.headers.Cookie) {
|
|
36
|
+
return _parseCookies(req.headers.Cookie);
|
|
37
|
+
}
|
|
38
|
+
else if (req.headers.cookies) {
|
|
39
|
+
return _parseCookies(req.headers.cookies);
|
|
40
|
+
}
|
|
41
|
+
else if (req.headers.Cookies) {
|
|
42
|
+
return _parseCookies(req.headers.Cookies);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return {};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.default = extractCookies;
|
|
53
|
+
;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function extractIp(req: any): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// module
|
|
4
|
+
function extractIp(req) {
|
|
5
|
+
if ("object" !== typeof req) {
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
let result = "";
|
|
10
|
+
if (req.ip) {
|
|
11
|
+
result = req.ip;
|
|
12
|
+
}
|
|
13
|
+
else if (req.headers && req.headers["x-forwarded-for"]) {
|
|
14
|
+
result = req.headers["x-forwarded-for"].split(",").pop();
|
|
15
|
+
}
|
|
16
|
+
else if (req.socket && req.socket.remoteAddress) {
|
|
17
|
+
result = req.socket.remoteAddress;
|
|
18
|
+
}
|
|
19
|
+
else if (req.connection) {
|
|
20
|
+
if (req.connection.remoteAddress) {
|
|
21
|
+
result = req.connection.remoteAddress;
|
|
22
|
+
}
|
|
23
|
+
else if (req.connection.socket && req.connection.socket.remoteAddress) {
|
|
24
|
+
result = req.connection.socket.remoteAddress;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
result = "";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
result = "";
|
|
32
|
+
}
|
|
33
|
+
return result
|
|
34
|
+
.replace("::ffff:", "")
|
|
35
|
+
.replace("localhost", "127.0.0.1")
|
|
36
|
+
.replace("::1", "127.0.0.1");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.default = extractIp;
|
|
40
|
+
;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// module
|
|
4
|
+
function send(req, res, code, content, apiVersion, cors) {
|
|
5
|
+
return new Promise((resolve) => {
|
|
6
|
+
// formate content
|
|
7
|
+
if ("undefined" !== typeof content) {
|
|
8
|
+
res.body = JSON.stringify(content);
|
|
9
|
+
}
|
|
10
|
+
// force data for checking
|
|
11
|
+
res.statusCode = code;
|
|
12
|
+
res.headers = Object.assign({
|
|
13
|
+
"Content-Type": "application/json; charset=utf-8",
|
|
14
|
+
"Content-Length": res.body ? Buffer.byteLength(res.body) : 0,
|
|
15
|
+
"Status-Code-Url-Cat": "https://http.cat/" + code,
|
|
16
|
+
"API-Version": apiVersion
|
|
17
|
+
}, cors ? {
|
|
18
|
+
"Access-Control-Allow-Origin": "*",
|
|
19
|
+
"Access-Control-Allow-Credentials": true,
|
|
20
|
+
"Access-Control-Allow-Methods": req.headers["access-control-request-method"] ? req.headers["access-control-request-method"] : [
|
|
21
|
+
"GET",
|
|
22
|
+
"POST",
|
|
23
|
+
"PUT",
|
|
24
|
+
"DELETE",
|
|
25
|
+
"PATCH",
|
|
26
|
+
"OPTIONS"
|
|
27
|
+
].join(", "),
|
|
28
|
+
"Access-Control-Allow-Headers": req.headers["access-control-request-headers"] ? req.headers["access-control-request-headers"] : [
|
|
29
|
+
"Origin",
|
|
30
|
+
"Accept",
|
|
31
|
+
"Accept-Version",
|
|
32
|
+
"Content-Length",
|
|
33
|
+
"Content-MD5",
|
|
34
|
+
"Content-Type",
|
|
35
|
+
"Date",
|
|
36
|
+
"X-Api-Version",
|
|
37
|
+
"X-File-Name",
|
|
38
|
+
"X-CSRF-Token",
|
|
39
|
+
"X-Requested-With"
|
|
40
|
+
].join(", ")
|
|
41
|
+
} : {});
|
|
42
|
+
// send data
|
|
43
|
+
res.writeHead(res.statusCode, res.headers);
|
|
44
|
+
if (res.body) {
|
|
45
|
+
res.end(res.body, "utf-8", () => {
|
|
46
|
+
resolve();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
res.end(() => {
|
|
51
|
+
resolve();
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.default = send;
|
|
57
|
+
;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
OK: number;
|
|
3
|
+
OK_PUT: number;
|
|
4
|
+
OK_NO_CONTENT: number;
|
|
5
|
+
MISSING_PARAMETER: number;
|
|
6
|
+
WRONG_TYPE_PARAMETER: number;
|
|
7
|
+
EMPTY_OR_RANGE_OR_ENUM_PARAMETER: number;
|
|
8
|
+
JSON_PARSE: number;
|
|
9
|
+
NOT_FOUND: number;
|
|
10
|
+
MISSING_HEADER: number;
|
|
11
|
+
INTERNAL_SERVER_ERROR: number;
|
|
12
|
+
NOT_IMPLEMENTED: number;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
"OK": 200,
|
|
5
|
+
"OK_PUT": 201,
|
|
6
|
+
"OK_NO_CONTENT": 204,
|
|
7
|
+
"MISSING_PARAMETER": 400,
|
|
8
|
+
"WRONG_TYPE_PARAMETER": 400,
|
|
9
|
+
"EMPTY_OR_RANGE_OR_ENUM_PARAMETER": 400,
|
|
10
|
+
"JSON_PARSE": 400,
|
|
11
|
+
"NOT_FOUND": 404,
|
|
12
|
+
"MISSING_HEADER": 411,
|
|
13
|
+
"INTERNAL_SERVER_ERROR": 500,
|
|
14
|
+
"NOT_IMPLEMENTED": 501
|
|
15
|
+
};
|