node-pluginsmanager-plugin 4.8.8 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/lib/cjs/checkers/RangeError/checkArrayLength.d.ts +2 -0
  2. package/lib/cjs/checkers/RangeError/checkArrayLength.js +26 -0
  3. package/lib/cjs/checkers/RangeError/checkArrayLengthBetween.d.ts +2 -0
  4. package/lib/cjs/checkers/RangeError/checkArrayLengthBetween.js +33 -0
  5. package/lib/cjs/checkers/RangeError/checkIntegerBetween.d.ts +2 -0
  6. package/lib/cjs/checkers/RangeError/checkIntegerBetween.js +32 -0
  7. package/lib/cjs/checkers/RangeError/checkNonEmptyArray.d.ts +2 -0
  8. package/lib/cjs/checkers/RangeError/checkNonEmptyArray.js +22 -0
  9. package/lib/cjs/checkers/RangeError/checkNonEmptyInteger.d.ts +2 -0
  10. package/lib/cjs/checkers/RangeError/checkNonEmptyInteger.js +22 -0
  11. package/lib/cjs/checkers/RangeError/checkNonEmptyNumber.d.ts +2 -0
  12. package/lib/cjs/checkers/RangeError/checkNonEmptyNumber.js +22 -0
  13. package/lib/cjs/checkers/RangeError/checkNonEmptyObject.d.ts +2 -0
  14. package/lib/cjs/checkers/RangeError/checkNonEmptyObject.js +22 -0
  15. package/lib/cjs/checkers/RangeError/checkNonEmptyString.d.ts +2 -0
  16. package/lib/cjs/checkers/RangeError/checkNonEmptyString.js +22 -0
  17. package/lib/cjs/checkers/RangeError/checkNumberBetween.d.ts +2 -0
  18. package/lib/cjs/checkers/RangeError/checkNumberBetween.js +32 -0
  19. package/lib/cjs/checkers/RangeError/checkObjectLength.d.ts +2 -0
  20. package/lib/cjs/checkers/RangeError/checkObjectLength.js +31 -0
  21. package/lib/cjs/checkers/RangeError/checkObjectLengthBetween.d.ts +2 -0
  22. package/lib/cjs/checkers/RangeError/checkObjectLengthBetween.js +36 -0
  23. package/lib/cjs/checkers/RangeError/checkStringLength.d.ts +2 -0
  24. package/lib/cjs/checkers/RangeError/checkStringLength.js +26 -0
  25. package/lib/cjs/checkers/RangeError/checkStringLengthBetween.d.ts +2 -0
  26. package/lib/cjs/checkers/RangeError/checkStringLengthBetween.js +33 -0
  27. package/lib/cjs/checkers/ReferenceError/checkExists.d.ts +2 -0
  28. package/lib/cjs/checkers/ReferenceError/checkExists.js +19 -0
  29. package/lib/cjs/checkers/TypeError/checkArray.d.ts +2 -0
  30. package/lib/cjs/checkers/TypeError/checkArray.js +22 -0
  31. package/lib/cjs/checkers/TypeError/checkBoolean.d.ts +2 -0
  32. package/lib/cjs/checkers/TypeError/checkBoolean.js +22 -0
  33. package/lib/cjs/checkers/TypeError/checkFunction.d.ts +2 -0
  34. package/lib/cjs/checkers/TypeError/checkFunction.js +22 -0
  35. package/lib/cjs/checkers/TypeError/checkInteger.d.ts +2 -0
  36. package/lib/cjs/checkers/TypeError/checkInteger.js +22 -0
  37. package/lib/cjs/checkers/TypeError/checkNumber.d.ts +2 -0
  38. package/lib/cjs/checkers/TypeError/checkNumber.js +22 -0
  39. package/lib/cjs/checkers/TypeError/checkObject.d.ts +2 -0
  40. package/lib/cjs/checkers/TypeError/checkObject.js +22 -0
  41. package/lib/cjs/checkers/TypeError/checkString.d.ts +2 -0
  42. package/lib/cjs/checkers/TypeError/checkString.js +22 -0
  43. package/lib/cjs/components/DescriptorUser.d.ts +27 -0
  44. package/lib/cjs/components/DescriptorUser.js +120 -0
  45. package/lib/cjs/components/Mediator.d.ts +19 -0
  46. package/lib/cjs/components/Mediator.js +145 -0
  47. package/lib/cjs/components/MediatorUser.d.ts +12 -0
  48. package/lib/cjs/components/MediatorUser.js +40 -0
  49. package/lib/cjs/components/NotFoundError.d.ts +2 -0
  50. package/lib/cjs/components/NotFoundError.js +7 -0
  51. package/lib/cjs/components/Orchestrator.d.ts +54 -0
  52. package/lib/cjs/components/Orchestrator.js +386 -0
  53. package/lib/cjs/components/Server.d.ts +55 -0
  54. package/lib/cjs/components/Server.js +534 -0
  55. package/lib/cjs/main.cjs +90 -0
  56. package/lib/cjs/main.d.cts +29 -0
  57. package/lib/cjs/utils/cleanSendedError.d.ts +1 -0
  58. package/lib/cjs/utils/cleanSendedError.js +43 -0
  59. package/lib/cjs/utils/descriptor/extractParams.d.ts +3 -0
  60. package/lib/cjs/utils/descriptor/extractParams.js +21 -0
  61. package/lib/cjs/utils/descriptor/extractPathMethodByOperationId.d.ts +8 -0
  62. package/lib/cjs/utils/descriptor/extractPathMethodByOperationId.js +34 -0
  63. package/lib/cjs/utils/descriptor/extractPattern.d.ts +2 -0
  64. package/lib/cjs/utils/descriptor/extractPattern.js +27 -0
  65. package/lib/cjs/utils/descriptor/extractSchemaType.d.ts +4 -0
  66. package/lib/cjs/utils/descriptor/extractSchemaType.js +18 -0
  67. package/lib/cjs/utils/file/checkFile.d.ts +1 -0
  68. package/lib/cjs/utils/file/checkFile.js +17 -0
  69. package/lib/cjs/utils/file/isFile.d.ts +1 -0
  70. package/lib/cjs/utils/file/isFile.js +19 -0
  71. package/lib/cjs/utils/file/readJSONFile.d.ts +1 -0
  72. package/lib/cjs/utils/file/readJSONFile.js +24 -0
  73. package/lib/cjs/utils/getUniqueID.d.ts +1 -0
  74. package/lib/cjs/utils/getUniqueID.js +16 -0
  75. package/lib/cjs/utils/removeFirstSlash.d.ts +1 -0
  76. package/lib/cjs/utils/removeFirstSlash.js +8 -0
  77. package/lib/cjs/utils/request/extractBody.d.ts +7 -0
  78. package/lib/cjs/utils/request/extractBody.js +50 -0
  79. package/lib/cjs/utils/request/extractCookies.d.ts +4 -0
  80. package/lib/cjs/utils/request/extractCookies.js +53 -0
  81. package/lib/cjs/utils/request/extractIp.d.ts +1 -0
  82. package/lib/cjs/utils/request/extractIp.js +40 -0
  83. package/lib/cjs/utils/send.d.ts +2 -0
  84. package/lib/cjs/utils/send.js +57 -0
  85. package/lib/cjs/utils/serverCodes.d.ts +14 -0
  86. package/lib/cjs/utils/serverCodes.js +15 -0
  87. package/package.json +32 -13
  88. package/lib/checkers/RangeError/checkArrayLength.js +0 -74
  89. package/lib/checkers/RangeError/checkArrayLengthBetween.js +0 -97
  90. package/lib/checkers/RangeError/checkIntegerBetween.js +0 -96
  91. package/lib/checkers/RangeError/checkNonEmptyArray.js +0 -61
  92. package/lib/checkers/RangeError/checkNonEmptyInteger.js +0 -61
  93. package/lib/checkers/RangeError/checkNonEmptyNumber.js +0 -61
  94. package/lib/checkers/RangeError/checkNonEmptyObject.js +0 -61
  95. package/lib/checkers/RangeError/checkNonEmptyString.js +0 -61
  96. package/lib/checkers/RangeError/checkNumberBetween.js +0 -96
  97. package/lib/checkers/RangeError/checkObjectLength.js +0 -78
  98. package/lib/checkers/RangeError/checkObjectLengthBetween.js +0 -101
  99. package/lib/checkers/RangeError/checkStringLength.js +0 -70
  100. package/lib/checkers/RangeError/checkStringLengthBetween.js +0 -97
  101. package/lib/checkers/ReferenceError/checkExists.js +0 -49
  102. package/lib/checkers/TypeError/checkArray.js +0 -61
  103. package/lib/checkers/TypeError/checkBoolean.js +0 -61
  104. package/lib/checkers/TypeError/checkFunction.js +0 -61
  105. package/lib/checkers/TypeError/checkInteger.js +0 -61
  106. package/lib/checkers/TypeError/checkNumber.js +0 -61
  107. package/lib/checkers/TypeError/checkObject.js +0 -61
  108. package/lib/checkers/TypeError/checkString.js +0 -61
  109. package/lib/checkers/main.js +0 -76
  110. package/lib/components/DescriptorUser.js +0 -179
  111. package/lib/components/Mediator.js +0 -220
  112. package/lib/components/MediatorUser.js +0 -63
  113. package/lib/components/NotFoundError.js +0 -5
  114. package/lib/components/Orchestrator.js +0 -634
  115. package/lib/components/Server.js +0 -777
  116. package/lib/components/main.js +0 -25
  117. package/lib/index.d.ts +0 -279
  118. package/lib/main.js +0 -17
  119. package/lib/utils/cleanSendedError.js +0 -47
  120. package/lib/utils/descriptor/extractParams.js +0 -29
  121. package/lib/utils/descriptor/extractPathMethodByOperationId.js +0 -47
  122. package/lib/utils/descriptor/extractPattern.js +0 -38
  123. package/lib/utils/descriptor/extractSchemaType.js +0 -24
  124. package/lib/utils/descriptor/main.js +0 -21
  125. package/lib/utils/file/checkFile.js +0 -22
  126. package/lib/utils/file/isFile.js +0 -29
  127. package/lib/utils/file/main.js +0 -19
  128. package/lib/utils/file/readJSONFile.js +0 -30
  129. package/lib/utils/getUniqueID.js +0 -20
  130. package/lib/utils/removeFirstSlash.js +0 -7
  131. package/lib/utils/request/extractBody.js +0 -79
  132. package/lib/utils/request/extractCookies.js +0 -68
  133. package/lib/utils/request/extractIp.js +0 -47
  134. package/lib/utils/request/main.js +0 -19
  135. package/lib/utils/send.js +0 -75
  136. package/lib/utils/serverCodes.json +0 -17
@@ -0,0 +1,29 @@
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 from "./components/DescriptorUser";
24
+ import Mediator from "./components/Mediator";
25
+ import MediatorUser from "./components/MediatorUser";
26
+ import Orchestrator from "./components/Orchestrator";
27
+ import Server from "./components/Server";
28
+ import NotFoundError from "./components/NotFoundError";
29
+ export { DescriptorUser, Mediator, MediatorUser, Orchestrator, Server, NotFoundError };
@@ -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,3 @@
1
+ export default function extractParams(patternPath: string, realPath: string): {
2
+ [key: string]: any;
3
+ };
@@ -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,2 @@
1
+ import { OpenApiDocument } from "express-openapi-validate";
2
+ export default function extractPattern(paths: OpenApiDocument["paths"], pathname: string, method: string): string;
@@ -0,0 +1,27 @@
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
+ // locals
7
+ const removeFirstSlash_1 = __importDefault(require("../removeFirstSlash"));
8
+ // module
9
+ function extractPattern(paths, pathname, method) {
10
+ return "object" !== typeof paths ? "" : Object.keys(paths).filter((p) => {
11
+ return "undefined" !== typeof paths[p][method];
12
+ }).find((p) => {
13
+ const pathnameSplitted = (0, removeFirstSlash_1.default)(pathname).split("/");
14
+ const pathSplitted = (0, removeFirstSlash_1.default)(p).split("/");
15
+ if (pathnameSplitted.length !== pathSplitted.length) {
16
+ return false;
17
+ }
18
+ for (let i = 0; i < pathnameSplitted.length; ++i) {
19
+ if ("{" !== pathSplitted[i][0] && pathSplitted[i] !== pathnameSplitted[i]) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
24
+ }) || "";
25
+ }
26
+ exports.default = extractPattern;
27
+ ;
@@ -0,0 +1,4 @@
1
+ import { OpenAPIV3_1 } from "openapi-types";
2
+ export default function extractSchemaType(schema: OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject, schemas: {
3
+ [key: string]: any;
4
+ }): "boolean" | "object" | "number" | "string" | "integer" | "array";
@@ -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,7 @@
1
+ import { iIncomingMessage } from "../../components/Server";
2
+ interface iResult {
3
+ "value": string;
4
+ "parsed": any;
5
+ }
6
+ export default function extractBody(req: iIncomingMessage): Promise<iResult>;
7
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const checkInteger_1 = require("../../checkers/TypeError/checkInteger");
4
+ const checkFunction_1 = require("../../checkers/TypeError/checkFunction");
5
+ const checkNonEmptyObject_1 = require("../../checkers/RangeError/checkNonEmptyObject");
6
+ // module
7
+ function extractBody(req) {
8
+ return (0, checkNonEmptyObject_1.checkNonEmptyObject)("req", req).then(() => {
9
+ return (0, checkFunction_1.checkFunction)("req.on", req.on);
10
+ }).then(() => {
11
+ return (0, checkNonEmptyObject_1.checkNonEmptyObject)("req.headers", req.headers);
12
+ }).then(() => {
13
+ return (0, checkInteger_1.checkInteger)("req.headers[\"content-length\"]", req.headers["content-length"]);
14
+ }).then(() => {
15
+ return new Promise((resolve, reject) => {
16
+ let queryData = "";
17
+ req.on("data", (data) => {
18
+ queryData += data.toString("utf8");
19
+ }).on("end", () => {
20
+ if ("" === queryData || "null" === queryData) {
21
+ resolve({
22
+ "value": "",
23
+ "parsed": {}
24
+ });
25
+ }
26
+ else {
27
+ req.headers["content-length"] = parseInt(req.headers["content-length"], 10);
28
+ if (req.headers["content-length"] !== Buffer.byteLength(queryData)) {
29
+ reject(new Error("\"Content-Length\" header (" + Buffer.byteLength(queryData) + ")" +
30
+ " is not as expected (" + req.headers["content-length"] + ")." +
31
+ " Do not forget the fact that it is a 8-bit bytes number."));
32
+ }
33
+ else {
34
+ try {
35
+ resolve({
36
+ "value": queryData,
37
+ "parsed": JSON.parse(queryData)
38
+ });
39
+ }
40
+ catch (e) {
41
+ reject(e);
42
+ }
43
+ }
44
+ }
45
+ });
46
+ });
47
+ });
48
+ }
49
+ exports.default = extractBody;
50
+ ;
@@ -0,0 +1,4 @@
1
+ import { iIncomingMessage } from "../../components/Server";
2
+ export default function extractCookies(req: iIncomingMessage): {
3
+ [key: string]: string;
4
+ };
@@ -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,2 @@
1
+ import { iIncomingMessage, iServerResponse } from "../components/Server";
2
+ export default function send(req: iIncomingMessage, res: iServerResponse, code: number, content: any, apiVersion: string, cors: boolean): Promise<void>;
@@ -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
+ };
package/package.json CHANGED
@@ -1,23 +1,40 @@
1
1
  {
2
2
  "name": "node-pluginsmanager-plugin",
3
- "version": "4.8.8",
3
+ "version": "5.0.0",
4
4
  "description": "An abstract parent plugin for node-pluginsmanager",
5
- "main": "lib/main.js",
6
- "typings": "lib/index.d.ts",
5
+
6
+ "type": "commonjs",
7
+ "typings": "./lib/cjs/main.d.cts",
8
+ "main": "./lib/cjs/main.cjs",
9
+
10
+ "exports": {
11
+ ".": {
12
+ "require": {
13
+ "types": "./lib/cjs/main.d.cts",
14
+ "default": "./lib/cjs/main.cjs"
15
+ }
16
+ }
17
+ },
18
+
7
19
  "scripts": {
8
- "lint": "npx eslint ./lib/**/*.js ./test/**/*.js",
20
+
9
21
  "check-updates": "npx check-version-modules",
10
- "unit-tests": "npx nyc --reporter=html --reporter=text mocha",
11
- "tests": "npm run-script lint && npm run-script check-updates && npm run-script unit-tests",
22
+
23
+ "compile": "npx tsc --project \"./tsconfig.json\"",
24
+
25
+ "unit-tests": "npm run compile && npx nyc --reporter=html --reporter=text mocha",
26
+ "tests": "npm run-script check-updates && npm run-script unit-tests",
12
27
  "ci": "npm run-script tests && npx nyc report --reporter=text-lcov | coveralls"
28
+
13
29
  },
30
+
14
31
  "files": [
15
32
  "/lib"
16
33
  ],
34
+
17
35
  "husky": {
18
36
  "hooks": {
19
- "pre-commit": "npm run-script lint",
20
- "pre-push": "npm run-script tests"
37
+ "pre-push": "npm run-script tests"
21
38
  }
22
39
  },
23
40
  "repository": {
@@ -36,24 +53,26 @@
36
53
  },
37
54
  "dependencies": {
38
55
  "@apidevtools/swagger-parser": "10.1.0",
39
- "express-openapi-validate": "0.6.1"
56
+ "express-openapi-validate": "0.6.1",
57
+ "uniqid": "5.4.0"
40
58
  },
41
59
  "devDependencies": {
42
- "@types/node": "17.0.36",
60
+ "@types/express": "4.17.13",
61
+ "@types/node": "18.0.0",
43
62
  "@types/socket.io": "3.0.2",
63
+ "@types/uniqid": "5.3.2",
44
64
  "@types/ws": "8.5.3",
45
65
  "check-version-modules": "1.3.5",
46
66
  "coveralls": "3.1.1",
47
67
  "colors": "1.4.0",
48
- "eslint": "8.16.0",
49
68
  "express": "4.18.1",
50
69
  "husky": "8.0.1",
51
70
  "mocha": "10.0.0",
52
71
  "nyc": "15.1.0",
53
72
  "socket.io": "4.5.1",
54
73
  "socket.io-client": "4.5.1",
55
- "typescript": "4.7.2",
56
- "ws": "8.7.0"
74
+ "typescript": "4.7.4",
75
+ "ws": "8.8.0"
57
76
  },
58
77
  "homepage": "https://github.com/Psychopoulet/node-pluginsmanager-plugin#readme",
59
78
  "engines": {