@litert/televoke 1.0.0-1 → 1.0.0-10
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/docs/Televoke_v2.md +378 -0
- package/lib/client/JsonApiClient.impl.js.map +1 -1
- package/lib/client/LegacyHttpClient.impl.d.ts +17 -16
- package/lib/client/LegacyHttpClient.impl.d.ts.map +1 -1
- package/lib/client/LegacyHttpClient.impl.js +25 -11
- package/lib/client/LegacyHttpClient.impl.js.map +1 -1
- package/lib/server/Server.decl.d.ts +2 -1
- package/lib/server/Server.decl.d.ts.map +1 -1
- package/lib/server/Server.impl.d.ts +1 -0
- package/lib/server/Server.impl.d.ts.map +1 -1
- package/lib/server/Server.impl.js +8 -1
- package/lib/server/Server.impl.js.map +1 -1
- package/lib/server/SimpleJsonApiRouter.d.ts +3 -1
- package/lib/server/SimpleJsonApiRouter.d.ts.map +1 -1
- package/lib/server/SimpleJsonApiRouter.js +18 -8
- package/lib/server/SimpleJsonApiRouter.js.map +1 -1
- package/lib/shared/BinaryStream.js.map +1 -1
- package/lib/shared/BinaryStreamManager.js.map +1 -1
- package/lib/shared/Channel.impl.js.map +1 -1
- package/lib/shared/Encodings/v1/EncoderV1.js.map +1 -1
- package/lib/shared/Encodings/v2/DecoderV2.js +1 -1
- package/lib/shared/Encodings/v2/DecoderV2.js.map +1 -1
- package/lib/shared/Encodings/v2/EncoderV2.js +3 -3
- package/lib/shared/Encodings/v2/EncoderV2.js.map +1 -1
- package/lib/shared/Errors.d.ts +2 -0
- package/lib/shared/Errors.d.ts.map +1 -1
- package/lib/shared/Errors.js +2 -0
- package/lib/shared/Errors.js.map +1 -1
- package/lib/shared/Utils.js.map +1 -1
- package/lib/transporters/http-listener/HttpListener.d.ts.map +1 -1
- package/lib/transporters/http-listener/HttpListener.js +1 -0
- package/lib/transporters/http-listener/HttpListener.js.map +1 -1
- package/lib/transporters/http-listener/HttpUnixSocketListener.js.map +1 -1
- package/lib/transporters/http-listener/HttpsListener.js.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.js +22 -15
- package/lib/transporters/legacy-http/LegacyHttp.Server.js.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Transporter.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js.map +1 -1
- package/lib/transporters/memory/Memory.Impl.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.Server.d.ts +11 -1
- package/lib/transporters/websocket/WebSocket.Server.d.ts.map +1 -1
- package/lib/transporters/websocket/WebSocket.Server.js +4 -3
- package/lib/transporters/websocket/WebSocket.Server.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.Transporter.js.map +1 -1
- package/package.json +8 -8
- package/src/lib/client/LegacyHttpClient.impl.ts +51 -31
- package/src/lib/server/Server.decl.ts +3 -1
- package/src/lib/server/Server.impl.ts +10 -1
- package/src/lib/server/SimpleJsonApiRouter.ts +22 -10
- package/src/lib/shared/Encodings/v2/DecoderV2.ts +1 -1
- package/src/lib/shared/Encodings/v2/EncoderV2.ts +3 -3
- package/src/lib/shared/Errors.ts +2 -0
- package/src/lib/transporters/http-listener/HttpListener.ts +1 -0
- package/src/lib/transporters/legacy-http/LegacyHttp.Server.ts +38 -21
- package/src/lib/transporters/websocket/WebSocket.Server.ts +16 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LwDFX.UnixSocket.Server.js","sourceRoot":"","sources":["../../../src/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,uCAAuC;AAGvC,6CAA2C;AAC3C,2DAAuD;AAIvD,MAAM,sBAAuB,SAAQ,0BAAY;IAM7C,YACI,UAAkC,EACjB,YAA4C,EAC5C,OAAmB;QAGpC,KAAK,EAAE,CAAC;QAJS,iBAAY,GAAZ,YAAY,CAAgC;QAC5C,YAAO,GAAP,OAAO,CAAY;QAPhC,aAAQ,GAA+C,IAAI,CAAC;QAYhE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,GAAG,UAAU;YACb,YAAY,EAAE,CAAC,WAAW,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YAExC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,oCAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,OAAO;QAEd,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,KAAK;QAEd,IAAI,IAAI,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"LwDFX.UnixSocket.Server.js","sourceRoot":"","sources":["../../../src/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,uCAAuC;AAGvC,6CAA2C;AAC3C,2DAAuD;AAIvD,MAAM,sBAAuB,SAAQ,0BAAY;IAM7C,YACI,UAAkC,EACjB,YAA4C,EAC5C,OAAmB;QAGpC,KAAK,EAAE,CAAC;QAJS,iBAAY,GAAZ,YAAY,CAAgC;QAC5C,YAAO,GAAP,OAAO,CAAY;QAPhC,aAAQ,GAA+C,IAAI,CAAC;QAYhE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,GAAG,UAAU;YACb,YAAY,EAAE,CAAC,WAAW,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YAExC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,oCAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,OAAO;QAEd,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,KAAK;QAEd,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAErF,IAAI,CAAC;YAED,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YAEP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI;QAEb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEjB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;CACJ;AAED,SAAgB,uBAAuB,CACnC,MAAkB,EAClB,WAA2C,EAC3C,aAAqC,EAAE;IAGvC,OAAO,IAAI,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAPD,0DAOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.Impl.js","sourceRoot":"","sources":["../../../src/lib/transporters/memory/Memory.Impl.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,uCAAuC;AAEvC,6CAA2C;AAC3C,sCAAsC;AAStC,SAAS,gBAAgB;IAErB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAeD,MAAM,cAAe,SAAQ,0BAAY;IAMrC,YACoB,IAAY;QAG5B,KAAK,EAAE,CAAC;QAHQ,SAAI,GAAJ,IAAI,CAAQ;QALxB,YAAO,GAAY,KAAK,CAAC;QAEzB,YAAO,GAAY,KAAK,CAAC;IAOjC,CAAC;IAEM,IAAI,CAAC,cAAyB,EAAE,IAAS;QAE5C,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAEM,OAAO,CAAC,QAAmB;QAE9B,IAAI,QAAQ,KAAK,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"Memory.Impl.js","sourceRoot":"","sources":["../../../src/lib/transporters/memory/Memory.Impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,21 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type * as Listener from '../http-listener';
|
|
17
17
|
import type * as dT from '../Transporter.decl';
|
|
18
|
+
export interface IWebSocketGatewayOptions {
|
|
19
|
+
/**
|
|
20
|
+
* The timeout of WebSocket connections.
|
|
21
|
+
*
|
|
22
|
+
* > Set to 0 to disable timeout.
|
|
23
|
+
*
|
|
24
|
+
* @default 60000
|
|
25
|
+
*/
|
|
26
|
+
timeout?: number;
|
|
27
|
+
}
|
|
18
28
|
/**
|
|
19
29
|
* Create a WebSocket gateway.
|
|
20
30
|
*
|
|
21
31
|
* @param listener The HTTP(S) listener object.
|
|
22
32
|
* @param server The televoke server object.
|
|
23
33
|
*/
|
|
24
|
-
export declare function createWebsocketGateway(listener: Listener.IHttpListener, server: dT.IServer): dT.IGateway;
|
|
34
|
+
export declare function createWebsocketGateway(listener: Listener.IHttpListener, server: dT.IServer, options?: IWebSocketGatewayOptions): dT.IGateway;
|
|
25
35
|
//# sourceMappingURL=WebSocket.Server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocket.Server.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AAIF,OAAO,KAAK,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"WebSocket.Server.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AAIF,OAAO,KAAK,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAwF/C,MAAM,WAAW,wBAAwB;IAErC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,QAAQ,CAAC,aAAa,EAChC,MAAM,EAAE,EAAE,CAAC,OAAO,EAClB,OAAO,GAAE,wBAA6B,GACvC,EAAE,CAAC,QAAQ,CAGb"}
|
|
@@ -21,7 +21,7 @@ const dWS = require("./WebSocket.decl");
|
|
|
21
21
|
const node_events_1 = require("node:events");
|
|
22
22
|
const WebSocket_Transporter_1 = require("./WebSocket.Transporter");
|
|
23
23
|
class WebSocketGateway extends node_events_1.EventEmitter {
|
|
24
|
-
constructor(_listener, _server) {
|
|
24
|
+
constructor(_listener, _server, timeout) {
|
|
25
25
|
super();
|
|
26
26
|
this._listener = _listener;
|
|
27
27
|
this._server = _server;
|
|
@@ -56,6 +56,7 @@ class WebSocketGateway extends node_events_1.EventEmitter {
|
|
|
56
56
|
.setUpgradeProcessor(this._onUpgrade);
|
|
57
57
|
this._wsServer = LibWS.createServer({
|
|
58
58
|
liteFrameMode: true,
|
|
59
|
+
timeout,
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
62
|
get running() {
|
|
@@ -80,8 +81,8 @@ class WebSocketGateway extends node_events_1.EventEmitter {
|
|
|
80
81
|
* @param listener The HTTP(S) listener object.
|
|
81
82
|
* @param server The televoke server object.
|
|
82
83
|
*/
|
|
83
|
-
function createWebsocketGateway(listener, server) {
|
|
84
|
-
return new WebSocketGateway(listener, server);
|
|
84
|
+
function createWebsocketGateway(listener, server, options = {}) {
|
|
85
|
+
return new WebSocketGateway(listener, server, options.timeout);
|
|
85
86
|
}
|
|
86
87
|
exports.createWebsocketGateway = createWebsocketGateway;
|
|
87
88
|
//# sourceMappingURL=WebSocket.Server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocket.Server.js","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,2CAA2C;AAC3C,wCAAwC;AAGxC,6CAA2C;AAC3C,mEAA+D;AAE/D,MAAM,gBAAiB,SAAQ,0BAAY;IAIvC,YACqB,SAAiC,EACjC,OAAmB;
|
|
1
|
+
{"version":3,"file":"WebSocket.Server.js","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,2CAA2C;AAC3C,wCAAwC;AAGxC,6CAA2C;AAC3C,mEAA+D;AAE/D,MAAM,gBAAiB,SAAQ,0BAAY;IAIvC,YACqB,SAAiC,EACjC,OAAmB,EACpC,OAAgB;QAGhB,KAAK,EAAE,CAAC;QALS,cAAS,GAAT,SAAS,CAAwB;QACjC,YAAO,GAAP,OAAO,CAAY;QAgBvB,eAAU,GAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAEtE,IAAI,GAAG,GAAsB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAE,CAAC;YAEzE,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEP,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBAClB,SAAS,EAAE,GAAG;oBACd,QAAQ,EAAE,MAAa;iBAC1B,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAEtB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAE5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBAClB,SAAS,EAAE,GAAG;oBACd,QAAQ,EAAE,MAAa;iBAC1B,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC7B,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,MAAa;gBACvB,aAAa,EAAE,GAAG,CAAC,sBAAsB;aAC5C,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,4CAAoB,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC;QA5CE,IAAI,CAAC,SAAS;aACT,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aACzC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;YAChC,aAAa,EAAE,IAAI;YACnB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAsCD,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,KAAK;QAEd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAEf,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,IAAI;QAEb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAEhB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACJ;AAcD;;;;;GAKG;AACH,SAAgB,sBAAsB,CAClC,QAAgC,EAChC,MAAkB,EAClB,UAAoC,EAAE;IAGtC,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC;AAPD,wDAOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocket.Transporter.js","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Transporter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,2CAA2C;AAC3C,uCAAuC;AAEvC,6CAA2C;AAE3C,MAAM,cAAc,GAAG,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAEvG,MAAa,oBAAqB,SAAQ,0BAAY;IAElD,YACoB,QAAgB,EACb,KAAuB;QAE1C,KAAK,EAAE,CAAC;QAHQ,aAAQ,GAAR,QAAQ,CAAQ;QACb,UAAK,GAAL,KAAK,CAAkB;QAI1C,IAAI,CAAC,KAAK;aACL,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACvC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAEnB,QAAQ,KAAK,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"WebSocket.Transporter.js","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Transporter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@litert/televoke",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-10",
|
|
4
4
|
"description": "A simple RPC service framework.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
"types": "lib/index.d.ts",
|
|
33
33
|
"typings": "lib/index.d.ts",
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@commitlint/cli": "^18.4.
|
|
36
|
-
"@commitlint/config-conventional": "^18.4.
|
|
35
|
+
"@commitlint/cli": "^18.4.3",
|
|
36
|
+
"@commitlint/config-conventional": "^18.4.3",
|
|
37
37
|
"@litert/eslint-plugin-rules": "^0.1.6",
|
|
38
|
-
"@litert/lwdfx": "^1.1.
|
|
39
|
-
"@litert/websocket": "^0.1.
|
|
40
|
-
"@types/mocha": "^10.0.
|
|
41
|
-
"@types/node": "^20.
|
|
38
|
+
"@litert/lwdfx": "^1.1.3",
|
|
39
|
+
"@litert/websocket": "^0.1.1",
|
|
40
|
+
"@types/mocha": "^10.0.6",
|
|
41
|
+
"@types/node": "^20.10.4",
|
|
42
42
|
"husky": "^8.0.3",
|
|
43
43
|
"mocha": "^10.2.0",
|
|
44
|
-
"typescript": "^5.
|
|
44
|
+
"typescript": "^5.3.3"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=18.0.0"
|
|
@@ -36,7 +36,8 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
|
|
|
36
36
|
private readonly _request: (opts: any, cb: (resp: $Http.IncomingMessage) => void) => $Http.ClientRequest,
|
|
37
37
|
private readonly _opts: $Https.RequestOptions,
|
|
38
38
|
private readonly _agent: $Http.Agent,
|
|
39
|
-
private readonly
|
|
39
|
+
private readonly _retryOnConnReset: boolean = true,
|
|
40
|
+
private readonly _apiNameWrapper?: (name: string) => string,
|
|
40
41
|
) {
|
|
41
42
|
|
|
42
43
|
super();
|
|
@@ -75,7 +76,26 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
|
|
|
75
76
|
return Promise.reject(new Shared.errors.cmd_not_impl());
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
public invoke(api: any, ...args: any[]): Promise<any> {
|
|
79
|
+
public async invoke(api: any, ...args: any[]): Promise<any> {
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
|
|
83
|
+
return await this._invoke(api, ...args);
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
|
|
87
|
+
if (this._retryOnConnReset && (e as any)?.code === 'ECONNRESET') {
|
|
88
|
+
|
|
89
|
+
return this._invoke(api, ...args);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
|
|
93
|
+
throw e;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private _invoke(api: any, ...args: any[]): Promise<any> {
|
|
79
99
|
|
|
80
100
|
const CST = Date.now();
|
|
81
101
|
|
|
@@ -84,7 +104,7 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
|
|
|
84
104
|
rid: 0,
|
|
85
105
|
cst: CST,
|
|
86
106
|
args,
|
|
87
|
-
api: this._apiNameWrapper
|
|
107
|
+
api: this._apiNameWrapper?.(api) ?? api
|
|
88
108
|
});
|
|
89
109
|
|
|
90
110
|
return new Promise((resolve, reject) => {
|
|
@@ -174,7 +194,7 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
|
|
|
174
194
|
case v1.EResponseCode.MALFORMED_ARGUMENTS:
|
|
175
195
|
case v1.EResponseCode.SYSTEM_ERROR:
|
|
176
196
|
default:
|
|
177
|
-
reject(new Shared.errors.
|
|
197
|
+
reject(new Shared.errors.server_internal_error({
|
|
178
198
|
api, ...data
|
|
179
199
|
}));
|
|
180
200
|
break;
|
|
@@ -207,7 +227,7 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
|
|
|
207
227
|
}
|
|
208
228
|
}
|
|
209
229
|
|
|
210
|
-
|
|
230
|
+
interface IHttpClientOptionsBase extends $Https.RequestOptions {
|
|
211
231
|
|
|
212
232
|
/**
|
|
213
233
|
* Whether to use HTTPS.
|
|
@@ -217,44 +237,43 @@ export interface IHttpClientNetworkOptions extends $Https.RequestOptions {
|
|
|
217
237
|
https?: boolean;
|
|
218
238
|
|
|
219
239
|
/**
|
|
220
|
-
*
|
|
240
|
+
* Wrap the API name before sending to server.
|
|
221
241
|
*
|
|
222
|
-
* @default
|
|
242
|
+
* @default null
|
|
223
243
|
*/
|
|
224
|
-
|
|
244
|
+
apiNameWrapper?: (name: string) => string;
|
|
225
245
|
|
|
226
246
|
/**
|
|
227
|
-
*
|
|
247
|
+
* Whether to retry on connection reset.
|
|
228
248
|
*
|
|
229
|
-
* @default
|
|
249
|
+
* @default true
|
|
230
250
|
*/
|
|
231
|
-
|
|
251
|
+
retryOnConnReset?: boolean;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export interface IHttpClientNetworkOptions extends IHttpClientOptionsBase {
|
|
232
255
|
|
|
233
256
|
/**
|
|
234
|
-
* The
|
|
257
|
+
* The hostname of HTTP server.
|
|
235
258
|
*
|
|
236
|
-
* @default '
|
|
259
|
+
* @default 'localhost'
|
|
237
260
|
*/
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
apiNameWrapper?: (name: string) => string;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
export interface IHttpClientUnixSocketOptions extends $Https.RequestOptions {
|
|
261
|
+
hostname: string;
|
|
244
262
|
|
|
245
263
|
/**
|
|
246
|
-
*
|
|
264
|
+
* The port of HTTP server.
|
|
247
265
|
*
|
|
248
|
-
*
|
|
266
|
+
* @default 80 or 443
|
|
249
267
|
*/
|
|
250
|
-
|
|
268
|
+
port?: number;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export interface IHttpClientUnixSocketOptions extends IHttpClientOptionsBase {
|
|
251
272
|
|
|
252
273
|
/**
|
|
253
274
|
* The path of Unix domain socket to connect to.
|
|
254
275
|
*/
|
|
255
276
|
socketPath: string;
|
|
256
|
-
|
|
257
|
-
apiNameWrapper?: (name: string) => string;
|
|
258
277
|
}
|
|
259
278
|
|
|
260
279
|
export type IHttpClientOptions = IHttpClientNetworkOptions | IHttpClientUnixSocketOptions;
|
|
@@ -265,14 +284,15 @@ export function createLegacyHttpClient<TAPIs extends Shared.IObject>(opts: IHttp
|
|
|
265
284
|
opts.https ? $Https.request : $Http.request,
|
|
266
285
|
opts,
|
|
267
286
|
opts.https ? new $Https.Agent({
|
|
268
|
-
maxSockets: 0,
|
|
269
|
-
keepAlive: true,
|
|
270
|
-
keepAliveMsecs: DEFAULT_TIMEOUT
|
|
287
|
+
'maxSockets': 0,
|
|
288
|
+
'keepAlive': true,
|
|
289
|
+
'keepAliveMsecs': DEFAULT_TIMEOUT
|
|
271
290
|
}) : new $Http.Agent({
|
|
272
|
-
maxSockets: 0,
|
|
273
|
-
keepAlive: true,
|
|
274
|
-
keepAliveMsecs: DEFAULT_TIMEOUT
|
|
291
|
+
'maxSockets': 0,
|
|
292
|
+
'keepAlive': true,
|
|
293
|
+
'keepAliveMsecs': DEFAULT_TIMEOUT
|
|
275
294
|
}),
|
|
276
|
-
opts.
|
|
295
|
+
opts.retryOnConnReset,
|
|
296
|
+
opts.apiNameWrapper,
|
|
277
297
|
);
|
|
278
298
|
}
|
|
@@ -41,7 +41,7 @@ export type IRouteApiCallback = (response: string | Buffer | Array<string | Buff
|
|
|
41
41
|
|
|
42
42
|
export type IRouteLegacyApiCallback = (response: unknown | Shared.TvErrorResponse | Shared.TelevokeError) => void;
|
|
43
43
|
|
|
44
|
-
export interface IRouter {
|
|
44
|
+
export interface IRouter extends Shared.IEventListener<Shared.IDefaultEvents> {
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* The encoding of the API request/response.
|
|
@@ -82,6 +82,8 @@ export interface IRouter {
|
|
|
82
82
|
export interface IServerEvents extends Shared.IDefaultEvents {
|
|
83
83
|
|
|
84
84
|
channel(channel: IChannel): void;
|
|
85
|
+
|
|
86
|
+
warning(error: unknown, channel?: IChannel): void;
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
export interface IServer extends Shared.IEventListener<IServerEvents> {
|
|
@@ -35,11 +35,19 @@ export class TvServer extends EventEmitter implements dS.IServer, dT.IServer {
|
|
|
35
35
|
private readonly _streamManagerFactory: Shared.IStreamManagerFactory = Shared.createSharedStreamManagerFactory()
|
|
36
36
|
) {
|
|
37
37
|
super();
|
|
38
|
+
this.router.on('error', this._onRouterError);
|
|
38
39
|
}
|
|
39
40
|
|
|
41
|
+
private readonly _onRouterError = (e: unknown): void => {
|
|
42
|
+
|
|
43
|
+
this.emit('error', e);
|
|
44
|
+
};
|
|
45
|
+
|
|
40
46
|
public setRouter(router: dS.IRouter): void {
|
|
41
47
|
|
|
42
|
-
this.router
|
|
48
|
+
this.router?.off('error', this._onRouterError);
|
|
49
|
+
this.router = router
|
|
50
|
+
.on('error', this._onRouterError);
|
|
43
51
|
}
|
|
44
52
|
|
|
45
53
|
public registerChannel(transporter: dT.ITransporter): void {
|
|
@@ -60,6 +68,7 @@ export class TvServer extends EventEmitter implements dS.IServer, dT.IServer {
|
|
|
60
68
|
});
|
|
61
69
|
})
|
|
62
70
|
.on('error', (err) => this.emit('error', err))
|
|
71
|
+
.on('warning', (err) => this.emit('warning', err, this._channels[id]))
|
|
63
72
|
.on('close', () => { delete this._channels[id]; });
|
|
64
73
|
}
|
|
65
74
|
|
|
@@ -17,12 +17,13 @@
|
|
|
17
17
|
import type * as dS from './Server.decl';
|
|
18
18
|
import * as Shared from '../shared';
|
|
19
19
|
import { buffer2json } from '../shared/Utils';
|
|
20
|
+
import { EventEmitter } from 'node:events';
|
|
20
21
|
|
|
21
22
|
export type ISimpleJsonApiHandler = (ctx: dS.IRequestContext, ...args: any[]) => unknown;
|
|
22
23
|
|
|
23
24
|
export type ISimpleJsonMessageHandler = (ctx: dS.IRequestContext, msg: unknown) => unknown;
|
|
24
25
|
|
|
25
|
-
export class SimpleJsonApiRouter implements dS.IRouter {
|
|
26
|
+
export class SimpleJsonApiRouter extends EventEmitter implements dS.IRouter {
|
|
26
27
|
|
|
27
28
|
public get encoding(): string {
|
|
28
29
|
|
|
@@ -65,8 +66,18 @@ export class SimpleJsonApiRouter implements dS.IRouter {
|
|
|
65
66
|
if (result instanceof Promise) {
|
|
66
67
|
|
|
67
68
|
result.then(
|
|
68
|
-
(data) => {
|
|
69
|
-
|
|
69
|
+
(data) => {
|
|
70
|
+
|
|
71
|
+
try {
|
|
72
|
+
|
|
73
|
+
cb(JSON.stringify(data ?? null));
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
|
|
77
|
+
this._processError(cb, e, name);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
(e) => { this._processError(cb, e, name); },
|
|
70
81
|
);
|
|
71
82
|
}
|
|
72
83
|
else {
|
|
@@ -76,11 +87,11 @@ export class SimpleJsonApiRouter implements dS.IRouter {
|
|
|
76
87
|
}
|
|
77
88
|
catch (e) {
|
|
78
89
|
|
|
79
|
-
this._processError(cb, e);
|
|
90
|
+
this._processError(cb, e, name);
|
|
80
91
|
}
|
|
81
92
|
}
|
|
82
93
|
|
|
83
|
-
private _processError(cb: dS.IRouteApiCallback, e: unknown): void {
|
|
94
|
+
private _processError(cb: dS.IRouteApiCallback, e: unknown, name: string): void {
|
|
84
95
|
|
|
85
96
|
if (e instanceof Shared.TelevokeError) {
|
|
86
97
|
|
|
@@ -90,11 +101,12 @@ export class SimpleJsonApiRouter implements dS.IRouter {
|
|
|
90
101
|
|
|
91
102
|
if (e instanceof Shared.TvErrorResponse) {
|
|
92
103
|
|
|
93
|
-
cb(new Shared.errors.app_error(JSON.stringify(e.data)));
|
|
104
|
+
cb(new Shared.errors.app_error(JSON.stringify(e.data ?? null)));
|
|
94
105
|
return;
|
|
95
106
|
}
|
|
96
107
|
|
|
97
|
-
cb(new Shared.errors.
|
|
108
|
+
cb(new Shared.errors.server_internal_error());
|
|
109
|
+
this.emit('error', new Shared.errors.unprocessable_error({ api: name }, e));
|
|
98
110
|
}
|
|
99
111
|
|
|
100
112
|
public processLegacyApi(
|
|
@@ -118,8 +130,8 @@ export class SimpleJsonApiRouter implements dS.IRouter {
|
|
|
118
130
|
if (result instanceof Promise) {
|
|
119
131
|
|
|
120
132
|
result.then(
|
|
121
|
-
(data) => { cb(data); },
|
|
122
|
-
(e) => { this._processError(cb, e); },
|
|
133
|
+
(data) => { cb(data ?? null); },
|
|
134
|
+
(e) => { this._processError(cb, e, name); },
|
|
123
135
|
);
|
|
124
136
|
}
|
|
125
137
|
else {
|
|
@@ -129,7 +141,7 @@ export class SimpleJsonApiRouter implements dS.IRouter {
|
|
|
129
141
|
}
|
|
130
142
|
catch (e) {
|
|
131
143
|
|
|
132
|
-
this._processError(cb, e);
|
|
144
|
+
this._processError(cb, e, name);
|
|
133
145
|
}
|
|
134
146
|
}
|
|
135
147
|
}
|
|
@@ -234,7 +234,7 @@ class TvPushMessageRequestDecoder implements IPacketDecoder {
|
|
|
234
234
|
'cmd': CSv2.ECommand.PUSH_MESSAGE,
|
|
235
235
|
'typ': CSv2.EPacketType.REQUEST,
|
|
236
236
|
'seq': ctx.seq,
|
|
237
|
-
'ct':
|
|
237
|
+
'ct': readVarBuffer(ctx)
|
|
238
238
|
} satisfies dEnc2.IPushMessageRequestPacket;
|
|
239
239
|
}
|
|
240
240
|
}
|
|
@@ -174,7 +174,7 @@ class PushMessageRequestEncoder implements IPacketEncoder {
|
|
|
174
174
|
|
|
175
175
|
public encode(packet: dEnc2.IPushMessageRequestPacket): v2.IDataChunkArray {
|
|
176
176
|
|
|
177
|
-
const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE +
|
|
177
|
+
const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 4);
|
|
178
178
|
|
|
179
179
|
writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
|
|
180
180
|
|
|
@@ -187,12 +187,12 @@ class PushMessageRequestEncoder implements IPacketEncoder {
|
|
|
187
187
|
bodyLen += Buffer.byteLength(p);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
leadSeg.
|
|
190
|
+
leadSeg.writeUInt32LE(bodyLen, CS.HEADER_SIZE);
|
|
191
191
|
|
|
192
192
|
return [leadSeg, ...packet.ct];
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
leadSeg.
|
|
195
|
+
leadSeg.writeUInt32LE(Buffer.byteLength(packet.ct), CS.HEADER_SIZE);
|
|
196
196
|
|
|
197
197
|
return [leadSeg, packet.ct];
|
|
198
198
|
}
|
package/src/lib/shared/Errors.ts
CHANGED
|
@@ -75,8 +75,10 @@ const errorCtors = {
|
|
|
75
75
|
...defineProtocolError('stream_closed'),
|
|
76
76
|
...defineProtocolError('stream_index_mismatch'),
|
|
77
77
|
...defineProtocolError('system_busy'),
|
|
78
|
+
...defineProtocolError('server_internal_error'),
|
|
78
79
|
...defineProtocolError('timeout'),
|
|
79
80
|
...defineProtocolError('unknown'),
|
|
81
|
+
...defineProtocolError('unprocessable_error'),
|
|
80
82
|
|
|
81
83
|
['app_error']: class AppError extends TelevokeError {
|
|
82
84
|
|
|
@@ -27,7 +27,7 @@ const encoder = new v1.TvEncoderV1();
|
|
|
27
27
|
const INVALID_REQUEST_RESPONSE = Buffer.from(encoder.encodeApiErrorResponse(
|
|
28
28
|
'null',
|
|
29
29
|
Shared.Encodings.v1.EResponseCode.MALFORMED_ARGUMENTS,
|
|
30
|
-
'INVALID REQUEST',
|
|
30
|
+
'"INVALID REQUEST"',
|
|
31
31
|
0
|
|
32
32
|
));
|
|
33
33
|
|
|
@@ -76,6 +76,19 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
76
76
|
.setLegacyApiProcessor(this._onRequest);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
private _sendResponse(resp: Http.ServerResponse, data: string): void {
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
|
|
83
|
+
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
84
|
+
resp.end(data);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
|
|
88
|
+
this.emit('error', e);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
79
92
|
public get running(): boolean {
|
|
80
93
|
|
|
81
94
|
return this._listener.running;
|
|
@@ -159,7 +172,6 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
159
172
|
refuseBadRequest(resp);
|
|
160
173
|
this.emit('error', new Shared.errors.invalid_packet({
|
|
161
174
|
reason: 'invalid_json',
|
|
162
|
-
data: buf,
|
|
163
175
|
}, e));
|
|
164
176
|
return;
|
|
165
177
|
}
|
|
@@ -169,7 +181,6 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
169
181
|
refuseBadRequest(resp);
|
|
170
182
|
this.emit('error', new Shared.errors.invalid_packet({
|
|
171
183
|
reason: 'malformed_json',
|
|
172
|
-
data: input,
|
|
173
184
|
}));
|
|
174
185
|
return;
|
|
175
186
|
}
|
|
@@ -185,48 +196,54 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
|
|
|
185
196
|
|
|
186
197
|
if (result instanceof Shared.errors.app_error) {
|
|
187
198
|
|
|
188
|
-
|
|
199
|
+
this._sendResponse(resp, encoder.encodeApiErrorResponse(
|
|
189
200
|
input.rid,
|
|
190
201
|
v1.EResponseCode.FAILURE,
|
|
191
202
|
result.message,
|
|
192
203
|
recvAt
|
|
193
|
-
);
|
|
194
|
-
|
|
195
|
-
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
196
|
-
resp.end(data);
|
|
204
|
+
));
|
|
197
205
|
}
|
|
198
206
|
else if (result instanceof Shared.errors.api_not_found) {
|
|
199
207
|
|
|
200
|
-
|
|
208
|
+
this._sendResponse(resp, encoder.encodeApiErrorResponse(
|
|
201
209
|
input.rid,
|
|
202
210
|
v1.EResponseCode.API_NOT_FOUND,
|
|
203
211
|
'null',
|
|
204
212
|
recvAt
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
208
|
-
resp.end(data);
|
|
213
|
+
));
|
|
209
214
|
}
|
|
210
215
|
else {
|
|
211
216
|
|
|
212
|
-
|
|
217
|
+
this._sendResponse(resp, encoder.encodeApiErrorResponse(
|
|
213
218
|
input.rid,
|
|
214
219
|
v1.EResponseCode.SYSTEM_ERROR,
|
|
215
220
|
'null',
|
|
216
221
|
recvAt
|
|
217
|
-
);
|
|
218
|
-
|
|
219
|
-
resp.setHeader('content-length', Buffer.byteLength(data));
|
|
220
|
-
resp.end(data);
|
|
222
|
+
));
|
|
221
223
|
}
|
|
222
224
|
|
|
223
225
|
return;
|
|
224
226
|
}
|
|
225
227
|
|
|
226
|
-
|
|
228
|
+
let data: string;
|
|
229
|
+
|
|
230
|
+
try {
|
|
231
|
+
|
|
232
|
+
data = encoder.encodeApiOkResponse(input.rid, result ?? null, recvAt);
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
|
|
236
|
+
data = encoder.encodeApiErrorResponse(
|
|
237
|
+
input.rid,
|
|
238
|
+
v1.EResponseCode.SYSTEM_ERROR,
|
|
239
|
+
'null',
|
|
240
|
+
recvAt
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
this.emit('error', new Shared.errors.unprocessable_error({ api: input.api }, e));
|
|
244
|
+
}
|
|
227
245
|
|
|
228
|
-
|
|
229
|
-
resp.end(data);
|
|
246
|
+
this._sendResponse(resp, data);
|
|
230
247
|
|
|
231
248
|
}, input.api, input.args, new LegacyHttpTransporter(req));
|
|
232
249
|
});
|