@litert/televoke 1.1.0 → 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.
Files changed (206) hide show
  1. package/CHANGES.md +9 -0
  2. package/lib/client/Client.decl.d.ts +1 -1
  3. package/lib/client/Client.decl.js +1 -1
  4. package/lib/client/JsonApiClient.impl.d.ts +1 -1
  5. package/lib/client/JsonApiClient.impl.js +1 -1
  6. package/lib/client/index.d.ts +1 -1
  7. package/lib/client/index.js +1 -1
  8. package/lib/index.d.ts +1 -1
  9. package/lib/index.js +1 -1
  10. package/lib/server/LegacyServerChannel.impl.d.ts +1 -1
  11. package/lib/server/LegacyServerChannel.impl.js +1 -1
  12. package/lib/server/Server.decl.d.ts +1 -1
  13. package/lib/server/Server.decl.js +1 -1
  14. package/lib/server/Server.impl.d.ts +1 -1
  15. package/lib/server/Server.impl.js +1 -1
  16. package/lib/server/ServerChannel.d.ts +1 -1
  17. package/lib/server/ServerChannel.js +1 -1
  18. package/lib/server/SimpleJsonApiRouter.d.ts +1 -1
  19. package/lib/server/SimpleJsonApiRouter.js +1 -1
  20. package/lib/server/index.d.ts +1 -1
  21. package/lib/server/index.js +1 -1
  22. package/lib/shared/BinaryStream.d.ts +1 -1
  23. package/lib/shared/BinaryStream.js +1 -1
  24. package/lib/shared/BinaryStreamManager.d.ts +1 -1
  25. package/lib/shared/BinaryStreamManager.js +1 -1
  26. package/lib/shared/Channel.impl.d.ts +1 -1
  27. package/lib/shared/Channel.impl.js +1 -1
  28. package/lib/shared/Constants.d.ts +1 -1
  29. package/lib/shared/Constants.js +1 -1
  30. package/lib/shared/Encodings/index.d.ts +1 -1
  31. package/lib/shared/Encodings/index.js +1 -1
  32. package/lib/shared/Encodings/v1/EncoderV1.d.ts +1 -1
  33. package/lib/shared/Encodings/v1/EncoderV1.js +1 -1
  34. package/lib/shared/Encodings/v1/Protocol.v1.decls.d.ts +1 -1
  35. package/lib/shared/Encodings/v1/Protocol.v1.decls.js +1 -1
  36. package/lib/shared/Encodings/v1/index.d.ts +1 -1
  37. package/lib/shared/Encodings/v1/index.js +1 -1
  38. package/lib/shared/Encodings/v2/Constants.v2.d.ts +1 -1
  39. package/lib/shared/Encodings/v2/Constants.v2.js +1 -1
  40. package/lib/shared/Encodings/v2/DecoderV2.d.ts +1 -1
  41. package/lib/shared/Encodings/v2/DecoderV2.js +1 -1
  42. package/lib/shared/Encodings/v2/EncoderV2.d.ts +1 -1
  43. package/lib/shared/Encodings/v2/EncoderV2.js +1 -1
  44. package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts +1 -1
  45. package/lib/shared/Encodings/v2/Encoding.v2.decl.js +1 -1
  46. package/lib/shared/Encodings/v2/index.d.ts +1 -1
  47. package/lib/shared/Encodings/v2/index.js +1 -1
  48. package/lib/shared/Errors.d.ts +1 -1
  49. package/lib/shared/Errors.d.ts.map +1 -1
  50. package/lib/shared/Errors.js +1 -1
  51. package/lib/shared/Shared.decl.d.ts +2 -2
  52. package/lib/shared/Shared.decl.d.ts.map +1 -1
  53. package/lib/shared/Shared.decl.js +1 -1
  54. package/lib/shared/Utils.d.ts +1 -1
  55. package/lib/shared/Utils.js +1 -1
  56. package/lib/shared/index.d.ts +1 -1
  57. package/lib/shared/index.js +1 -1
  58. package/lib/transporters/Transporter.decl.d.ts +1 -1
  59. package/lib/transporters/Transporter.decl.js +1 -1
  60. package/lib/transporters/http-listener/AbstractHttpListener.d.ts +2 -2
  61. package/lib/transporters/http-listener/AbstractHttpListener.d.ts.map +1 -1
  62. package/lib/transporters/http-listener/AbstractHttpListener.js +10 -6
  63. package/lib/transporters/http-listener/AbstractHttpListener.js.map +1 -1
  64. package/lib/transporters/http-listener/Http.Decl.d.ts +1 -5
  65. package/lib/transporters/http-listener/Http.Decl.d.ts.map +1 -1
  66. package/lib/transporters/http-listener/Http.Decl.js +2 -21
  67. package/lib/transporters/http-listener/Http.Decl.js.map +1 -1
  68. package/lib/transporters/http-listener/HttpListener.d.ts +1 -1
  69. package/lib/transporters/http-listener/HttpListener.d.ts.map +1 -1
  70. package/lib/transporters/http-listener/HttpListener.js +4 -2
  71. package/lib/transporters/http-listener/HttpListener.js.map +1 -1
  72. package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts +1 -1
  73. package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts.map +1 -1
  74. package/lib/transporters/http-listener/HttpUnixSocketListener.js +4 -2
  75. package/lib/transporters/http-listener/HttpUnixSocketListener.js.map +1 -1
  76. package/lib/transporters/http-listener/HttpsListener.d.ts +1 -1
  77. package/lib/transporters/http-listener/HttpsListener.d.ts.map +1 -1
  78. package/lib/transporters/http-listener/HttpsListener.js +6 -4
  79. package/lib/transporters/http-listener/HttpsListener.js.map +1 -1
  80. package/lib/transporters/http-listener/index.d.ts +1 -1
  81. package/lib/transporters/http-listener/index.js +1 -1
  82. package/lib/transporters/index.d.ts +1 -1
  83. package/lib/transporters/index.js +1 -1
  84. package/lib/transporters/legacy-http/LegacyHttp.Client.Native.d.ts +12 -2
  85. package/lib/transporters/legacy-http/LegacyHttp.Client.Native.d.ts.map +1 -1
  86. package/lib/transporters/legacy-http/LegacyHttp.Client.Native.js +11 -1
  87. package/lib/transporters/legacy-http/LegacyHttp.Client.Native.js.map +1 -1
  88. package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts +29 -1
  89. package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts.map +1 -1
  90. package/lib/transporters/legacy-http/LegacyHttp.Server.js +35 -10
  91. package/lib/transporters/legacy-http/LegacyHttp.Server.js.map +1 -1
  92. package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts +1 -1
  93. package/lib/transporters/legacy-http/LegacyHttp.Transporter.js +1 -1
  94. package/lib/transporters/legacy-http/index.d.ts +1 -1
  95. package/lib/transporters/legacy-http/index.js +1 -1
  96. package/lib/transporters/lwdfx/LwDFX.Tcp.Client.d.ts +1 -1
  97. package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js +1 -1
  98. package/lib/transporters/lwdfx/LwDFX.Tcp.Server.d.ts +1 -1
  99. package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js +1 -1
  100. package/lib/transporters/lwdfx/LwDFX.Tls.Client.d.ts +1 -1
  101. package/lib/transporters/lwdfx/LwDFX.Tls.Client.js +1 -1
  102. package/lib/transporters/lwdfx/LwDFX.Tls.Server.d.ts +1 -1
  103. package/lib/transporters/lwdfx/LwDFX.Tls.Server.js +1 -1
  104. package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts +1 -1
  105. package/lib/transporters/lwdfx/LwDFX.Transporter.js +1 -1
  106. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.d.ts +1 -1
  107. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js +1 -1
  108. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.d.ts +1 -1
  109. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js +1 -1
  110. package/lib/transporters/lwdfx/LwDFX.decl.d.ts +1 -1
  111. package/lib/transporters/lwdfx/LwDFX.decl.js +1 -1
  112. package/lib/transporters/lwdfx/index.d.ts +1 -1
  113. package/lib/transporters/lwdfx/index.js +1 -1
  114. package/lib/transporters/memory/Memory.Impl.d.ts +1 -1
  115. package/lib/transporters/memory/Memory.Impl.js +1 -1
  116. package/lib/transporters/memory/index.d.ts +1 -1
  117. package/lib/transporters/memory/index.js +1 -1
  118. package/lib/transporters/websocket/WebSocket.Client.d.ts +18 -3
  119. package/lib/transporters/websocket/WebSocket.Client.d.ts.map +1 -1
  120. package/lib/transporters/websocket/WebSocket.Client.js +21 -1
  121. package/lib/transporters/websocket/WebSocket.Client.js.map +1 -1
  122. package/lib/transporters/websocket/WebSocket.Server.d.ts +24 -2
  123. package/lib/transporters/websocket/WebSocket.Server.d.ts.map +1 -1
  124. package/lib/transporters/websocket/WebSocket.Server.js +29 -10
  125. package/lib/transporters/websocket/WebSocket.Server.js.map +1 -1
  126. package/lib/transporters/websocket/WebSocket.Transporter.d.ts +1 -1
  127. package/lib/transporters/websocket/WebSocket.Transporter.js +1 -1
  128. package/lib/transporters/websocket/WebSocket.decl.d.ts +1 -1
  129. package/lib/transporters/websocket/WebSocket.decl.js +1 -1
  130. package/lib/transporters/websocket/index.d.ts +1 -1
  131. package/lib/transporters/websocket/index.js +1 -1
  132. package/lib/transporters/worker-thread/WorkerThread.Client.d.ts +1 -1
  133. package/lib/transporters/worker-thread/WorkerThread.Client.js +1 -1
  134. package/lib/transporters/worker-thread/WorkerThread.Constants.d.ts +1 -1
  135. package/lib/transporters/worker-thread/WorkerThread.Constants.js +1 -1
  136. package/lib/transporters/worker-thread/WorkerThread.Errors.d.ts +1 -1
  137. package/lib/transporters/worker-thread/WorkerThread.Errors.d.ts.map +1 -1
  138. package/lib/transporters/worker-thread/WorkerThread.Errors.js +1 -1
  139. package/lib/transporters/worker-thread/WorkerThread.Server.d.ts +1 -1
  140. package/lib/transporters/worker-thread/WorkerThread.Server.js +1 -1
  141. package/lib/transporters/worker-thread/WorkerThread.Transporter.d.ts +1 -1
  142. package/lib/transporters/worker-thread/WorkerThread.Transporter.js +1 -1
  143. package/lib/transporters/worker-thread/index.d.ts +1 -1
  144. package/lib/transporters/worker-thread/index.js +1 -1
  145. package/package.json +5 -5
  146. package/src/lib/client/Client.decl.ts +1 -1
  147. package/src/lib/client/JsonApiClient.impl.ts +1 -1
  148. package/src/lib/client/index.ts +1 -1
  149. package/src/lib/index.ts +1 -1
  150. package/src/lib/server/LegacyServerChannel.impl.ts +1 -1
  151. package/src/lib/server/Server.decl.ts +1 -1
  152. package/src/lib/server/Server.impl.ts +1 -1
  153. package/src/lib/server/ServerChannel.ts +1 -1
  154. package/src/lib/server/SimpleJsonApiRouter.ts +1 -1
  155. package/src/lib/server/index.ts +1 -1
  156. package/src/lib/shared/BinaryStream.ts +1 -1
  157. package/src/lib/shared/BinaryStreamManager.ts +1 -1
  158. package/src/lib/shared/Channel.impl.ts +1 -1
  159. package/src/lib/shared/Constants.ts +1 -1
  160. package/src/lib/shared/Encodings/index.ts +1 -1
  161. package/src/lib/shared/Encodings/v1/EncoderV1.ts +1 -1
  162. package/src/lib/shared/Encodings/v1/Protocol.v1.decls.ts +1 -1
  163. package/src/lib/shared/Encodings/v1/index.ts +1 -1
  164. package/src/lib/shared/Encodings/v2/Constants.v2.ts +1 -1
  165. package/src/lib/shared/Encodings/v2/DecoderV2.ts +1 -1
  166. package/src/lib/shared/Encodings/v2/EncoderV2.ts +1 -1
  167. package/src/lib/shared/Encodings/v2/Encoding.v2.decl.ts +1 -1
  168. package/src/lib/shared/Encodings/v2/index.ts +1 -1
  169. package/src/lib/shared/Errors.ts +1 -1
  170. package/src/lib/shared/Shared.decl.ts +3 -3
  171. package/src/lib/shared/Utils.ts +1 -1
  172. package/src/lib/shared/index.ts +1 -1
  173. package/src/lib/transporters/Transporter.decl.ts +1 -1
  174. package/src/lib/transporters/http-listener/AbstractHttpListener.ts +14 -6
  175. package/src/lib/transporters/http-listener/Http.Decl.ts +1 -26
  176. package/src/lib/transporters/http-listener/HttpListener.ts +10 -2
  177. package/src/lib/transporters/http-listener/HttpUnixSocketListener.ts +10 -2
  178. package/src/lib/transporters/http-listener/HttpsListener.ts +12 -4
  179. package/src/lib/transporters/http-listener/index.ts +1 -1
  180. package/src/lib/transporters/index.ts +1 -1
  181. package/src/lib/transporters/legacy-http/LegacyHttp.Client.Native.ts +30 -3
  182. package/src/lib/transporters/legacy-http/LegacyHttp.Server.ts +57 -9
  183. package/src/lib/transporters/legacy-http/LegacyHttp.Transporter.ts +1 -1
  184. package/src/lib/transporters/legacy-http/index.ts +1 -1
  185. package/src/lib/transporters/lwdfx/LwDFX.Tcp.Client.ts +1 -1
  186. package/src/lib/transporters/lwdfx/LwDFX.Tcp.Server.ts +1 -1
  187. package/src/lib/transporters/lwdfx/LwDFX.Tls.Client.ts +1 -1
  188. package/src/lib/transporters/lwdfx/LwDFX.Tls.Server.ts +1 -1
  189. package/src/lib/transporters/lwdfx/LwDFX.Transporter.ts +1 -1
  190. package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.ts +1 -1
  191. package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.ts +1 -1
  192. package/src/lib/transporters/lwdfx/LwDFX.decl.ts +1 -1
  193. package/src/lib/transporters/lwdfx/index.ts +1 -1
  194. package/src/lib/transporters/memory/Memory.Impl.ts +1 -1
  195. package/src/lib/transporters/memory/index.ts +1 -1
  196. package/src/lib/transporters/websocket/WebSocket.Client.ts +52 -7
  197. package/src/lib/transporters/websocket/WebSocket.Server.ts +55 -9
  198. package/src/lib/transporters/websocket/WebSocket.Transporter.ts +1 -1
  199. package/src/lib/transporters/websocket/WebSocket.decl.ts +1 -1
  200. package/src/lib/transporters/websocket/index.ts +1 -1
  201. package/src/lib/transporters/worker-thread/WorkerThread.Client.ts +1 -1
  202. package/src/lib/transporters/worker-thread/WorkerThread.Constants.ts +1 -1
  203. package/src/lib/transporters/worker-thread/WorkerThread.Errors.ts +1 -1
  204. package/src/lib/transporters/worker-thread/WorkerThread.Server.ts +1 -1
  205. package/src/lib/transporters/worker-thread/WorkerThread.Transporter.ts +1 -1
  206. package/src/lib/transporters/worker-thread/index.ts +1 -1
package/src/lib/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -20,7 +20,7 @@ export type IFn<TArgs extends any[], TRet> = (...args: TArgs) => TRet;
20
20
 
21
21
  export type IVoidFn<TArgs extends any[]> = IFn<TArgs, void>;
22
22
 
23
- // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/consistent-type-definitions
23
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types, @typescript-eslint/consistent-type-definitions
24
24
  export type IObject = {};
25
25
 
26
26
  export type IfIsFn<T, TTrue = T, TFalse = never> = T extends IFn<any[], any> ? TTrue : TFalse;
@@ -372,5 +372,5 @@ export interface IChannelBase<TEvents extends IDefaultEvents> extends IEventList
372
372
  /**
373
373
  * Close the channel.
374
374
  */
375
- close(): void;
375
+ close(): void | Promise<void>;
376
376
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -24,7 +24,7 @@ export abstract class AbstractHttpListener extends EventEmitter implements dH.IH
24
24
 
25
25
  public port: number = 0;
26
26
 
27
- protected _upgradeProcessor: dH.IUpgradeProcessor = dH.DEFAULT_UPGRADE_PROCESSOR;
27
+ protected _upgradeProcessor: dH.IUpgradeProcessor | null = null;
28
28
 
29
29
  protected _apiProcessor: dH.ILegacyHttpApiProcessor = dH.DEFAULT_LEGACY_HTTP_API_PROCESSOR;
30
30
 
@@ -39,11 +39,19 @@ export abstract class AbstractHttpListener extends EventEmitter implements dH.IH
39
39
 
40
40
  public setUpgradeProcessor(processor: dH.IUpgradeProcessor | null): void {
41
41
 
42
- this._upgradeProcessor = processor ?? dH.DEFAULT_UPGRADE_PROCESSOR;
42
+ this._upgradeProcessor = processor;
43
43
 
44
- this._gateway
45
- ?.removeAllListeners('upgrade')
46
- .addListener('upgrade', this._upgradeProcessor);
44
+ if (!this._gateway) {
45
+
46
+ return;
47
+ }
48
+
49
+ this._gateway.removeAllListeners('upgrade');
50
+
51
+ if (this._upgradeProcessor !== null) {
52
+
53
+ this._gateway.addListener('upgrade', this._upgradeProcessor);
54
+ }
47
55
  }
48
56
 
49
57
  public get running(): boolean {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -75,31 +75,6 @@ export const DEFAULT_LEGACY_HTTP_API_PROCESSOR: ILegacyHttpApiProcessor = functi
75
75
  resp.end(DEFAULT_REFUSE_PAYLOAD);
76
76
  };
77
77
 
78
- /**
79
- * The default upgrade processor, it will destroy the socket.
80
- */
81
- export const DEFAULT_UPGRADE_PROCESSOR: IUpgradeProcessor = function(req): void {
82
-
83
- const socket = req.socket;
84
-
85
- const header: Http.OutgoingHttpHeaders = {
86
- 'Content-Type': 'text/plain',
87
- 'Content-Length': DEFAULT_REFUSE_PAYLOAD.byteLength,
88
- };
89
-
90
- socket.write([
91
- `HTTP/1.1 ${DEFAULT_REFUSE_STATUS_CODE}`,
92
- ...Object.entries(header).map(([k, v]) => `${k}: ${v as string}`),
93
- ''
94
- ].join('\r\n'));
95
-
96
- socket.write(DEFAULT_REFUSE_PAYLOAD);
97
-
98
- socket.write('\r\n');
99
-
100
- socket.end();
101
- };
102
-
103
78
  export interface IHttpListenerOptions {
104
79
 
105
80
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -46,13 +46,21 @@ class HttpListener extends AbstractHttpListener {
46
46
  }).on('listening', () => {
47
47
 
48
48
  gateway.removeAllListeners('error');
49
+
49
50
  this._gateway = gateway;
51
+
50
52
  if (this.port === 0) {
51
53
 
52
54
  this.port = (gateway.address() as $Net.AddressInfo).port;
53
55
  }
56
+
54
57
  gateway.on('error', (e) => this.emit('error', e));
55
- gateway.on('upgrade', this._upgradeProcessor);
58
+
59
+ if (this._upgradeProcessor !== null) {
60
+
61
+ gateway.on('upgrade', this._upgradeProcessor);
62
+ }
63
+
56
64
  resolve();
57
65
  });
58
66
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -45,13 +45,21 @@ class HttpUnixSocketListener extends AbstractHttpListener {
45
45
  }).on('listening', () => {
46
46
 
47
47
  gateway.removeAllListeners('error');
48
+
48
49
  this._gateway = gateway;
50
+
49
51
  if (this.port === 0) {
50
52
 
51
53
  this.port = (gateway.address() as $Net.AddressInfo).port;
52
54
  }
55
+
53
56
  gateway.on('error', (e) => this.emit('error', e));
54
- gateway.on('upgrade', this._upgradeProcessor);
57
+
58
+ if (this._upgradeProcessor !== null) {
59
+
60
+ gateway.on('upgrade', this._upgradeProcessor);
61
+ }
62
+
55
63
  resolve();
56
64
  });
57
65
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -46,13 +46,21 @@ class HttpsListener extends AbstractHttpListener {
46
46
  }).on('listening', () => {
47
47
 
48
48
  gateway.removeAllListeners('error');
49
+
49
50
  this._gateway = gateway;
50
- if (this._opts.port === 0) {
51
51
 
52
- this._opts.port = (gateway.address() as $Net.AddressInfo).port;
52
+ if (this.port === 0) {
53
+
54
+ this.port = (gateway.address() as $Net.AddressInfo).port;
53
55
  }
56
+
54
57
  gateway.on('error', (e) => this.emit('error', e));
55
- gateway.on('upgrade', this._upgradeProcessor);
58
+
59
+ if (this._upgradeProcessor !== null) {
60
+
61
+ gateway.on('upgrade', this._upgradeProcessor);
62
+ }
63
+
56
64
  resolve();
57
65
  });
58
66
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -29,7 +29,18 @@ const DEFAULT_TIMEOUT = 30_000;
29
29
 
30
30
  const disabledStreamManager = Shared.createDisabledStreamManagerFactory()(null as any);
31
31
 
32
- class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
32
+ export interface ILegacyHttpClient<T extends Shared.IObject> extends C.IClient<T> {
33
+
34
+ /**
35
+ * Setup the headers for the every HTTP request.
36
+ *
37
+ * @param newHeaders The new headers to set.
38
+ * @param append Whether to append the new headers to existing headers, or replace all headers. [Default: true]
39
+ */
40
+ setHeaders(newHeaders: $Http.OutgoingHttpHeaders, append?: boolean): void;
41
+ }
42
+
43
+ class TvLegacyHttpClient extends EventEmitter implements ILegacyHttpClient<any> {
33
44
 
34
45
  public onError!: any;
35
46
 
@@ -42,6 +53,8 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
42
53
  ) {
43
54
 
44
55
  super();
56
+
57
+ this._opts.headers ??= {};
45
58
  }
46
59
 
47
60
  public get timeout(): number {
@@ -62,6 +75,18 @@ class TvLegacyHttpClient extends EventEmitter implements C.IClient<any> {
62
75
 
63
76
  public readonly transporter = null;
64
77
 
78
+ public setHeaders(newHeaders: $Http.OutgoingHttpHeaders, append: boolean = true): void {
79
+
80
+ if (append) {
81
+
82
+ Object.assign(this._opts.headers!, newHeaders);
83
+ }
84
+ else {
85
+
86
+ this._opts.headers = newHeaders;
87
+ }
88
+ }
89
+
65
90
  public sendBinaryChunk(): Promise<void> {
66
91
 
67
92
  return Promise.reject(new Shared.errors.cmd_not_impl());
@@ -312,7 +337,9 @@ export interface IHttpClientUnixSocketOptions extends IHttpClientOptionsBase {
312
337
 
313
338
  export type IHttpClientOptions = IHttpClientNetworkOptions | IHttpClientUnixSocketOptions;
314
339
 
315
- export function createLegacyHttpClient<TAPIs extends Shared.IObject>(opts: IHttpClientOptions): C.IClient<TAPIs> {
340
+ export function createLegacyHttpClient<TAPIs extends Shared.IObject>(
341
+ opts: IHttpClientOptions,
342
+ ): ILegacyHttpClient<TAPIs> {
316
343
 
317
344
  return new TvLegacyHttpClient(
318
345
  opts.https ? $Https.request : $Http.request,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -57,10 +57,28 @@ export interface IHttpGatewayOptions {
57
57
  backlog?: number;
58
58
  }
59
59
 
60
+ export interface IRegisterListenerOptions {
61
+
62
+ onErrorCallback: (e: Error) => void;
63
+
64
+ onRequestCallback: (req: Http.IncomingMessage, resp: Http.ServerResponse) => void;
65
+ }
66
+
67
+ export interface IRegisterListenerResult {
68
+
69
+ stop?: () => void | Promise<void>;
70
+
71
+ start?: () => void | Promise<void>;
72
+
73
+ readonly running: boolean;
74
+ }
75
+
60
76
  class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
61
77
 
78
+ private readonly _listener: IRegisterListenerResult;
79
+
62
80
  public constructor(
63
- private readonly _listener: Listener.IHttpListener,
81
+ registerListener: (opts: IRegisterListenerOptions) => IRegisterListenerResult,
64
82
  private readonly _server: dT.IServer,
65
83
  ) {
66
84
 
@@ -71,9 +89,10 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
71
89
  throw new TypeError('Legacy HTTP gateway only supports JSON encoding');
72
90
  }
73
91
 
74
- this._listener
75
- .on('error', (e) => this.emit('error', e))
76
- .setLegacyApiProcessor(this._onRequest);
92
+ this._listener = registerListener({
93
+ onErrorCallback: (e) => this.emit('error', e),
94
+ onRequestCallback: this._onRequest,
95
+ });
77
96
  }
78
97
 
79
98
  private _sendResponse(resp: Http.ServerResponse, data: string): void {
@@ -157,7 +176,7 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
157
176
 
158
177
  let input: any;
159
178
 
160
- if (offset !== length || buf[0] !== 123 || buf[offset - 1] !== 125) {
179
+ if (offset !== length) {
161
180
 
162
181
  refuseBadRequest(resp);
163
182
  return;
@@ -269,7 +288,7 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
269
288
  return;
270
289
  }
271
290
 
272
- await this._listener.start();
291
+ await this._listener.start?.();
273
292
  }
274
293
 
275
294
  public async stop(): Promise<void> {
@@ -279,14 +298,43 @@ class LegacyHttpGateway extends EventEmitter implements dT.IGateway {
279
298
  return Promise.resolve();
280
299
  }
281
300
 
282
- await this._listener.stop();
301
+ await this._listener.stop?.();
283
302
  }
284
303
  }
285
304
 
305
+ /**
306
+ * Create a legacy HTTP gateway, binding to a built-in simple HTTP server.
307
+ *
308
+ * > When using built-in HTTP server, the api will ignore headers, path and query string in the URL.
309
+ *
310
+ * @param listener The built-in HTTP listener to bind to.
311
+ * @param server The server to process the requests.
312
+ */
286
313
  export function createLegacyHttpGateway(
287
314
  listener: Listener.IHttpListener,
288
315
  server: dT.IServer
289
316
  ): dT.IGateway {
290
317
 
291
- return new LegacyHttpGateway(listener, server);
318
+ return new LegacyHttpGateway((o) => {
319
+ listener.on('error', o.onErrorCallback);
320
+ listener.setLegacyApiProcessor(o.onRequestCallback);
321
+ return listener;
322
+ }, server);
323
+ }
324
+
325
+ /**
326
+ * Create a legacy HTTP gateway, binding to a custom HTTP server.
327
+ *
328
+ * > When using a custom HTTP server, it's able to preprocess the request before passing to the server, like
329
+ * > authentication, rate limiting, etc.
330
+ *
331
+ * @param registerListener The function to register the listener to the custom HTTP server.
332
+ * @param server The server to process the requests.
333
+ */
334
+ export function createCustomLegacyHttpGateway(
335
+ registerListener: (opts: IRegisterListenerOptions) => IRegisterListenerResult,
336
+ server: dT.IServer
337
+ ): dT.IGateway {
338
+
339
+ return new LegacyHttpGateway(registerListener, server);
292
340
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2024 Angus.Fenying <fenying@litert.org>
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.