@litert/televoke 0.4.6 → 1.0.0-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 (418) hide show
  1. package/CHANGES.md +6 -0
  2. package/README.md +13 -8
  3. package/lib/client/Client.decl.d.ts +47 -0
  4. package/lib/client/Client.decl.d.ts.map +1 -0
  5. package/lib/client/Client.decl.js +18 -0
  6. package/lib/client/Client.decl.js.map +1 -0
  7. package/lib/client/JsonApiClient.impl.d.ts +28 -0
  8. package/lib/client/JsonApiClient.impl.d.ts.map +1 -0
  9. package/lib/client/JsonApiClient.impl.js +169 -0
  10. package/lib/client/JsonApiClient.impl.js.map +1 -0
  11. package/lib/client/LegacyHttpClient.impl.d.ts +62 -0
  12. package/lib/client/LegacyHttpClient.impl.d.ts.map +1 -0
  13. package/lib/client/LegacyHttpClient.impl.js +163 -0
  14. package/lib/client/LegacyHttpClient.impl.js.map +1 -0
  15. package/lib/client/index.d.ts +19 -0
  16. package/lib/client/index.d.ts.map +1 -0
  17. package/lib/client/index.js +35 -0
  18. package/lib/client/index.js.map +1 -0
  19. package/lib/index.d.ts +18 -20
  20. package/lib/index.d.ts.map +1 -1
  21. package/lib/index.js +19 -20
  22. package/lib/index.js.map +1 -1
  23. package/lib/server/LegacyServerChannel.impl.d.ts +38 -0
  24. package/lib/server/LegacyServerChannel.impl.d.ts.map +1 -0
  25. package/lib/server/LegacyServerChannel.impl.js +51 -0
  26. package/lib/server/LegacyServerChannel.impl.js.map +1 -0
  27. package/lib/server/Server.decl.d.ts +81 -0
  28. package/lib/server/Server.decl.d.ts.map +1 -0
  29. package/lib/server/Server.decl.js +18 -0
  30. package/lib/server/Server.decl.js.map +1 -0
  31. package/lib/server/Server.impl.d.ts +33 -0
  32. package/lib/server/Server.impl.d.ts.map +1 -0
  33. package/lib/server/Server.impl.js +58 -0
  34. package/lib/server/Server.impl.js.map +1 -0
  35. package/lib/server/ServerChannel.d.ts +20 -0
  36. package/lib/server/ServerChannel.d.ts.map +1 -0
  37. package/lib/server/ServerChannel.js +23 -0
  38. package/lib/server/ServerChannel.js.map +1 -0
  39. package/lib/server/SimpleJsonApiRouter.d.ts +28 -0
  40. package/lib/server/SimpleJsonApiRouter.d.ts.map +1 -0
  41. package/lib/server/SimpleJsonApiRouter.js +92 -0
  42. package/lib/server/SimpleJsonApiRouter.js.map +1 -0
  43. package/lib/server/index.d.ts +19 -0
  44. package/lib/server/index.d.ts.map +1 -0
  45. package/lib/server/index.js +35 -0
  46. package/lib/server/index.js.map +1 -0
  47. package/lib/shared/BinaryStream.d.ts +32 -0
  48. package/lib/shared/BinaryStream.d.ts.map +1 -0
  49. package/lib/shared/BinaryStream.js +93 -0
  50. package/lib/shared/BinaryStream.js.map +1 -0
  51. package/lib/shared/BinaryStreamManager.d.ts +52 -0
  52. package/lib/shared/BinaryStreamManager.d.ts.map +1 -0
  53. package/lib/shared/BinaryStreamManager.js +105 -0
  54. package/lib/shared/BinaryStreamManager.js.map +1 -0
  55. package/lib/shared/Channel.impl.d.ts +79 -0
  56. package/lib/shared/Channel.impl.d.ts.map +1 -0
  57. package/lib/shared/Channel.impl.js +433 -0
  58. package/lib/shared/Channel.impl.js.map +1 -0
  59. package/lib/shared/Constants.d.ts +32 -0
  60. package/lib/shared/Constants.d.ts.map +1 -0
  61. package/lib/shared/Constants.js +35 -0
  62. package/lib/shared/Constants.js.map +1 -0
  63. package/lib/shared/Encodings/index.d.ts +18 -0
  64. package/lib/shared/Encodings/index.d.ts.map +1 -0
  65. package/lib/shared/Encodings/index.js +21 -0
  66. package/lib/shared/Encodings/index.js.map +1 -0
  67. package/lib/shared/Encodings/v1/EncoderV1.d.ts +22 -0
  68. package/lib/shared/Encodings/v1/EncoderV1.d.ts.map +1 -0
  69. package/lib/shared/Encodings/v1/EncoderV1.js +47 -0
  70. package/lib/shared/Encodings/v1/EncoderV1.js.map +1 -0
  71. package/lib/shared/Encodings/v1/Protocol.v1.decls.d.ts +78 -0
  72. package/lib/shared/Encodings/v1/Protocol.v1.decls.d.ts.map +1 -0
  73. package/lib/shared/Encodings/v1/Protocol.v1.decls.js +53 -0
  74. package/lib/shared/Encodings/v1/Protocol.v1.decls.js.map +1 -0
  75. package/lib/shared/Encodings/v1/index.d.ts +18 -0
  76. package/lib/shared/Encodings/v1/index.d.ts.map +1 -0
  77. package/lib/shared/Encodings/v1/index.js +34 -0
  78. package/lib/shared/Encodings/v1/index.js.map +1 -0
  79. package/lib/shared/Encodings/v2/Constants.v2.d.ts +29 -0
  80. package/lib/shared/Encodings/v2/Constants.v2.d.ts.map +1 -0
  81. package/lib/shared/Encodings/v2/Constants.v2.js +34 -0
  82. package/lib/shared/Encodings/v2/Constants.v2.js.map +1 -0
  83. package/lib/shared/Encodings/v2/DecoderV2.d.ts +27 -0
  84. package/lib/shared/Encodings/v2/DecoderV2.d.ts.map +1 -0
  85. package/lib/shared/Encodings/v2/DecoderV2.js +279 -0
  86. package/lib/shared/Encodings/v2/DecoderV2.js.map +1 -0
  87. package/lib/shared/Encodings/v2/EncoderV2.d.ts +21 -0
  88. package/lib/shared/Encodings/v2/EncoderV2.d.ts.map +1 -0
  89. package/lib/shared/Encodings/v2/EncoderV2.js +176 -0
  90. package/lib/shared/Encodings/v2/EncoderV2.js.map +1 -0
  91. package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts +95 -0
  92. package/lib/shared/Encodings/v2/Encoding.v2.decl.d.ts.map +1 -0
  93. package/lib/shared/Encodings/v2/Encoding.v2.decl.js +18 -0
  94. package/lib/shared/Encodings/v2/Encoding.v2.decl.js.map +1 -0
  95. package/lib/shared/Encodings/v2/index.d.ts +20 -0
  96. package/lib/shared/Encodings/v2/index.d.ts.map +1 -0
  97. package/lib/shared/Encodings/v2/index.js +35 -0
  98. package/lib/shared/Encodings/v2/index.js.map +1 -0
  99. package/lib/shared/Errors.d.ts +60 -0
  100. package/lib/shared/Errors.d.ts.map +1 -0
  101. package/lib/shared/Errors.js +75 -0
  102. package/lib/shared/Errors.js.map +1 -0
  103. package/lib/shared/Shared.decl.d.ts +296 -0
  104. package/lib/shared/Shared.decl.d.ts.map +1 -0
  105. package/lib/shared/Shared.decl.js +18 -0
  106. package/lib/shared/Shared.decl.js.map +1 -0
  107. package/lib/shared/Utils.d.ts +25 -0
  108. package/lib/shared/Utils.d.ts.map +1 -0
  109. package/lib/shared/Utils.js +46 -0
  110. package/lib/shared/Utils.js.map +1 -0
  111. package/lib/shared/index.d.ts +23 -0
  112. package/lib/shared/index.d.ts.map +1 -0
  113. package/lib/shared/index.js +39 -0
  114. package/lib/shared/index.js.map +1 -0
  115. package/lib/transporters/Transporter.decl.d.ts +90 -0
  116. package/lib/transporters/Transporter.decl.d.ts.map +1 -0
  117. package/lib/transporters/Transporter.decl.js +18 -0
  118. package/lib/transporters/Transporter.decl.js.map +1 -0
  119. package/lib/transporters/http-listener/AbstractHttpListener.d.ts +32 -0
  120. package/lib/transporters/http-listener/AbstractHttpListener.d.ts.map +1 -0
  121. package/lib/transporters/http-listener/AbstractHttpListener.js +46 -0
  122. package/lib/transporters/http-listener/AbstractHttpListener.js.map +1 -0
  123. package/lib/transporters/http-listener/Http.Decl.d.ts +95 -0
  124. package/lib/transporters/http-listener/Http.Decl.d.ts.map +1 -0
  125. package/lib/transporters/http-listener/Http.Decl.js +52 -0
  126. package/lib/transporters/http-listener/Http.Decl.js.map +1 -0
  127. package/lib/transporters/http-listener/HttpListener.d.ts +18 -0
  128. package/lib/transporters/http-listener/HttpListener.d.ts.map +1 -0
  129. package/lib/transporters/http-listener/HttpListener.js +73 -0
  130. package/lib/transporters/http-listener/HttpListener.js.map +1 -0
  131. package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts +18 -0
  132. package/lib/transporters/http-listener/HttpUnixSocketListener.d.ts.map +1 -0
  133. package/lib/transporters/http-listener/HttpUnixSocketListener.js +72 -0
  134. package/lib/transporters/http-listener/HttpUnixSocketListener.js.map +1 -0
  135. package/lib/transporters/http-listener/HttpsListener.d.ts +18 -0
  136. package/lib/transporters/http-listener/HttpsListener.d.ts.map +1 -0
  137. package/lib/transporters/http-listener/HttpsListener.js +73 -0
  138. package/lib/transporters/http-listener/HttpsListener.js.map +1 -0
  139. package/lib/transporters/http-listener/index.d.ts +20 -0
  140. package/lib/transporters/http-listener/index.d.ts.map +1 -0
  141. package/lib/transporters/http-listener/index.js +36 -0
  142. package/lib/transporters/http-listener/index.js.map +1 -0
  143. package/lib/transporters/index.d.ts +17 -0
  144. package/lib/transporters/index.d.ts.map +1 -0
  145. package/lib/transporters/index.js +18 -0
  146. package/lib/transporters/index.js.map +1 -0
  147. package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts +24 -0
  148. package/lib/transporters/legacy-http/LegacyHttp.Server.d.ts.map +1 -0
  149. package/lib/transporters/legacy-http/LegacyHttp.Server.js +167 -0
  150. package/lib/transporters/legacy-http/LegacyHttp.Server.js.map +1 -0
  151. package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts +28 -0
  152. package/lib/transporters/legacy-http/LegacyHttp.Transporter.d.ts.map +1 -0
  153. package/lib/transporters/legacy-http/LegacyHttp.Transporter.js +55 -0
  154. package/lib/transporters/legacy-http/LegacyHttp.Transporter.js.map +1 -0
  155. package/lib/transporters/legacy-http/index.d.ts +18 -0
  156. package/lib/transporters/legacy-http/index.d.ts.map +1 -0
  157. package/lib/transporters/legacy-http/index.js +34 -0
  158. package/lib/transporters/legacy-http/index.js.map +1 -0
  159. package/lib/transporters/lwdfx/LwDFX.Tcp.Client.d.ts +19 -0
  160. package/lib/transporters/lwdfx/LwDFX.Tcp.Client.d.ts.map +1 -0
  161. package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js +33 -0
  162. package/lib/transporters/lwdfx/LwDFX.Tcp.Client.js.map +1 -0
  163. package/lib/transporters/lwdfx/LwDFX.Tcp.Server.d.ts +21 -0
  164. package/lib/transporters/lwdfx/LwDFX.Tcp.Server.d.ts.map +1 -0
  165. package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js +64 -0
  166. package/lib/transporters/lwdfx/LwDFX.Tcp.Server.js.map +1 -0
  167. package/lib/transporters/lwdfx/LwDFX.Tls.Client.d.ts +19 -0
  168. package/lib/transporters/lwdfx/LwDFX.Tls.Client.d.ts.map +1 -0
  169. package/lib/transporters/lwdfx/LwDFX.Tls.Client.js +33 -0
  170. package/lib/transporters/lwdfx/LwDFX.Tls.Client.js.map +1 -0
  171. package/lib/transporters/lwdfx/LwDFX.Tls.Server.d.ts +21 -0
  172. package/lib/transporters/lwdfx/LwDFX.Tls.Server.d.ts.map +1 -0
  173. package/lib/transporters/lwdfx/LwDFX.Tls.Server.js +64 -0
  174. package/lib/transporters/lwdfx/LwDFX.Tls.Server.js.map +1 -0
  175. package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts +34 -0
  176. package/lib/transporters/lwdfx/LwDFX.Transporter.d.ts.map +1 -0
  177. package/lib/transporters/lwdfx/LwDFX.Transporter.js +78 -0
  178. package/lib/transporters/lwdfx/LwDFX.Transporter.js.map +1 -0
  179. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.d.ts +19 -0
  180. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.d.ts.map +1 -0
  181. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js +33 -0
  182. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.js.map +1 -0
  183. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.d.ts +21 -0
  184. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.d.ts.map +1 -0
  185. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js +64 -0
  186. package/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.js.map +1 -0
  187. package/lib/transporters/lwdfx/LwDFX.decl.d.ts +18 -0
  188. package/lib/transporters/lwdfx/LwDFX.decl.d.ts.map +1 -0
  189. package/lib/transporters/lwdfx/LwDFX.decl.js +18 -0
  190. package/lib/transporters/lwdfx/LwDFX.decl.js.map +1 -0
  191. package/lib/transporters/lwdfx/index.d.ts +23 -0
  192. package/lib/transporters/lwdfx/index.d.ts.map +1 -0
  193. package/lib/transporters/lwdfx/index.js +39 -0
  194. package/lib/transporters/lwdfx/index.js.map +1 -0
  195. package/lib/transporters/memory/Memory.Impl.d.ts +43 -0
  196. package/lib/transporters/memory/Memory.Impl.d.ts.map +1 -0
  197. package/lib/transporters/memory/Memory.Impl.js +227 -0
  198. package/lib/transporters/memory/Memory.Impl.js.map +1 -0
  199. package/lib/transporters/memory/index.d.ts +17 -0
  200. package/lib/transporters/memory/index.d.ts.map +1 -0
  201. package/lib/transporters/memory/index.js +33 -0
  202. package/lib/transporters/memory/index.js.map +1 -0
  203. package/lib/transporters/websocket/WebSocket.Client.d.ts +20 -0
  204. package/lib/transporters/websocket/WebSocket.Client.d.ts.map +1 -0
  205. package/lib/transporters/websocket/WebSocket.Client.js +68 -0
  206. package/lib/transporters/websocket/WebSocket.Client.js.map +1 -0
  207. package/lib/transporters/websocket/WebSocket.Server.d.ts +25 -0
  208. package/lib/transporters/websocket/WebSocket.Server.d.ts.map +1 -0
  209. package/lib/transporters/websocket/WebSocket.Server.js +87 -0
  210. package/lib/transporters/websocket/WebSocket.Server.js.map +1 -0
  211. package/lib/transporters/websocket/WebSocket.Transporter.d.ts +34 -0
  212. package/lib/transporters/websocket/WebSocket.Transporter.d.ts.map +1 -0
  213. package/lib/transporters/websocket/WebSocket.Transporter.js +106 -0
  214. package/lib/transporters/websocket/WebSocket.Transporter.js.map +1 -0
  215. package/lib/transporters/websocket/WebSocket.decl.d.ts +19 -0
  216. package/lib/transporters/websocket/WebSocket.decl.d.ts.map +1 -0
  217. package/lib/transporters/websocket/WebSocket.decl.js +22 -0
  218. package/lib/transporters/websocket/WebSocket.decl.js.map +1 -0
  219. package/lib/transporters/websocket/index.d.ts +19 -0
  220. package/lib/transporters/websocket/index.d.ts.map +1 -0
  221. package/lib/transporters/websocket/index.js +35 -0
  222. package/lib/transporters/websocket/index.js.map +1 -0
  223. package/package.json +12 -12
  224. package/src/lib/client/Client.decl.ts +61 -0
  225. package/src/lib/client/JsonApiClient.impl.ts +258 -0
  226. package/src/lib/client/LegacyHttpClient.impl.ts +278 -0
  227. package/src/lib/client/index.ts +19 -0
  228. package/src/lib/index.ts +18 -20
  229. package/src/lib/server/LegacyServerChannel.impl.ts +71 -0
  230. package/src/lib/server/Server.decl.ts +109 -0
  231. package/src/lib/server/Server.impl.ts +90 -0
  232. package/src/lib/server/ServerChannel.ts +20 -0
  233. package/src/lib/server/SimpleJsonApiRouter.ts +135 -0
  234. package/src/lib/server/index.ts +19 -0
  235. package/src/lib/shared/BinaryStream.ts +131 -0
  236. package/src/lib/shared/BinaryStreamManager.ts +142 -0
  237. package/src/lib/shared/Channel.impl.ts +641 -0
  238. package/src/lib/shared/Constants.ts +35 -0
  239. package/src/lib/shared/Encodings/index.ts +18 -0
  240. package/src/lib/shared/Encodings/v1/EncoderV1.ts +66 -0
  241. package/src/lib/shared/Encodings/v1/Protocol.v1.decls.ts +96 -0
  242. package/src/lib/shared/Encodings/v1/index.ts +18 -0
  243. package/src/lib/shared/Encodings/v2/Constants.v2.ts +31 -0
  244. package/src/lib/shared/Encodings/v2/DecoderV2.ts +404 -0
  245. package/src/lib/shared/Encodings/v2/EncoderV2.ts +283 -0
  246. package/src/lib/shared/Encodings/v2/Encoding.v2.decl.ts +133 -0
  247. package/src/lib/shared/Encodings/v2/index.ts +20 -0
  248. package/src/lib/shared/Errors.ts +94 -0
  249. package/src/lib/shared/Shared.decl.ts +347 -0
  250. package/src/lib/shared/Utils.ts +51 -0
  251. package/src/lib/shared/index.ts +23 -0
  252. package/src/lib/transporters/Transporter.decl.ts +117 -0
  253. package/src/lib/transporters/http-listener/AbstractHttpListener.ts +57 -0
  254. package/src/lib/transporters/http-listener/Http.Decl.ts +141 -0
  255. package/src/lib/transporters/http-listener/HttpListener.ts +102 -0
  256. package/src/lib/transporters/http-listener/HttpUnixSocketListener.ts +97 -0
  257. package/src/lib/transporters/http-listener/HttpsListener.ts +102 -0
  258. package/src/lib/transporters/http-listener/index.ts +20 -0
  259. package/src/lib/transporters/index.ts +17 -0
  260. package/src/lib/transporters/legacy-http/LegacyHttp.Server.ts +262 -0
  261. package/src/lib/transporters/legacy-http/LegacyHttp.Transporter.ts +66 -0
  262. package/src/lib/transporters/legacy-http/index.ts +18 -0
  263. package/src/lib/transporters/lwdfx/LwDFX.Tcp.Client.ts +34 -0
  264. package/src/lib/transporters/lwdfx/LwDFX.Tcp.Server.ts +94 -0
  265. package/src/lib/transporters/lwdfx/LwDFX.Tls.Client.ts +34 -0
  266. package/src/lib/transporters/lwdfx/LwDFX.Tls.Server.ts +94 -0
  267. package/src/lib/transporters/lwdfx/LwDFX.Transporter.ts +100 -0
  268. package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Client.ts +34 -0
  269. package/src/lib/transporters/lwdfx/LwDFX.UnixSocket.Server.ts +94 -0
  270. package/src/lib/transporters/lwdfx/LwDFX.decl.ts +19 -0
  271. package/src/lib/transporters/lwdfx/index.ts +23 -0
  272. package/src/lib/transporters/memory/Memory.Impl.ts +363 -0
  273. package/src/lib/transporters/memory/index.ts +17 -0
  274. package/src/lib/transporters/websocket/WebSocket.Client.ts +76 -0
  275. package/src/lib/transporters/websocket/WebSocket.Server.ts +118 -0
  276. package/src/lib/transporters/websocket/WebSocket.Transporter.ts +132 -0
  277. package/src/lib/transporters/websocket/WebSocket.decl.ts +21 -0
  278. package/src/lib/transporters/websocket/index.ts +19 -0
  279. package/lib/Client/BuiltInRIDGenerator.d.ts +0 -4
  280. package/lib/Client/BuiltInRIDGenerator.d.ts.map +0 -1
  281. package/lib/Client/BuiltInRIDGenerator.js +0 -18
  282. package/lib/Client/BuiltInRIDGenerator.js.map +0 -1
  283. package/lib/Client/Common.d.ts +0 -47
  284. package/lib/Client/Common.d.ts.map +0 -1
  285. package/lib/Client/Common.js +0 -18
  286. package/lib/Client/Common.js.map +0 -1
  287. package/lib/Client/Errors.d.ts +0 -26
  288. package/lib/Client/Errors.d.ts.map +0 -1
  289. package/lib/Client/Errors.js +0 -80
  290. package/lib/Client/Errors.js.map +0 -1
  291. package/lib/Client/HttpClient.d.ts +0 -37
  292. package/lib/Client/HttpClient.d.ts.map +0 -1
  293. package/lib/Client/HttpClient.js +0 -148
  294. package/lib/Client/HttpClient.js.map +0 -1
  295. package/lib/Client/HttpsClient.d.ts +0 -40
  296. package/lib/Client/HttpsClient.d.ts.map +0 -1
  297. package/lib/Client/HttpsClient.js +0 -144
  298. package/lib/Client/HttpsClient.js.map +0 -1
  299. package/lib/Client/TCPClient.d.ts +0 -34
  300. package/lib/Client/TCPClient.d.ts.map +0 -1
  301. package/lib/Client/TCPClient.js +0 -271
  302. package/lib/Client/TCPClient.js.map +0 -1
  303. package/lib/Client/TLSClient.d.ts +0 -34
  304. package/lib/Client/TLSClient.d.ts.map +0 -1
  305. package/lib/Client/TLSClient.js +0 -265
  306. package/lib/Client/TLSClient.js.map +0 -1
  307. package/lib/Client/index.d.ts +0 -23
  308. package/lib/Client/index.d.ts.map +0 -1
  309. package/lib/Client/index.js +0 -39
  310. package/lib/Client/index.js.map +0 -1
  311. package/lib/Common/API.d.ts +0 -19
  312. package/lib/Common/API.d.ts.map +0 -1
  313. package/lib/Common/API.js +0 -18
  314. package/lib/Common/API.js.map +0 -1
  315. package/lib/Common/Encoding.d.ts +0 -32
  316. package/lib/Common/Encoding.d.ts.map +0 -1
  317. package/lib/Common/Encoding.js +0 -20
  318. package/lib/Common/Encoding.js.map +0 -1
  319. package/lib/Common/Request.d.ts +0 -23
  320. package/lib/Common/Request.d.ts.map +0 -1
  321. package/lib/Common/Request.js +0 -18
  322. package/lib/Common/Request.js.map +0 -1
  323. package/lib/Common/Response.d.ts +0 -60
  324. package/lib/Common/Response.d.ts.map +0 -1
  325. package/lib/Common/Response.js +0 -42
  326. package/lib/Common/Response.js.map +0 -1
  327. package/lib/Common/index.d.ts +0 -20
  328. package/lib/Common/index.d.ts.map +0 -1
  329. package/lib/Common/index.js +0 -36
  330. package/lib/Common/index.js.map +0 -1
  331. package/lib/Encoder/Decoder.d.ts +0 -18
  332. package/lib/Encoder/Decoder.d.ts.map +0 -1
  333. package/lib/Encoder/Decoder.js +0 -136
  334. package/lib/Encoder/Decoder.js.map +0 -1
  335. package/lib/Encoder/Encoder.d.ts +0 -18
  336. package/lib/Encoder/Encoder.d.ts.map +0 -1
  337. package/lib/Encoder/Encoder.js +0 -35
  338. package/lib/Encoder/Encoder.js.map +0 -1
  339. package/lib/Encoder/Errors.d.ts +0 -17
  340. package/lib/Encoder/Errors.d.ts.map +0 -1
  341. package/lib/Encoder/Errors.js +0 -26
  342. package/lib/Encoder/Errors.js.map +0 -1
  343. package/lib/Errors.d.ts +0 -20
  344. package/lib/Errors.d.ts.map +0 -1
  345. package/lib/Errors.js +0 -40
  346. package/lib/Errors.js.map +0 -1
  347. package/lib/Server/Common/Gateway.d.ts +0 -26
  348. package/lib/Server/Common/Gateway.d.ts.map +0 -1
  349. package/lib/Server/Common/Gateway.js +0 -18
  350. package/lib/Server/Common/Gateway.js.map +0 -1
  351. package/lib/Server/Common/Request.d.ts +0 -21
  352. package/lib/Server/Common/Request.d.ts.map +0 -1
  353. package/lib/Server/Common/Request.js +0 -18
  354. package/lib/Server/Common/Request.js.map +0 -1
  355. package/lib/Server/Common/Router.d.ts +0 -41
  356. package/lib/Server/Common/Router.d.ts.map +0 -1
  357. package/lib/Server/Common/Router.js +0 -18
  358. package/lib/Server/Common/Router.js.map +0 -1
  359. package/lib/Server/Common/Server.d.ts +0 -57
  360. package/lib/Server/Common/Server.d.ts.map +0 -1
  361. package/lib/Server/Common/Server.js +0 -18
  362. package/lib/Server/Common/Server.js.map +0 -1
  363. package/lib/Server/Common/index.d.ts +0 -20
  364. package/lib/Server/Common/index.d.ts.map +0 -1
  365. package/lib/Server/Common/index.js +0 -36
  366. package/lib/Server/Common/index.js.map +0 -1
  367. package/lib/Server/Errors.d.ts +0 -25
  368. package/lib/Server/Errors.d.ts.map +0 -1
  369. package/lib/Server/Errors.js +0 -74
  370. package/lib/Server/Errors.js.map +0 -1
  371. package/lib/Server/Gateways/Http.d.ts +0 -18
  372. package/lib/Server/Gateways/Http.d.ts.map +0 -1
  373. package/lib/Server/Gateways/Http.js +0 -144
  374. package/lib/Server/Gateways/Http.js.map +0 -1
  375. package/lib/Server/Gateways/TCP.d.ts +0 -23
  376. package/lib/Server/Gateways/TCP.d.ts.map +0 -1
  377. package/lib/Server/Gateways/TCP.js +0 -146
  378. package/lib/Server/Gateways/TCP.js.map +0 -1
  379. package/lib/Server/Server.d.ts +0 -18
  380. package/lib/Server/Server.d.ts.map +0 -1
  381. package/lib/Server/Server.js +0 -200
  382. package/lib/Server/Server.js.map +0 -1
  383. package/lib/Server/SimpleRouter.d.ts +0 -41
  384. package/lib/Server/SimpleRouter.d.ts.map +0 -1
  385. package/lib/Server/SimpleRouter.js +0 -54
  386. package/lib/Server/SimpleRouter.js.map +0 -1
  387. package/lib/Server/index.d.ts +0 -22
  388. package/lib/Server/index.d.ts.map +0 -1
  389. package/lib/Server/index.js +0 -38
  390. package/lib/Server/index.js.map +0 -1
  391. package/src/lib/Client/BuiltInRIDGenerator.ts +0 -21
  392. package/src/lib/Client/Common.ts +0 -63
  393. package/src/lib/Client/Errors.ts +0 -87
  394. package/src/lib/Client/HttpClient.ts +0 -232
  395. package/src/lib/Client/HttpsClient.ts +0 -238
  396. package/src/lib/Client/TCPClient.ts +0 -420
  397. package/src/lib/Client/TLSClient.ts +0 -422
  398. package/src/lib/Client/index.ts +0 -23
  399. package/src/lib/Common/API.ts +0 -20
  400. package/src/lib/Common/Encoding.ts +0 -42
  401. package/src/lib/Common/Request.ts +0 -28
  402. package/src/lib/Common/Response.ts +0 -67
  403. package/src/lib/Common/index.ts +0 -20
  404. package/src/lib/Encoder/Decoder.ts +0 -206
  405. package/src/lib/Encoder/Encoder.ts +0 -41
  406. package/src/lib/Encoder/Errors.ts +0 -24
  407. package/src/lib/Errors.ts +0 -40
  408. package/src/lib/Server/Common/Gateway.ts +0 -37
  409. package/src/lib/Server/Common/Request.ts +0 -24
  410. package/src/lib/Server/Common/Router.ts +0 -52
  411. package/src/lib/Server/Common/Server.ts +0 -68
  412. package/src/lib/Server/Common/index.ts +0 -20
  413. package/src/lib/Server/Errors.ts +0 -80
  414. package/src/lib/Server/Gateways/Http.ts +0 -203
  415. package/src/lib/Server/Gateways/TCP.ts +0 -221
  416. package/src/lib/Server/Server.ts +0 -268
  417. package/src/lib/Server/SimpleRouter.ts +0 -95
  418. package/src/lib/Server/index.ts +0 -22
@@ -0,0 +1,283 @@
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
+
17
+ import { v2 } from '..';
18
+ import * as CS from './Constants.v2';
19
+ import type * as dEnc2 from './Encoding.v2.decl';
20
+
21
+ function writePacketHeader(ret: Buffer, command: CS.ECommand, type: CS.EPacketType, seq: number): void {
22
+
23
+ ret.writeUInt8(command, 0);
24
+ ret.writeUInt8(type, 1);
25
+ const low = seq % 0x1_0000_0000;
26
+ const high = (seq - low) / 0x1_0000_0000;
27
+ ret.writeUInt16LE(high, 2);
28
+ ret.writeUInt32LE(low, 4);
29
+ }
30
+
31
+ interface IPacketEncoder {
32
+
33
+ /**
34
+ * Encode the given packet.
35
+ *
36
+ * @param packet The packet to encode.
37
+ */
38
+ encode(packet: dEnc2.ICommandPacket): Array<string | Buffer>;
39
+ }
40
+ class ErrorResponseEncoder implements IPacketEncoder {
41
+
42
+ public encode(packet: dEnc2.IErrorResponsePacket): v2.IDataChunkArray {
43
+
44
+ const errorMsg = `${packet.ct.name}:${packet.ct.message}`;
45
+
46
+ const msgLen = Buffer.byteLength(errorMsg);
47
+
48
+ const buf = Buffer.allocUnsafe(CS.HEADER_SIZE + 2 + msgLen);
49
+
50
+ writePacketHeader(buf, packet.cmd, packet.typ, packet.seq);
51
+
52
+ buf.writeUInt16LE(msgLen, CS.HEADER_SIZE);
53
+ buf.write(errorMsg, CS.HEADER_SIZE + 2);
54
+
55
+ return [buf];
56
+ }
57
+ }
58
+
59
+ class VoidResponseEncoder implements IPacketEncoder {
60
+
61
+ public encode(packet: dEnc2.ISuccessResponsePacket): v2.IDataChunkArray {
62
+
63
+ const buf = Buffer.allocUnsafe(CS.HEADER_SIZE);
64
+
65
+ writePacketHeader(buf, packet.cmd, packet.typ, packet.seq);
66
+
67
+ return [buf];
68
+ }
69
+ }
70
+
71
+ class ApiRequestEncoder implements IPacketEncoder {
72
+
73
+ public encode(packet: dEnc2.IApiRequestPacket): v2.IDataChunkArray {
74
+
75
+ const apiNameLen = Buffer.byteLength(packet.ct.name);
76
+
77
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 2 + 4 + apiNameLen);
78
+
79
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
80
+ leadSeg.writeUInt16LE(apiNameLen, CS.HEADER_SIZE);
81
+ leadSeg.write(packet.ct.name, CS.HEADER_SIZE + 2);
82
+
83
+ if (Array.isArray(packet.ct.body)) {
84
+
85
+ let bodyLen = 0;
86
+
87
+ for (const p of packet.ct.body) {
88
+
89
+ bodyLen += Buffer.byteLength(p);
90
+ }
91
+
92
+ leadSeg.writeUInt32LE(bodyLen, CS.HEADER_SIZE + 2 + apiNameLen);
93
+
94
+ return [leadSeg, ...packet.ct.body];
95
+ }
96
+
97
+ leadSeg.writeUInt32LE(Buffer.byteLength(packet.ct.body), CS.HEADER_SIZE + 2 + apiNameLen);
98
+
99
+ return [leadSeg, packet.ct.body];
100
+ }
101
+ }
102
+
103
+ class BinaryChunkRequestEncoder implements IPacketEncoder {
104
+
105
+ public encode(packet: dEnc2.IBinaryChunkRequestPacket): v2.IDataChunkArray {
106
+
107
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 4 + 4);
108
+
109
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
110
+ leadSeg.writeUInt32LE(packet.ct.streamId, CS.HEADER_SIZE);
111
+
112
+ if (Array.isArray(packet.ct.body)) {
113
+
114
+ let bodyLen = 0;
115
+
116
+ for (const p of packet.ct.body) {
117
+
118
+ bodyLen += Buffer.byteLength(p);
119
+ }
120
+
121
+ leadSeg.writeUInt32LE(bodyLen, CS.HEADER_SIZE + 4);
122
+
123
+ return [leadSeg, ...packet.ct.body];
124
+ }
125
+
126
+ leadSeg.writeUInt32LE(Buffer.byteLength(packet.ct.body), CS.HEADER_SIZE + 4);
127
+
128
+ return [leadSeg, packet.ct.body];
129
+ }
130
+ }
131
+
132
+ class PingRequestEncoder implements IPacketEncoder {
133
+
134
+ public encode(packet: dEnc2.IPingRequestPacket): v2.IDataChunkArray {
135
+
136
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 2);
137
+
138
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
139
+
140
+ if (Array.isArray(packet.ct)) {
141
+
142
+ let bodyLen = 0;
143
+
144
+ for (const p of packet.ct) {
145
+
146
+ bodyLen += Buffer.byteLength(p);
147
+ }
148
+
149
+ leadSeg.writeUInt16LE(bodyLen, CS.HEADER_SIZE);
150
+
151
+ return [leadSeg, ...packet.ct];
152
+ }
153
+
154
+ leadSeg.writeUInt16LE(Buffer.byteLength(packet.ct), CS.HEADER_SIZE);
155
+
156
+ return [leadSeg, packet.ct];
157
+ }
158
+ }
159
+
160
+ class CloseRequestEncoder implements IPacketEncoder {
161
+
162
+ public encode(packet: dEnc2.ICloseRequestPacket): v2.IDataChunkArray {
163
+
164
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE);
165
+
166
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
167
+
168
+ return [leadSeg];
169
+ }
170
+ }
171
+
172
+ class PushMessageRequestEncoder implements IPacketEncoder {
173
+
174
+ public encode(packet: dEnc2.IPushMessageRequestPacket): v2.IDataChunkArray {
175
+
176
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 2);
177
+
178
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
179
+
180
+ if (Array.isArray(packet.ct)) {
181
+
182
+ let bodyLen = 0;
183
+
184
+ for (const p of packet.ct) {
185
+
186
+ bodyLen += Buffer.byteLength(p);
187
+ }
188
+
189
+ leadSeg.writeUInt16LE(bodyLen, CS.HEADER_SIZE);
190
+
191
+ return [leadSeg, ...packet.ct];
192
+ }
193
+
194
+ leadSeg.writeUInt16LE(Buffer.byteLength(packet.ct), CS.HEADER_SIZE);
195
+
196
+ return [leadSeg, packet.ct];
197
+ }
198
+ }
199
+
200
+ class ApiResponseEncoder implements IPacketEncoder {
201
+
202
+ public encode(packet: dEnc2.IApiResponsePacket): v2.IDataChunkArray {
203
+
204
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 4);
205
+
206
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
207
+
208
+ if (Array.isArray(packet.ct)) {
209
+
210
+ let bodyLen = 0;
211
+
212
+ for (const p of packet.ct) {
213
+
214
+ bodyLen += Buffer.byteLength(p);
215
+ }
216
+
217
+ leadSeg.writeUInt32LE(bodyLen, CS.HEADER_SIZE);
218
+
219
+ return [leadSeg, ...packet.ct];
220
+ }
221
+
222
+ leadSeg.writeUInt32LE(Buffer.byteLength(packet.ct), CS.HEADER_SIZE);
223
+
224
+ return [leadSeg, packet.ct];
225
+ }
226
+ }
227
+
228
+ class PingResponseEncoder implements IPacketEncoder {
229
+
230
+ public encode(packet: dEnc2.IPingResponsePacket): v2.IDataChunkArray {
231
+
232
+ const leadSeg = Buffer.allocUnsafe(CS.HEADER_SIZE + 2);
233
+
234
+ writePacketHeader(leadSeg, packet.cmd, packet.typ, packet.seq);
235
+
236
+ if (Array.isArray(packet.ct)) {
237
+
238
+ let bodyLen = 0;
239
+
240
+ for (const p of packet.ct) {
241
+
242
+ bodyLen += Buffer.byteLength(p);
243
+ }
244
+
245
+ leadSeg.writeUInt16LE(bodyLen, CS.HEADER_SIZE);
246
+
247
+ return [leadSeg, ...packet.ct];
248
+ }
249
+
250
+ leadSeg.writeUInt16LE(Buffer.byteLength(packet.ct), CS.HEADER_SIZE);
251
+
252
+ return [leadSeg, packet.ct];
253
+ }
254
+ }
255
+
256
+ const encoders: Record<number, IPacketEncoder> = {
257
+
258
+ [CS.EPacketType.REQUEST * 0x100 + CS.ECommand.API_CALL]: new ApiRequestEncoder(),
259
+ [CS.EPacketType.REQUEST * 0x100 + CS.ECommand.BINARY_CHUNK]: new BinaryChunkRequestEncoder(),
260
+ [CS.EPacketType.REQUEST * 0x100 + CS.ECommand.CLOSE]: new CloseRequestEncoder(),
261
+ [CS.EPacketType.REQUEST * 0x100 + CS.ECommand.PING]: new PingRequestEncoder(),
262
+ [CS.EPacketType.REQUEST * 0x100 + CS.ECommand.PUSH_MESSAGE]: new PushMessageRequestEncoder(),
263
+
264
+ [CS.EPacketType.SUCCESS_RESPONSE * 0x100 + CS.ECommand.API_CALL]: new ApiResponseEncoder(),
265
+ [CS.EPacketType.SUCCESS_RESPONSE * 0x100 + CS.ECommand.BINARY_CHUNK]: new VoidResponseEncoder(),
266
+ [CS.EPacketType.SUCCESS_RESPONSE * 0x100 + CS.ECommand.CLOSE]: new VoidResponseEncoder(),
267
+ [CS.EPacketType.SUCCESS_RESPONSE * 0x100 + CS.ECommand.PING]: new PingResponseEncoder(),
268
+ [CS.EPacketType.SUCCESS_RESPONSE * 0x100 + CS.ECommand.PUSH_MESSAGE]: new VoidResponseEncoder(),
269
+
270
+ [CS.EPacketType.ERROR_RESPONSE * 0x100 + CS.ECommand.API_CALL]: new ErrorResponseEncoder(),
271
+ [CS.EPacketType.ERROR_RESPONSE * 0x100 + CS.ECommand.BINARY_CHUNK]: new ErrorResponseEncoder(),
272
+ [CS.EPacketType.ERROR_RESPONSE * 0x100 + CS.ECommand.CLOSE]: new ErrorResponseEncoder(),
273
+ [CS.EPacketType.ERROR_RESPONSE * 0x100 + CS.ECommand.PING]: new ErrorResponseEncoder(),
274
+ [CS.EPacketType.ERROR_RESPONSE * 0x100 + CS.ECommand.PUSH_MESSAGE]: new ErrorResponseEncoder(),
275
+ };
276
+
277
+ export class TvEncoderV2 {
278
+
279
+ public encode(packet: dEnc2.ICommandPacket): Array<Buffer | string> {
280
+
281
+ return encoders[packet.typ * 0x100 + packet.cmd].encode(packet);
282
+ }
283
+ }
@@ -0,0 +1,133 @@
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
+
17
+ import type * as CS from './Constants.v2';
18
+ import type { TelevokeError } from '../../Errors';
19
+
20
+ export type IDataChunkArray = Array<string | Buffer>;
21
+
22
+ export type IDataChunkField = string | Buffer | IDataChunkArray;
23
+
24
+ export interface ICommandPacket {
25
+
26
+ /**
27
+ * The command of this packet.
28
+ */
29
+ readonly cmd: CS.ECommand;
30
+
31
+ /**
32
+ * The type of this packet.
33
+ */
34
+ readonly typ: CS.EPacketType;
35
+
36
+ /**
37
+ * The sequence number of this packet.
38
+ */
39
+ readonly seq: number;
40
+
41
+ /**
42
+ * The content of this packet.
43
+ */
44
+ readonly ct: unknown;
45
+ }
46
+
47
+ export interface IRequestPacket extends ICommandPacket {
48
+
49
+ readonly typ: CS.EPacketType.REQUEST;
50
+ }
51
+
52
+ export interface IErrorResponsePacket extends ICommandPacket {
53
+
54
+ readonly typ: CS.EPacketType.ERROR_RESPONSE;
55
+
56
+ readonly ct: TelevokeError;
57
+ }
58
+
59
+ export interface ISuccessResponsePacket extends ICommandPacket {
60
+
61
+ readonly typ: CS.EPacketType.SUCCESS_RESPONSE;
62
+ }
63
+
64
+ export interface IApiRequestPacket extends IRequestPacket {
65
+
66
+ readonly cmd: CS.ECommand.API_CALL;
67
+
68
+ readonly ct: {
69
+
70
+ /**
71
+ * The name of the API to be invoked.
72
+ */
73
+ readonly name: string;
74
+
75
+ /**
76
+ * The arguments of the API to be invoked.
77
+ */
78
+ readonly body: IDataChunkField;
79
+ };
80
+ }
81
+
82
+ export interface IPingRequestPacket extends IRequestPacket {
83
+
84
+ readonly cmd: CS.ECommand.PING;
85
+
86
+ readonly ct: IDataChunkField;
87
+ }
88
+
89
+ export interface IPushMessageRequestPacket extends IRequestPacket {
90
+
91
+ readonly cmd: CS.ECommand.PUSH_MESSAGE;
92
+
93
+ readonly ct: IDataChunkField;
94
+ }
95
+
96
+ export interface ICloseRequestPacket extends IRequestPacket {
97
+
98
+ readonly cmd: CS.ECommand.CLOSE;
99
+
100
+ readonly ct: null;
101
+ }
102
+
103
+ export interface IBinaryChunkRequestPacket extends IRequestPacket {
104
+
105
+ readonly cmd: CS.ECommand.BINARY_CHUNK;
106
+
107
+ readonly ct: {
108
+
109
+ /**
110
+ * The stream ID of this chunk should be sent to.
111
+ */
112
+ readonly streamId: number;
113
+
114
+ /**
115
+ * The chunk data.
116
+ */
117
+ readonly body: IDataChunkField;
118
+ };
119
+ }
120
+
121
+ export interface IApiResponsePacket extends ISuccessResponsePacket {
122
+
123
+ readonly cmd: CS.ECommand.API_CALL;
124
+
125
+ readonly ct: IDataChunkField;
126
+ }
127
+
128
+ export interface IPingResponsePacket extends ISuccessResponsePacket {
129
+
130
+ readonly cmd: CS.ECommand.PING;
131
+
132
+ readonly ct: IDataChunkField;
133
+ }
@@ -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
+
17
+ export * from './Constants.v2';
18
+ export * from './EncoderV2';
19
+ export * from './DecoderV2';
20
+ export type * from './Encoding.v2.decl';
@@ -0,0 +1,94 @@
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
+
17
+ import * as Constants from './Constants';
18
+
19
+ /**
20
+ * The base class of all Televoke errors.
21
+ */
22
+ export abstract class TelevokeError extends Error {
23
+
24
+ public constructor(
25
+ name: string,
26
+ message: string,
27
+ public readonly origin: unknown = null
28
+ ) {
29
+
30
+ super(message);
31
+ this.name = name;
32
+ }
33
+ }
34
+
35
+ export class ProtocolError extends TelevokeError {
36
+
37
+ public constructor(
38
+ message: string,
39
+ origin: unknown,
40
+ ) {
41
+
42
+ super(Constants.PROTOCOL_ERROR_NAMESPACE, message, origin);
43
+ }
44
+ }
45
+
46
+ function defineProtocolError<T extends string>(name: T): Record<T, new (
47
+ data?: unknown,
48
+ origin?: unknown
49
+ ) => ProtocolError> {
50
+
51
+ return {
52
+
53
+ [name]: class extends ProtocolError {
54
+
55
+ public constructor(public readonly data: unknown = null, origin: unknown = null) {
56
+
57
+ super(name, origin);
58
+ }
59
+ },
60
+ } as any;
61
+ }
62
+
63
+ const errorCtors = {
64
+
65
+ ...defineProtocolError('incomplete_packet'),
66
+ ...defineProtocolError('invalid_packet'),
67
+ ...defineProtocolError('invalid_response'),
68
+ ...defineProtocolError('channel_inactive'),
69
+ ...defineProtocolError('channel_closed'),
70
+ ...defineProtocolError('api_not_found'),
71
+ ...defineProtocolError('cmd_not_impl'),
72
+ ...defineProtocolError('network_error'),
73
+ ...defineProtocolError('stream_not_found'),
74
+ ...defineProtocolError('stream_aborted'),
75
+ ...defineProtocolError('stream_closed'),
76
+ ...defineProtocolError('system_busy'),
77
+ ...defineProtocolError('timeout'),
78
+ ...defineProtocolError('unknown'),
79
+
80
+ ['app_error']: class AppError extends TelevokeError {
81
+
82
+ public constructor(message: string, origin: unknown = null) {
83
+
84
+ super(Constants.APP_ERROR_NAMESPACE, message, origin);
85
+ }
86
+ }
87
+ };
88
+
89
+ export class TvErrorResponse {
90
+
91
+ public constructor(public readonly data: unknown) {}
92
+ }
93
+
94
+ export const errors: Readonly<typeof errorCtors> = errorCtors as any;