node-pluginsmanager-plugin 6.4.5 → 6.5.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/LICENSE +1 -1
- package/lib/cjs/components/DescriptorUser.d.ts +9 -1
- package/lib/cjs/components/DescriptorUser.js +4 -0
- package/lib/cjs/components/Mediator.d.ts +3 -2
- package/lib/cjs/components/Mediator.js +2 -2
- package/lib/cjs/components/MediatorUser.d.ts +3 -2
- package/lib/cjs/components/Orchestrator.d.ts +3 -3
- package/lib/cjs/components/Orchestrator.js +6 -6
- package/lib/cjs/components/Server.d.ts +2 -1
- package/lib/cjs/components/Server.js +2 -2
- package/lib/cjs/main.d.cts +2 -2
- package/lib/cjs/utils/descriptor/extractPathMethodByOperationId.d.ts +1 -1
- package/lib/cjs/utils/request/extractCookies.d.ts +1 -1
- package/package.json +7 -7
package/LICENSE
CHANGED
|
@@ -7,7 +7,14 @@ export interface iDescriptorUserOptions {
|
|
|
7
7
|
"descriptor"?: OpenApiDocument;
|
|
8
8
|
"logger"?: tLogger;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
10
|
+
export type tEventMap<T> = Record<keyof T, any[]> | tEventsNoEvent;
|
|
11
|
+
export type tEventsNoEvent = [never];
|
|
12
|
+
export interface iEventsMinimal {
|
|
13
|
+
"error": [Error];
|
|
14
|
+
"initialized": [any];
|
|
15
|
+
"released": [any];
|
|
16
|
+
}
|
|
17
|
+
export default class DescriptorUser<T extends tEventMap<T> = tEventsNoEvent> extends EventEmitter<T> {
|
|
11
18
|
initialized: boolean;
|
|
12
19
|
protected _descriptorValidated: boolean;
|
|
13
20
|
protected _externalRessourcesDirectory: string;
|
|
@@ -17,6 +24,7 @@ export default class DescriptorUser extends EventEmitter {
|
|
|
17
24
|
protected _initWorkSpace(...data: any): Promise<void>;
|
|
18
25
|
protected _releaseWorkSpace(...data: any): Promise<void>;
|
|
19
26
|
protected _log(type: tLogType, message: string | Error, bold?: boolean): this;
|
|
27
|
+
protected _emitEventGenericForTSPurposeDONOTUSE(event: string, ...args: any[]): boolean;
|
|
20
28
|
getPluginName(): string;
|
|
21
29
|
getPluginVersion(): string;
|
|
22
30
|
getPluginDescription(): string;
|
|
@@ -51,6 +51,10 @@ class DescriptorUser extends node_events_1.EventEmitter {
|
|
|
51
51
|
}
|
|
52
52
|
return this;
|
|
53
53
|
}
|
|
54
|
+
// used to faint the typing of EventEmitter for emit into a generic class (which MUST be inherited anyway) like Mediator/Server/Orchestrator
|
|
55
|
+
_emitEventGenericForTSPurposeDONOTUSE(event, ...args) {
|
|
56
|
+
return this.emit(event, ...args);
|
|
57
|
+
}
|
|
54
58
|
// public
|
|
55
59
|
getPluginName() {
|
|
56
60
|
return this._Descriptor && this._Descriptor.info && this._Descriptor.info.title ? this._Descriptor.info.title : "";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenApiValidator } from "express-openapi-validate";
|
|
2
|
-
import DescriptorUser
|
|
2
|
+
import DescriptorUser from "./DescriptorUser";
|
|
3
|
+
import type { iDescriptorUserOptions, tEventMap, iEventsMinimal } from "./DescriptorUser";
|
|
3
4
|
import type { iIncomingMessage, iServerResponse } from "./Server";
|
|
4
5
|
export interface iIncomingMessageForMediatorValidation extends iIncomingMessage {
|
|
5
6
|
"body": any;
|
|
@@ -15,7 +16,7 @@ export interface iUrlAllowedParameters {
|
|
|
15
16
|
"header"?: Record<string, any>;
|
|
16
17
|
"cookie"?: Record<string, any>;
|
|
17
18
|
}
|
|
18
|
-
export default class Mediator extends DescriptorUser {
|
|
19
|
+
export default class Mediator<T extends tEventMap<T> = iEventsMinimal> extends DescriptorUser<T> {
|
|
19
20
|
protected _validator: OpenApiValidator | null;
|
|
20
21
|
constructor(options: iDescriptorUserOptions);
|
|
21
22
|
checkParameters(operationId: string, urlParams?: iUrlAllowedParameters, bodyParams?: any): Promise<void>;
|
|
@@ -133,7 +133,7 @@ class Mediator extends DescriptorUser_1.default {
|
|
|
133
133
|
return this._initWorkSpace(...data).then(() => {
|
|
134
134
|
this._validator = new express_openapi_validate_1.OpenApiValidator(this._Descriptor);
|
|
135
135
|
this.initialized = true;
|
|
136
|
-
this.
|
|
136
|
+
this._emitEventGenericForTSPurposeDONOTUSE("initialized", [...data]);
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
139
|
release(...data) {
|
|
@@ -142,7 +142,7 @@ class Mediator extends DescriptorUser_1.default {
|
|
|
142
142
|
this._Descriptor = null;
|
|
143
143
|
this._validator = null;
|
|
144
144
|
this.initialized = false;
|
|
145
|
-
this.
|
|
145
|
+
this._emitEventGenericForTSPurposeDONOTUSE("released", [...data]);
|
|
146
146
|
}).then(() => {
|
|
147
147
|
this.removeAllListeners();
|
|
148
148
|
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import DescriptorUser
|
|
1
|
+
import DescriptorUser from "./DescriptorUser";
|
|
2
2
|
import Mediator from "./Mediator";
|
|
3
|
+
import type { iDescriptorUserOptions, tEventMap, tEventsNoEvent } from "./DescriptorUser";
|
|
3
4
|
export interface iMediatorUserOptions extends iDescriptorUserOptions {
|
|
4
5
|
"mediator"?: Mediator;
|
|
5
6
|
}
|
|
6
|
-
export default class MediatorUser extends DescriptorUser {
|
|
7
|
+
export default class MediatorUser<T extends tEventMap<T> = tEventsNoEvent> extends DescriptorUser<T> {
|
|
7
8
|
protected _Mediator: Mediator | null;
|
|
8
9
|
constructor(options: iMediatorUserOptions);
|
|
9
10
|
protected _initWorkSpace(...data: any): Promise<void>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import MediatorUser from "./MediatorUser";
|
|
2
2
|
import Server from "./Server";
|
|
3
|
-
import { IncomingMessage } from "node:http";
|
|
3
|
+
import type { IncomingMessage } from "node:http";
|
|
4
4
|
import type { Server as SocketIOServer } from "socket.io";
|
|
5
5
|
import type { Server as WebSocketServer } from "ws";
|
|
6
6
|
import type { iServerResponse } from "./Server";
|
|
7
|
-
import type { tLogger } from "./DescriptorUser";
|
|
7
|
+
import type { tLogger, tEventMap, iEventsMinimal } from "./DescriptorUser";
|
|
8
8
|
export interface iOrchestratorOptions {
|
|
9
9
|
"externalRessourcesDirectory": string;
|
|
10
10
|
"packageFile": string;
|
|
@@ -13,7 +13,7 @@ export interface iOrchestratorOptions {
|
|
|
13
13
|
"serverFile": string;
|
|
14
14
|
"logger"?: tLogger;
|
|
15
15
|
}
|
|
16
|
-
export default class Orchestrator extends MediatorUser {
|
|
16
|
+
export default class Orchestrator<T extends tEventMap<T> = iEventsMinimal> extends MediatorUser<T> {
|
|
17
17
|
protected _Server: Server | null;
|
|
18
18
|
protected _socketServer: WebSocketServer | SocketIOServer | null;
|
|
19
19
|
protected _checkParameters: boolean;
|
|
@@ -121,7 +121,7 @@ class Orchestrator extends MediatorUser_1.default {
|
|
|
121
121
|
this.checkServer().then(() => {
|
|
122
122
|
this._Server.disableCors();
|
|
123
123
|
}).catch((err) => {
|
|
124
|
-
this.
|
|
124
|
+
this._emitEventGenericForTSPurposeDONOTUSE("error", err);
|
|
125
125
|
});
|
|
126
126
|
return this;
|
|
127
127
|
}
|
|
@@ -129,7 +129,7 @@ class Orchestrator extends MediatorUser_1.default {
|
|
|
129
129
|
this.checkServer().then(() => {
|
|
130
130
|
this._Server.enableCors();
|
|
131
131
|
}).catch((err) => {
|
|
132
|
-
this.
|
|
132
|
+
this._emitEventGenericForTSPurposeDONOTUSE("error", err);
|
|
133
133
|
});
|
|
134
134
|
return this;
|
|
135
135
|
}
|
|
@@ -303,7 +303,7 @@ class Orchestrator extends MediatorUser_1.default {
|
|
|
303
303
|
return this.checkMediator().then(() => {
|
|
304
304
|
// intercept errors to avoid non-catched ones
|
|
305
305
|
this._Mediator.on("error", (err) => {
|
|
306
|
-
this.
|
|
306
|
+
this._emitEventGenericForTSPurposeDONOTUSE("error", err);
|
|
307
307
|
});
|
|
308
308
|
});
|
|
309
309
|
});
|
|
@@ -339,7 +339,7 @@ class Orchestrator extends MediatorUser_1.default {
|
|
|
339
339
|
return this.checkServer().then(() => {
|
|
340
340
|
// intercept errors to avoid non-catched ones
|
|
341
341
|
this._Server.on("error", (err) => {
|
|
342
|
-
this.
|
|
342
|
+
this._emitEventGenericForTSPurposeDONOTUSE("error", err);
|
|
343
343
|
});
|
|
344
344
|
});
|
|
345
345
|
});
|
|
@@ -363,7 +363,7 @@ class Orchestrator extends MediatorUser_1.default {
|
|
|
363
363
|
return this._Mediator.init(...data);
|
|
364
364
|
}).then(() => {
|
|
365
365
|
this.initialized = true;
|
|
366
|
-
this.
|
|
366
|
+
this._emitEventGenericForTSPurposeDONOTUSE("initialized", ...data);
|
|
367
367
|
});
|
|
368
368
|
});
|
|
369
369
|
}
|
|
@@ -381,7 +381,7 @@ class Orchestrator extends MediatorUser_1.default {
|
|
|
381
381
|
}).then(() => {
|
|
382
382
|
this._Descriptor = null;
|
|
383
383
|
this.initialized = false;
|
|
384
|
-
this.
|
|
384
|
+
this._emitEventGenericForTSPurposeDONOTUSE("released", ...data);
|
|
385
385
|
});
|
|
386
386
|
}
|
|
387
387
|
// write
|
|
@@ -2,6 +2,7 @@ import MediatorUser, { type iMediatorUserOptions } from "./MediatorUser";
|
|
|
2
2
|
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
3
3
|
import type { Server as WebSocketServer } from "ws";
|
|
4
4
|
import type { Server as SocketIOServer } from "socket.io";
|
|
5
|
+
import type { tEventMap, iEventsMinimal } from "./DescriptorUser";
|
|
5
6
|
export interface iClient {
|
|
6
7
|
"id": string;
|
|
7
8
|
"status": "CONNECTED" | "DISCONNECTED";
|
|
@@ -22,7 +23,7 @@ export interface iServerResponse extends ServerResponse {
|
|
|
22
23
|
"body": string;
|
|
23
24
|
"headers": Record<string, any>;
|
|
24
25
|
}
|
|
25
|
-
export default class Server extends MediatorUser {
|
|
26
|
+
export default class Server<T extends tEventMap<T> = iEventsMinimal> extends MediatorUser<T> {
|
|
26
27
|
protected _socketServer: WebSocketServer | SocketIOServer | null;
|
|
27
28
|
protected _checkParameters: boolean;
|
|
28
29
|
protected _checkResponse: boolean;
|
|
@@ -634,7 +634,7 @@ class Server extends MediatorUser_1.default {
|
|
|
634
634
|
return this._initWorkSpace(...data);
|
|
635
635
|
}).then(() => {
|
|
636
636
|
this.initialized = true;
|
|
637
|
-
this.
|
|
637
|
+
this._emitEventGenericForTSPurposeDONOTUSE("initialized", ...data);
|
|
638
638
|
});
|
|
639
639
|
}
|
|
640
640
|
release(...data) {
|
|
@@ -650,7 +650,7 @@ class Server extends MediatorUser_1.default {
|
|
|
650
650
|
this._externalRessourcesDirectory = "";
|
|
651
651
|
this._socketServer = null;
|
|
652
652
|
this.initialized = false;
|
|
653
|
-
this.
|
|
653
|
+
this._emitEventGenericForTSPurposeDONOTUSE("released", ...data);
|
|
654
654
|
}).then(() => {
|
|
655
655
|
this.removeAllListeners();
|
|
656
656
|
});
|
package/lib/cjs/main.d.cts
CHANGED
|
@@ -20,7 +20,7 @@ import { checkIntegerBetween, checkIntegerBetweenSync } from "./checkers/RangeEr
|
|
|
20
20
|
import { checkArrayLength, checkArrayLengthSync } from "./checkers/RangeError/checkArrayLength";
|
|
21
21
|
import { checkArrayLengthBetween, checkArrayLengthBetweenSync } from "./checkers/RangeError/checkArrayLengthBetween";
|
|
22
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, { type iDescriptorUserOptions, type tLogType, type tLogger } from "./components/DescriptorUser";
|
|
23
|
+
import DescriptorUser, { type iDescriptorUserOptions, type tLogType, type tLogger, type iEventsMinimal } from "./components/DescriptorUser";
|
|
24
24
|
import Mediator, { type iUrlAllowedParameters } from "./components/Mediator";
|
|
25
25
|
import MediatorUser, { type iMediatorUserOptions } from "./components/MediatorUser";
|
|
26
26
|
import Orchestrator, { type iOrchestratorOptions } from "./components/Orchestrator";
|
|
@@ -28,5 +28,5 @@ import Server, { type iClient, type iServerResponse } from "./components/Server"
|
|
|
28
28
|
import UnauthorizedError from "./components/errors/UnauthorizedError";
|
|
29
29
|
import NotFoundError from "./components/errors/NotFoundError";
|
|
30
30
|
import LockedError from "./components/errors/LockedError";
|
|
31
|
-
export type { tLogType, tLogger, iUrlAllowedParameters, iClient, iServerResponse };
|
|
31
|
+
export type { tLogType, tLogger, iEventsMinimal, iUrlAllowedParameters, iClient, iServerResponse };
|
|
32
32
|
export { DescriptorUser, type iDescriptorUserOptions, Mediator, MediatorUser, type iMediatorUserOptions, Orchestrator, type iOrchestratorOptions, Server, UnauthorizedError, NotFoundError, LockedError };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OpenApiDocument } from "express-openapi-validate";
|
|
1
|
+
import type { OpenApiDocument } from "express-openapi-validate";
|
|
2
2
|
export type tMethod = "get" | "put" | "post" | "delete" | "options" | "head" | "patch" | "trace";
|
|
3
3
|
export interface iPathMethod {
|
|
4
4
|
"path": string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { iIncomingMessage } from "../../components/Server";
|
|
1
|
+
import type { iIncomingMessage } from "../../components/Server";
|
|
2
2
|
export default function extractCookies(req: iIncomingMessage): Record<string, string>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
|
|
3
3
|
"name": "node-pluginsmanager-plugin",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.5.0",
|
|
5
5
|
"description": "An abstract parent plugin for node-pluginsmanager",
|
|
6
6
|
|
|
7
7
|
"type": "commonjs",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
},
|
|
44
44
|
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@apidevtools/swagger-parser": "12.
|
|
46
|
+
"@apidevtools/swagger-parser": "12.1.0",
|
|
47
47
|
"express-openapi-validate": "0.6.1",
|
|
48
48
|
"uniqid": "5.4.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@types/express": "5.0.
|
|
52
|
-
"@types/node": "24.
|
|
51
|
+
"@types/express": "5.0.5",
|
|
52
|
+
"@types/node": "24.9.2",
|
|
53
53
|
"@types/socket.io": "3.0.2",
|
|
54
54
|
"@types/uniqid": "5.3.4",
|
|
55
55
|
"@types/ws": "8.18.1",
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
"eslint-plugin-personnallinter": "git+ssh://git@github.com/Psychopoulet/eslint-plugin-personnallinter",
|
|
59
59
|
"express": "5.1.0",
|
|
60
60
|
"husky": "9.1.7",
|
|
61
|
-
"mocha": "11.7.
|
|
61
|
+
"mocha": "11.7.4",
|
|
62
62
|
"nyc": "17.1.0",
|
|
63
63
|
"openapi-types": "12.1.3",
|
|
64
|
-
"rimraf": "6.0
|
|
64
|
+
"rimraf": "6.1.0",
|
|
65
65
|
"socket.io": "4.8.1",
|
|
66
66
|
"socket.io-client": "4.8.1",
|
|
67
|
-
"typescript": "5.9.
|
|
67
|
+
"typescript": "5.9.3",
|
|
68
68
|
"used-deps-analyzer": "0.1.8",
|
|
69
69
|
"ws": "8.18.3"
|
|
70
70
|
},
|