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,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultLogger = void 0;
4
+ exports.DefaultLogger = {
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
+ trace: (..._params) => {
7
+ // console.log(_params);
8
+ },
9
+ info: (...params) => {
10
+ console.info(params);
11
+ },
12
+ error: (...params) => {
13
+ console.error(params);
14
+ },
15
+ };
16
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAG;IAC3B,6DAA6D;IAC7D,KAAK,EAAE,CAAC,GAAG,OAAkB,EAAQ,EAAE;QACrC,wBAAwB;IAC1B,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;CACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function neverGuard(x: never, msg: string): Error;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.neverGuard = void 0;
4
+ function neverGuard(x, msg) {
5
+ return new Error(`Unhandled value exception "${x}", ${msg}`);
6
+ }
7
+ exports.neverGuard = neverGuard;
8
+ //# sourceMappingURL=misc-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-util.js","sourceRoot":"","sources":["../../../src/lib/misc-util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,CAAQ,EAAE,GAAW;IAC9C,OAAO,IAAI,KAAK,CAAC,8BAA8B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAC/D,CAAC;AAFD,gCAEC"}
@@ -0,0 +1,38 @@
1
+ import WebSocket from 'isomorphic-ws';
2
+ import { GateBaseUrlKey } from '../types/shared';
3
+ export interface RestClientOptions {
4
+ /** Your API key */
5
+ apiKey?: string;
6
+ /** Your API secret */
7
+ apiSecret?: string;
8
+ /**
9
+ * Override the default/global max size of the request window (in ms) for signed api calls.
10
+ * If you don't include a recv window when making an API call, this value will be used as default
11
+ */
12
+ recvWindow?: number;
13
+ /** Default: false. If true, we'll throw errors if any params are undefined */
14
+ strictParamValidation?: boolean;
15
+ /**
16
+ * Optionally override API protocol + domain
17
+ * e.g baseUrl: 'https://api.gate.io'
18
+ **/
19
+ baseUrl?: string;
20
+ baseUrlKey?: GateBaseUrlKey;
21
+ /** Default: true. whether to try and post-process request exceptions (and throw them). */
22
+ parseExceptions?: boolean;
23
+ /**
24
+ * Allows you to provide a custom "signMessage" function, e.g. to use node's much faster createHmac method
25
+ *
26
+ * Look in the examples folder for a demonstration on using node's createHmac instead.
27
+ */
28
+ customSignMessageFn?: (message: string, secret: string) => Promise<string>;
29
+ }
30
+ export declare function serializeParams<T extends Record<string, any> | undefined = {}>(params: T, strict_validation: boolean | undefined, encodeValues: boolean, prefixWith: string): string;
31
+ export declare function getRestBaseUrl(restClientOptions: RestClientOptions): string;
32
+ export declare const CHANNEL_ID = "gateapinode";
33
+ export interface MessageEventLike {
34
+ target: WebSocket;
35
+ type: 'message';
36
+ data: string;
37
+ }
38
+ export declare function isMessageEvent(msg: unknown): msg is MessageEventLike;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMessageEvent = exports.CHANNEL_ID = exports.getRestBaseUrl = exports.serializeParams = void 0;
4
+ function serializeParams(params, strict_validation, encodeValues, prefixWith) {
5
+ if (!params) {
6
+ return '';
7
+ }
8
+ const queryString = Object.keys(params)
9
+ .sort()
10
+ .map((key) => {
11
+ const value = params[key];
12
+ if (strict_validation === true && typeof value === 'undefined') {
13
+ throw new Error('Failed to sign API request due to undefined parameter');
14
+ }
15
+ const encodedValue = encodeValues ? encodeURIComponent(value) : value;
16
+ return `${key}=${encodedValue}`;
17
+ })
18
+ .join('&');
19
+ // Only prefix if there's a value
20
+ return queryString ? prefixWith + queryString : queryString;
21
+ }
22
+ exports.serializeParams = serializeParams;
23
+ const GATE_BASE_URLS = {
24
+ live: 'https://api.gateio.ws/api/v4',
25
+ futuresLiveAlternative: 'https://fx-api.gateio.ws/api/v4',
26
+ futuresTestnet: 'https://fx-api-testnet.gateio.ws/api/v4',
27
+ };
28
+ function getRestBaseUrl(restClientOptions) {
29
+ if (restClientOptions.baseUrl) {
30
+ return restClientOptions.baseUrl;
31
+ }
32
+ if (restClientOptions.baseUrlKey) {
33
+ return GATE_BASE_URLS[restClientOptions.baseUrlKey];
34
+ }
35
+ return GATE_BASE_URLS.live;
36
+ }
37
+ exports.getRestBaseUrl = getRestBaseUrl;
38
+ exports.CHANNEL_ID = 'gateapinode';
39
+ function isMessageEvent(msg) {
40
+ if (typeof msg !== 'object' || !msg) {
41
+ return false;
42
+ }
43
+ const message = msg;
44
+ return message['type'] === 'message' && typeof message['data'] === 'string';
45
+ }
46
+ exports.isMessageEvent = isMessageEvent;
47
+ //# sourceMappingURL=requestUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../../src/lib/requestUtils.ts"],"names":[],"mappings":";;;AAwCA,SAAgB,eAAe,CAC7B,MAAS,EACT,iBAAsC,EACtC,YAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACpC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,OAAO,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,iCAAiC;IACjC,OAAO,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AAC9D,CAAC;AA1BD,0CA0BC;AAED,MAAM,cAAc,GAAmC;IACrD,IAAI,EAAE,8BAA8B;IACpC,sBAAsB,EAAE,iCAAiC;IACzD,cAAc,EAAE,yCAAyC;CAC1D,CAAC;AAEF,SAAgB,cAAc,CAAC,iBAAoC;IACjE,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;AAVD,wCAUC;AAEY,QAAA,UAAU,GAAG,aAAa,CAAC;AAQxC,SAAgB,cAAc,CAAC,GAAY;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,GAAuB,CAAC;IACxC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAPD,wCAOC"}
@@ -0,0 +1,10 @@
1
+ export type SignEncodeMethod = 'hex' | 'base64';
2
+ export type SignAlgorithm = 'SHA-256' | 'SHA-512';
3
+ /**
4
+ * Similar to node crypto's `createHash()` function
5
+ */
6
+ export declare function hashMessage(message: string, method: SignEncodeMethod, algorithm: SignAlgorithm): Promise<string>;
7
+ /**
8
+ * Sign a message, with a secret, using the Web Crypto API
9
+ */
10
+ export declare function signMessage(message: string, secret: string, method: SignEncodeMethod, algorithm: SignAlgorithm): Promise<string>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signMessage = exports.hashMessage = void 0;
4
+ const misc_util_1 = require("./misc-util");
5
+ function bufferToB64(buffer) {
6
+ let binary = '';
7
+ const bytes = new Uint8Array(buffer);
8
+ const len = bytes.byteLength;
9
+ for (let i = 0; i < len; i++) {
10
+ binary += String.fromCharCode(bytes[i]);
11
+ }
12
+ return globalThis.btoa(binary);
13
+ }
14
+ /**
15
+ * Similar to node crypto's `createHash()` function
16
+ */
17
+ async function hashMessage(message, method, algorithm) {
18
+ const encoder = new TextEncoder();
19
+ const buffer = await globalThis.crypto.subtle.digest(algorithm, encoder.encode(message));
20
+ switch (method) {
21
+ case 'hex': {
22
+ return Array.from(new Uint8Array(buffer))
23
+ .map((byte) => byte.toString(16).padStart(2, '0'))
24
+ .join('');
25
+ }
26
+ case 'base64': {
27
+ return bufferToB64(buffer);
28
+ }
29
+ default: {
30
+ throw (0, misc_util_1.neverGuard)(method, `Unhandled sign method: "${method}"`);
31
+ }
32
+ }
33
+ }
34
+ exports.hashMessage = hashMessage;
35
+ /**
36
+ * Sign a message, with a secret, using the Web Crypto API
37
+ */
38
+ async function signMessage(message, secret, method, algorithm) {
39
+ const encoder = new TextEncoder();
40
+ const key = await globalThis.crypto.subtle.importKey('raw', encoder.encode(secret), { name: 'HMAC', hash: algorithm }, false, ['sign']);
41
+ const buffer = await globalThis.crypto.subtle.sign('HMAC', key, encoder.encode(message));
42
+ switch (method) {
43
+ case 'hex': {
44
+ return Array.from(new Uint8Array(buffer))
45
+ .map((byte) => byte.toString(16).padStart(2, '0'))
46
+ .join('');
47
+ }
48
+ case 'base64': {
49
+ return bufferToB64(buffer);
50
+ }
51
+ default: {
52
+ throw (0, misc_util_1.neverGuard)(method, `Unhandled sign method: "${method}"`);
53
+ }
54
+ }
55
+ }
56
+ exports.signMessage = signMessage;
57
+ //# sourceMappingURL=webCryptoAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webCryptoAPI.js","sourceRoot":"","sources":["../../../src/lib/webCryptoAPI.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC,SAAS,WAAW,CAAC,MAAmB;IACtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAKD;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,MAAwB,EACxB,SAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAClD,SAAS,EACT,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CACxB,CAAC;IAEF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACjD,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,sBAAU,EAAC,MAAM,EAAE,2BAA2B,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAzBD,kCAyBC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,MAAc,EACd,MAAwB,EACxB,SAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAClD,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAChD,MAAM,EACN,GAAG,EACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CACxB,CAAC;IAEF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBACjD,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,sBAAU,EAAC,MAAM,EAAE,2BAA2B,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAnCD,kCAmCC"}
@@ -0,0 +1,57 @@
1
+ import WebSocket from 'isomorphic-ws';
2
+ import { DefaultLogger } from '../logger.js';
3
+ import { DeferredPromise, WsConnectionStateEnum, WsStoredState } from './WsStore.types.js';
4
+ /**
5
+ * Simple comparison of two objects, only checks 1-level deep (nested objects won't match)
6
+ */
7
+ export declare function isDeepObjectMatch(object1: unknown, object2: unknown): boolean;
8
+ declare const DEFERRED_PROMISE_REF: {
9
+ readonly CONNECTION_IN_PROGRESS: "CONNECTION_IN_PROGRESS";
10
+ };
11
+ type DeferredPromiseRef = (typeof DEFERRED_PROMISE_REF)[keyof typeof DEFERRED_PROMISE_REF];
12
+ export declare class WsStore<WsKey extends string, TWSTopicSubscribeEventArgs extends string | object> {
13
+ private wsState;
14
+ private logger;
15
+ constructor(logger: typeof DefaultLogger);
16
+ /** Get WS stored state for key, optionally create if missing */
17
+ get(key: WsKey, createIfMissing?: true): WsStoredState<TWSTopicSubscribeEventArgs>;
18
+ get(key: WsKey, createIfMissing?: false): WsStoredState<TWSTopicSubscribeEventArgs> | undefined;
19
+ getKeys(): WsKey[];
20
+ create(key: WsKey): WsStoredState<TWSTopicSubscribeEventArgs> | undefined;
21
+ delete(key: WsKey): void;
22
+ hasExistingActiveConnection(key: WsKey): boolean;
23
+ getWs(key: WsKey): WebSocket | undefined;
24
+ setWs(key: WsKey, wsConnection: WebSocket): WebSocket;
25
+ getDeferredPromise<TSuccessResult = any>(wsKey: WsKey, promiseRef: string | DeferredPromiseRef): DeferredPromise<TSuccessResult> | undefined;
26
+ createDeferredPromise<TSuccessResult = any>(wsKey: WsKey, promiseRef: string | DeferredPromiseRef, throwIfExists: boolean): DeferredPromise<TSuccessResult>;
27
+ resolveDeferredPromise(wsKey: WsKey, promiseRef: string | DeferredPromiseRef, value: unknown, removeAfter: boolean): void;
28
+ rejectDeferredPromise(wsKey: WsKey, promiseRef: string | DeferredPromiseRef, value: unknown, removeAfter: boolean): void;
29
+ removeDeferredPromise(wsKey: WsKey, promiseRef: string | DeferredPromiseRef): void;
30
+ rejectAllDeferredPromises(wsKey: WsKey, reason: string): void;
31
+ /** Get promise designed to track a connection attempt in progress. Resolves once connected. */
32
+ getConnectionInProgressPromise(wsKey: WsKey): DeferredPromise<unknown> | undefined;
33
+ /**
34
+ * Create a deferred promise designed to track a connection attempt in progress.
35
+ *
36
+ * Will throw if existing promise is found.
37
+ */
38
+ createConnectionInProgressPromise(wsKey: WsKey, throwIfExists: boolean): DeferredPromise<unknown>;
39
+ /** Remove promise designed to track a connection attempt in progress */
40
+ removeConnectingInProgressPromise(wsKey: WsKey): void;
41
+ isWsOpen(key: WsKey): boolean;
42
+ getConnectionState(key: WsKey): WsConnectionStateEnum;
43
+ setConnectionState(key: WsKey, state: WsConnectionStateEnum): void;
44
+ isConnectionState(key: WsKey, state: WsConnectionStateEnum): boolean;
45
+ getTopics(key: WsKey): Set<TWSTopicSubscribeEventArgs>;
46
+ getTopicsByKey(): Record<string, Set<TWSTopicSubscribeEventArgs>>;
47
+ /**
48
+ * Find matching "topic" request from the store
49
+ * @param key
50
+ * @param topic
51
+ * @returns
52
+ */
53
+ getMatchingTopic(key: WsKey, topic: TWSTopicSubscribeEventArgs): TWSTopicSubscribeEventArgs | undefined;
54
+ addTopic(key: WsKey, topic: TWSTopicSubscribeEventArgs): Set<TWSTopicSubscribeEventArgs>;
55
+ deleteTopic(key: WsKey, topic: TWSTopicSubscribeEventArgs): Set<TWSTopicSubscribeEventArgs>;
56
+ }
57
+ export {};
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WsStore = exports.isDeepObjectMatch = void 0;
4
+ const logger_js_1 = require("../logger.js");
5
+ const WsStore_types_js_1 = require("./WsStore.types.js");
6
+ /**
7
+ * Simple comparison of two objects, only checks 1-level deep (nested objects won't match)
8
+ */
9
+ function isDeepObjectMatch(object1, object2) {
10
+ if (typeof object1 === 'string' && typeof object2 === 'string') {
11
+ return object1 === object2;
12
+ }
13
+ if (typeof object1 !== 'object' || typeof object2 !== 'object') {
14
+ return false;
15
+ }
16
+ for (const key in object1) {
17
+ const value1 = object1[key];
18
+ const value2 = object2[key];
19
+ if (value1 !== value2) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
24
+ }
25
+ exports.isDeepObjectMatch = isDeepObjectMatch;
26
+ const DEFERRED_PROMISE_REF = {
27
+ CONNECTION_IN_PROGRESS: 'CONNECTION_IN_PROGRESS',
28
+ };
29
+ class WsStore {
30
+ wsState = {};
31
+ logger;
32
+ constructor(logger) {
33
+ this.logger = logger || logger_js_1.DefaultLogger;
34
+ }
35
+ get(key, createIfMissing) {
36
+ if (this.wsState[key]) {
37
+ return this.wsState[key];
38
+ }
39
+ if (createIfMissing) {
40
+ return this.create(key);
41
+ }
42
+ }
43
+ getKeys() {
44
+ return Object.keys(this.wsState);
45
+ }
46
+ create(key) {
47
+ if (this.hasExistingActiveConnection(key)) {
48
+ this.logger.info('WsStore setConnection() overwriting existing open connection: ', this.getWs(key));
49
+ }
50
+ this.wsState[key] = {
51
+ subscribedTopics: new Set(),
52
+ connectionState: WsStore_types_js_1.WsConnectionStateEnum.INITIAL,
53
+ deferredPromiseStore: {},
54
+ };
55
+ return this.get(key);
56
+ }
57
+ delete(key) {
58
+ // TODO: should we allow this at all? Perhaps block this from happening...
59
+ if (this.hasExistingActiveConnection(key)) {
60
+ const ws = this.getWs(key);
61
+ this.logger.info('WsStore deleting state for connection still open: ', ws);
62
+ ws?.close();
63
+ }
64
+ delete this.wsState[key];
65
+ }
66
+ /* connection websocket */
67
+ hasExistingActiveConnection(key) {
68
+ return this.get(key) && this.isWsOpen(key);
69
+ }
70
+ getWs(key) {
71
+ return this.get(key)?.ws;
72
+ }
73
+ setWs(key, wsConnection) {
74
+ if (this.isWsOpen(key)) {
75
+ this.logger.info('WsStore setConnection() overwriting existing open connection: ', this.getWs(key));
76
+ }
77
+ this.get(key, true).ws = wsConnection;
78
+ return wsConnection;
79
+ }
80
+ getDeferredPromise(wsKey, promiseRef) {
81
+ const storeForKey = this.get(wsKey);
82
+ if (!storeForKey) {
83
+ return;
84
+ }
85
+ const deferredPromiseStore = storeForKey.deferredPromiseStore;
86
+ return deferredPromiseStore[promiseRef];
87
+ }
88
+ createDeferredPromise(wsKey, promiseRef, throwIfExists) {
89
+ const existingPromise = this.getDeferredPromise(wsKey, promiseRef);
90
+ if (existingPromise) {
91
+ if (throwIfExists) {
92
+ throw new Error(`Promise exists for "${wsKey}"`);
93
+ }
94
+ else {
95
+ // console.log('existing promise');
96
+ return existingPromise;
97
+ }
98
+ }
99
+ // console.log('create promise');
100
+ const createIfMissing = true;
101
+ const storeForKey = this.get(wsKey, createIfMissing);
102
+ // TODO: Once stable, use Promise.withResolvers in future
103
+ const deferredPromise = {};
104
+ deferredPromise.promise = new Promise((resolve, reject) => {
105
+ deferredPromise.resolve = resolve;
106
+ deferredPromise.reject = reject;
107
+ });
108
+ const deferredPromiseStore = storeForKey.deferredPromiseStore;
109
+ deferredPromiseStore[promiseRef] = deferredPromise;
110
+ return deferredPromise;
111
+ }
112
+ resolveDeferredPromise(wsKey, promiseRef, value, removeAfter) {
113
+ const promise = this.getDeferredPromise(wsKey, promiseRef);
114
+ if (promise?.resolve) {
115
+ promise.resolve(value);
116
+ }
117
+ if (removeAfter) {
118
+ this.removeDeferredPromise(wsKey, promiseRef);
119
+ }
120
+ }
121
+ rejectDeferredPromise(wsKey, promiseRef, value, removeAfter) {
122
+ const promise = this.getDeferredPromise(wsKey, promiseRef);
123
+ if (promise?.reject) {
124
+ promise.reject(value);
125
+ }
126
+ if (removeAfter) {
127
+ this.removeDeferredPromise(wsKey, promiseRef);
128
+ }
129
+ }
130
+ removeDeferredPromise(wsKey, promiseRef) {
131
+ const storeForKey = this.get(wsKey);
132
+ if (!storeForKey) {
133
+ return;
134
+ }
135
+ const deferredPromise = storeForKey.deferredPromiseStore[promiseRef];
136
+ if (deferredPromise) {
137
+ // Just in case it's pending
138
+ if (deferredPromise.resolve) {
139
+ deferredPromise.resolve('promiseRemoved');
140
+ }
141
+ delete storeForKey.deferredPromiseStore[promiseRef];
142
+ }
143
+ }
144
+ rejectAllDeferredPromises(wsKey, reason) {
145
+ const storeForKey = this.get(wsKey);
146
+ const deferredPromiseStore = storeForKey.deferredPromiseStore;
147
+ if (!storeForKey || !deferredPromiseStore) {
148
+ return;
149
+ }
150
+ const reservedKeys = Object.values(DEFERRED_PROMISE_REF);
151
+ for (const promiseRef in deferredPromiseStore) {
152
+ // Skip reserved keys, such as the connection promise
153
+ if (reservedKeys.includes(promiseRef)) {
154
+ continue;
155
+ }
156
+ try {
157
+ this.rejectDeferredPromise(wsKey, promiseRef, reason, true);
158
+ }
159
+ catch (e) {
160
+ this.logger.error(`rejectAllDeferredPromises(): Exception rejecting deferred promise`, { wsKey: wsKey, reason, promiseRef, exception: e });
161
+ }
162
+ }
163
+ }
164
+ /** Get promise designed to track a connection attempt in progress. Resolves once connected. */
165
+ getConnectionInProgressPromise(wsKey) {
166
+ return this.getDeferredPromise(wsKey, DEFERRED_PROMISE_REF.CONNECTION_IN_PROGRESS);
167
+ }
168
+ /**
169
+ * Create a deferred promise designed to track a connection attempt in progress.
170
+ *
171
+ * Will throw if existing promise is found.
172
+ */
173
+ createConnectionInProgressPromise(wsKey, throwIfExists) {
174
+ return this.createDeferredPromise(wsKey, DEFERRED_PROMISE_REF.CONNECTION_IN_PROGRESS, throwIfExists);
175
+ }
176
+ /** Remove promise designed to track a connection attempt in progress */
177
+ removeConnectingInProgressPromise(wsKey) {
178
+ return this.removeDeferredPromise(wsKey, DEFERRED_PROMISE_REF.CONNECTION_IN_PROGRESS);
179
+ }
180
+ /* connection state */
181
+ isWsOpen(key) {
182
+ const existingConnection = this.getWs(key);
183
+ return (!!existingConnection &&
184
+ existingConnection.readyState === existingConnection.OPEN);
185
+ }
186
+ getConnectionState(key) {
187
+ return this.get(key, true).connectionState;
188
+ }
189
+ setConnectionState(key, state) {
190
+ this.get(key, true).connectionState = state;
191
+ }
192
+ isConnectionState(key, state) {
193
+ return this.getConnectionState(key) === state;
194
+ }
195
+ /* subscribed topics */
196
+ getTopics(key) {
197
+ return this.get(key, true).subscribedTopics;
198
+ }
199
+ getTopicsByKey() {
200
+ const result = {};
201
+ for (const refKey in this.wsState) {
202
+ result[refKey] = this.getTopics(refKey);
203
+ }
204
+ return result;
205
+ }
206
+ // Since topics are objects we can't rely on the set to detect duplicates
207
+ /**
208
+ * Find matching "topic" request from the store
209
+ * @param key
210
+ * @param topic
211
+ * @returns
212
+ */
213
+ getMatchingTopic(key, topic) {
214
+ // if (typeof topic === 'string') {
215
+ // return this.getMatchingTopic(key, { channel: topic });
216
+ // }
217
+ const allTopics = this.getTopics(key).values();
218
+ for (const storedTopic of allTopics) {
219
+ if (isDeepObjectMatch(topic, storedTopic)) {
220
+ return storedTopic;
221
+ }
222
+ }
223
+ }
224
+ addTopic(key, topic) {
225
+ // if (typeof topic === 'string') {
226
+ // return this.addTopic(key, {
227
+ // instType: 'sp',
228
+ // channel: topic,
229
+ // instId: 'default',
230
+ // };
231
+ // }
232
+ // Check for duplicate topic. If already tracked, don't store this one
233
+ const existingTopic = this.getMatchingTopic(key, topic);
234
+ if (existingTopic) {
235
+ return this.getTopics(key);
236
+ }
237
+ return this.getTopics(key).add(topic);
238
+ }
239
+ deleteTopic(key, topic) {
240
+ // Check if we're subscribed to a topic like this
241
+ const storedTopic = this.getMatchingTopic(key, topic);
242
+ if (storedTopic) {
243
+ this.getTopics(key).delete(storedTopic);
244
+ }
245
+ return this.getTopics(key);
246
+ }
247
+ }
248
+ exports.WsStore = WsStore;
249
+ //# sourceMappingURL=WsStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WsStore.js","sourceRoot":"","sources":["../../../../src/lib/websocket/WsStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" />
2
+ import WebSocket from 'isomorphic-ws';
3
+ export declare enum WsConnectionStateEnum {
4
+ INITIAL = 0,
5
+ CONNECTING = 1,
6
+ CONNECTED = 2,
7
+ CLOSING = 3,
8
+ RECONNECTING = 4
9
+ }
10
+ export interface DeferredPromise<TSuccess = any, TError = any> {
11
+ resolve?: (value: TSuccess) => TSuccess;
12
+ reject?: (value: TError) => TError;
13
+ promise?: Promise<TSuccess>;
14
+ }
15
+ export interface WsStoredState<TWSTopicSubscribeEvent extends string | object> {
16
+ /** The currently active websocket connection */
17
+ ws?: WebSocket;
18
+ /** The current lifecycle state of the connection (enum) */
19
+ connectionState?: WsConnectionStateEnum;
20
+ /** A timer that will send an upstream heartbeat (ping) when it expires */
21
+ activePingTimer?: ReturnType<typeof setTimeout> | undefined;
22
+ /** A timer tracking that an upstream heartbeat was sent, expecting a reply before it expires */
23
+ activePongTimer?: ReturnType<typeof setTimeout> | undefined;
24
+ /** If a reconnection is in progress, this will have the timer for the delayed reconnect */
25
+ activeReconnectTimer?: ReturnType<typeof setTimeout> | undefined;
26
+ /**
27
+ * When a connection attempt is in progress (even for reconnect), a promise is stored here.
28
+ *
29
+ * This promise will resolve once connected (and will then get removed);
30
+ */
31
+ deferredPromiseStore: Record<string, DeferredPromise>;
32
+ /**
33
+ * All the topics we are expected to be subscribed to on this connection (and we automatically resubscribe to if the connection drops)
34
+ *
35
+ * A "Set" and a deep-object-match are used to ensure we only subscribe to a topic once (tracking a list of unique topics we're expected to be connected to)
36
+ */
37
+ subscribedTopics: Set<TWSTopicSubscribeEvent>;
38
+ /** Whether this connection has completed authentication (only applies to private connections) */
39
+ isAuthenticated?: boolean;
40
+ /** Whether this connection has completed authentication before for the Websocket API, so it knows to automatically reauth if reconnected */
41
+ didAuthWSAPI?: boolean;
42
+ /** To reauthenticate on the WS API, which channel do we send to? */
43
+ WSAPIAuthChannel?: string;
44
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WsConnectionStateEnum = void 0;
4
+ var WsConnectionStateEnum;
5
+ (function (WsConnectionStateEnum) {
6
+ WsConnectionStateEnum[WsConnectionStateEnum["INITIAL"] = 0] = "INITIAL";
7
+ WsConnectionStateEnum[WsConnectionStateEnum["CONNECTING"] = 1] = "CONNECTING";
8
+ WsConnectionStateEnum[WsConnectionStateEnum["CONNECTED"] = 2] = "CONNECTED";
9
+ WsConnectionStateEnum[WsConnectionStateEnum["CLOSING"] = 3] = "CLOSING";
10
+ WsConnectionStateEnum[WsConnectionStateEnum["RECONNECTING"] = 4] = "RECONNECTING";
11
+ // ERROR = 5,
12
+ })(WsConnectionStateEnum || (exports.WsConnectionStateEnum = WsConnectionStateEnum = {}));
13
+ //# sourceMappingURL=WsStore.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WsStore.types.js","sourceRoot":"","sources":["../../../../src/lib/websocket/WsStore.types.ts"],"names":[],"mappings":";;;AAEA,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC/B,uEAAW,CAAA;IACX,6EAAc,CAAA;IACd,2EAAa,CAAA;IACb,uEAAW,CAAA;IACX,iFAAgB,CAAA;IAChB,aAAa;AACf,CAAC,EAPW,qBAAqB,qCAArB,qBAAqB,QAOhC"}