@digipair/skill-client-websocket 0.91.0-0 → 0.91.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/index.cjs.d.ts +1 -0
- package/index.cjs.js +122 -0
- package/index.esm.js +28085 -0
- package/libs/skill-client-websocket/src/lib/skill-client-websocket.d.ts +4 -0
- package/package.json +8 -21
- package/.swcrc +0 -28
- package/README.md +0 -7
- package/eslint.config.mjs +0 -22
- package/rollup.config.cjs +0 -28
- package/src/handlebars.d.ts +0 -1
- package/src/lib/skill-client-websocket.spec.ts +0 -7
- package/src/lib/skill-client-websocket.ts +0 -130
- package/tsconfig.json +0 -16
- package/tsconfig.lib.json +0 -22
- /package/{src/index.d.ts → index.d.ts} +0 -0
- /package/{src/index.ts → libs/skill-client-websocket/src/index.d.ts} +0 -0
- /package/{src/schema.fr.json → schema.fr.json} +0 -0
- /package/{src/schema.json → schema.json} +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PinsSettings } from '@digipair/engine';
|
|
2
|
+
export declare const connect: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
3
|
+
export declare const send: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
|
4
|
+
export declare const close: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
|
package/package.json
CHANGED
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digipair/skill-client-websocket",
|
|
3
|
-
"version": "0.91.0
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/libs/skill-client-websocket/index.cjs.js",
|
|
6
|
-
"module": "dist/libs/skill-client-websocket/index.esm.js",
|
|
7
|
-
"types": "dist/libs/skill-client-websocket/index.esm.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
"./package.json": "./libs/skill-client-websocket/package.json",
|
|
10
|
-
".": {
|
|
11
|
-
"development": "./dist/libs/skill-client-websocket/src/index.ts",
|
|
12
|
-
"types": "./dist/libs/skill-client-websocket/index.esm.d.ts",
|
|
13
|
-
"import": "./dist/libs/skill-client-websocket/index.esm.js",
|
|
14
|
-
"default": "./dist/libs/skill-client-websocket/index.cjs.js"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
3
|
+
"version": "0.91.0",
|
|
17
4
|
"keywords": [
|
|
18
5
|
"digipair",
|
|
19
6
|
"web",
|
|
20
|
-
"service"
|
|
7
|
+
"service",
|
|
8
|
+
"tool"
|
|
21
9
|
],
|
|
22
|
-
"nx": {
|
|
23
|
-
"name": "skill-client-websocket"
|
|
24
|
-
},
|
|
25
10
|
"dependencies": {
|
|
26
|
-
"
|
|
27
|
-
}
|
|
28
|
-
|
|
11
|
+
"ws": "^8.18.0"
|
|
12
|
+
},
|
|
13
|
+
"main": "./index.cjs.js",
|
|
14
|
+
"module": "./index.esm.js"
|
|
15
|
+
}
|
package/.swcrc
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"jsc": {
|
|
3
|
-
"target": "es2017",
|
|
4
|
-
"parser": {
|
|
5
|
-
"syntax": "typescript",
|
|
6
|
-
"decorators": true,
|
|
7
|
-
"dynamicImport": true
|
|
8
|
-
},
|
|
9
|
-
"transform": {
|
|
10
|
-
"decoratorMetadata": true,
|
|
11
|
-
"legacyDecorator": true
|
|
12
|
-
},
|
|
13
|
-
"keepClassNames": true,
|
|
14
|
-
"externalHelpers": true,
|
|
15
|
-
"loose": true
|
|
16
|
-
},
|
|
17
|
-
"module": {
|
|
18
|
-
"type": "es6"
|
|
19
|
-
},
|
|
20
|
-
"sourceMaps": true,
|
|
21
|
-
"exclude": [
|
|
22
|
-
"jest.config.ts",
|
|
23
|
-
".*\\.spec.tsx?$",
|
|
24
|
-
".*\\.test.tsx?$",
|
|
25
|
-
"./src/jest-setup.ts$",
|
|
26
|
-
"./**/jest-setup.ts$"
|
|
27
|
-
]
|
|
28
|
-
}
|
package/README.md
DELETED
package/eslint.config.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import baseConfig from '../../eslint.config.mjs';
|
|
2
|
-
|
|
3
|
-
export default [
|
|
4
|
-
...baseConfig,
|
|
5
|
-
{
|
|
6
|
-
files: ['**/*.json'],
|
|
7
|
-
rules: {
|
|
8
|
-
'@nx/dependency-checks': [
|
|
9
|
-
'error',
|
|
10
|
-
{
|
|
11
|
-
ignoredFiles: [
|
|
12
|
-
'{projectRoot}/eslint.config.{js,cjs,mjs}',
|
|
13
|
-
'{projectRoot}/rollup.config.{js,ts,mjs,mts,cjs,cts}',
|
|
14
|
-
],
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
},
|
|
18
|
-
languageOptions: {
|
|
19
|
-
parser: await import('jsonc-eslint-parser'),
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
];
|
package/rollup.config.cjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
const { withNx } = require('@nx/rollup/with-nx');
|
|
2
|
-
|
|
3
|
-
module.exports = withNx(
|
|
4
|
-
{
|
|
5
|
-
main: 'libs/skill-client-websocket/src/index.ts',
|
|
6
|
-
outputPath: 'dist/libs/skill-client-websocket',
|
|
7
|
-
tsConfig: 'libs/skill-client-websocket/tsconfig.lib.json',
|
|
8
|
-
compiler: 'swc',
|
|
9
|
-
format: ['esm', "cjs"],
|
|
10
|
-
assets: [
|
|
11
|
-
{
|
|
12
|
-
input: 'libs/skill-client-websocket/',
|
|
13
|
-
glob: 'package.json',
|
|
14
|
-
output: '.'
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
input: 'libs/skill-client-websocket/src/',
|
|
18
|
-
glob: '*.json',
|
|
19
|
-
output: '.'
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
// Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
|
|
25
|
-
// e.g.
|
|
26
|
-
// output: { sourcemap: true },
|
|
27
|
-
}
|
|
28
|
-
);
|
package/src/handlebars.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare module 'handlebars/dist/handlebars.min.js';
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
import { PinsSettings, executePinsList } from '@digipair/engine';
|
|
3
|
-
|
|
4
|
-
const WS = typeof WebSocket === 'undefined' ? require('ws') : WebSocket;
|
|
5
|
-
|
|
6
|
-
class ClientWebSocketService {
|
|
7
|
-
private retryInterval!: number;
|
|
8
|
-
private maxRetries!: number;
|
|
9
|
-
private retryCount = 0;
|
|
10
|
-
|
|
11
|
-
ws: WebSocket | null = null;
|
|
12
|
-
cwssForceClose = false;
|
|
13
|
-
|
|
14
|
-
async send(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
|
|
15
|
-
const { websocket = context.websocket, message } = params;
|
|
16
|
-
return websocket.ws?.send(JSON.stringify(message));
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async close(params: any, _pinsSettingsList: PinsSettings[], context: any): Promise<any> {
|
|
20
|
-
const { websocket = context.websocket } = params;
|
|
21
|
-
websocket.cwssForceClose = true;
|
|
22
|
-
return websocket.ws?.close();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async connect(params: any, pinsSettingsList: PinsSettings[], context: any): Promise<any> {
|
|
26
|
-
const {
|
|
27
|
-
url = '',
|
|
28
|
-
message = [],
|
|
29
|
-
open = [],
|
|
30
|
-
close = [],
|
|
31
|
-
error = [],
|
|
32
|
-
retryInterval = 1000,
|
|
33
|
-
maxRetries = 10,
|
|
34
|
-
} = params;
|
|
35
|
-
|
|
36
|
-
this.retryInterval = retryInterval;
|
|
37
|
-
this.maxRetries = maxRetries;
|
|
38
|
-
|
|
39
|
-
// Crée une nouvelle instance WebSocket
|
|
40
|
-
this.ws = new WS(url, { signal: context.protected?.signal }) as WebSocket;
|
|
41
|
-
|
|
42
|
-
// Event onopen: Connexion réussie
|
|
43
|
-
this.ws.onopen = async () => {
|
|
44
|
-
this.retryCount = 0; // Réinitialise le compteur de tentatives après une connexion réussie
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
await executePinsList(open, { ...context, websocket: this }, `${context.__PATH__}.open`);
|
|
48
|
-
} catch (error: any) {
|
|
49
|
-
console.error(error);
|
|
50
|
-
|
|
51
|
-
const skillLogger = require('@digipair/skill-logger');
|
|
52
|
-
skillLogger.addLog(context, 'ERROR', error.message);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// Event onmessage: Réception d'un message
|
|
57
|
-
this.ws.onmessage = async (event: any) => {
|
|
58
|
-
try {
|
|
59
|
-
await executePinsList(message, {
|
|
60
|
-
...context,
|
|
61
|
-
message: JSON.parse(event.data),
|
|
62
|
-
websocket: this,
|
|
63
|
-
}, `${context.__PATH__}.message`);
|
|
64
|
-
} catch (error: any) {
|
|
65
|
-
console.error(error);
|
|
66
|
-
|
|
67
|
-
const skillLogger = require('@digipair/skill-logger');
|
|
68
|
-
skillLogger.addLog(context, 'ERROR', error.message);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
// Event onclose: Déconnexion
|
|
73
|
-
this.ws.onclose = async () => {
|
|
74
|
-
this.ws = null;
|
|
75
|
-
const reconnect = this.cwssForceClose
|
|
76
|
-
? false
|
|
77
|
-
: this.reconnectWebSocket(params, pinsSettingsList, context);
|
|
78
|
-
|
|
79
|
-
if (!reconnect) {
|
|
80
|
-
try {
|
|
81
|
-
await executePinsList(close, { ...context, websocket: this }, `${context.__PATH__}.close`);
|
|
82
|
-
} catch (error: any) {
|
|
83
|
-
console.error(error);
|
|
84
|
-
|
|
85
|
-
const skillLogger = require('@digipair/skill-logger');
|
|
86
|
-
skillLogger.addLog(context, 'ERROR', error.message);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
// Event onerror: Erreur
|
|
92
|
-
this.ws.onerror = async (err: Event) => {
|
|
93
|
-
try {
|
|
94
|
-
await executePinsList(error, { ...context, error: err, websocket: this }, `${context.__PATH__}.error`);
|
|
95
|
-
} catch (error: any) {
|
|
96
|
-
console.error(error);
|
|
97
|
-
|
|
98
|
-
const skillLogger = require('@digipair/skill-logger');
|
|
99
|
-
skillLogger.addLog(context, 'ERROR', error.message);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
this.ws?.close(); // Ferme la connexion en cas d'erreur
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
return this;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
private reconnectWebSocket(params: any, pinsSettingsList: PinsSettings[], context: any) {
|
|
109
|
-
if (this.retryCount >= this.maxRetries) {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
setTimeout(() => {
|
|
114
|
-
this.retryCount++;
|
|
115
|
-
this.retryInterval *= 2; // Double l'intervalle entre les tentatives
|
|
116
|
-
this.connect(params, pinsSettingsList, context);
|
|
117
|
-
}, this.retryInterval);
|
|
118
|
-
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export const connect = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
124
|
-
new ClientWebSocketService().connect(params, pinsSettingsList, context);
|
|
125
|
-
|
|
126
|
-
export const send = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
127
|
-
new ClientWebSocketService().send(params, pinsSettingsList, context);
|
|
128
|
-
|
|
129
|
-
export const close = (params: any, pinsSettingsList: PinsSettings[], context: any) =>
|
|
130
|
-
new ClientWebSocketService().close(params, pinsSettingsList, context);
|
package/tsconfig.json
DELETED
package/tsconfig.lib.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.base.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"rootDir": "src",
|
|
5
|
-
"outDir": "dist",
|
|
6
|
-
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
7
|
-
"emitDeclarationOnly": true,
|
|
8
|
-
"module": "esnext",
|
|
9
|
-
"moduleResolution": "node",
|
|
10
|
-
"forceConsistentCasingInFileNames": true,
|
|
11
|
-
"types": ["node"]
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*.ts"],
|
|
14
|
-
"references": [
|
|
15
|
-
{
|
|
16
|
-
"path": "../skill-logger/tsconfig.lib.json"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"path": "../engine/tsconfig.lib.json"
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|