@litert/televoke 1.0.3 → 1.2.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/CHANGES.md +17 -0
- package/lib/client/Client.decl.d.ts +1 -2
- package/lib/client/Client.decl.d.ts.map +1 -1
- package/lib/client/Client.decl.js +1 -1
- package/lib/client/JsonApiClient.impl.d.ts +1 -1
- package/lib/client/JsonApiClient.impl.js +2 -3
- package/lib/client/JsonApiClient.impl.js.map +1 -1
- package/lib/client/index.d.ts +1 -1
- package/lib/client/index.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/server/LegacyServerChannel.impl.d.ts +3 -3
- package/lib/server/LegacyServerChannel.impl.d.ts.map +1 -1
- package/lib/server/LegacyServerChannel.impl.js +3 -1
- package/lib/server/LegacyServerChannel.impl.js.map +1 -1
- package/lib/server/Server.decl.d.ts +1 -2
- package/lib/server/Server.decl.d.ts.map +1 -1
- package/lib/server/Server.decl.js +1 -1
- package/lib/server/Server.impl.d.ts +1 -2
- package/lib/server/Server.impl.d.ts.map +1 -1
- package/lib/server/Server.impl.js +1 -1
- package/lib/server/ServerChannel.d.ts +1 -1
- package/lib/server/ServerChannel.js +1 -1
- package/lib/server/SimpleJsonApiRouter.d.ts +1 -3
- package/lib/server/SimpleJsonApiRouter.d.ts.map +1 -1
- package/lib/server/SimpleJsonApiRouter.js +1 -1
- package/lib/server/index.d.ts +1 -1
- package/lib/server/index.js +1 -1
- package/lib/shared/BinaryStream.d.ts +1 -3
- package/lib/shared/BinaryStream.d.ts.map +1 -1
- package/lib/shared/BinaryStream.js +1 -1
- package/lib/shared/BinaryStreamManager.d.ts +1 -1
- package/lib/shared/BinaryStreamManager.js +5 -5
- package/lib/shared/BinaryStreamManager.js.map +1 -1
- package/lib/shared/Channel.impl.d.ts +3 -4
- package/lib/shared/Channel.impl.d.ts.map +1 -1
- package/lib/shared/Channel.impl.js +3 -1
- package/lib/shared/Channel.impl.js.map +1 -1
- package/lib/shared/Constants.d.ts +1 -1
- package/lib/shared/Constants.js +1 -1
- package/lib/shared/Encodings/index.d.ts +1 -1
- package/lib/shared/Encodings/index.js +1 -1
- package/lib/shared/Encodings/v1/EncoderV1.d.ts +1 -1
- package/lib/shared/Encodings/v1/EncoderV1.js +1 -1
- package/lib/shared/Encodings/v1/Protocol.v1.decls.d.ts +1 -1
- package/lib/shared/Encodings/v1/Protocol.v1.decls.js +1 -1
- package/lib/shared/Encodings/v1/index.d.ts +1 -1
- package/lib/shared/Encodings/v1/index.js +1 -1
- package/lib/shared/Encodings/v2/Constants.v2.d.ts +1 -1
- package/lib/shared/Encodings/v2/Constants.v2.js +1 -1
- package/lib/shared/Encodings/v2/DecoderV2.d.ts +1 -2
- package/lib/shared/Encodings/v2/DecoderV2.d.ts.map +1 -1
- package/lib/shared/Encodings/v2/DecoderV2.js +15 -4
- package/lib/shared/Encodings/v2/DecoderV2.js.map +1 -1
- package/lib/shared/Encodings/v2/EncoderV2.d.ts +1 -2
- package/lib/shared/Encodings/v2/EncoderV2.d.ts.map +1 -1
- package/lib/shared/Encodings/v2/EncoderV2.js +1 -1
- package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts +1 -2
- package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts.map +1 -1
- package/lib/shared/Encodings/v2/Encoding.v2.decl.js +1 -1
- package/lib/shared/Encodings/v2/index.d.ts +1 -1
- package/lib/shared/Encodings/v2/index.js +1 -1
- package/lib/shared/Errors.d.ts +5 -5
- package/lib/shared/Errors.d.ts.map +1 -1
- package/lib/shared/Errors.js +4 -4
- package/lib/shared/Errors.js.map +1 -1
- package/lib/shared/Shared.decl.d.ts +10 -4
- package/lib/shared/Shared.decl.d.ts.map +1 -1
- package/lib/shared/Shared.decl.js +1 -1
- package/lib/shared/Utils.d.ts +1 -2
- package/lib/shared/Utils.d.ts.map +1 -1
- package/lib/shared/Utils.js +3 -4
- package/lib/shared/Utils.js.map +1 -1
- package/lib/shared/index.d.ts +1 -1
- package/lib/shared/index.js +1 -1
- package/lib/transporters/Transporter.decl.d.ts +3 -4
- package/lib/transporters/Transporter.decl.d.ts.map +1 -1
- package/lib/transporters/Transporter.decl.js +1 -1
- package/lib/transporters/http-listener/AbstractHttpListener.d.ts +2 -4
- package/lib/transporters/http-listener/AbstractHttpListener.d.ts.map +1 -1
- package/lib/transporters/http-listener/AbstractHttpListener.js +10 -6
- package/lib/transporters/http-listener/AbstractHttpListener.js.map +1 -1
- package/lib/transporters/http-listener/Http.Decl.d.ts +1 -9
- package/lib/transporters/http-listener/Http.Decl.d.ts.map +1 -1
- package/lib/transporters/http-listener/Http.Decl.js +2 -21
- package/lib/transporters/http-listener/Http.Decl.js.map +1 -1
- package/lib/transporters/http-listener/HttpListener.d.ts +1 -1
- package/lib/transporters/http-listener/HttpListener.d.ts.map +1 -1
- package/lib/transporters/http-listener/HttpListener.js +5 -4
- package/lib/transporters/http-listener/HttpListener.js.map +1 -1
- package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts +1 -1
- package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts.map +1 -1
- package/lib/transporters/http-listener/HttpUnixSocketListener.js +5 -4
- package/lib/transporters/http-listener/HttpUnixSocketListener.js.map +1 -1
- package/lib/transporters/http-listener/HttpsListener.d.ts +1 -1
- package/lib/transporters/http-listener/HttpsListener.d.ts.map +1 -1
- package/lib/transporters/http-listener/HttpsListener.js +7 -6
- package/lib/transporters/http-listener/HttpsListener.js.map +1 -1
- package/lib/transporters/http-listener/index.d.ts +1 -1
- package/lib/transporters/http-listener/index.js +1 -1
- package/lib/transporters/index.d.ts +1 -1
- package/lib/transporters/index.js +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Client.Native.d.ts +12 -3
- package/lib/transporters/legacy-http/LegacyHttp.Client.Native.d.ts.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Client.Native.js +12 -3
- package/lib/transporters/legacy-http/LegacyHttp.Client.Native.js.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts +29 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Server.js +43 -12
- package/lib/transporters/legacy-http/LegacyHttp.Server.js.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts +1 -2
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts.map +1 -1
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.js +1 -1
- package/lib/transporters/legacy-http/index.d.ts +1 -1
- package/lib/transporters/legacy-http/index.js +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js +2 -3
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js +2 -3
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.js +2 -3
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.js +2 -3
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts +3 -5
- package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.Transporter.js +2 -5
- package/lib/transporters/lwdfx/LwDFX.Transporter.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js +2 -3
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js +2 -3
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js.map +1 -1
- package/lib/transporters/lwdfx/LwDFX.decl.d.ts +1 -1
- package/lib/transporters/lwdfx/LwDFX.decl.js +1 -1
- package/lib/transporters/lwdfx/index.d.ts +1 -1
- package/lib/transporters/lwdfx/index.js +1 -1
- package/lib/transporters/memory/Memory.Impl.d.ts +1 -2
- package/lib/transporters/memory/Memory.Impl.d.ts.map +1 -1
- package/lib/transporters/memory/Memory.Impl.js +4 -11
- package/lib/transporters/memory/Memory.Impl.js.map +1 -1
- package/lib/transporters/memory/index.d.ts +1 -1
- package/lib/transporters/memory/index.js +1 -1
- package/lib/transporters/websocket/WebSocket.Client.d.ts +18 -3
- package/lib/transporters/websocket/WebSocket.Client.d.ts.map +1 -1
- package/lib/transporters/websocket/WebSocket.Client.js +23 -4
- package/lib/transporters/websocket/WebSocket.Client.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.Server.d.ts +24 -2
- package/lib/transporters/websocket/WebSocket.Server.d.ts.map +1 -1
- package/lib/transporters/websocket/WebSocket.Server.js +30 -12
- package/lib/transporters/websocket/WebSocket.Server.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.Transporter.d.ts +3 -5
- package/lib/transporters/websocket/WebSocket.Transporter.d.ts.map +1 -1
- package/lib/transporters/websocket/WebSocket.Transporter.js +2 -10
- package/lib/transporters/websocket/WebSocket.Transporter.js.map +1 -1
- package/lib/transporters/websocket/WebSocket.decl.d.ts +1 -1
- package/lib/transporters/websocket/WebSocket.decl.js +1 -1
- package/lib/transporters/websocket/index.d.ts +1 -1
- package/lib/transporters/websocket/index.js +1 -1
- package/lib/transporters/worker-thread/WorkerThread.Client.d.ts +30 -0
- package/lib/transporters/worker-thread/WorkerThread.Client.d.ts.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Client.js +70 -0
- package/lib/transporters/worker-thread/WorkerThread.Client.js.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Constants.d.ts +18 -0
- package/lib/transporters/worker-thread/WorkerThread.Constants.d.ts.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Constants.js +21 -0
- package/lib/transporters/worker-thread/WorkerThread.Constants.js.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Errors.d.ts +49 -0
- package/lib/transporters/worker-thread/WorkerThread.Errors.d.ts.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Errors.js +38 -0
- package/lib/transporters/worker-thread/WorkerThread.Errors.js.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Server.d.ts +42 -0
- package/lib/transporters/worker-thread/WorkerThread.Server.d.ts.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Server.js +94 -0
- package/lib/transporters/worker-thread/WorkerThread.Server.js.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Transporter.d.ts +49 -0
- package/lib/transporters/worker-thread/WorkerThread.Transporter.d.ts.map +1 -0
- package/lib/transporters/worker-thread/WorkerThread.Transporter.js +140 -0
- package/lib/transporters/worker-thread/WorkerThread.Transporter.js.map +1 -0
- package/lib/transporters/worker-thread/index.d.ts +19 -0
- package/lib/transporters/worker-thread/index.d.ts.map +1 -0
- package/lib/transporters/worker-thread/index.js +35 -0
- package/lib/transporters/worker-thread/index.js.map +1 -0
- package/package.json +5 -5
- package/src/lib/client/Client.decl.ts +1 -1
- package/src/lib/client/JsonApiClient.impl.ts +1 -1
- package/src/lib/client/index.ts +1 -1
- package/src/lib/index.ts +1 -1
- package/src/lib/server/LegacyServerChannel.impl.ts +5 -1
- package/src/lib/server/Server.decl.ts +1 -1
- package/src/lib/server/Server.impl.ts +1 -1
- package/src/lib/server/ServerChannel.ts +1 -1
- package/src/lib/server/SimpleJsonApiRouter.ts +1 -1
- package/src/lib/server/index.ts +1 -1
- package/src/lib/shared/BinaryStream.ts +1 -1
- package/src/lib/shared/BinaryStreamManager.ts +1 -1
- package/src/lib/shared/Channel.impl.ts +5 -1
- package/src/lib/shared/Constants.ts +1 -1
- package/src/lib/shared/Encodings/index.ts +1 -1
- package/src/lib/shared/Encodings/v1/EncoderV1.ts +1 -1
- package/src/lib/shared/Encodings/v1/Protocol.v1.decls.ts +1 -1
- package/src/lib/shared/Encodings/v1/index.ts +1 -1
- package/src/lib/shared/Encodings/v2/Constants.v2.ts +1 -1
- package/src/lib/shared/Encodings/v2/DecoderV2.ts +22 -4
- package/src/lib/shared/Encodings/v2/EncoderV2.ts +1 -1
- package/src/lib/shared/Encodings/v2/Encoding.v2.decl.ts +1 -1
- package/src/lib/shared/Encodings/v2/index.ts +1 -1
- package/src/lib/shared/Errors.ts +4 -3
- package/src/lib/shared/Shared.decl.ts +13 -3
- package/src/lib/shared/Utils.ts +1 -1
- package/src/lib/shared/index.ts +1 -1
- package/src/lib/transporters/Transporter.decl.ts +3 -3
- package/src/lib/transporters/http-listener/AbstractHttpListener.ts +14 -6
- package/src/lib/transporters/http-listener/Http.Decl.ts +1 -26
- package/src/lib/transporters/http-listener/HttpListener.ts +10 -2
- package/src/lib/transporters/http-listener/HttpUnixSocketListener.ts +10 -2
- package/src/lib/transporters/http-listener/HttpsListener.ts +12 -4
- package/src/lib/transporters/http-listener/index.ts +1 -1
- package/src/lib/transporters/index.ts +1 -1
- package/src/lib/transporters/legacy-http/LegacyHttp.Client.Native.ts +30 -3
- package/src/lib/transporters/legacy-http/LegacyHttp.Server.ts +70 -9
- package/src/lib/transporters/legacy-http/LegacyHttp.Transporter.ts +1 -1
- package/src/lib/transporters/legacy-http/README.md +13 -0
- package/src/lib/transporters/legacy-http/index.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.Tcp.Client.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.Tcp.Server.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.Tls.Client.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.Tls.Server.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.Transporter.ts +3 -8
- package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.ts +1 -1
- package/src/lib/transporters/lwdfx/LwDFX.decl.ts +1 -1
- package/src/lib/transporters/lwdfx/README.md +12 -0
- package/src/lib/transporters/lwdfx/index.ts +1 -1
- package/src/lib/transporters/memory/Memory.Impl.ts +3 -13
- package/src/lib/transporters/memory/README.md +7 -0
- package/src/lib/transporters/memory/index.ts +1 -1
- package/src/lib/transporters/websocket/README.md +14 -0
- package/src/lib/transporters/websocket/WebSocket.Client.ts +52 -7
- package/src/lib/transporters/websocket/WebSocket.Server.ts +55 -9
- package/src/lib/transporters/websocket/WebSocket.Transporter.ts +3 -15
- package/src/lib/transporters/websocket/WebSocket.decl.ts +1 -1
- package/src/lib/transporters/websocket/index.ts +1 -1
- package/src/lib/transporters/worker-thread/README.md +18 -0
- package/src/lib/transporters/worker-thread/WorkerThread.Client.ts +88 -0
- package/src/lib/transporters/worker-thread/WorkerThread.Constants.ts +19 -0
- package/src/lib/transporters/worker-thread/WorkerThread.Errors.ts +53 -0
- package/src/lib/transporters/worker-thread/WorkerThread.Server.ts +136 -0
- package/src/lib/transporters/worker-thread/WorkerThread.Transporter.ts +204 -0
- package/src/lib/transporters/worker-thread/index.ts +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerThread.Server.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/worker-thread/WorkerThread.Server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAM/C,MAAM,WAAW,kBAAmB,SAAQ,EAAE,CAAC,QAAQ;IAEnD;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;CACnD;AAsED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,GAAG,kBAAkB,CAQ9E;AAID;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAQzE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.createMainThreadGateway = createMainThreadGateway;
|
|
19
|
+
exports.createWorkerThreadGateway = createWorkerThreadGateway;
|
|
20
|
+
const NodeWorker = require("node:worker_threads");
|
|
21
|
+
const cWT = require("./WorkerThread.Constants");
|
|
22
|
+
const node_events_1 = require("node:events");
|
|
23
|
+
const WorkerThread_Transporter_1 = require("./WorkerThread.Transporter");
|
|
24
|
+
const eWT = require("./WorkerThread.Errors");
|
|
25
|
+
const VOID_OK_PROMISE = Promise.resolve();
|
|
26
|
+
class MainThreadGateway extends node_events_1.EventEmitter {
|
|
27
|
+
constructor(_server) {
|
|
28
|
+
super();
|
|
29
|
+
this._server = _server;
|
|
30
|
+
}
|
|
31
|
+
get running() {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
start() {
|
|
35
|
+
return VOID_OK_PROMISE;
|
|
36
|
+
}
|
|
37
|
+
stop() {
|
|
38
|
+
return VOID_OK_PROMISE;
|
|
39
|
+
}
|
|
40
|
+
registerWorker(worker) {
|
|
41
|
+
if (worker?.threadId === -1) {
|
|
42
|
+
throw new eWT.E_WORKER_THREAD_OFFLINE();
|
|
43
|
+
}
|
|
44
|
+
this._server.registerChannel(new WorkerThread_Transporter_1.MainThreadTransporter(cWT.MAIN_THREAD_PROTOCOL_NAME, worker));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
class WorkerThreadGateway extends node_events_1.EventEmitter {
|
|
48
|
+
constructor(_server) {
|
|
49
|
+
super();
|
|
50
|
+
this._server = _server;
|
|
51
|
+
this._transporter = null;
|
|
52
|
+
}
|
|
53
|
+
get running() {
|
|
54
|
+
return !!this._transporter;
|
|
55
|
+
}
|
|
56
|
+
start() {
|
|
57
|
+
if (this._transporter) {
|
|
58
|
+
return VOID_OK_PROMISE;
|
|
59
|
+
}
|
|
60
|
+
this._server.registerChannel(this._transporter = new WorkerThread_Transporter_1.WorkerThreadTransporter(cWT.WORKER_THREAD_PROTOCOL_NAME));
|
|
61
|
+
return VOID_OK_PROMISE;
|
|
62
|
+
}
|
|
63
|
+
stop() {
|
|
64
|
+
this._transporter?.end();
|
|
65
|
+
this._transporter = null;
|
|
66
|
+
return VOID_OK_PROMISE;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Create a gateway that runs in the main thread.
|
|
71
|
+
*
|
|
72
|
+
* @param server The server instance.
|
|
73
|
+
* @experimental
|
|
74
|
+
*/
|
|
75
|
+
function createMainThreadGateway(server) {
|
|
76
|
+
if (!NodeWorker.isMainThread) {
|
|
77
|
+
throw new eWT.E_MAIN_THREAD_ONLY();
|
|
78
|
+
}
|
|
79
|
+
return new MainThreadGateway(server);
|
|
80
|
+
}
|
|
81
|
+
let workerThreadGateway = null;
|
|
82
|
+
/**
|
|
83
|
+
* Create a gateway that runs in the worker thread.
|
|
84
|
+
*
|
|
85
|
+
* @param server The server instance.
|
|
86
|
+
* @experimental
|
|
87
|
+
*/
|
|
88
|
+
function createWorkerThreadGateway(server) {
|
|
89
|
+
if (NodeWorker.isMainThread) {
|
|
90
|
+
throw new eWT.E_WORKER_THREAD_ONLY();
|
|
91
|
+
}
|
|
92
|
+
return workerThreadGateway ?? (workerThreadGateway = new WorkerThreadGateway(server));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=WorkerThread.Server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerThread.Server.js","sourceRoot":"","sources":["../../../src/lib/transporters/worker-thread/WorkerThread.Server.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AA+FH,0DAQC;AAUD,8DAQC;AAvHD,kDAAkD;AAElD,gDAAgD;AAChD,6CAA2C;AAC3C,yEAA4F;AAC5F,6CAA6C;AAc7C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAE1C,MAAM,iBAAkB,SAAQ,0BAAY;IAExC,YACqB,OAAmB;QACpC,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;IAC3B,CAAC;IAEd,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QAER,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEM,IAAI;QAEP,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,MAAyB;QAE3C,IAAI,MAAM,EAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YAE1B,MAAM,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,gDAAqB,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC;IACnG,CAAC;CACJ;AAED,MAAM,mBAAoB,SAAQ,0BAAY;IAI1C,YACqB,OAAmB;QACpC,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QAHhC,iBAAY,GAAmC,IAAI,CAAC;IAI/C,CAAC;IAEd,IAAW,OAAO;QAEd,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/B,CAAC;IAEM,KAAK;QAER,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,kDAAuB,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAE/G,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEM,IAAI;QAEP,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,MAAkB;IAEtD,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAE3B,MAAM,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,mBAAmB,GAA+B,IAAI,CAAC;AAE3D;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,MAAkB;IAExD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAE1B,MAAM,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,mBAAmB,KAAnB,mBAAmB,GAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import * as NodeWorker from 'node:worker_threads';
|
|
17
|
+
import * as Shared from '../../shared';
|
|
18
|
+
import type * as dT from '../Transporter.decl';
|
|
19
|
+
import { EventEmitter } from 'node:events';
|
|
20
|
+
declare abstract class AbstractThreadTransporter extends EventEmitter {
|
|
21
|
+
readonly protocol: string;
|
|
22
|
+
constructor(protocol: string);
|
|
23
|
+
getPropertyNames(): string[];
|
|
24
|
+
getAllProperties(): Record<string, unknown>;
|
|
25
|
+
getProperty(name: string): unknown;
|
|
26
|
+
abstract destroy(): void;
|
|
27
|
+
end(): void;
|
|
28
|
+
protected _write(worker: NodeWorker.MessagePort | NodeWorker.Worker, frame: Array<string | Buffer>): void;
|
|
29
|
+
protected _onMessage: (frame: unknown) => void;
|
|
30
|
+
}
|
|
31
|
+
export declare class MainThreadTransporter extends AbstractThreadTransporter implements dT.ITransporter, Shared.ITransporter {
|
|
32
|
+
protected readonly _worker: NodeWorker.Worker;
|
|
33
|
+
private _closed;
|
|
34
|
+
constructor(protocol: string, _worker: NodeWorker.Worker);
|
|
35
|
+
private readonly _onError;
|
|
36
|
+
private readonly _onExit;
|
|
37
|
+
destroy(): void;
|
|
38
|
+
get writable(): boolean;
|
|
39
|
+
write(frame: Array<string | Buffer>): void;
|
|
40
|
+
}
|
|
41
|
+
export declare class WorkerThreadTransporter extends AbstractThreadTransporter implements dT.ITransporter, Shared.ITransporter {
|
|
42
|
+
private _hold;
|
|
43
|
+
constructor(protocol: string);
|
|
44
|
+
destroy(): void;
|
|
45
|
+
get writable(): boolean;
|
|
46
|
+
write(frame: Array<string | Buffer>): void;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=WorkerThread.Transporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerThread.Transporter.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/worker-thread/WorkerThread.Transporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,uBAAe,yBAA0B,SAAQ,YAAY;aAGrC,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM;IAM7B,gBAAgB,IAAI,MAAM,EAAE;IAK5B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;aAkBzB,OAAO,IAAI,IAAI;IAExB,GAAG,IAAI,IAAI;IAKlB,SAAS,CAAC,MAAM,CACZ,MAAM,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,EAClD,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAC9B,IAAI;IAsBP,SAAS,CAAC,UAAU,UAAW,OAAO,KAAG,IAAI,CAQ3C;CACL;AAED,qBAAa,qBAAsB,SAAQ,yBAA0B,YAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY;IAM5G,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM;IAJjD,OAAO,CAAC,OAAO,CAAkB;gBAG7B,QAAQ,EAAE,MAAM,EACG,OAAO,EAAE,UAAU,CAAC,MAAM;IAWjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAE7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAEpD,OAAO,IAAI,IAAI;IAWtB,IAAW,QAAQ,IAAI,OAAO,CAG7B;IAEM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI;CASpD;AAED,qBAAa,uBAAwB,SAAQ,yBAA0B,YAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY;IAElH,OAAO,CAAC,KAAK,CAAmE;gBAE7D,QAAQ,EAAE,MAAM;IAY5B,OAAO,IAAI,IAAI;IAatB,IAAW,QAAQ,IAAI,OAAO,CAG7B;IAEM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI;CASpD"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.WorkerThreadTransporter = exports.MainThreadTransporter = void 0;
|
|
19
|
+
const NodeWorker = require("node:worker_threads");
|
|
20
|
+
const Shared = require("../../shared");
|
|
21
|
+
const eWT = require("./WorkerThread.Errors");
|
|
22
|
+
const node_events_1 = require("node:events");
|
|
23
|
+
const PROPERTY_NAMES = ['remoteAddress', 'remotePort', 'localAddress', 'localPort', 'threadId'];
|
|
24
|
+
const MSG_PREFIX = 'televoke2://';
|
|
25
|
+
class AbstractThreadTransporter extends node_events_1.EventEmitter {
|
|
26
|
+
constructor(protocol) {
|
|
27
|
+
super();
|
|
28
|
+
this.protocol = protocol;
|
|
29
|
+
this._onMessage = (frame) => {
|
|
30
|
+
if (typeof frame !== 'string' || !frame.startsWith(MSG_PREFIX)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.emit('frame', [Buffer.from(frame.slice(MSG_PREFIX.length), 'base64')]);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
getPropertyNames() {
|
|
37
|
+
return PROPERTY_NAMES;
|
|
38
|
+
}
|
|
39
|
+
getAllProperties() {
|
|
40
|
+
return {
|
|
41
|
+
'remoteAddress': '127.0.0.1',
|
|
42
|
+
'remotePort': 0,
|
|
43
|
+
'localAddress': '127.0.0.1',
|
|
44
|
+
'localPort': 0,
|
|
45
|
+
'threadId': NodeWorker.threadId,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
getProperty(name) {
|
|
49
|
+
switch (name) {
|
|
50
|
+
case 'localPort':
|
|
51
|
+
return 0;
|
|
52
|
+
case 'localAddress':
|
|
53
|
+
return '127.0.0.1';
|
|
54
|
+
case 'remotePort':
|
|
55
|
+
return 0;
|
|
56
|
+
case 'remoteAddress':
|
|
57
|
+
return '127.0.0.1';
|
|
58
|
+
case 'threadId':
|
|
59
|
+
return NodeWorker.threadId;
|
|
60
|
+
default:
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
end() {
|
|
65
|
+
this.destroy();
|
|
66
|
+
}
|
|
67
|
+
_write(worker, frame) {
|
|
68
|
+
for (let i = 0; i < frame.length; i++) {
|
|
69
|
+
const f = frame[i];
|
|
70
|
+
if (!(f instanceof Buffer)) {
|
|
71
|
+
frame[i] = Buffer.from(f);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
worker.postMessage(MSG_PREFIX + Buffer.concat(frame).toString('base64'));
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost', cause: e });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
class MainThreadTransporter extends AbstractThreadTransporter {
|
|
83
|
+
constructor(protocol, _worker) {
|
|
84
|
+
super(protocol);
|
|
85
|
+
this._worker = _worker;
|
|
86
|
+
this._closed = false;
|
|
87
|
+
this._onError = (e) => { this.emit('error', e); };
|
|
88
|
+
this._onExit = () => { this.destroy(); };
|
|
89
|
+
this._worker
|
|
90
|
+
.on('message', this._onMessage)
|
|
91
|
+
.on('error', this._onError)
|
|
92
|
+
.on('exit', this._onExit);
|
|
93
|
+
}
|
|
94
|
+
destroy() {
|
|
95
|
+
this._closed = true;
|
|
96
|
+
this._worker.removeListener('message', this._onMessage);
|
|
97
|
+
this._worker.removeListener('error', this._onError);
|
|
98
|
+
this._worker.removeListener('exit', this._onExit);
|
|
99
|
+
this.emit('close');
|
|
100
|
+
}
|
|
101
|
+
get writable() {
|
|
102
|
+
return !this._closed;
|
|
103
|
+
}
|
|
104
|
+
write(frame) {
|
|
105
|
+
if (this._closed) {
|
|
106
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost' });
|
|
107
|
+
}
|
|
108
|
+
this._write(this._worker, frame);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.MainThreadTransporter = MainThreadTransporter;
|
|
112
|
+
class WorkerThreadTransporter extends AbstractThreadTransporter {
|
|
113
|
+
constructor(protocol) {
|
|
114
|
+
super(protocol);
|
|
115
|
+
this._hold = setInterval(() => { return; }, 3600000);
|
|
116
|
+
if (NodeWorker.isMainThread) {
|
|
117
|
+
throw new eWT.E_WORKER_THREAD_ONLY();
|
|
118
|
+
}
|
|
119
|
+
NodeWorker.parentPort.on('message', this._onMessage);
|
|
120
|
+
}
|
|
121
|
+
destroy() {
|
|
122
|
+
if (this._hold) {
|
|
123
|
+
clearInterval(this._hold);
|
|
124
|
+
this._hold = null;
|
|
125
|
+
NodeWorker.parentPort.removeListener('message', this._onMessage);
|
|
126
|
+
this.emit('close');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
get writable() {
|
|
130
|
+
return !!this._hold;
|
|
131
|
+
}
|
|
132
|
+
write(frame) {
|
|
133
|
+
if (!this._hold) {
|
|
134
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost' });
|
|
135
|
+
}
|
|
136
|
+
super._write(NodeWorker.parentPort, frame);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.WorkerThreadTransporter = WorkerThreadTransporter;
|
|
140
|
+
//# sourceMappingURL=WorkerThread.Transporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerThread.Transporter.js","sourceRoot":"","sources":["../../../src/lib/transporters/worker-thread/WorkerThread.Transporter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,kDAAkD;AAClD,uCAAuC;AAEvC,6CAA6C;AAC7C,6CAA2C;AAE3C,MAAM,cAAc,GAAG,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAEhG,MAAM,UAAU,GAAG,cAAc,CAAC;AAElC,MAAe,yBAA0B,SAAQ,0BAAY;IAEzD,YACoB,QAAgB;QAGhC,KAAK,EAAE,CAAC;QAHQ,aAAQ,GAAR,QAAQ,CAAQ;QAwE1B,eAAU,GAAG,CAAC,KAAc,EAAQ,EAAE;YAE5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAE7D,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC;IA5EF,CAAC;IAEM,gBAAgB;QAEnB,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEM,gBAAgB;QAEnB,OAAO;YACH,eAAe,EAAE,WAAW;YAC5B,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,WAAW;YAC3B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,UAAU,CAAC,QAAQ;SAClC,CAAC;IACN,CAAC;IAEM,WAAW,CAAC,IAAY;QAE3B,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,WAAW;gBACZ,OAAO,CAAC,CAAC;YACb,KAAK,cAAc;gBACf,OAAO,WAAW,CAAC;YACvB,KAAK,YAAY;gBACb,OAAO,CAAC,CAAC;YACb,KAAK,eAAe;gBAChB,OAAO,WAAW,CAAC;YACvB,KAAK,UAAU;gBACX,OAAO,UAAU,CAAC,QAAQ,CAAC;YAC/B;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;IAIM,GAAG;QAEN,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAES,MAAM,CACZ,MAAkD,EAClD,KAA6B;QAG7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAEpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEnB,IAAI,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,EAAE,CAAC;gBAEzB,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YAED,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YAEP,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CAWJ;AAED,MAAa,qBAAsB,SAAQ,yBAAyB;IAIhE,YACI,QAAgB,EACG,OAA0B;QAG7C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAHG,YAAO,GAAP,OAAO,CAAmB;QAJzC,YAAO,GAAY,KAAK,CAAC;QAehB,aAAQ,GAAG,CAAC,CAAU,EAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,YAAO,GAAG,GAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QARvD,IAAI,CAAC,OAAO;aACP,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;aAC9B,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC1B,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAMM,OAAO;QAEV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,IAAW,QAAQ;QAEf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,KAA6B;QAEtC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAEf,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;CACJ;AA9CD,sDA8CC;AAED,MAAa,uBAAwB,SAAQ,yBAAyB;IAIlE,YAAmB,QAAgB;QAE/B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJZ,UAAK,GAA0B,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,OAAQ,CAAC,CAAC;QAM5E,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAE1B,MAAM,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACzC,CAAC;QAED,UAAU,CAAC,UAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAEM,OAAO;QAEV,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAEb,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAElB,UAAU,CAAC,UAAW,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAElE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IAED,IAAW,QAAQ;QAEf,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,KAA6B;QAEtC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEd,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,UAAW,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;CACJ;AA3CD,0DA2CC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export * from './WorkerThread.Client';
|
|
17
|
+
export * from './WorkerThread.Server';
|
|
18
|
+
export * from './WorkerThread.Constants';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/worker-thread/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
29
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
__exportStar(require("./WorkerThread.Client"), exports);
|
|
33
|
+
__exportStar(require("./WorkerThread.Server"), exports);
|
|
34
|
+
__exportStar(require("./WorkerThread.Constants"), exports);
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/transporters/worker-thread/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,wDAAsC;AACtC,wDAAsC;AACtC,2DAAyC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@litert/televoke",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A simple RPC service framework.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"test": "mocha",
|
|
13
13
|
"prepare": "husky",
|
|
14
14
|
"clean": "rm -rf lib examples benchmarks test",
|
|
15
|
-
"lint": "eslint
|
|
15
|
+
"lint": "./utils/eslint.sh"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"litert",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@commitlint/cli": "^19.2.1",
|
|
36
36
|
"@commitlint/config-conventional": "^19.1.0",
|
|
37
|
-
"@litert/eslint-plugin-rules": "^0.
|
|
37
|
+
"@litert/eslint-plugin-rules": "^0.2.5",
|
|
38
38
|
"@litert/lwdfx": "^1.1.3",
|
|
39
39
|
"@litert/websocket": "^0.2.3",
|
|
40
40
|
"@types/mocha": "^10.0.6",
|
|
41
|
-
"@types/node": "^
|
|
41
|
+
"@types/node": "^22.13.5",
|
|
42
42
|
"husky": "^9.0.11",
|
|
43
|
-
"mocha": "^
|
|
43
|
+
"mocha": "^11.1.0",
|
|
44
44
|
"typescript": "^5.4.4"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
package/src/lib/client/index.ts
CHANGED
package/src/lib/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -32,6 +32,10 @@ export class TvLegacyServerChannelV1 extends EventEmitter implements Shared.ICha
|
|
|
32
32
|
|
|
33
33
|
public get writable(): boolean { return false; }
|
|
34
34
|
|
|
35
|
+
public get isMessageSupported(): boolean { return false; }
|
|
36
|
+
|
|
37
|
+
public get isBinaryStreamSupported(): boolean { return false; }
|
|
38
|
+
|
|
35
39
|
public get id(): number { return 0; }
|
|
36
40
|
|
|
37
41
|
public get timeout(): number { return 30_000; }
|
package/src/lib/server/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -88,6 +88,10 @@ export abstract class AbstractTvChannelV2
|
|
|
88
88
|
|
|
89
89
|
public ended: boolean = false;
|
|
90
90
|
|
|
91
|
+
public get isMessageSupported(): boolean { return true; }
|
|
92
|
+
|
|
93
|
+
public get isBinaryStreamSupported(): boolean { return this.streams.maxStreams !== 0; }
|
|
94
|
+
|
|
91
95
|
public get finished(): boolean {
|
|
92
96
|
|
|
93
97
|
return this._state === EState.ENDED;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2025 Angus.Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -184,13 +184,31 @@ class TvErrorResponseDecoder implements IPacketDecoder {
|
|
|
184
184
|
|
|
185
185
|
const errorMsg = readString(len, ctx);
|
|
186
186
|
|
|
187
|
+
let err: TelevokeError;
|
|
188
|
+
|
|
189
|
+
if (errorMsg.startsWith(CS.PROTOCOL_ERROR_NAMESPACE)) {
|
|
190
|
+
|
|
191
|
+
const errMsg = errorMsg.slice(CS.PROTOCOL_ERROR_NAMESPACE.length + 1);
|
|
192
|
+
|
|
193
|
+
if (errMsg in errors) {
|
|
194
|
+
|
|
195
|
+
err = new (errors as any)[errMsg]();
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
|
|
199
|
+
err = new ProtocolError(errMsg, null, null);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
|
|
204
|
+
err = new errors.app_error(errorMsg.slice(CS.APP_ERROR_NAMESPACE.length + 1), null);
|
|
205
|
+
}
|
|
206
|
+
|
|
187
207
|
return {
|
|
188
208
|
'cmd': ctx.command,
|
|
189
209
|
'typ': CSv2.EPacketType.ERROR_RESPONSE,
|
|
190
210
|
'seq': ctx.seq,
|
|
191
|
-
'ct':
|
|
192
|
-
new ProtocolError(errorMsg.slice(CS.PROTOCOL_ERROR_NAMESPACE.length + 1), null) :
|
|
193
|
-
new errors.app_error(errorMsg.slice(CS.APP_ERROR_NAMESPACE.length + 1), null),
|
|
211
|
+
'ct': err,
|
|
194
212
|
} satisfies dEnc2.IErrorResponsePacket;
|
|
195
213
|
}
|
|
196
214
|
}
|