@litert/televoke 0.4.7 → 1.0.0-1
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 +4 -2
- package/README.md +13 -8
- package/lib/client/Client.decl.d.ts +47 -0
- package/lib/client/Client.decl.d.ts.map +1 -0
- package/lib/client/Client.decl.js +18 -0
- package/lib/client/Client.decl.js.map +1 -0
- package/lib/client/JsonApiClient.impl.d.ts +28 -0
- package/lib/client/JsonApiClient.impl.d.ts.map +1 -0
- package/lib/client/JsonApiClient.impl.js +169 -0
- package/lib/client/JsonApiClient.impl.js.map +1 -0
- package/lib/client/LegacyHttpClient.impl.d.ts +62 -0
- package/lib/client/LegacyHttpClient.impl.d.ts.map +1 -0
- package/lib/client/LegacyHttpClient.impl.js +163 -0
- package/lib/client/LegacyHttpClient.impl.js.map +1 -0
- package/lib/client/index.d.ts +19 -0
- package/lib/client/index.d.ts.map +1 -0
- package/lib/client/index.js +35 -0
- package/lib/client/index.js.map +1 -0
- package/lib/index.d.ts +18 -20
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -20
- package/lib/index.js.map +1 -1
- package/lib/server/LegacyServerChannel.impl.d.ts +38 -0
- package/lib/server/LegacyServerChannel.impl.d.ts.map +1 -0
- package/lib/server/LegacyServerChannel.impl.js +51 -0
- package/lib/server/LegacyServerChannel.impl.js.map +1 -0
- package/lib/server/Server.decl.d.ts +81 -0
- package/lib/server/Server.decl.d.ts.map +1 -0
- package/lib/server/Server.decl.js +18 -0
- package/lib/server/Server.decl.js.map +1 -0
- package/lib/server/Server.impl.d.ts +33 -0
- package/lib/server/Server.impl.d.ts.map +1 -0
- package/lib/server/Server.impl.js +58 -0
- package/lib/server/Server.impl.js.map +1 -0
- package/lib/server/ServerChannel.d.ts +20 -0
- package/lib/server/ServerChannel.d.ts.map +1 -0
- package/lib/server/ServerChannel.js +23 -0
- package/lib/server/ServerChannel.js.map +1 -0
- package/lib/server/SimpleJsonApiRouter.d.ts +28 -0
- package/lib/server/SimpleJsonApiRouter.d.ts.map +1 -0
- package/lib/server/SimpleJsonApiRouter.js +92 -0
- package/lib/server/SimpleJsonApiRouter.js.map +1 -0
- package/lib/server/index.d.ts +19 -0
- package/lib/server/index.d.ts.map +1 -0
- package/lib/server/index.js +35 -0
- package/lib/server/index.js.map +1 -0
- package/lib/shared/BinaryStream.d.ts +36 -0
- package/lib/shared/BinaryStream.d.ts.map +1 -0
- package/lib/shared/BinaryStream.js +100 -0
- package/lib/shared/BinaryStream.js.map +1 -0
- package/lib/shared/BinaryStreamManager.d.ts +52 -0
- package/lib/shared/BinaryStreamManager.d.ts.map +1 -0
- package/lib/shared/BinaryStreamManager.js +105 -0
- package/lib/shared/BinaryStreamManager.js.map +1 -0
- package/lib/shared/Channel.impl.d.ts +79 -0
- package/lib/shared/Channel.impl.d.ts.map +1 -0
- package/lib/shared/Channel.impl.js +448 -0
- package/lib/shared/Channel.impl.js.map +1 -0
- package/lib/shared/Constants.d.ts +32 -0
- package/lib/shared/Constants.d.ts.map +1 -0
- package/lib/shared/Constants.js +35 -0
- package/lib/shared/Constants.js.map +1 -0
- package/lib/shared/Encodings/index.d.ts +18 -0
- package/lib/shared/Encodings/index.d.ts.map +1 -0
- package/lib/shared/Encodings/index.js +21 -0
- package/lib/shared/Encodings/index.js.map +1 -0
- package/lib/shared/Encodings/v1/EncoderV1.d.ts +22 -0
- package/lib/shared/Encodings/v1/EncoderV1.d.ts.map +1 -0
- package/lib/shared/Encodings/v1/EncoderV1.js +47 -0
- package/lib/shared/Encodings/v1/EncoderV1.js.map +1 -0
- package/lib/shared/Encodings/v1/Protocol.v1.decls.d.ts +78 -0
- package/lib/shared/Encodings/v1/Protocol.v1.decls.d.ts.map +1 -0
- package/lib/shared/Encodings/v1/Protocol.v1.decls.js +53 -0
- package/lib/shared/Encodings/v1/Protocol.v1.decls.js.map +1 -0
- package/lib/shared/Encodings/v1/index.d.ts +18 -0
- package/lib/shared/Encodings/v1/index.d.ts.map +1 -0
- package/lib/shared/Encodings/v1/index.js +34 -0
- package/lib/shared/Encodings/v1/index.js.map +1 -0
- package/lib/shared/Encodings/v2/Constants.v2.d.ts +29 -0
- package/lib/shared/Encodings/v2/Constants.v2.d.ts.map +1 -0
- package/lib/shared/Encodings/v2/Constants.v2.js +34 -0
- package/lib/shared/Encodings/v2/Constants.v2.js.map +1 -0
- package/lib/shared/Encodings/v2/DecoderV2.d.ts +27 -0
- package/lib/shared/Encodings/v2/DecoderV2.d.ts.map +1 -0
- package/lib/shared/Encodings/v2/DecoderV2.js +281 -0
- package/lib/shared/Encodings/v2/DecoderV2.js.map +1 -0
- package/lib/shared/Encodings/v2/EncoderV2.d.ts +21 -0
- package/lib/shared/Encodings/v2/EncoderV2.d.ts.map +1 -0
- package/lib/shared/Encodings/v2/EncoderV2.js +177 -0
- package/lib/shared/Encodings/v2/EncoderV2.js.map +1 -0
- package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts +99 -0
- package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts.map +1 -0
- package/lib/shared/Encodings/v2/Encoding.v2.decl.js +18 -0
- package/lib/shared/Encodings/v2/Encoding.v2.decl.js.map +1 -0
- package/lib/shared/Encodings/v2/index.d.ts +20 -0
- package/lib/shared/Encodings/v2/index.d.ts.map +1 -0
- package/lib/shared/Encodings/v2/index.js +35 -0
- package/lib/shared/Encodings/v2/index.js.map +1 -0
- package/lib/shared/Errors.d.ts +61 -0
- package/lib/shared/Errors.d.ts.map +1 -0
- package/lib/shared/Errors.js +76 -0
- package/lib/shared/Errors.js.map +1 -0
- package/lib/shared/Shared.decl.d.ts +313 -0
- package/lib/shared/Shared.decl.d.ts.map +1 -0
- package/lib/shared/Shared.decl.js +18 -0
- package/lib/shared/Shared.decl.js.map +1 -0
- package/lib/shared/Utils.d.ts +25 -0
- package/lib/shared/Utils.d.ts.map +1 -0
- package/lib/shared/Utils.js +46 -0
- package/lib/shared/Utils.js.map +1 -0
- package/lib/shared/index.d.ts +23 -0
- package/lib/shared/index.d.ts.map +1 -0
- package/lib/shared/index.js +39 -0
- package/lib/shared/index.js.map +1 -0
- package/lib/transporters/Transporter.decl.d.ts +90 -0
- package/lib/transporters/Transporter.decl.d.ts.map +1 -0
- package/lib/transporters/Transporter.decl.js +18 -0
- package/lib/transporters/Transporter.decl.js.map +1 -0
- package/lib/transporters/http-listener/AbstractHttpListener.d.ts +32 -0
- package/lib/transporters/http-listener/AbstractHttpListener.d.ts.map +1 -0
- package/lib/transporters/http-listener/AbstractHttpListener.js +46 -0
- package/lib/transporters/http-listener/AbstractHttpListener.js.map +1 -0
- package/lib/transporters/http-listener/Http.Decl.d.ts +95 -0
- package/lib/transporters/http-listener/Http.Decl.d.ts.map +1 -0
- package/lib/transporters/http-listener/Http.Decl.js +52 -0
- package/lib/transporters/http-listener/Http.Decl.js.map +1 -0
- package/lib/transporters/http-listener/HttpListener.d.ts +18 -0
- package/lib/transporters/http-listener/HttpListener.d.ts.map +1 -0
- package/lib/transporters/http-listener/HttpListener.js +73 -0
- package/lib/transporters/http-listener/HttpListener.js.map +1 -0
- package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts +18 -0
- package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts.map +1 -0
- package/lib/transporters/http-listener/HttpUnixSocketListener.js +72 -0
- package/lib/transporters/http-listener/HttpUnixSocketListener.js.map +1 -0
- package/lib/transporters/http-listener/HttpsListener.d.ts +18 -0
- package/lib/transporters/http-listener/HttpsListener.d.ts.map +1 -0
- package/lib/transporters/http-listener/HttpsListener.js +73 -0
- package/lib/transporters/http-listener/HttpsListener.js.map +1 -0
- package/lib/transporters/http-listener/index.d.ts +20 -0
- package/lib/transporters/http-listener/index.d.ts.map +1 -0
- package/lib/transporters/http-listener/index.js +36 -0
- package/lib/transporters/http-listener/index.js.map +1 -0
- package/lib/transporters/index.d.ts +17 -0
- package/lib/transporters/index.d.ts.map +1 -0
- package/lib/transporters/index.js +18 -0
- package/lib/transporters/index.js.map +1 -0
- package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts +24 -0
- package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts.map +1 -0
- package/lib/transporters/legacy-http/LegacyHttp.Server.js +167 -0
- package/lib/transporters/legacy-http/LegacyHttp.Server.js.map +1 -0
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts +28 -0
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts.map +1 -0
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.js +55 -0
- package/lib/transporters/legacy-http/LegacyHttp.Transporter.js.map +1 -0
- package/lib/transporters/legacy-http/index.d.ts +18 -0
- package/lib/transporters/legacy-http/index.d.ts.map +1 -0
- package/lib/transporters/legacy-http/index.js +34 -0
- package/lib/transporters/legacy-http/index.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.d.ts +19 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js +33 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.d.ts +21 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js +64 -0
- package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.d.ts +19 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.js +33 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Client.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.d.ts +21 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.js +64 -0
- package/lib/transporters/lwdfx/LwDFX.Tls.Server.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts +34 -0
- package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.Transporter.js +78 -0
- package/lib/transporters/lwdfx/LwDFX.Transporter.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.d.ts +19 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js +33 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.d.ts +21 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js +64 -0
- package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.decl.d.ts +18 -0
- package/lib/transporters/lwdfx/LwDFX.decl.d.ts.map +1 -0
- package/lib/transporters/lwdfx/LwDFX.decl.js +18 -0
- package/lib/transporters/lwdfx/LwDFX.decl.js.map +1 -0
- package/lib/transporters/lwdfx/index.d.ts +23 -0
- package/lib/transporters/lwdfx/index.d.ts.map +1 -0
- package/lib/transporters/lwdfx/index.js +39 -0
- package/lib/transporters/lwdfx/index.js.map +1 -0
- package/lib/transporters/memory/Memory.Impl.d.ts +43 -0
- package/lib/transporters/memory/Memory.Impl.d.ts.map +1 -0
- package/lib/transporters/memory/Memory.Impl.js +227 -0
- package/lib/transporters/memory/Memory.Impl.js.map +1 -0
- package/lib/transporters/memory/index.d.ts +17 -0
- package/lib/transporters/memory/index.d.ts.map +1 -0
- package/lib/transporters/memory/index.js +33 -0
- package/lib/transporters/memory/index.js.map +1 -0
- package/lib/transporters/websocket/WebSocket.Client.d.ts +20 -0
- package/lib/transporters/websocket/WebSocket.Client.d.ts.map +1 -0
- package/lib/transporters/websocket/WebSocket.Client.js +68 -0
- package/lib/transporters/websocket/WebSocket.Client.js.map +1 -0
- package/lib/transporters/websocket/WebSocket.Server.d.ts +25 -0
- package/lib/transporters/websocket/WebSocket.Server.d.ts.map +1 -0
- package/lib/transporters/websocket/WebSocket.Server.js +87 -0
- package/lib/transporters/websocket/WebSocket.Server.js.map +1 -0
- package/lib/transporters/websocket/WebSocket.Transporter.d.ts +34 -0
- package/lib/transporters/websocket/WebSocket.Transporter.d.ts.map +1 -0
- package/lib/transporters/websocket/WebSocket.Transporter.js +106 -0
- package/lib/transporters/websocket/WebSocket.Transporter.js.map +1 -0
- package/lib/transporters/websocket/WebSocket.decl.d.ts +19 -0
- package/lib/transporters/websocket/WebSocket.decl.d.ts.map +1 -0
- package/lib/transporters/websocket/WebSocket.decl.js +22 -0
- package/lib/transporters/websocket/WebSocket.decl.js.map +1 -0
- package/lib/transporters/websocket/index.d.ts +19 -0
- package/lib/transporters/websocket/index.d.ts.map +1 -0
- package/lib/transporters/websocket/index.js +35 -0
- package/lib/transporters/websocket/index.js.map +1 -0
- package/package.json +12 -12
- package/src/lib/client/Client.decl.ts +61 -0
- package/src/lib/client/JsonApiClient.impl.ts +258 -0
- package/src/lib/client/LegacyHttpClient.impl.ts +278 -0
- package/src/lib/client/index.ts +19 -0
- package/src/lib/index.ts +18 -20
- package/src/lib/server/LegacyServerChannel.impl.ts +71 -0
- package/src/lib/server/Server.decl.ts +109 -0
- package/src/lib/server/Server.impl.ts +90 -0
- package/src/lib/server/ServerChannel.ts +20 -0
- package/src/lib/server/SimpleJsonApiRouter.ts +135 -0
- package/src/lib/server/index.ts +19 -0
- package/src/lib/shared/BinaryStream.ts +141 -0
- package/src/lib/shared/BinaryStreamManager.ts +142 -0
- package/src/lib/shared/Channel.impl.ts +658 -0
- package/src/lib/shared/Constants.ts +35 -0
- package/src/lib/shared/Encodings/index.ts +18 -0
- package/src/lib/shared/Encodings/v1/EncoderV1.ts +66 -0
- package/src/lib/shared/Encodings/v1/Protocol.v1.decls.ts +96 -0
- package/src/lib/shared/Encodings/v1/index.ts +18 -0
- package/src/lib/shared/Encodings/v2/Constants.v2.ts +31 -0
- package/src/lib/shared/Encodings/v2/DecoderV2.ts +406 -0
- package/src/lib/shared/Encodings/v2/EncoderV2.ts +284 -0
- package/src/lib/shared/Encodings/v2/Encoding.v2.decl.ts +138 -0
- package/src/lib/shared/Encodings/v2/index.ts +20 -0
- package/src/lib/shared/Errors.ts +95 -0
- package/src/lib/shared/Shared.decl.ts +366 -0
- package/src/lib/shared/Utils.ts +51 -0
- package/src/lib/shared/index.ts +23 -0
- package/src/lib/transporters/Transporter.decl.ts +117 -0
- package/src/lib/transporters/http-listener/AbstractHttpListener.ts +57 -0
- package/src/lib/transporters/http-listener/Http.Decl.ts +141 -0
- package/src/lib/transporters/http-listener/HttpListener.ts +102 -0
- package/src/lib/transporters/http-listener/HttpUnixSocketListener.ts +97 -0
- package/src/lib/transporters/http-listener/HttpsListener.ts +102 -0
- package/src/lib/transporters/http-listener/index.ts +20 -0
- package/src/lib/transporters/index.ts +17 -0
- package/src/lib/transporters/legacy-http/LegacyHttp.Server.ts +262 -0
- package/src/lib/transporters/legacy-http/LegacyHttp.Transporter.ts +66 -0
- package/src/lib/transporters/legacy-http/index.ts +18 -0
- package/src/lib/transporters/lwdfx/LwDFX.Tcp.Client.ts +34 -0
- package/src/lib/transporters/lwdfx/LwDFX.Tcp.Server.ts +94 -0
- package/src/lib/transporters/lwdfx/LwDFX.Tls.Client.ts +34 -0
- package/src/lib/transporters/lwdfx/LwDFX.Tls.Server.ts +94 -0
- package/src/lib/transporters/lwdfx/LwDFX.Transporter.ts +100 -0
- package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.ts +34 -0
- package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.ts +94 -0
- package/src/lib/transporters/lwdfx/LwDFX.decl.ts +19 -0
- package/src/lib/transporters/lwdfx/index.ts +23 -0
- package/src/lib/transporters/memory/Memory.Impl.ts +363 -0
- package/src/lib/transporters/memory/index.ts +17 -0
- package/src/lib/transporters/websocket/WebSocket.Client.ts +76 -0
- package/src/lib/transporters/websocket/WebSocket.Server.ts +118 -0
- package/src/lib/transporters/websocket/WebSocket.Transporter.ts +132 -0
- package/src/lib/transporters/websocket/WebSocket.decl.ts +21 -0
- package/src/lib/transporters/websocket/index.ts +19 -0
- package/lib/Client/BuiltInRIDGenerator.d.ts +0 -4
- package/lib/Client/BuiltInRIDGenerator.d.ts.map +0 -1
- package/lib/Client/BuiltInRIDGenerator.js +0 -18
- package/lib/Client/BuiltInRIDGenerator.js.map +0 -1
- package/lib/Client/Common.d.ts +0 -47
- package/lib/Client/Common.d.ts.map +0 -1
- package/lib/Client/Common.js +0 -18
- package/lib/Client/Common.js.map +0 -1
- package/lib/Client/Errors.d.ts +0 -26
- package/lib/Client/Errors.d.ts.map +0 -1
- package/lib/Client/Errors.js +0 -80
- package/lib/Client/Errors.js.map +0 -1
- package/lib/Client/HttpClient.d.ts +0 -37
- package/lib/Client/HttpClient.d.ts.map +0 -1
- package/lib/Client/HttpClient.js +0 -148
- package/lib/Client/HttpClient.js.map +0 -1
- package/lib/Client/HttpsClient.d.ts +0 -40
- package/lib/Client/HttpsClient.d.ts.map +0 -1
- package/lib/Client/HttpsClient.js +0 -144
- package/lib/Client/HttpsClient.js.map +0 -1
- package/lib/Client/TCPClient.d.ts +0 -34
- package/lib/Client/TCPClient.d.ts.map +0 -1
- package/lib/Client/TCPClient.js +0 -271
- package/lib/Client/TCPClient.js.map +0 -1
- package/lib/Client/TLSClient.d.ts +0 -34
- package/lib/Client/TLSClient.d.ts.map +0 -1
- package/lib/Client/TLSClient.js +0 -265
- package/lib/Client/TLSClient.js.map +0 -1
- package/lib/Client/index.d.ts +0 -23
- package/lib/Client/index.d.ts.map +0 -1
- package/lib/Client/index.js +0 -39
- package/lib/Client/index.js.map +0 -1
- package/lib/Common/API.d.ts +0 -19
- package/lib/Common/API.d.ts.map +0 -1
- package/lib/Common/API.js +0 -18
- package/lib/Common/API.js.map +0 -1
- package/lib/Common/Encoding.d.ts +0 -32
- package/lib/Common/Encoding.d.ts.map +0 -1
- package/lib/Common/Encoding.js +0 -20
- package/lib/Common/Encoding.js.map +0 -1
- package/lib/Common/Request.d.ts +0 -23
- package/lib/Common/Request.d.ts.map +0 -1
- package/lib/Common/Request.js +0 -18
- package/lib/Common/Request.js.map +0 -1
- package/lib/Common/Response.d.ts +0 -60
- package/lib/Common/Response.d.ts.map +0 -1
- package/lib/Common/Response.js +0 -42
- package/lib/Common/Response.js.map +0 -1
- package/lib/Common/index.d.ts +0 -20
- package/lib/Common/index.d.ts.map +0 -1
- package/lib/Common/index.js +0 -36
- package/lib/Common/index.js.map +0 -1
- package/lib/Encoder/Decoder.d.ts +0 -18
- package/lib/Encoder/Decoder.d.ts.map +0 -1
- package/lib/Encoder/Decoder.js +0 -136
- package/lib/Encoder/Decoder.js.map +0 -1
- package/lib/Encoder/Encoder.d.ts +0 -18
- package/lib/Encoder/Encoder.d.ts.map +0 -1
- package/lib/Encoder/Encoder.js +0 -35
- package/lib/Encoder/Encoder.js.map +0 -1
- package/lib/Encoder/Errors.d.ts +0 -17
- package/lib/Encoder/Errors.d.ts.map +0 -1
- package/lib/Encoder/Errors.js +0 -26
- package/lib/Encoder/Errors.js.map +0 -1
- package/lib/Errors.d.ts +0 -20
- package/lib/Errors.d.ts.map +0 -1
- package/lib/Errors.js +0 -40
- package/lib/Errors.js.map +0 -1
- package/lib/Server/Common/Gateway.d.ts +0 -26
- package/lib/Server/Common/Gateway.d.ts.map +0 -1
- package/lib/Server/Common/Gateway.js +0 -18
- package/lib/Server/Common/Gateway.js.map +0 -1
- package/lib/Server/Common/Request.d.ts +0 -21
- package/lib/Server/Common/Request.d.ts.map +0 -1
- package/lib/Server/Common/Request.js +0 -18
- package/lib/Server/Common/Request.js.map +0 -1
- package/lib/Server/Common/Router.d.ts +0 -41
- package/lib/Server/Common/Router.d.ts.map +0 -1
- package/lib/Server/Common/Router.js +0 -18
- package/lib/Server/Common/Router.js.map +0 -1
- package/lib/Server/Common/Server.d.ts +0 -57
- package/lib/Server/Common/Server.d.ts.map +0 -1
- package/lib/Server/Common/Server.js +0 -18
- package/lib/Server/Common/Server.js.map +0 -1
- package/lib/Server/Common/index.d.ts +0 -20
- package/lib/Server/Common/index.d.ts.map +0 -1
- package/lib/Server/Common/index.js +0 -36
- package/lib/Server/Common/index.js.map +0 -1
- package/lib/Server/Errors.d.ts +0 -25
- package/lib/Server/Errors.d.ts.map +0 -1
- package/lib/Server/Errors.js +0 -74
- package/lib/Server/Errors.js.map +0 -1
- package/lib/Server/Gateways/Http.d.ts +0 -18
- package/lib/Server/Gateways/Http.d.ts.map +0 -1
- package/lib/Server/Gateways/Http.js +0 -148
- package/lib/Server/Gateways/Http.js.map +0 -1
- package/lib/Server/Gateways/TCP.d.ts +0 -23
- package/lib/Server/Gateways/TCP.d.ts.map +0 -1
- package/lib/Server/Gateways/TCP.js +0 -146
- package/lib/Server/Gateways/TCP.js.map +0 -1
- package/lib/Server/Server.d.ts +0 -18
- package/lib/Server/Server.d.ts.map +0 -1
- package/lib/Server/Server.js +0 -200
- package/lib/Server/Server.js.map +0 -1
- package/lib/Server/SimpleRouter.d.ts +0 -41
- package/lib/Server/SimpleRouter.d.ts.map +0 -1
- package/lib/Server/SimpleRouter.js +0 -54
- package/lib/Server/SimpleRouter.js.map +0 -1
- package/lib/Server/index.d.ts +0 -22
- package/lib/Server/index.d.ts.map +0 -1
- package/lib/Server/index.js +0 -38
- package/lib/Server/index.js.map +0 -1
- package/src/lib/Client/BuiltInRIDGenerator.ts +0 -21
- package/src/lib/Client/Common.ts +0 -63
- package/src/lib/Client/Errors.ts +0 -87
- package/src/lib/Client/HttpClient.ts +0 -232
- package/src/lib/Client/HttpsClient.ts +0 -238
- package/src/lib/Client/TCPClient.ts +0 -420
- package/src/lib/Client/TLSClient.ts +0 -422
- package/src/lib/Client/index.ts +0 -23
- package/src/lib/Common/API.ts +0 -20
- package/src/lib/Common/Encoding.ts +0 -42
- package/src/lib/Common/Request.ts +0 -28
- package/src/lib/Common/Response.ts +0 -67
- package/src/lib/Common/index.ts +0 -20
- package/src/lib/Encoder/Decoder.ts +0 -206
- package/src/lib/Encoder/Encoder.ts +0 -41
- package/src/lib/Encoder/Errors.ts +0 -24
- package/src/lib/Errors.ts +0 -40
- package/src/lib/Server/Common/Gateway.ts +0 -37
- package/src/lib/Server/Common/Request.ts +0 -24
- package/src/lib/Server/Common/Router.ts +0 -52
- package/src/lib/Server/Common/Server.ts +0 -68
- package/src/lib/Server/Common/index.ts +0 -20
- package/src/lib/Server/Errors.ts +0 -80
- package/src/lib/Server/Gateways/Http.ts +0 -209
- package/src/lib/Server/Gateways/TCP.ts +0 -221
- package/src/lib/Server/Server.ts +0 -268
- package/src/lib/Server/SimpleRouter.ts +0 -95
- package/src/lib/Server/index.ts +0 -22
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 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.createConnector = exports.createServer = void 0;
|
|
19
|
+
const Shared = require("../../shared");
|
|
20
|
+
const node_events_1 = require("node:events");
|
|
21
|
+
const Crypto = require("node:crypto");
|
|
22
|
+
function createRandomName() {
|
|
23
|
+
return Crypto.randomBytes(8).toString('hex');
|
|
24
|
+
}
|
|
25
|
+
class MemoryExchange extends node_events_1.EventEmitter {
|
|
26
|
+
constructor(name) {
|
|
27
|
+
super();
|
|
28
|
+
this.name = name;
|
|
29
|
+
this._aEnded = false;
|
|
30
|
+
this._bEnded = false;
|
|
31
|
+
}
|
|
32
|
+
send(targetEndpoint, data) {
|
|
33
|
+
setImmediate(() => this.emit('data_' + targetEndpoint, data));
|
|
34
|
+
}
|
|
35
|
+
isEnded(endpoint) {
|
|
36
|
+
if (endpoint === 'a') {
|
|
37
|
+
return this._aEnded;
|
|
38
|
+
}
|
|
39
|
+
return this._bEnded;
|
|
40
|
+
}
|
|
41
|
+
end(endpoint) {
|
|
42
|
+
if (this._aEnded && this._bEnded) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (endpoint === 'a') {
|
|
46
|
+
if (this._aEnded) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this._aEnded = true;
|
|
50
|
+
setImmediate(() => this.emit('end_a'));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
if (this._bEnded) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this._bEnded = true;
|
|
57
|
+
setImmediate(() => this.emit('end_b'));
|
|
58
|
+
}
|
|
59
|
+
if (this._aEnded && this._bEnded) {
|
|
60
|
+
setImmediate(() => this.emit('close'));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
close() {
|
|
64
|
+
this.end('a');
|
|
65
|
+
this.end('b');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
class MemorySocket extends node_events_1.EventEmitter {
|
|
69
|
+
constructor(_exchange, _endpoint) {
|
|
70
|
+
super();
|
|
71
|
+
this._exchange = _exchange;
|
|
72
|
+
this._endpoint = _endpoint;
|
|
73
|
+
this.protocol = 'memory';
|
|
74
|
+
this._targetEndpoint = _endpoint === 'a' ? 'b' : 'a';
|
|
75
|
+
this._exchange
|
|
76
|
+
.on('end_' + this._targetEndpoint, () => {
|
|
77
|
+
try {
|
|
78
|
+
this.emit('end');
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
this.emit('error', e);
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
.on('data_' + this._endpoint, (data) => {
|
|
85
|
+
try {
|
|
86
|
+
this.emit('frame', data);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
this.emit('error', e);
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
.on('error', (e) => this.emit('error', e))
|
|
93
|
+
.on('close', () => this.emit('close'));
|
|
94
|
+
}
|
|
95
|
+
get writable() {
|
|
96
|
+
return !this._exchange.isEnded(this._endpoint);
|
|
97
|
+
}
|
|
98
|
+
getProperty(name) {
|
|
99
|
+
switch (name) {
|
|
100
|
+
case 'remoteAddress': return 'localhost';
|
|
101
|
+
case 'remotePort': return 0;
|
|
102
|
+
case 'localAddress': return 'localhost';
|
|
103
|
+
case 'localPort': return 0;
|
|
104
|
+
default: return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
getPropertyNames() {
|
|
108
|
+
return ['remoteAddress', 'remotePort', 'localAddress', 'localPort'];
|
|
109
|
+
}
|
|
110
|
+
getAllProperties() {
|
|
111
|
+
return {
|
|
112
|
+
'remoteAddress': 'localhost',
|
|
113
|
+
'remotePort': 0,
|
|
114
|
+
'localAddress': 'localhost',
|
|
115
|
+
'localPort': 0,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
write(data) {
|
|
119
|
+
if (this._exchange.isEnded(this._endpoint)) {
|
|
120
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost' });
|
|
121
|
+
}
|
|
122
|
+
if (!Array.isArray(data)) {
|
|
123
|
+
data = [data];
|
|
124
|
+
}
|
|
125
|
+
for (let i = 0; i < data.length; ++i) {
|
|
126
|
+
if (!(data[i] instanceof Buffer)) {
|
|
127
|
+
data[i] = Buffer.from(data[i]);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
this._exchange.send(this._targetEndpoint, data);
|
|
131
|
+
}
|
|
132
|
+
destroy() {
|
|
133
|
+
this._exchange.close();
|
|
134
|
+
}
|
|
135
|
+
end(lastChunk) {
|
|
136
|
+
if (lastChunk !== undefined) {
|
|
137
|
+
this.write(lastChunk);
|
|
138
|
+
}
|
|
139
|
+
this._exchange.end(this._endpoint);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
class MemoryGateway extends node_events_1.EventEmitter {
|
|
143
|
+
constructor(name, _server) {
|
|
144
|
+
super();
|
|
145
|
+
this.name = name;
|
|
146
|
+
this._server = _server;
|
|
147
|
+
this._running = false;
|
|
148
|
+
this._exchanges = {};
|
|
149
|
+
}
|
|
150
|
+
get running() {
|
|
151
|
+
return this._running;
|
|
152
|
+
}
|
|
153
|
+
_createExchange() {
|
|
154
|
+
const ex = new MemoryExchange(this._generateExchangeName());
|
|
155
|
+
return this._exchanges[ex.name] = ex;
|
|
156
|
+
}
|
|
157
|
+
_generateExchangeName() {
|
|
158
|
+
let name;
|
|
159
|
+
do {
|
|
160
|
+
name = createRandomName();
|
|
161
|
+
} while (this._exchanges[name]);
|
|
162
|
+
return name;
|
|
163
|
+
}
|
|
164
|
+
connect() {
|
|
165
|
+
if (!this._running) {
|
|
166
|
+
throw new Shared.errors.network_error({ reason: 'conn_refused' });
|
|
167
|
+
}
|
|
168
|
+
const ex = this._createExchange();
|
|
169
|
+
const serverSocket = new MemorySocket(ex, 'a');
|
|
170
|
+
const clientSocket = new MemorySocket(ex, 'b');
|
|
171
|
+
ex.on('close', () => {
|
|
172
|
+
delete this._exchanges[ex.name];
|
|
173
|
+
});
|
|
174
|
+
this._server.registerChannel(serverSocket);
|
|
175
|
+
return clientSocket;
|
|
176
|
+
}
|
|
177
|
+
start() {
|
|
178
|
+
if (!this._running) {
|
|
179
|
+
this._running = true;
|
|
180
|
+
this.emit('listening');
|
|
181
|
+
}
|
|
182
|
+
return Promise.resolve();
|
|
183
|
+
}
|
|
184
|
+
stop() {
|
|
185
|
+
if (!this._running) {
|
|
186
|
+
return Promise.resolve();
|
|
187
|
+
}
|
|
188
|
+
for (const ex of Object.values(this._exchanges)) {
|
|
189
|
+
ex.close();
|
|
190
|
+
}
|
|
191
|
+
this.emit('close');
|
|
192
|
+
return Promise.resolve();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const servers = {};
|
|
196
|
+
function createServer(opts, listener) {
|
|
197
|
+
opts.name ?? (opts.name = createRandomName());
|
|
198
|
+
if (servers[opts.name]) {
|
|
199
|
+
throw new Shared.errors.network_error({ reason: 'dup_listen' });
|
|
200
|
+
}
|
|
201
|
+
const server = new MemoryGateway(opts.name, opts.server);
|
|
202
|
+
servers[opts.name] = server;
|
|
203
|
+
if (listener) {
|
|
204
|
+
server.on('connection', listener);
|
|
205
|
+
}
|
|
206
|
+
server.on('close', () => {
|
|
207
|
+
delete servers[opts.name];
|
|
208
|
+
});
|
|
209
|
+
return server;
|
|
210
|
+
}
|
|
211
|
+
exports.createServer = createServer;
|
|
212
|
+
class MemoryConnector {
|
|
213
|
+
constructor(_name) {
|
|
214
|
+
this._name = _name;
|
|
215
|
+
}
|
|
216
|
+
connect() {
|
|
217
|
+
if (!servers[this._name]) {
|
|
218
|
+
throw new Shared.errors.network_error({ reason: 'unknown_dest' });
|
|
219
|
+
}
|
|
220
|
+
return Promise.resolve(servers[this._name].connect());
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function createConnector(name) {
|
|
224
|
+
return new MemoryConnector(name);
|
|
225
|
+
}
|
|
226
|
+
exports.createConnector = createConnector;
|
|
227
|
+
//# sourceMappingURL=Memory.Impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Memory.Impl.js","sourceRoot":"","sources":["../../../src/lib/transporters/memory/Memory.Impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 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 './Memory.Impl';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AAEF,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 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("./Memory.Impl"), exports);
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/transporters/memory/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;;;;;;;;;;;;;;AAEF,gDAA8B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 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 LibWS from '@litert/websocket';
|
|
17
|
+
import type * as dT from '../Transporter.decl';
|
|
18
|
+
export declare function createWsConnector(opts: LibWS.IWsConnectOptions): dT.IConnector;
|
|
19
|
+
export declare function createWssConnector(opts: LibWS.IWssConnectOptions): dT.IConnector;
|
|
20
|
+
//# sourceMappingURL=WebSocket.Client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSocket.Client.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;AAEF,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAE3C,OAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA+C/C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,UAAU,CAI9E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,UAAU,CAIhF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 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.createWssConnector = exports.createWsConnector = void 0;
|
|
19
|
+
const LibWS = require("@litert/websocket");
|
|
20
|
+
const dWS = require("./WebSocket.decl");
|
|
21
|
+
const WebSocket_Transporter_1 = require("./WebSocket.Transporter");
|
|
22
|
+
class WsConnector {
|
|
23
|
+
constructor(_opts) {
|
|
24
|
+
this._opts = _opts;
|
|
25
|
+
}
|
|
26
|
+
async connect() {
|
|
27
|
+
const ws = await LibWS.wsConnect({
|
|
28
|
+
...this._opts,
|
|
29
|
+
headers: {
|
|
30
|
+
...this._opts?.headers,
|
|
31
|
+
...LibWS.createClientHandshakeHeaders({
|
|
32
|
+
'subProtocols': [dWS.WEBSOCKET_SUB_PROTOCOL]
|
|
33
|
+
})
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
ws.setMasking(false);
|
|
37
|
+
return new WebSocket_Transporter_1.WebSocketTransporter(dWS.WS_PROTOCOL_NAME, ws);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
class WssConnector {
|
|
41
|
+
constructor(_opts) {
|
|
42
|
+
this._opts = _opts;
|
|
43
|
+
}
|
|
44
|
+
async connect() {
|
|
45
|
+
const ws = await LibWS.wssConnect({
|
|
46
|
+
...this._opts,
|
|
47
|
+
headers: {
|
|
48
|
+
...this._opts?.headers,
|
|
49
|
+
...LibWS.createClientHandshakeHeaders({
|
|
50
|
+
'subProtocols': [dWS.WEBSOCKET_SUB_PROTOCOL]
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
ws.setMasking(false);
|
|
55
|
+
return new WebSocket_Transporter_1.WebSocketTransporter(dWS.WSS_PROTOCOL_NAME, ws);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function createWsConnector(opts) {
|
|
59
|
+
opts.liteFrameMode = true;
|
|
60
|
+
return new WsConnector(opts);
|
|
61
|
+
}
|
|
62
|
+
exports.createWsConnector = createWsConnector;
|
|
63
|
+
function createWssConnector(opts) {
|
|
64
|
+
opts.liteFrameMode = true;
|
|
65
|
+
return new WssConnector(opts);
|
|
66
|
+
}
|
|
67
|
+
exports.createWssConnector = createWssConnector;
|
|
68
|
+
//# sourceMappingURL=WebSocket.Client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSocket.Client.js","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Client.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,2CAA2C;AAC3C,wCAAwC;AAExC,mEAA+D;AAE/D,MAAM,WAAW;IAEb,YAAoC,KAA8B;QAA9B,UAAK,GAAL,KAAK,CAAyB;IAAG,CAAC;IAE/D,KAAK,CAAC,OAAO;QAEhB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;YAC7B,GAAG,IAAI,CAAC,KAAK;YACb,OAAO,EAAE;gBACL,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO;gBACtB,GAAG,KAAK,CAAC,4BAA4B,CAAC;oBAClC,cAAc,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC;iBAC/C,CAAC;aACL;SACJ,CAAC,CAAC;QAEH,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAErB,OAAO,IAAI,4CAAoB,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;CACJ;AAED,MAAM,YAAY;IAEd,YAAoC,KAA+B;QAA/B,UAAK,GAAL,KAAK,CAA0B;IAAG,CAAC;IAEhE,KAAK,CAAC,OAAO;QAEhB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAC9B,GAAG,IAAI,CAAC,KAAK;YACb,OAAO,EAAE;gBACL,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO;gBACtB,GAAG,KAAK,CAAC,4BAA4B,CAAC;oBAClC,cAAc,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC;iBAC/C,CAAC;aACL;SACJ,CAAC,CAAC;QAEH,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAErB,OAAO,IAAI,4CAAoB,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;CACJ;AAED,SAAgB,iBAAiB,CAAC,IAA6B;IAE3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC1B,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAJD,8CAIC;AAED,SAAgB,kBAAkB,CAAC,IAA8B;IAE7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC1B,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAJD,gDAIC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 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 type * as Listener from '../http-listener';
|
|
17
|
+
import type * as dT from '../Transporter.decl';
|
|
18
|
+
/**
|
|
19
|
+
* Create a WebSocket gateway.
|
|
20
|
+
*
|
|
21
|
+
* @param listener The HTTP(S) listener object.
|
|
22
|
+
* @param server The televoke server object.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createWebsocketGateway(listener: Listener.IHttpListener, server: dT.IServer): dT.IGateway;
|
|
25
|
+
//# sourceMappingURL=WebSocket.Server.d.ts.map
|
|
@@ -0,0 +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;AAsF/C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,QAAQ,CAAC,aAAa,EAChC,MAAM,EAAE,EAAE,CAAC,OAAO,GACnB,EAAE,CAAC,QAAQ,CAGb"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 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.createWebsocketGateway = void 0;
|
|
19
|
+
const LibWS = require("@litert/websocket");
|
|
20
|
+
const dWS = require("./WebSocket.decl");
|
|
21
|
+
const node_events_1 = require("node:events");
|
|
22
|
+
const WebSocket_Transporter_1 = require("./WebSocket.Transporter");
|
|
23
|
+
class WebSocketGateway extends node_events_1.EventEmitter {
|
|
24
|
+
constructor(_listener, _server) {
|
|
25
|
+
super();
|
|
26
|
+
this._listener = _listener;
|
|
27
|
+
this._server = _server;
|
|
28
|
+
this._onUpgrade = (req, socket) => {
|
|
29
|
+
let apn = req.headers[LibWS.H1_HDR_NAME_WS_PROTOCOL];
|
|
30
|
+
if (!apn) {
|
|
31
|
+
this._wsServer.reject({
|
|
32
|
+
'request': req,
|
|
33
|
+
'socket': socket,
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (!Array.isArray(apn)) {
|
|
38
|
+
apn = [apn];
|
|
39
|
+
}
|
|
40
|
+
if (!apn.includes(dWS.WEBSOCKET_SUB_PROTOCOL)) {
|
|
41
|
+
this._wsServer.reject({
|
|
42
|
+
'request': req,
|
|
43
|
+
'socket': socket,
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const ws = this._wsServer.accept({
|
|
48
|
+
'request': req,
|
|
49
|
+
'socket': socket,
|
|
50
|
+
'subProtocol': dWS.WEBSOCKET_SUB_PROTOCOL,
|
|
51
|
+
});
|
|
52
|
+
this._server.registerChannel(new WebSocket_Transporter_1.WebSocketTransporter(dWS.WS_PROTOCOL_NAME, ws));
|
|
53
|
+
};
|
|
54
|
+
this._listener
|
|
55
|
+
.on('error', (e) => this.emit('error', e))
|
|
56
|
+
.setUpgradeProcessor(this._onUpgrade);
|
|
57
|
+
this._wsServer = LibWS.createServer({
|
|
58
|
+
liteFrameMode: true,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
get running() {
|
|
62
|
+
return this._listener.running;
|
|
63
|
+
}
|
|
64
|
+
async start() {
|
|
65
|
+
if (this.running) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
await this._listener.start();
|
|
69
|
+
}
|
|
70
|
+
async stop() {
|
|
71
|
+
if (!this.running) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
await this._listener.stop();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create a WebSocket gateway.
|
|
79
|
+
*
|
|
80
|
+
* @param listener The HTTP(S) listener object.
|
|
81
|
+
* @param server The televoke server object.
|
|
82
|
+
*/
|
|
83
|
+
function createWebsocketGateway(listener, server) {
|
|
84
|
+
return new WebSocketGateway(listener, server);
|
|
85
|
+
}
|
|
86
|
+
exports.createWebsocketGateway = createWebsocketGateway;
|
|
87
|
+
//# sourceMappingURL=WebSocket.Server.js.map
|
|
@@ -0,0 +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;QAGpC,KAAK,EAAE,CAAC;QAJS,cAAS,GAAT,SAAS,CAAwB;QACjC,YAAO,GAAP,OAAO,CAAY;QAcvB,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;gBAEN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBAClB,SAAS,EAAE,GAAG;oBACd,QAAQ,EAAE,MAAa;iBAC1B,CAAC,CAAC;gBACH,OAAO;aACV;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAErB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;aACf;YAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;gBAE3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBAClB,SAAS,EAAE,GAAG;oBACd,QAAQ,EAAE,MAAa;iBAC1B,CAAC,CAAC;gBACH,OAAO;aACV;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;QA3CE,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;SACtB,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;YAEd,OAAO;SACV;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,IAAI;QAEb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAEf,OAAO;SACV;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACJ;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAClC,QAAgC,EAChC,MAAkB;IAGlB,OAAO,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAND,wDAMC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 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
|
+
/// <reference types="node" />
|
|
17
|
+
/// <reference types="node" />
|
|
18
|
+
import * as LibWS from '@litert/websocket';
|
|
19
|
+
import * as Shared from '../../shared';
|
|
20
|
+
import type * as dT from '../Transporter.decl';
|
|
21
|
+
import { EventEmitter } from 'node:events';
|
|
22
|
+
export declare class WebSocketTransporter extends EventEmitter implements dT.ITransporter, Shared.ITransporter {
|
|
23
|
+
readonly protocol: string;
|
|
24
|
+
protected readonly _conn: LibWS.IWebSocket;
|
|
25
|
+
constructor(protocol: string, _conn: LibWS.IWebSocket);
|
|
26
|
+
destroy(): void;
|
|
27
|
+
getPropertyNames(): string[];
|
|
28
|
+
getAllProperties(): Record<string, unknown>;
|
|
29
|
+
getProperty(name: string): unknown;
|
|
30
|
+
get writable(): boolean;
|
|
31
|
+
write(frame: string | Buffer | Array<string | Buffer>): void;
|
|
32
|
+
end(frame?: Buffer | string): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=WebSocket.Transporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSocket.Transporter.d.ts","sourceRoot":"","sources":["../../../src/lib/transporters/websocket/WebSocket.Transporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;EAcE;;;AAEF,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,qBAAa,oBAAqB,SAAQ,YAAa,YAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY;aAG9E,QAAQ,EAAE,MAAM;IAChC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU;gBAD1B,QAAQ,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,UAAU;IA4BvC,OAAO,IAAI,IAAI;IAKf,gBAAgB,IAAI,MAAM,EAAE;IAK5B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAczC,IAAW,QAAQ,IAAI,OAAO,CAG7B;IAEM,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI;IAiB5D,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAmB5C"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 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.WebSocketTransporter = void 0;
|
|
19
|
+
const LibWS = require("@litert/websocket");
|
|
20
|
+
const Shared = require("../../shared");
|
|
21
|
+
const node_events_1 = require("node:events");
|
|
22
|
+
const PROPERTY_NAMES = ['remoteAddress', 'remotePort', 'localAddress', 'localPort', 'peerCertificate'];
|
|
23
|
+
class WebSocketTransporter extends node_events_1.EventEmitter {
|
|
24
|
+
constructor(protocol, _conn) {
|
|
25
|
+
super();
|
|
26
|
+
this.protocol = protocol;
|
|
27
|
+
this._conn = _conn;
|
|
28
|
+
this._conn
|
|
29
|
+
.on('end', () => this.emit('end'))
|
|
30
|
+
.on('finish', () => this.emit('finish'))
|
|
31
|
+
.on('frame', (frame) => {
|
|
32
|
+
switch (frame.opcode) {
|
|
33
|
+
case LibWS.EOpcode.BINARY:
|
|
34
|
+
this.emit('frame', frame.data);
|
|
35
|
+
break;
|
|
36
|
+
case LibWS.EOpcode.CLOSE:
|
|
37
|
+
this.end();
|
|
38
|
+
break;
|
|
39
|
+
case LibWS.EOpcode.PING:
|
|
40
|
+
this._conn.pong(Buffer.concat(frame.data));
|
|
41
|
+
break;
|
|
42
|
+
default:
|
|
43
|
+
this.emit('error', new Shared.errors.network_error({ reason: 'invalid_frame' }));
|
|
44
|
+
this.destroy();
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
.on('error', (e) => this.emit('error', e))
|
|
48
|
+
.on('close', () => this.emit('close'));
|
|
49
|
+
}
|
|
50
|
+
destroy() {
|
|
51
|
+
this._conn.destroy();
|
|
52
|
+
}
|
|
53
|
+
getPropertyNames() {
|
|
54
|
+
return PROPERTY_NAMES;
|
|
55
|
+
}
|
|
56
|
+
getAllProperties() {
|
|
57
|
+
return {
|
|
58
|
+
'remoteAddress': this._conn.remoteAddress,
|
|
59
|
+
'remotePort': this._conn.remotePort,
|
|
60
|
+
'localAddress': this._conn.localAddress,
|
|
61
|
+
'localPort': this._conn.localPort,
|
|
62
|
+
'peerCertificate': this._conn.peerCertificate,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
getProperty(name) {
|
|
66
|
+
switch (name) {
|
|
67
|
+
case 'localPort':
|
|
68
|
+
case 'localAddress':
|
|
69
|
+
case 'remotePort':
|
|
70
|
+
case 'remoteAddress':
|
|
71
|
+
case 'peerCertificate':
|
|
72
|
+
return this._conn[name];
|
|
73
|
+
default:
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
get writable() {
|
|
78
|
+
return this._conn.connected;
|
|
79
|
+
}
|
|
80
|
+
write(frame) {
|
|
81
|
+
if (!this._conn.writable) {
|
|
82
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost' });
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
this._conn.writeBinary(frame);
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost', cause: e });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
end(frame) {
|
|
92
|
+
if (this._conn.writable) {
|
|
93
|
+
if (frame) {
|
|
94
|
+
try {
|
|
95
|
+
this._conn.writeBinary(frame);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
throw new Shared.errors.network_error({ reason: 'conn_lost', cause: e });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
this._conn.end();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.WebSocketTransporter = WebSocketTransporter;
|
|
106
|
+
//# sourceMappingURL=WebSocket.Transporter.js.map
|