gateio-api 0.0.1 → 1.0.2

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 (320) hide show
  1. package/README.md +251 -106
  2. package/dist/cjs/RestClient.d.ts +2534 -0
  3. package/dist/cjs/RestClient.js +2700 -0
  4. package/dist/cjs/RestClient.js.map +1 -0
  5. package/dist/cjs/WebsocketClient.d.ts +107 -0
  6. package/dist/cjs/WebsocketClient.js +504 -0
  7. package/dist/cjs/WebsocketClient.js.map +1 -0
  8. package/dist/cjs/index.d.ts +43 -0
  9. package/dist/cjs/index.js +64 -0
  10. package/dist/cjs/index.js.map +1 -0
  11. package/dist/cjs/lib/BaseRestClient.d.ts +63 -0
  12. package/dist/cjs/lib/BaseRestClient.js +324 -0
  13. package/dist/cjs/lib/BaseRestClient.js.map +1 -0
  14. package/dist/cjs/lib/BaseWSClient.d.ts +172 -0
  15. package/dist/cjs/lib/BaseWSClient.js +619 -0
  16. package/dist/cjs/lib/BaseWSClient.js.map +1 -0
  17. package/dist/cjs/lib/logger.d.ts +6 -0
  18. package/dist/cjs/lib/logger.js +16 -0
  19. package/dist/cjs/lib/logger.js.map +1 -0
  20. package/dist/cjs/lib/misc-util.d.ts +1 -0
  21. package/dist/cjs/lib/misc-util.js +8 -0
  22. package/dist/cjs/lib/misc-util.js.map +1 -0
  23. package/dist/cjs/lib/requestUtils.d.ts +38 -0
  24. package/dist/cjs/lib/requestUtils.js +47 -0
  25. package/dist/cjs/lib/requestUtils.js.map +1 -0
  26. package/dist/cjs/lib/webCryptoAPI.d.ts +10 -0
  27. package/dist/cjs/lib/webCryptoAPI.js +57 -0
  28. package/dist/cjs/lib/webCryptoAPI.js.map +1 -0
  29. package/dist/cjs/lib/websocket/WsStore.d.ts +57 -0
  30. package/dist/cjs/lib/websocket/WsStore.js +249 -0
  31. package/dist/cjs/lib/websocket/WsStore.js.map +1 -0
  32. package/dist/cjs/lib/websocket/WsStore.types.d.ts +44 -0
  33. package/dist/cjs/lib/websocket/WsStore.types.js +13 -0
  34. package/dist/cjs/lib/websocket/WsStore.types.js.map +1 -0
  35. package/dist/cjs/lib/websocket/websocket-util.d.ts +78 -0
  36. package/dist/cjs/lib/websocket/websocket-util.js +153 -0
  37. package/dist/cjs/lib/websocket/websocket-util.js.map +1 -0
  38. package/dist/cjs/package.json +3 -0
  39. package/dist/cjs/types/request/account.d.ts +10 -0
  40. package/dist/cjs/types/request/account.js +7 -0
  41. package/dist/cjs/types/request/account.js.map +1 -0
  42. package/dist/cjs/types/request/collateralLoan.d.ts +39 -0
  43. package/dist/cjs/types/request/collateralLoan.js +7 -0
  44. package/dist/cjs/types/request/collateralLoan.js.map +1 -0
  45. package/dist/cjs/types/request/delivery.d.ts +89 -0
  46. package/dist/cjs/types/request/delivery.js +7 -0
  47. package/dist/cjs/types/request/delivery.js.map +1 -0
  48. package/dist/cjs/types/request/earn.d.ts +16 -0
  49. package/dist/cjs/types/request/earn.js +7 -0
  50. package/dist/cjs/types/request/earn.js.map +1 -0
  51. package/dist/cjs/types/request/earnuni.d.ts +30 -0
  52. package/dist/cjs/types/request/earnuni.js +7 -0
  53. package/dist/cjs/types/request/earnuni.js.map +1 -0
  54. package/dist/cjs/types/request/flashswap.d.ts +28 -0
  55. package/dist/cjs/types/request/flashswap.js +7 -0
  56. package/dist/cjs/types/request/flashswap.js.map +1 -0
  57. package/dist/cjs/types/request/futures.d.ts +168 -0
  58. package/dist/cjs/types/request/futures.js +7 -0
  59. package/dist/cjs/types/request/futures.js.map +1 -0
  60. package/dist/cjs/types/request/margin.d.ts +47 -0
  61. package/dist/cjs/types/request/margin.js +7 -0
  62. package/dist/cjs/types/request/margin.js.map +1 -0
  63. package/dist/cjs/types/request/marginuni.d.ts +29 -0
  64. package/dist/cjs/types/request/marginuni.js +7 -0
  65. package/dist/cjs/types/request/marginuni.js.map +1 -0
  66. package/dist/cjs/types/request/multicollateralLoan.d.ts +55 -0
  67. package/dist/cjs/types/request/multicollateralLoan.js +7 -0
  68. package/dist/cjs/types/request/multicollateralLoan.js.map +1 -0
  69. package/dist/cjs/types/request/options.d.ts +81 -0
  70. package/dist/cjs/types/request/options.js +3 -0
  71. package/dist/cjs/types/request/options.js.map +1 -0
  72. package/dist/cjs/types/request/rebate.d.ts +26 -0
  73. package/dist/cjs/types/request/rebate.js +3 -0
  74. package/dist/cjs/types/request/rebate.js.map +1 -0
  75. package/dist/cjs/types/request/spot.d.ts +115 -0
  76. package/dist/cjs/types/request/spot.js +7 -0
  77. package/dist/cjs/types/request/spot.js.map +1 -0
  78. package/dist/cjs/types/request/subaccount.d.ts +19 -0
  79. package/dist/cjs/types/request/subaccount.js +3 -0
  80. package/dist/cjs/types/request/subaccount.js.map +1 -0
  81. package/dist/cjs/types/request/unified.d.ts +64 -0
  82. package/dist/cjs/types/request/unified.js +3 -0
  83. package/dist/cjs/types/request/unified.js.map +1 -0
  84. package/dist/cjs/types/request/wallet.d.ts +50 -0
  85. package/dist/cjs/types/request/wallet.js +3 -0
  86. package/dist/cjs/types/request/wallet.js.map +1 -0
  87. package/dist/cjs/types/request/withdrawal.d.ts +12 -0
  88. package/dist/cjs/types/request/withdrawal.js +7 -0
  89. package/dist/cjs/types/request/withdrawal.js.map +1 -0
  90. package/dist/cjs/types/response/account.d.ts +24 -0
  91. package/dist/cjs/types/response/account.js +7 -0
  92. package/dist/cjs/types/response/account.js.map +1 -0
  93. package/dist/cjs/types/response/collateralloan.d.ts +58 -0
  94. package/dist/cjs/types/response/collateralloan.js +7 -0
  95. package/dist/cjs/types/response/collateralloan.js.map +1 -0
  96. package/dist/cjs/types/response/delivery.d.ts +144 -0
  97. package/dist/cjs/types/response/delivery.js +7 -0
  98. package/dist/cjs/types/response/delivery.js.map +1 -0
  99. package/dist/cjs/types/response/earn.d.ts +60 -0
  100. package/dist/cjs/types/response/earn.js +7 -0
  101. package/dist/cjs/types/response/earn.js.map +1 -0
  102. package/dist/cjs/types/response/earnuni.d.ts +40 -0
  103. package/dist/cjs/types/response/earnuni.js +7 -0
  104. package/dist/cjs/types/response/earnuni.js.map +1 -0
  105. package/dist/cjs/types/response/flashswap.d.ts +32 -0
  106. package/dist/cjs/types/response/flashswap.js +7 -0
  107. package/dist/cjs/types/response/flashswap.js.map +1 -0
  108. package/dist/cjs/types/response/futures.d.ts +398 -0
  109. package/dist/cjs/types/response/futures.js +7 -0
  110. package/dist/cjs/types/response/futures.js.map +1 -0
  111. package/dist/cjs/types/response/margin.d.ts +96 -0
  112. package/dist/cjs/types/response/margin.js +7 -0
  113. package/dist/cjs/types/response/margin.js.map +1 -0
  114. package/dist/cjs/types/response/marginuni.d.ts +39 -0
  115. package/dist/cjs/types/response/marginuni.js +7 -0
  116. package/dist/cjs/types/response/marginuni.js.map +1 -0
  117. package/dist/cjs/types/response/multicollateralLoan.d.ts +151 -0
  118. package/dist/cjs/types/response/multicollateralLoan.js +7 -0
  119. package/dist/cjs/types/response/multicollateralLoan.js.map +1 -0
  120. package/dist/cjs/types/response/options.d.ts +192 -0
  121. package/dist/cjs/types/response/options.js +7 -0
  122. package/dist/cjs/types/response/options.js.map +1 -0
  123. package/dist/cjs/types/response/rebate.d.ts +40 -0
  124. package/dist/cjs/types/response/rebate.js +3 -0
  125. package/dist/cjs/types/response/rebate.js.map +1 -0
  126. package/dist/cjs/types/response/shared.d.ts +5 -0
  127. package/dist/cjs/types/response/shared.js +3 -0
  128. package/dist/cjs/types/response/shared.js.map +1 -0
  129. package/dist/cjs/types/response/spot.d.ts +224 -0
  130. package/dist/cjs/types/response/spot.js +7 -0
  131. package/dist/cjs/types/response/spot.js.map +1 -0
  132. package/dist/cjs/types/response/subaccount.d.ts +40 -0
  133. package/dist/cjs/types/response/subaccount.js +3 -0
  134. package/dist/cjs/types/response/subaccount.js.map +1 -0
  135. package/dist/cjs/types/response/unified.d.ts +113 -0
  136. package/dist/cjs/types/response/unified.js +3 -0
  137. package/dist/cjs/types/response/unified.js.map +1 -0
  138. package/dist/cjs/types/response/wallet.d.ts +181 -0
  139. package/dist/cjs/types/response/wallet.js +3 -0
  140. package/dist/cjs/types/response/wallet.js.map +1 -0
  141. package/dist/cjs/types/response/withdrawal.d.ts +12 -0
  142. package/dist/cjs/types/response/withdrawal.js +3 -0
  143. package/dist/cjs/types/response/withdrawal.js.map +1 -0
  144. package/dist/cjs/types/shared.d.ts +16 -0
  145. package/dist/cjs/types/shared.js +3 -0
  146. package/dist/cjs/types/shared.js.map +1 -0
  147. package/dist/cjs/types/websockets/client.d.ts +44 -0
  148. package/dist/cjs/types/websockets/client.js +6 -0
  149. package/dist/cjs/types/websockets/client.js.map +1 -0
  150. package/dist/cjs/types/websockets/events.d.ts +5 -0
  151. package/dist/cjs/types/websockets/events.js +3 -0
  152. package/dist/cjs/types/websockets/events.js.map +1 -0
  153. package/dist/cjs/types/websockets/requests.d.ts +36 -0
  154. package/dist/cjs/types/websockets/requests.js +3 -0
  155. package/dist/cjs/types/websockets/requests.js.map +1 -0
  156. package/dist/cjs/types/websockets/wsAPI.d.ts +101 -0
  157. package/dist/cjs/types/websockets/wsAPI.js +8 -0
  158. package/dist/cjs/types/websockets/wsAPI.js.map +1 -0
  159. package/dist/mjs/RestClient.d.ts +2534 -0
  160. package/dist/mjs/RestClient.js +2696 -0
  161. package/dist/mjs/RestClient.js.map +1 -0
  162. package/dist/mjs/WebsocketClient.d.ts +107 -0
  163. package/dist/mjs/WebsocketClient.js +500 -0
  164. package/dist/mjs/WebsocketClient.js.map +1 -0
  165. package/dist/mjs/index.d.ts +43 -0
  166. package/dist/mjs/index.js +48 -0
  167. package/dist/mjs/index.js.map +1 -0
  168. package/dist/mjs/lib/BaseRestClient.d.ts +63 -0
  169. package/dist/mjs/lib/BaseRestClient.js +317 -0
  170. package/dist/mjs/lib/BaseRestClient.js.map +1 -0
  171. package/dist/mjs/lib/BaseWSClient.d.ts +172 -0
  172. package/dist/mjs/lib/BaseWSClient.js +612 -0
  173. package/dist/mjs/lib/BaseWSClient.js.map +1 -0
  174. package/dist/mjs/lib/logger.d.ts +6 -0
  175. package/dist/mjs/lib/logger.js +13 -0
  176. package/dist/mjs/lib/logger.js.map +1 -0
  177. package/dist/mjs/lib/misc-util.d.ts +1 -0
  178. package/dist/mjs/lib/misc-util.js +4 -0
  179. package/dist/mjs/lib/misc-util.js.map +1 -0
  180. package/dist/mjs/lib/requestUtils.d.ts +38 -0
  181. package/dist/mjs/lib/requestUtils.js +41 -0
  182. package/dist/mjs/lib/requestUtils.js.map +1 -0
  183. package/dist/mjs/lib/webCryptoAPI.d.ts +10 -0
  184. package/dist/mjs/lib/webCryptoAPI.js +52 -0
  185. package/dist/mjs/lib/webCryptoAPI.js.map +1 -0
  186. package/dist/mjs/lib/websocket/WsStore.d.ts +57 -0
  187. package/dist/mjs/lib/websocket/WsStore.js +244 -0
  188. package/dist/mjs/lib/websocket/WsStore.js.map +1 -0
  189. package/dist/mjs/lib/websocket/WsStore.types.d.ts +44 -0
  190. package/dist/mjs/lib/websocket/WsStore.types.js +10 -0
  191. package/dist/mjs/lib/websocket/WsStore.types.js.map +1 -0
  192. package/dist/mjs/lib/websocket/websocket-util.d.ts +78 -0
  193. package/dist/mjs/lib/websocket/websocket-util.js +145 -0
  194. package/dist/mjs/lib/websocket/websocket-util.js.map +1 -0
  195. package/dist/mjs/package.json +3 -0
  196. package/dist/mjs/types/request/account.d.ts +10 -0
  197. package/dist/mjs/types/request/account.js +6 -0
  198. package/dist/mjs/types/request/account.js.map +1 -0
  199. package/dist/mjs/types/request/collateralLoan.d.ts +39 -0
  200. package/dist/mjs/types/request/collateralLoan.js +6 -0
  201. package/dist/mjs/types/request/collateralLoan.js.map +1 -0
  202. package/dist/mjs/types/request/delivery.d.ts +89 -0
  203. package/dist/mjs/types/request/delivery.js +6 -0
  204. package/dist/mjs/types/request/delivery.js.map +1 -0
  205. package/dist/mjs/types/request/earn.d.ts +16 -0
  206. package/dist/mjs/types/request/earn.js +6 -0
  207. package/dist/mjs/types/request/earn.js.map +1 -0
  208. package/dist/mjs/types/request/earnuni.d.ts +30 -0
  209. package/dist/mjs/types/request/earnuni.js +6 -0
  210. package/dist/mjs/types/request/earnuni.js.map +1 -0
  211. package/dist/mjs/types/request/flashswap.d.ts +28 -0
  212. package/dist/mjs/types/request/flashswap.js +6 -0
  213. package/dist/mjs/types/request/flashswap.js.map +1 -0
  214. package/dist/mjs/types/request/futures.d.ts +168 -0
  215. package/dist/mjs/types/request/futures.js +6 -0
  216. package/dist/mjs/types/request/futures.js.map +1 -0
  217. package/dist/mjs/types/request/margin.d.ts +47 -0
  218. package/dist/mjs/types/request/margin.js +6 -0
  219. package/dist/mjs/types/request/margin.js.map +1 -0
  220. package/dist/mjs/types/request/marginuni.d.ts +29 -0
  221. package/dist/mjs/types/request/marginuni.js +6 -0
  222. package/dist/mjs/types/request/marginuni.js.map +1 -0
  223. package/dist/mjs/types/request/multicollateralLoan.d.ts +55 -0
  224. package/dist/mjs/types/request/multicollateralLoan.js +6 -0
  225. package/dist/mjs/types/request/multicollateralLoan.js.map +1 -0
  226. package/dist/mjs/types/request/options.d.ts +81 -0
  227. package/dist/mjs/types/request/options.js +2 -0
  228. package/dist/mjs/types/request/options.js.map +1 -0
  229. package/dist/mjs/types/request/rebate.d.ts +26 -0
  230. package/dist/mjs/types/request/rebate.js +2 -0
  231. package/dist/mjs/types/request/rebate.js.map +1 -0
  232. package/dist/mjs/types/request/spot.d.ts +115 -0
  233. package/dist/mjs/types/request/spot.js +6 -0
  234. package/dist/mjs/types/request/spot.js.map +1 -0
  235. package/dist/mjs/types/request/subaccount.d.ts +19 -0
  236. package/dist/mjs/types/request/subaccount.js +2 -0
  237. package/dist/mjs/types/request/subaccount.js.map +1 -0
  238. package/dist/mjs/types/request/unified.d.ts +64 -0
  239. package/dist/mjs/types/request/unified.js +2 -0
  240. package/dist/mjs/types/request/unified.js.map +1 -0
  241. package/dist/mjs/types/request/wallet.d.ts +50 -0
  242. package/dist/mjs/types/request/wallet.js +2 -0
  243. package/dist/mjs/types/request/wallet.js.map +1 -0
  244. package/dist/mjs/types/request/withdrawal.d.ts +12 -0
  245. package/dist/mjs/types/request/withdrawal.js +6 -0
  246. package/dist/mjs/types/request/withdrawal.js.map +1 -0
  247. package/dist/mjs/types/response/account.d.ts +24 -0
  248. package/dist/mjs/types/response/account.js +6 -0
  249. package/dist/mjs/types/response/account.js.map +1 -0
  250. package/dist/mjs/types/response/collateralloan.d.ts +58 -0
  251. package/dist/mjs/types/response/collateralloan.js +6 -0
  252. package/dist/mjs/types/response/collateralloan.js.map +1 -0
  253. package/dist/mjs/types/response/delivery.d.ts +144 -0
  254. package/dist/mjs/types/response/delivery.js +6 -0
  255. package/dist/mjs/types/response/delivery.js.map +1 -0
  256. package/dist/mjs/types/response/earn.d.ts +60 -0
  257. package/dist/mjs/types/response/earn.js +6 -0
  258. package/dist/mjs/types/response/earn.js.map +1 -0
  259. package/dist/mjs/types/response/earnuni.d.ts +40 -0
  260. package/dist/mjs/types/response/earnuni.js +6 -0
  261. package/dist/mjs/types/response/earnuni.js.map +1 -0
  262. package/dist/mjs/types/response/flashswap.d.ts +32 -0
  263. package/dist/mjs/types/response/flashswap.js +6 -0
  264. package/dist/mjs/types/response/flashswap.js.map +1 -0
  265. package/dist/mjs/types/response/futures.d.ts +398 -0
  266. package/dist/mjs/types/response/futures.js +6 -0
  267. package/dist/mjs/types/response/futures.js.map +1 -0
  268. package/dist/mjs/types/response/margin.d.ts +96 -0
  269. package/dist/mjs/types/response/margin.js +6 -0
  270. package/dist/mjs/types/response/margin.js.map +1 -0
  271. package/dist/mjs/types/response/marginuni.d.ts +39 -0
  272. package/dist/mjs/types/response/marginuni.js +6 -0
  273. package/dist/mjs/types/response/marginuni.js.map +1 -0
  274. package/dist/mjs/types/response/multicollateralLoan.d.ts +151 -0
  275. package/dist/mjs/types/response/multicollateralLoan.js +6 -0
  276. package/dist/mjs/types/response/multicollateralLoan.js.map +1 -0
  277. package/dist/mjs/types/response/options.d.ts +192 -0
  278. package/dist/mjs/types/response/options.js +6 -0
  279. package/dist/mjs/types/response/options.js.map +1 -0
  280. package/dist/mjs/types/response/rebate.d.ts +40 -0
  281. package/dist/mjs/types/response/rebate.js +2 -0
  282. package/dist/mjs/types/response/rebate.js.map +1 -0
  283. package/dist/mjs/types/response/shared.d.ts +5 -0
  284. package/dist/mjs/types/response/shared.js +2 -0
  285. package/dist/mjs/types/response/shared.js.map +1 -0
  286. package/dist/mjs/types/response/spot.d.ts +224 -0
  287. package/dist/mjs/types/response/spot.js +6 -0
  288. package/dist/mjs/types/response/spot.js.map +1 -0
  289. package/dist/mjs/types/response/subaccount.d.ts +40 -0
  290. package/dist/mjs/types/response/subaccount.js +2 -0
  291. package/dist/mjs/types/response/subaccount.js.map +1 -0
  292. package/dist/mjs/types/response/unified.d.ts +113 -0
  293. package/dist/mjs/types/response/unified.js +2 -0
  294. package/dist/mjs/types/response/unified.js.map +1 -0
  295. package/dist/mjs/types/response/wallet.d.ts +181 -0
  296. package/dist/mjs/types/response/wallet.js +2 -0
  297. package/dist/mjs/types/response/wallet.js.map +1 -0
  298. package/dist/mjs/types/response/withdrawal.d.ts +12 -0
  299. package/dist/mjs/types/response/withdrawal.js +2 -0
  300. package/dist/mjs/types/response/withdrawal.js.map +1 -0
  301. package/dist/mjs/types/shared.d.ts +16 -0
  302. package/dist/mjs/types/shared.js +2 -0
  303. package/dist/mjs/types/shared.js.map +1 -0
  304. package/dist/mjs/types/websockets/client.d.ts +44 -0
  305. package/dist/mjs/types/websockets/client.js +5 -0
  306. package/dist/mjs/types/websockets/client.js.map +1 -0
  307. package/dist/mjs/types/websockets/events.d.ts +5 -0
  308. package/dist/mjs/types/websockets/events.js +2 -0
  309. package/dist/mjs/types/websockets/events.js.map +1 -0
  310. package/dist/mjs/types/websockets/requests.d.ts +36 -0
  311. package/dist/mjs/types/websockets/requests.js +2 -0
  312. package/dist/mjs/types/websockets/requests.js.map +1 -0
  313. package/dist/mjs/types/websockets/wsAPI.d.ts +101 -0
  314. package/dist/mjs/types/websockets/wsAPI.js +7 -0
  315. package/dist/mjs/types/websockets/wsAPI.js.map +1 -0
  316. package/package.json +49 -38
  317. package/index.js +0 -1
  318. package/lib/index.d.ts +0 -1
  319. package/lib/index.js +0 -16
  320. package/lib/index.js.map +0 -1
@@ -0,0 +1,619 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseWebsocketClient = void 0;
7
+ const events_1 = __importDefault(require("events"));
8
+ const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
9
+ const WebsocketClient_js_1 = require("../WebsocketClient.js");
10
+ const logger_js_1 = require("./logger.js");
11
+ const requestUtils_js_1 = require("./requestUtils.js");
12
+ const WsStore_js_1 = require("./websocket/WsStore.js");
13
+ const WsStore_types_js_1 = require("./websocket/WsStore.types.js");
14
+ /**
15
+ * Users can conveniently pass topics as strings or objects (object has topic name + optional params).
16
+ *
17
+ * This method normalises topics into objects (object has topic name + optional params).
18
+ */
19
+ function getNormalisedTopicRequests(wsTopicRequests) {
20
+ const normalisedTopicRequests = [];
21
+ for (const wsTopicRequest of wsTopicRequests) {
22
+ // passed as string, convert to object
23
+ if (typeof wsTopicRequest === 'string') {
24
+ const topicRequest = {
25
+ topic: wsTopicRequest,
26
+ payload: undefined,
27
+ };
28
+ normalisedTopicRequests.push(topicRequest);
29
+ continue;
30
+ }
31
+ // already a normalised object, thanks to user
32
+ normalisedTopicRequests.push(wsTopicRequest);
33
+ }
34
+ return normalisedTopicRequests;
35
+ }
36
+ /**
37
+ * Base WebSocket abstraction layer. Handles connections, tracking each connection as a unique "WS Key"
38
+ */
39
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
40
+ class BaseWebsocketClient extends events_1.default {
41
+ /**
42
+ * State store to track a list of topics (topic requests) we are expected to be subscribed to if reconnected
43
+ */
44
+ wsStore;
45
+ logger;
46
+ options;
47
+ wsApiRequestId = 0;
48
+ constructor(options, logger) {
49
+ super();
50
+ this.logger = logger || logger_js_1.DefaultLogger;
51
+ this.wsStore = new WsStore_js_1.WsStore(this.logger);
52
+ this.options = {
53
+ // Some defaults:
54
+ pongTimeout: 1500,
55
+ pingInterval: 10000,
56
+ reconnectTimeout: 500,
57
+ recvWindow: -1000,
58
+ // Gate.io only has one connection (for both public & private). Auth works with every sub, not on connect, so this is turned off.
59
+ authPrivateConnectionsOnConnect: false,
60
+ // Gate.io requires auth to be added to every request, when subscribing to private topics. This is handled automatically.
61
+ authPrivateRequests: true,
62
+ // Automatically re-auth WS API, if we were auth'd before and get reconnected
63
+ reauthWSAPIOnReconnect: true,
64
+ ...options,
65
+ };
66
+ }
67
+ isPrivateWsKey(wsKey) {
68
+ return this.getPrivateWSKeys().includes(wsKey);
69
+ }
70
+ /** Returns auto-incrementing request ID, used to track promise references for async requests */
71
+ getNewRequestId() {
72
+ return `${++this.wsApiRequestId}`;
73
+ }
74
+ /**
75
+ * Don't call directly! Use subscribe() instead!
76
+ *
77
+ * Subscribe to one or more topics on a WS connection (identified by WS Key).
78
+ *
79
+ * - Topics are automatically cached
80
+ * - Connections are automatically opened, if not yet connected
81
+ * - Authentication is automatically handled
82
+ * - Topics are automatically resubscribed to, if something happens to the connection, unless you call unsubsribeTopicsForWsKey(topics, key).
83
+ *
84
+ * @param wsRequests array of topics to subscribe to
85
+ * @param wsKey ws key referring to the ws connection these topics should be subscribed on
86
+ */
87
+ subscribeTopicsForWsKey(wsTopicRequests, wsKey) {
88
+ const normalisedTopicRequests = getNormalisedTopicRequests(wsTopicRequests);
89
+ // Store topics, so future automation (post-auth, post-reconnect) has everything needed to resubscribe automatically
90
+ for (const topic of normalisedTopicRequests) {
91
+ this.wsStore.addTopic(wsKey, topic);
92
+ }
93
+ const isConnected = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
94
+ // TODO: test this, spam loads of subscribe topic calls in intervals (and add a log line on this logic)
95
+ const isConnectionInProgress = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTING) ||
96
+ this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.RECONNECTING);
97
+ // start connection process if it hasn't yet begun. Topics are automatically subscribed to on-connect
98
+ if (!isConnected && !isConnectionInProgress) {
99
+ return this.connect(wsKey);
100
+ }
101
+ // Subscribe should happen automatically once connected, nothing to do here after topics are added to wsStore.
102
+ if (!isConnected) {
103
+ /**
104
+ * Are we in the process of connection? Nothing to send yet.
105
+ */
106
+ this.logger.trace(`WS not connected - requests queued for retry once connected.`, {
107
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
108
+ wsKey,
109
+ wsTopicRequests,
110
+ });
111
+ return;
112
+ }
113
+ // We're connected. Check if auth is needed and if already authenticated
114
+ const isPrivateConnection = this.isPrivateWsKey(wsKey);
115
+ const isAuthenticated = this.wsStore.get(wsKey)?.isAuthenticated;
116
+ if (isPrivateConnection && !isAuthenticated) {
117
+ /**
118
+ * If not authenticated yet and auth is required, don't request topics yet.
119
+ *
120
+ * Auth should already automatically be in progress, so no action needed from here. Topics will automatically subscribe post-auth success.
121
+ */
122
+ return false;
123
+ }
124
+ // Finally, request subscription to topics if the connection is healthy and ready
125
+ this.requestSubscribeTopics(wsKey, normalisedTopicRequests);
126
+ }
127
+ unsubscribeTopicsForWsKey(wsTopicRequests, wsKey) {
128
+ const normalisedTopicRequests = getNormalisedTopicRequests(wsTopicRequests);
129
+ // Store topics, so future automation (post-auth, post-reconnect) has everything needed to resubscribe automatically
130
+ for (const topic of normalisedTopicRequests) {
131
+ this.wsStore.deleteTopic(wsKey, topic);
132
+ }
133
+ const isConnected = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
134
+ // If not connected, don't need to do anything.
135
+ // Removing the topic from the store is enough to stop it from being resubscribed to on reconnect.
136
+ if (!isConnected) {
137
+ return;
138
+ }
139
+ // We're connected. Check if auth is needed and if already authenticated
140
+ const isPrivateConnection = this.isPrivateWsKey(wsKey);
141
+ const isAuthenticated = this.wsStore.get(wsKey)?.isAuthenticated;
142
+ if (isPrivateConnection && !isAuthenticated) {
143
+ /**
144
+ * If not authenticated yet and auth is required, don't need to do anything.
145
+ * We don't subscribe to topics until auth is complete anyway.
146
+ */
147
+ return;
148
+ }
149
+ // Finally, request subscription to topics if the connection is healthy and ready
150
+ this.requestUnsubscribeTopics(wsKey, normalisedTopicRequests);
151
+ }
152
+ /**
153
+ * Splits topic requests into two groups, public & private topic requests
154
+ */
155
+ sortTopicRequestsIntoPublicPrivate(wsTopicRequests, wsKey) {
156
+ const publicTopicRequests = [];
157
+ const privateTopicRequests = [];
158
+ for (const topic of wsTopicRequests) {
159
+ if (this.isPrivateTopicRequest(topic, wsKey)) {
160
+ privateTopicRequests.push(topic);
161
+ }
162
+ else {
163
+ publicTopicRequests.push(topic);
164
+ }
165
+ }
166
+ return {
167
+ publicReqs: publicTopicRequests,
168
+ privateReqs: privateTopicRequests,
169
+ };
170
+ }
171
+ /** Get the WsStore that tracks websockets & topics */
172
+ getWsStore() {
173
+ return this.wsStore;
174
+ }
175
+ close(wsKey, force) {
176
+ this.logger.info('Closing connection', { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
177
+ this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CLOSING);
178
+ this.clearTimers(wsKey);
179
+ const ws = this.getWs(wsKey);
180
+ ws?.close();
181
+ if (force) {
182
+ ws?.terminate();
183
+ }
184
+ }
185
+ closeAll(force) {
186
+ this.wsStore.getKeys().forEach((key) => {
187
+ this.close(key, force);
188
+ });
189
+ }
190
+ isConnected(wsKey) {
191
+ return this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
192
+ }
193
+ /**
194
+ * Request connection to a specific websocket, instead of waiting for automatic connection.
195
+ */
196
+ async connect(wsKey) {
197
+ try {
198
+ if (this.wsStore.isWsOpen(wsKey)) {
199
+ this.logger.error('Refused to connect to ws with existing active connection', { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
200
+ return this.wsStore.getConnectionInProgressPromise(wsKey);
201
+ }
202
+ if (this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTING)) {
203
+ this.logger.error('Refused to connect to ws, connection attempt already active', { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
204
+ return;
205
+ }
206
+ if (!this.wsStore.getConnectionState(wsKey) ||
207
+ this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.INITIAL)) {
208
+ this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTING);
209
+ }
210
+ if (!this.wsStore.getConnectionInProgressPromise(wsKey)) {
211
+ this.wsStore.createConnectionInProgressPromise(wsKey, false);
212
+ }
213
+ const url = this.getWsUrl(wsKey);
214
+ const ws = this.connectToWsUrl(url, wsKey);
215
+ this.wsStore.setWs(wsKey, ws);
216
+ return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
217
+ }
218
+ catch (err) {
219
+ this.parseWsError('Connection failed', err, wsKey);
220
+ this.reconnectWithDelay(wsKey, this.options.reconnectTimeout);
221
+ }
222
+ }
223
+ connectToWsUrl(url, wsKey) {
224
+ this.logger.trace(`Opening WS connection to URL: ${url}`, {
225
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
226
+ wsKey,
227
+ });
228
+ const ws = new isomorphic_ws_1.default(url, undefined);
229
+ ws.onopen = (event) => this.onWsOpen(event, wsKey);
230
+ ws.onmessage = (event) => this.onWsMessage(event, wsKey, ws);
231
+ ws.onerror = (event) => this.parseWsError('websocket error', event, wsKey);
232
+ ws.onclose = (event) => this.onWsClose(event, wsKey);
233
+ return ws;
234
+ }
235
+ parseWsError(context, error, wsKey) {
236
+ if (!error.message) {
237
+ this.logger.error(`${context} due to unexpected error: `, error);
238
+ this.emit('response', { ...error, wsKey });
239
+ this.emit('exception', { ...error, wsKey });
240
+ return;
241
+ }
242
+ switch (error.message) {
243
+ case 'Unexpected server response: 401':
244
+ this.logger.error(`${context} due to 401 authorization failure.`, {
245
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
246
+ wsKey,
247
+ });
248
+ break;
249
+ default:
250
+ this.logger.error(`${context} due to unexpected response error: "${error?.msg || error?.message || error}"`, { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey, error });
251
+ break;
252
+ }
253
+ this.emit('response', { ...error, wsKey });
254
+ this.emit('exception', { ...error, wsKey });
255
+ }
256
+ /** Get a signature, build the auth request and send it */
257
+ async sendAuthRequest(wsKey) {
258
+ try {
259
+ this.logger.info(`Sending auth request...`, {
260
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
261
+ wsKey,
262
+ });
263
+ // TODO:!
264
+ const request = await this.getWsAuthRequestEvent(wsKey);
265
+ // console.log('ws auth req', request);
266
+ return this.tryWsSend(wsKey, JSON.stringify(request));
267
+ }
268
+ catch (e) {
269
+ this.logger.trace(e, { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
270
+ }
271
+ }
272
+ reconnectWithDelay(wsKey, connectionDelayMs) {
273
+ this.clearTimers(wsKey);
274
+ if (this.wsStore.getConnectionState(wsKey) !==
275
+ WsStore_types_js_1.WsConnectionStateEnum.CONNECTING) {
276
+ this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.RECONNECTING);
277
+ }
278
+ this.wsStore.get(wsKey, true).activeReconnectTimer = setTimeout(() => {
279
+ this.logger.info('Reconnecting to websocket', {
280
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
281
+ wsKey,
282
+ });
283
+ this.connect(wsKey);
284
+ }, connectionDelayMs);
285
+ }
286
+ ping(wsKey) {
287
+ if (this.wsStore.get(wsKey, true).activePongTimer) {
288
+ return;
289
+ }
290
+ this.clearPongTimer(wsKey);
291
+ this.logger.trace('Sending ping', { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
292
+ const ws = this.wsStore.get(wsKey, true).ws;
293
+ if (!ws) {
294
+ this.logger.error(`Unable to send ping for wsKey "${wsKey}" - no connection found`);
295
+ return;
296
+ }
297
+ this.sendPingEvent(wsKey, ws);
298
+ this.wsStore.get(wsKey, true).activePongTimer = setTimeout(() => {
299
+ this.logger.info('Pong timeout - closing socket to reconnect', {
300
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
301
+ wsKey,
302
+ });
303
+ this.clearPongTimer(wsKey);
304
+ this.getWs(wsKey)?.terminate();
305
+ }, this.options.pongTimeout);
306
+ }
307
+ clearTimers(wsKey) {
308
+ this.clearPingTimer(wsKey);
309
+ this.clearPongTimer(wsKey);
310
+ const wsState = this.wsStore.get(wsKey);
311
+ if (wsState?.activeReconnectTimer) {
312
+ clearTimeout(wsState.activeReconnectTimer);
313
+ }
314
+ }
315
+ // Send a ping at intervals
316
+ clearPingTimer(wsKey) {
317
+ const wsState = this.wsStore.get(wsKey);
318
+ if (wsState?.activePingTimer) {
319
+ clearInterval(wsState.activePingTimer);
320
+ wsState.activePingTimer = undefined;
321
+ }
322
+ }
323
+ // Expect a pong within a time limit
324
+ clearPongTimer(wsKey) {
325
+ const wsState = this.wsStore.get(wsKey);
326
+ if (wsState?.activePongTimer) {
327
+ clearTimeout(wsState.activePongTimer);
328
+ wsState.activePongTimer = undefined;
329
+ // this.logger.trace(`Cleared pong timeout for "${wsKey}"`);
330
+ }
331
+ else {
332
+ // this.logger.trace(`No active pong timer for "${wsKey}"`);
333
+ }
334
+ }
335
+ /**
336
+ * Simply builds and sends subscribe events for a list of topics for a ws key
337
+ *
338
+ * @private Use the `subscribe(topics)` or `subscribeTopicsForWsKey(topics, wsKey)` method to subscribe to topics. Send WS message to subscribe to topics.
339
+ */
340
+ async requestSubscribeTopics(wsKey, topics) {
341
+ if (!topics.length) {
342
+ return;
343
+ }
344
+ // Automatically splits requests into smaller batches, if needed
345
+ const subscribeWsMessages = await this.getWsOperationEventsForTopics(topics, wsKey, 'subscribe');
346
+ this.logger.trace(`Subscribing to ${topics.length} "${wsKey}" topics in ${subscribeWsMessages.length} batches.`);
347
+ // console.log(`batches: `, JSON.stringify(subscribeWsMessages, null, 2));
348
+ for (const wsMessage of subscribeWsMessages) {
349
+ // this.logger.trace(`Sending batch via message: "${wsMessage}"`);
350
+ this.tryWsSend(wsKey, wsMessage);
351
+ }
352
+ this.logger.trace(`Finished subscribing to ${topics.length} "${wsKey}" topics in ${subscribeWsMessages.length} batches.`);
353
+ }
354
+ /**
355
+ * Simply builds and sends unsubscribe events for a list of topics for a ws key
356
+ *
357
+ * @private Use the `unsubscribe(topics)` method to unsubscribe from topics. Send WS message to unsubscribe from topics.
358
+ */
359
+ async requestUnsubscribeTopics(wsKey, wsTopicRequests) {
360
+ if (!wsTopicRequests.length) {
361
+ return;
362
+ }
363
+ const subscribeWsMessages = await this.getWsOperationEventsForTopics(wsTopicRequests, wsKey, 'unsubscribe');
364
+ this.logger.trace(`Unsubscribing to ${wsTopicRequests.length} "${wsKey}" topics in ${subscribeWsMessages.length} batches. Events: "${JSON.stringify(wsTopicRequests)}"`);
365
+ for (const wsMessage of subscribeWsMessages) {
366
+ this.logger.trace(`Sending batch via message: "${wsMessage}"`);
367
+ this.tryWsSend(wsKey, wsMessage);
368
+ }
369
+ this.logger.trace(`Finished unsubscribing to ${wsTopicRequests.length} "${wsKey}" topics in ${subscribeWsMessages.length} batches.`);
370
+ }
371
+ /**
372
+ * Try sending a string event on a WS connection (identified by the WS Key)
373
+ */
374
+ tryWsSend(wsKey, wsMessage) {
375
+ try {
376
+ this.logger.trace(`Sending upstream ws message: `, {
377
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
378
+ wsMessage,
379
+ wsKey,
380
+ });
381
+ if (!wsKey) {
382
+ throw new Error('Cannot send message due to no known websocket for this wsKey');
383
+ }
384
+ const ws = this.getWs(wsKey);
385
+ if (!ws) {
386
+ throw new Error(`${wsKey} socket not connected yet, call "connectAll()" first then try again when the "open" event arrives`);
387
+ }
388
+ ws.send(wsMessage);
389
+ }
390
+ catch (e) {
391
+ this.logger.error(`Failed to send WS message`, {
392
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
393
+ wsMessage,
394
+ wsKey,
395
+ exception: e,
396
+ });
397
+ }
398
+ }
399
+ async onWsOpen(event, wsKey) {
400
+ const didReconnectSuccessfully = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.RECONNECTING);
401
+ if (this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTING)) {
402
+ this.logger.info('Websocket connected', {
403
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
404
+ wsKey,
405
+ });
406
+ this.emit('open', { wsKey, event });
407
+ }
408
+ else if (didReconnectSuccessfully) {
409
+ this.logger.info('Websocket reconnected', {
410
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
411
+ wsKey,
412
+ });
413
+ this.emit('reconnected', { wsKey, event });
414
+ }
415
+ this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
416
+ this.logger.trace(`Enabled ping timer`, { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
417
+ this.wsStore.get(wsKey, true).activePingTimer = setInterval(() => this.ping(wsKey), this.options.pingInterval);
418
+ // Resolve & cleanup deferred "connection attempt in progress" promise
419
+ try {
420
+ const connectionInProgressPromise = this.wsStore.getConnectionInProgressPromise(wsKey);
421
+ if (connectionInProgressPromise?.resolve) {
422
+ connectionInProgressPromise.resolve({
423
+ wsKey,
424
+ });
425
+ }
426
+ }
427
+ catch (e) {
428
+ this.logger.error(`Exception trying to resolve "connectionInProgress" promise`);
429
+ }
430
+ // Remove before resolving, in case there's more requests queued
431
+ this.wsStore.removeConnectingInProgressPromise(wsKey);
432
+ // Some websockets require an auth packet to be sent after opening the connection
433
+ if (this.isPrivateWsKey(wsKey) &&
434
+ this.options.authPrivateConnectionsOnConnect) {
435
+ await this.sendAuthRequest(wsKey);
436
+ }
437
+ // Reconnect to topics known before it connected
438
+ const { privateReqs, publicReqs } = this.sortTopicRequestsIntoPublicPrivate([...this.wsStore.getTopics(wsKey)], wsKey);
439
+ // Request sub to public topics, if any
440
+ this.requestSubscribeTopics(wsKey, publicReqs);
441
+ // Request sub to private topics, if auth on connect isn't needed
442
+ if (!this.options.authPrivateConnectionsOnConnect) {
443
+ this.requestSubscribeTopics(wsKey, privateReqs);
444
+ }
445
+ const wsStoredState = this.wsStore.get(wsKey, true);
446
+ const { didAuthWSAPI, WSAPIAuthChannel } = wsStoredState;
447
+ // If enabled, automatically reauth WS API if reconnected
448
+ if (didReconnectSuccessfully &&
449
+ this.options.reauthWSAPIOnReconnect &&
450
+ didAuthWSAPI &&
451
+ WSAPIAuthChannel) {
452
+ this.logger.info(`WS API was authenticated before reconnect - re-authenticating WS API...`);
453
+ let attempt = 0;
454
+ const maxReAuthAttempts = 5;
455
+ while (attempt <= maxReAuthAttempts) {
456
+ attempt++;
457
+ try {
458
+ this.logger.trace(`try reauthenticate (attempt ${attempt}/${maxReAuthAttempts})`);
459
+ const loginResult = await this.sendWSAPIRequest(wsKey, WSAPIAuthChannel);
460
+ this.logger.trace('reauthenticated!', loginResult);
461
+ break;
462
+ }
463
+ catch (e) {
464
+ const giveUp = attempt >= maxReAuthAttempts;
465
+ const suffix = giveUp
466
+ ? 'Max tries reached. Giving up!'
467
+ : 'Trying again...';
468
+ this.logger.error(`Exception trying to reauthenticate WS API on reconnect... ${suffix}`);
469
+ this.emit('exception', {
470
+ wsKey,
471
+ type: 'wsapi.auth',
472
+ reason: `automatic WS API reauth failed after ${attempt} attempts`,
473
+ });
474
+ }
475
+ }
476
+ }
477
+ }
478
+ /**
479
+ * Handle subscription to private topics _after_ authentication successfully completes asynchronously.
480
+ *
481
+ * Only used for exchanges that require auth before sending private topic subscription requests
482
+ */
483
+ onWsAuthenticated(wsKey, event) {
484
+ const wsState = this.wsStore.get(wsKey, true);
485
+ wsState.isAuthenticated = true;
486
+ if (this.options.authPrivateConnectionsOnConnect) {
487
+ const topics = [...this.wsStore.getTopics(wsKey)];
488
+ const privateTopics = topics.filter((topic) => this.isPrivateTopicRequest(topic, wsKey));
489
+ if (privateTopics.length) {
490
+ this.subscribeTopicsForWsKey(privateTopics, wsKey);
491
+ }
492
+ }
493
+ if (event?.isWSAPI && event?.WSAPIAuthChannel) {
494
+ wsState.didAuthWSAPI = true;
495
+ wsState.WSAPIAuthChannel = event.WSAPIAuthChannel;
496
+ }
497
+ }
498
+ onWsMessage(event, wsKey, ws) {
499
+ try {
500
+ // any message can clear the pong timer - wouldn't get a message if the ws wasn't working
501
+ this.clearPongTimer(wsKey);
502
+ if (this.isWsPong(event)) {
503
+ this.logger.trace('Received pong', {
504
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
505
+ wsKey,
506
+ event: event?.data,
507
+ });
508
+ return;
509
+ }
510
+ if (this.isWsPing(event)) {
511
+ this.logger.trace('Received ping', {
512
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
513
+ wsKey,
514
+ event,
515
+ });
516
+ this.sendPongEvent(wsKey, ws);
517
+ return;
518
+ }
519
+ if ((0, requestUtils_js_1.isMessageEvent)(event)) {
520
+ const data = event.data;
521
+ const dataType = event.type;
522
+ const emittableEvents = this.resolveEmittableEvents(wsKey, event);
523
+ if (!emittableEvents.length) {
524
+ // console.log(`raw event: `, { data, dataType, emittableEvents });
525
+ this.logger.error('Unhandled/unrecognised ws event message - returned no emittable data', {
526
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
527
+ message: data || 'no message',
528
+ dataType,
529
+ event,
530
+ wsKey,
531
+ });
532
+ return this.emit('update', { ...event, wsKey });
533
+ }
534
+ for (const emittable of emittableEvents) {
535
+ if (this.isWsPong(emittable)) {
536
+ this.logger.trace('Received pong', {
537
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
538
+ wsKey,
539
+ data,
540
+ });
541
+ continue;
542
+ }
543
+ if (emittable.eventType === 'authenticated') {
544
+ this.logger.trace(`Successfully authenticated`, {
545
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
546
+ wsKey,
547
+ });
548
+ this.emit(emittable.eventType, { ...emittable.event, wsKey });
549
+ this.onWsAuthenticated(wsKey, emittable.event);
550
+ continue;
551
+ }
552
+ this.emit(emittable.eventType, { ...emittable.event, wsKey });
553
+ }
554
+ return;
555
+ }
556
+ this.logger.error('Unhandled/unrecognised ws event message - unexpected message format', {
557
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
558
+ message: event || 'no message',
559
+ event,
560
+ wsKey,
561
+ });
562
+ }
563
+ catch (e) {
564
+ this.logger.error('Failed to parse ws event message', {
565
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
566
+ error: e,
567
+ event,
568
+ wsKey,
569
+ });
570
+ }
571
+ }
572
+ onWsClose(event, wsKey) {
573
+ this.logger.info('Websocket connection closed', {
574
+ ...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
575
+ wsKey,
576
+ });
577
+ if (this.wsStore.getConnectionState(wsKey) !== WsStore_types_js_1.WsConnectionStateEnum.CLOSING) {
578
+ // clean up any pending promises for this connection
579
+ this.getWsStore().rejectAllDeferredPromises(wsKey, 'connection lost, reconnecting');
580
+ this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.INITIAL);
581
+ this.reconnectWithDelay(wsKey, this.options.reconnectTimeout);
582
+ this.emit('reconnect', { wsKey, event });
583
+ }
584
+ else {
585
+ // clean up any pending promises for this connection
586
+ this.getWsStore().rejectAllDeferredPromises(wsKey, 'disconnected');
587
+ this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.INITIAL);
588
+ this.emit('close', { wsKey, event });
589
+ }
590
+ }
591
+ getWs(wsKey) {
592
+ return this.wsStore.getWs(wsKey);
593
+ }
594
+ setWsState(wsKey, state) {
595
+ this.wsStore.setConnectionState(wsKey, state);
596
+ }
597
+ /**
598
+ * Promise-driven method to assert that a ws has successfully connected (will await until connection is open)
599
+ */
600
+ async assertIsConnected(wsKey) {
601
+ const isConnected = this.getWsStore().isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
602
+ if (!isConnected) {
603
+ const inProgressPromise = this.getWsStore().getConnectionInProgressPromise(wsKey);
604
+ // Already in progress? Await shared promise and retry
605
+ if (inProgressPromise) {
606
+ this.logger.trace(`sendWSAPIRequest(): Awaiting EXISTING connection promise...`);
607
+ await inProgressPromise.promise;
608
+ this.logger.trace(`sendWSAPIRequest(): EXISTING connection promise resolved!`);
609
+ return;
610
+ }
611
+ // Start connection, it should automatically store/return a promise.
612
+ this.logger.trace(`sendWSAPIRequest(): Not connected yet...queue await connection...`);
613
+ await this.connect(wsKey);
614
+ this.logger.trace(`sendWSAPIRequest(): New connection promise resolved! `);
615
+ }
616
+ }
617
+ }
618
+ exports.BaseWebsocketClient = BaseWebsocketClient;
619
+ //# sourceMappingURL=BaseWSClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAClC,kEAAsC;AAOtC,8DAA2D;AAC3D,2CAA4C;AAC5C,uDAAqE;AAKrE,uDAAiD;AACjD,mEAGsC;AAwCtC;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,eAAsD;IAEtD,MAAM,uBAAuB,GAA6B,EAAE,CAAC;IAE7D,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,sCAAsC;QACtC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,YAAY,GAA2B;gBAC3C,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,SAAS;aACnB,CAAC;YACF,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,8CAA8C;QAC9C,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,4EAA4E;AAC5E,MAAsB,mBAKpB,SAAQ,gBAAY;IACpB;;OAEG;IACK,OAAO,CAA0C;IAE/C,MAAM,CAAuB;IAC7B,OAAO,CAAyB;IAElC,cAAc,GAAW,CAAC,CAAC;IAEnC,YACE,OAAqC,EACrC,MAA6B;QAE7B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,yBAAa,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,GAAG;YACb,iBAAiB;YACjB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,GAAG;YACrB,UAAU,EAAE,CAAC,IAAI;YACjB,iIAAiI;YACjI,+BAA+B,EAAE,KAAK;YACtC,yHAAyH;YACzH,mBAAmB,EAAE,IAAI;YACzB,6EAA6E;YAC7E,sBAAsB,EAAE,IAAI;YAC5B,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IA4CS,cAAc,CAAC,KAAa;QACpC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,gGAAgG;IACtF,eAAe;QACvB,OAAO,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAcD;;;;;;;;;;;;OAYG;IACO,uBAAuB,CAC/B,eAAsD,EACtD,KAAa;QAEb,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;QAE5E,oHAAoH;QACpH,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAChD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,uGAAuG;QACvG,MAAM,sBAAsB,GAC1B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,UAAU,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,YAAY,CAAC,CAAC;QAE5E,qGAAqG;QACrG,IAAI,CAAC,WAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,8GAA8G;QAC9G,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB;;eAEG;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8DAA8D,EAC9D;gBACE,GAAG,uCAAkB;gBACrB,KAAK;gBACL,eAAe;aAChB,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;QACjE,IAAI,mBAAmB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C;;;;eAIG;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC9D,CAAC;IAES,yBAAyB,CACjC,eAAsD,EACtD,KAAa;QAEb,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;QAE5E,oHAAoH;QACpH,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAChD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,+CAA+C;QAC/C,kGAAkG;QAClG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;QACjE,IAAI,mBAAmB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C;;;eAGG;YACH,OAAO;QACT,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACK,kCAAkC,CACxC,eAAyC,EACzC,KAAa;QAKb,MAAM,mBAAmB,GAA6B,EAAE,CAAC;QACzD,MAAM,oBAAoB,GAA6B,EAAE,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7C,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,mBAAmB;YAC/B,WAAW,EAAE,oBAAoB;SAClC,CAAC;IACJ,CAAC;IAED,sDAAsD;IAC/C,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,KAAa,EAAE,KAAe;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,EAAE,EAAE,KAAK,EAAE,CAAC;QACZ,IAAI,KAAK,EAAE,CAAC;YACV,EAAE,EAAE,SAAS,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,KAAe;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACnC,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,OAAO,CACrB,KAAa;QAEb,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0DAA0D,EAC1D,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CACjC,CAAC;gBACF,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,IACE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,UAAU,CAAC,EACvE,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6DAA6D,EAC7D,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CACjC,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IACE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,EACpE,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,UAAU,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAiB,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,KAAa;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,EAAE;YACxD,GAAG,uCAAkB;YACrB,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAI,uBAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAEzC,EAAE,CAAC,MAAM,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxD,EAAE,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,EAAE,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAC1B,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,EAAE,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,KAAU,EAAE,KAAa;QAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,iCAAiC;gBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,oCAAoC,EAAE;oBAChE,GAAG,uCAAkB;oBACrB,KAAK;iBACN,CAAC,CAAC;gBACH,MAAM;YAER;gBACE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,OAAO,uCACR,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,IAAI,KAClC,GAAG,EACH,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CACxC,CAAC;gBACF,MAAM;QACV,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,0DAA0D;IAClD,KAAK,CAAC,eAAe,CAAC,KAAa;QACzC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC1C,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,SAAS;YAET,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAExD,uCAAuC;YAEvC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,iBAAyB;QACjE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACtC,wCAAqB,CAAC,UAAU,EAChC,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBAC5C,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC;IAEO,IAAI,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAE5C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,KAAK,yBAAyB,CACjE,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBAC7D,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;QACjC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAClC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,2BAA2B;IACnB,cAAc,CAAC,KAAa;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACvC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED,oCAAoC;IAC5B,cAAc,CAAC,KAAa;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACtC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;YACpC,4DAA4D;QAC9D,CAAC;aAAM,CAAC;YACN,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,sBAAsB,CAClC,KAAa,EACb,MAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAClE,MAAM,EACN,KAAK,EACL,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kBAAkB,MAAM,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,WAAW,CAC9F,CAAC;QAEF,0EAA0E;QAE1E,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,kEAAkE;YAClE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2BAA2B,MAAM,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,WAAW,CACvG,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CACpC,KAAa,EACb,eAAyC;QAEzC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAClE,eAAe,EACf,KAAK,EACL,aAAa,CACd,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,oBAAoB,eAAe,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,sBAAsB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CACtJ,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,SAAS,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6BAA6B,eAAe,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,WAAW,CAClH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,KAAa,EAAE,SAAiB;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBACjD,GAAG,uCAAkB;gBACrB,SAAS;gBACT,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,mGAAmG,CAC5G,CAAC;YACJ,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBAC7C,GAAG,uCAAkB;gBACrB,SAAS;gBACT,KAAK;gBACL,SAAS,EAAE,CAAC;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,KAAU,EAAE,KAAa;QAC9C,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC7D,KAAK,EACL,wCAAqB,CAAC,YAAY,CACnC,CAAC;QACF,IACE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,UAAU,CAAC,EACvE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACtC,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,wBAAwB,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACxC,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAE,CAAC,eAAe,GAAG,WAAW,CAC1D,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACtB,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B,CAAC;QAEF,sEAAsE;QACtE,IAAI,CAAC;YACH,MAAM,2BAA2B,GAC/B,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,2BAA2B,EAAE,OAAO,EAAE,CAAC;gBACzC,2BAA2B,CAAC,OAAO,CAAC;oBAClC,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;QAEtD,iFAAiF;QACjF,IACE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAC5C,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,gDAAgD;QAChD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,kCAAkC,CACzE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAClC,KAAK,CACN,CAAC;QAEF,uCAAuC;QACvC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE/C,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC;YAClD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEpD,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC;QAEzD,yDAAyD;QACzD,IACE,wBAAwB;YACxB,IAAI,CAAC,OAAO,CAAC,sBAAsB;YACnC,YAAY;YACZ,gBAAgB,EAChB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,yEAAyE,CAC1E,CAAC;YAEF,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,MAAM,iBAAiB,GAAG,CAAC,CAAC;YAE5B,OAAO,OAAO,IAAI,iBAAiB,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+BAA+B,OAAO,IAAI,iBAAiB,GAAG,CAC/D,CAAC;oBACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC7C,KAAK,EACL,gBAAgB,CACjB,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;oBACnD,MAAM;gBACR,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,OAAO,IAAI,iBAAiB,CAAC;oBAE5C,MAAM,MAAM,GAAG,MAAM;wBACnB,CAAC,CAAC,+BAA+B;wBACjC,CAAC,CAAC,iBAAiB,CAAC;oBAEtB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6DAA6D,MAAM,EAAE,CACtE,CAAC;oBAEF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBACrB,KAAK;wBACL,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,wCAAwC,OAAO,WAAW;qBACnE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACvB,KAAa,EACb,KAAuD;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QAE/B,IAAI,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CACzC,CAAC;YAEF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,gBAAgB,EAAE,CAAC;YAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,KAAa,EAAE,EAAa;QAC9D,IAAI,CAAC;YACH,yFAAyF;YACzF,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;oBACjC,GAAG,uCAAkB;oBACrB,KAAK;oBACL,KAAK,EAAG,KAAa,EAAE,IAAI;iBAC5B,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;oBACjC,GAAG,uCAAkB;oBACrB,KAAK;oBACL,KAAK;iBACN,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,IAAI,IAAA,gCAAc,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE5B,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAElE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;oBAC5B,mEAAmE;oBACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sEAAsE,EACtE;wBACE,GAAG,uCAAkB;wBACrB,OAAO,EAAE,IAAI,IAAI,YAAY;wBAC7B,QAAQ;wBACR,KAAK;wBACL,KAAK;qBACN,CACF,CAAC;oBAEF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAED,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;oBACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;4BACjC,GAAG,uCAAkB;4BACrB,KAAK;4BACL,IAAI;yBACL,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBAED,IAAI,SAAS,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;wBAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;4BAC9C,GAAG,uCAAkB;4BACrB,KAAK;yBACN,CAAC,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC/C,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qEAAqE,EACrE;gBACE,GAAG,uCAAkB;gBACrB,OAAO,EAAE,KAAK,IAAI,YAAY;gBAC9B,KAAK;gBACL,KAAK;aACN,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBACpD,GAAG,uCAAkB;gBACrB,KAAK,EAAE,CAAC;gBACR,KAAK;gBACL,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAc,EAAE,KAAa;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC9C,GAAG,uCAAkB;YACrB,KAAK;SACN,CAAC,CAAC;QAEH,IACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,wCAAqB,CAAC,OAAO,EACxE,CAAC;YACD,oDAAoD;YACpD,IAAI,CAAC,UAAU,EAAE,CAAC,yBAAyB,CACzC,KAAK,EACL,+BAA+B,CAChC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAiB,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,IAAI,CAAC,UAAU,EAAE,CAAC,yBAAyB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,KAA4B;QAC5D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,iBAAiB,CAAC,KAAa;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,CACrD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,iBAAiB,GACrB,IAAI,CAAC,UAAU,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YAE1D,sDAAsD;YACtD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6DAA6D,CAC9D,CAAC;gBACF,MAAM,iBAAiB,CAAC,OAAO,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2DAA2D,CAC5D,CAAC;gBACF,OAAO;YACT,CAAC;YAED,oEAAoE;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mEAAmE,CACpE,CAAC;YAEF,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uDAAuD,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAz2BD,kDAy2BC"}
@@ -0,0 +1,6 @@
1
+ export type LogParams = null | any;
2
+ export declare const DefaultLogger: {
3
+ trace: (..._params: LogParams) => void;
4
+ info: (...params: LogParams) => void;
5
+ error: (...params: LogParams) => void;
6
+ };