okx-api 2.0.7 → 3.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/README.md +336 -11
  2. package/dist/cjs/constants/funding.js.map +1 -0
  3. package/dist/cjs/index.d.ts +43 -0
  4. package/dist/cjs/index.js +64 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/cjs/package.json +3 -0
  7. package/{lib → dist/cjs}/rest-client.d.ts +28 -15
  8. package/{lib → dist/cjs}/rest-client.js +41 -68
  9. package/dist/cjs/rest-client.js.map +1 -0
  10. package/dist/cjs/types/rest/client.d.ts +36 -0
  11. package/{lib → dist/cjs}/types/rest/client.js.map +1 -1
  12. package/{lib → dist/cjs}/types/rest/request/account.d.ts +1 -1
  13. package/dist/cjs/types/rest/request/account.js.map +1 -0
  14. package/{lib → dist/cjs}/types/rest/request/block-trading.d.ts +1 -1
  15. package/dist/cjs/types/rest/request/block-trading.js.map +1 -0
  16. package/dist/cjs/types/rest/request/convert.js.map +1 -0
  17. package/dist/cjs/types/rest/request/copy-trading.js.map +1 -0
  18. package/dist/cjs/types/rest/request/funding.js.map +1 -0
  19. package/dist/cjs/types/rest/request/grid-trading.js.map +1 -0
  20. package/dist/cjs/types/rest/request/public.js.map +1 -0
  21. package/dist/cjs/types/rest/request/recurring-buy.js.map +1 -0
  22. package/{lib → dist/cjs}/types/rest/request/shared.d.ts +1 -1
  23. package/dist/cjs/types/rest/request/shared.js.map +1 -0
  24. package/dist/cjs/types/rest/request/signal-bot.js.map +1 -0
  25. package/dist/cjs/types/rest/request/simple-earn.js.map +1 -0
  26. package/dist/cjs/types/rest/request/spread-trading.js.map +1 -0
  27. package/dist/cjs/types/rest/request/subaccount.js.map +1 -0
  28. package/{lib → dist/cjs}/types/rest/request/trade.d.ts +1 -1
  29. package/dist/cjs/types/rest/request/trade.js.map +1 -0
  30. package/{lib → dist/cjs}/types/rest/response/private-account.d.ts +1 -1
  31. package/dist/cjs/types/rest/response/private-account.js.map +1 -0
  32. package/{lib → dist/cjs}/types/rest/response/private-block-trading.d.ts +1 -1
  33. package/dist/cjs/types/rest/response/private-block-trading.js.map +1 -0
  34. package/dist/cjs/types/rest/response/private-copy-trading.js.map +1 -0
  35. package/dist/cjs/types/rest/response/private-flexible-loan.js.map +1 -0
  36. package/{lib → dist/cjs}/types/rest/response/private-funding.d.ts +1 -1
  37. package/dist/cjs/types/rest/response/private-funding.js.map +1 -0
  38. package/dist/cjs/types/rest/response/private-recurring-buy.js.map +1 -0
  39. package/dist/cjs/types/rest/response/private-signal-bot.js.map +1 -0
  40. package/dist/cjs/types/rest/response/private-spread-trading.js.map +1 -0
  41. package/dist/cjs/types/rest/response/private-subaccount.js.map +1 -0
  42. package/{lib → dist/cjs}/types/rest/response/private-trade.d.ts +1 -1
  43. package/dist/cjs/types/rest/response/private-trade.js.map +1 -0
  44. package/{lib → dist/cjs}/types/rest/response/public-data.d.ts +1 -1
  45. package/dist/cjs/types/rest/response/public-data.js.map +1 -0
  46. package/{lib → dist/cjs}/types/rest/shared.d.ts +2 -2
  47. package/dist/cjs/types/rest/shared.js.map +1 -0
  48. package/dist/cjs/types/shared.d.ts +13 -0
  49. package/{lib → dist/cjs}/types/shared.js.map +1 -1
  50. package/dist/cjs/types/websockets/ws-api-request.d.ts +61 -0
  51. package/dist/cjs/types/websockets/ws-api-request.js +3 -0
  52. package/dist/cjs/types/websockets/ws-api-request.js.map +1 -0
  53. package/dist/cjs/types/websockets/ws-api-response.d.ts +28 -0
  54. package/dist/cjs/types/websockets/ws-api-response.js +3 -0
  55. package/dist/cjs/types/websockets/ws-api-response.js.map +1 -0
  56. package/dist/cjs/types/websockets/ws-api.d.ts +139 -0
  57. package/dist/cjs/types/websockets/ws-api.js +38 -0
  58. package/dist/cjs/types/websockets/ws-api.js.map +1 -0
  59. package/{lib/types/websockets/event.d.ts → dist/cjs/types/websockets/ws-events.d.ts} +7 -1
  60. package/dist/cjs/types/websockets/ws-events.js +11 -0
  61. package/dist/cjs/types/websockets/ws-events.js.map +1 -0
  62. package/dist/cjs/types/websockets/ws-general.d.ts +48 -0
  63. package/dist/cjs/types/websockets/ws-general.js +3 -0
  64. package/dist/cjs/types/websockets/ws-general.js.map +1 -0
  65. package/{lib/types/websockets/request.d.ts → dist/cjs/types/websockets/ws-request.d.ts} +0 -22
  66. package/dist/cjs/types/websockets/ws-request.js +3 -0
  67. package/dist/cjs/types/websockets/ws-request.js.map +1 -0
  68. package/{lib → dist/cjs}/util/BaseRestClient.d.ts +1 -1
  69. package/dist/cjs/util/BaseRestClient.js +237 -0
  70. package/dist/cjs/util/BaseRestClient.js.map +1 -0
  71. package/dist/cjs/util/BaseWSClient.d.ts +198 -0
  72. package/dist/cjs/util/BaseWSClient.js +770 -0
  73. package/dist/cjs/util/BaseWSClient.js.map +1 -0
  74. package/dist/cjs/util/WsStore.d.ts +75 -0
  75. package/dist/cjs/util/WsStore.js +303 -0
  76. package/dist/cjs/util/WsStore.js.map +1 -0
  77. package/dist/cjs/util/WsStore.types.d.ts +51 -0
  78. package/dist/cjs/util/WsStore.types.js +14 -0
  79. package/dist/cjs/util/WsStore.types.js.map +1 -0
  80. package/dist/cjs/util/logger.d.ts +8 -0
  81. package/{lib → dist/cjs}/util/logger.js +3 -11
  82. package/dist/cjs/util/logger.js.map +1 -0
  83. package/{lib → dist/cjs}/util/requestUtils.d.ts +2 -1
  84. package/{lib → dist/cjs}/util/requestUtils.js +9 -1
  85. package/dist/cjs/util/requestUtils.js.map +1 -0
  86. package/{lib → dist/cjs}/util/typeGuards.d.ts +4 -2
  87. package/{lib → dist/cjs}/util/typeGuards.js +34 -0
  88. package/dist/cjs/util/typeGuards.js.map +1 -0
  89. package/dist/cjs/util/webCryptoAPI.d.ts +15 -0
  90. package/dist/cjs/util/webCryptoAPI.js +82 -0
  91. package/dist/cjs/util/webCryptoAPI.js.map +1 -0
  92. package/dist/cjs/util/websocket-util.d.ts +142 -0
  93. package/dist/cjs/util/websocket-util.js +533 -0
  94. package/dist/cjs/util/websocket-util.js.map +1 -0
  95. package/dist/cjs/websocket-api-client.d.ts +135 -0
  96. package/dist/cjs/websocket-api-client.js +171 -0
  97. package/dist/cjs/websocket-api-client.js.map +1 -0
  98. package/{lib/websocket-client.d.ts → dist/cjs/websocket-client-legacy.d.ts} +16 -38
  99. package/dist/cjs/websocket-client-legacy.js +524 -0
  100. package/dist/cjs/websocket-client-legacy.js.map +1 -0
  101. package/dist/cjs/websocket-client.d.ts +81 -0
  102. package/dist/cjs/websocket-client.js +548 -0
  103. package/dist/cjs/websocket-client.js.map +1 -0
  104. package/dist/mjs/constants/funding.d.ts +139 -0
  105. package/dist/mjs/constants/funding.js +140 -0
  106. package/dist/mjs/constants/funding.js.map +1 -0
  107. package/dist/mjs/index.d.ts +43 -0
  108. package/dist/mjs/index.js +48 -0
  109. package/dist/mjs/index.js.map +1 -0
  110. package/dist/mjs/package.json +3 -0
  111. package/dist/mjs/rest-client.d.ts +1173 -0
  112. package/dist/mjs/rest-client.js +1271 -0
  113. package/dist/mjs/rest-client.js.map +1 -0
  114. package/dist/mjs/types/rest/client.d.ts +36 -0
  115. package/dist/mjs/types/rest/client.js +2 -0
  116. package/{lib/types/websockets → dist/mjs/types/rest}/client.js.map +1 -1
  117. package/dist/mjs/types/rest/request/account.d.ts +144 -0
  118. package/dist/mjs/types/rest/request/account.js +2 -0
  119. package/dist/mjs/types/rest/request/account.js.map +1 -0
  120. package/dist/mjs/types/rest/request/block-trading.d.ts +76 -0
  121. package/dist/mjs/types/rest/request/block-trading.js +2 -0
  122. package/dist/mjs/types/rest/request/block-trading.js.map +1 -0
  123. package/dist/mjs/types/rest/request/convert.d.ts +19 -0
  124. package/dist/mjs/types/rest/request/convert.js +2 -0
  125. package/dist/mjs/types/rest/request/convert.js.map +1 -0
  126. package/dist/mjs/types/rest/request/copy-trading.d.ts +117 -0
  127. package/dist/mjs/types/rest/request/copy-trading.js +2 -0
  128. package/dist/mjs/types/rest/request/copy-trading.js.map +1 -0
  129. package/dist/mjs/types/rest/request/funding.d.ts +43 -0
  130. package/dist/mjs/types/rest/request/funding.js +2 -0
  131. package/dist/mjs/types/rest/request/funding.js.map +1 -0
  132. package/dist/mjs/types/rest/request/grid-trading.d.ts +66 -0
  133. package/dist/mjs/types/rest/request/grid-trading.js +2 -0
  134. package/dist/mjs/types/rest/request/grid-trading.js.map +1 -0
  135. package/dist/mjs/types/rest/request/public.d.ts +55 -0
  136. package/dist/mjs/types/rest/request/public.js +2 -0
  137. package/dist/mjs/types/rest/request/public.js.map +1 -0
  138. package/dist/mjs/types/rest/request/recurring-buy.d.ts +28 -0
  139. package/dist/mjs/types/rest/request/recurring-buy.js +2 -0
  140. package/dist/mjs/types/rest/request/recurring-buy.js.map +1 -0
  141. package/dist/mjs/types/rest/request/shared.d.ts +7 -0
  142. package/dist/mjs/types/rest/request/shared.js +2 -0
  143. package/dist/mjs/types/rest/request/shared.js.map +1 -0
  144. package/dist/mjs/types/rest/request/signal-bot.d.ts +97 -0
  145. package/dist/mjs/types/rest/request/signal-bot.js +2 -0
  146. package/dist/mjs/types/rest/request/signal-bot.js.map +1 -0
  147. package/dist/mjs/types/rest/request/simple-earn.d.ts +23 -0
  148. package/dist/mjs/types/rest/request/simple-earn.js +2 -0
  149. package/dist/mjs/types/rest/request/simple-earn.js.map +1 -0
  150. package/dist/mjs/types/rest/request/spread-trading.d.ts +69 -0
  151. package/dist/mjs/types/rest/request/spread-trading.js +2 -0
  152. package/dist/mjs/types/rest/request/spread-trading.js.map +1 -0
  153. package/dist/mjs/types/rest/request/subaccount.d.ts +33 -0
  154. package/dist/mjs/types/rest/request/subaccount.js +2 -0
  155. package/dist/mjs/types/rest/request/subaccount.js.map +1 -0
  156. package/dist/mjs/types/rest/request/trade.d.ts +194 -0
  157. package/dist/mjs/types/rest/request/trade.js +2 -0
  158. package/dist/mjs/types/rest/request/trade.js.map +1 -0
  159. package/dist/mjs/types/rest/response/private-account.d.ts +448 -0
  160. package/dist/mjs/types/rest/response/private-account.js +2 -0
  161. package/dist/mjs/types/rest/response/private-account.js.map +1 -0
  162. package/dist/mjs/types/rest/response/private-block-trading.d.ts +124 -0
  163. package/dist/mjs/types/rest/response/private-block-trading.js +2 -0
  164. package/dist/mjs/types/rest/response/private-block-trading.js.map +1 -0
  165. package/dist/mjs/types/rest/response/private-copy-trading.d.ts +259 -0
  166. package/dist/mjs/types/rest/response/private-copy-trading.js +2 -0
  167. package/dist/mjs/types/rest/response/private-copy-trading.js.map +1 -0
  168. package/dist/mjs/types/rest/response/private-flexible-loan.d.ts +72 -0
  169. package/dist/mjs/types/rest/response/private-flexible-loan.js +2 -0
  170. package/dist/mjs/types/rest/response/private-flexible-loan.js.map +1 -0
  171. package/dist/mjs/types/rest/response/private-funding.d.ts +102 -0
  172. package/dist/mjs/types/rest/response/private-funding.js +2 -0
  173. package/dist/mjs/types/rest/response/private-funding.js.map +1 -0
  174. package/dist/mjs/types/rest/response/private-recurring-buy.d.ts +63 -0
  175. package/dist/mjs/types/rest/response/private-recurring-buy.js +2 -0
  176. package/dist/mjs/types/rest/response/private-recurring-buy.js.map +1 -0
  177. package/dist/mjs/types/rest/response/private-signal-bot.d.ts +22 -0
  178. package/dist/mjs/types/rest/response/private-signal-bot.js +2 -0
  179. package/dist/mjs/types/rest/response/private-signal-bot.js.map +1 -0
  180. package/dist/mjs/types/rest/response/private-spread-trading.d.ts +126 -0
  181. package/dist/mjs/types/rest/response/private-spread-trading.js +2 -0
  182. package/dist/mjs/types/rest/response/private-spread-trading.js.map +1 -0
  183. package/dist/mjs/types/rest/response/private-subaccount.d.ts +80 -0
  184. package/dist/mjs/types/rest/response/private-subaccount.js +2 -0
  185. package/dist/mjs/types/rest/response/private-subaccount.js.map +1 -0
  186. package/dist/mjs/types/rest/response/private-trade.d.ts +355 -0
  187. package/dist/mjs/types/rest/response/private-trade.js +2 -0
  188. package/dist/mjs/types/rest/response/private-trade.js.map +1 -0
  189. package/dist/mjs/types/rest/response/public-data.d.ts +174 -0
  190. package/dist/mjs/types/rest/response/public-data.js +2 -0
  191. package/dist/mjs/types/rest/response/public-data.js.map +1 -0
  192. package/dist/mjs/types/rest/shared.d.ts +45 -0
  193. package/dist/mjs/types/rest/shared.js +2 -0
  194. package/dist/mjs/types/rest/shared.js.map +1 -0
  195. package/dist/mjs/types/shared.d.ts +13 -0
  196. package/dist/mjs/types/shared.js +2 -0
  197. package/{lib/types/rest → dist/mjs/types}/shared.js.map +1 -1
  198. package/dist/mjs/types/websockets/ws-api-request.d.ts +61 -0
  199. package/dist/mjs/types/websockets/ws-api-request.js +2 -0
  200. package/dist/mjs/types/websockets/ws-api-request.js.map +1 -0
  201. package/dist/mjs/types/websockets/ws-api-response.d.ts +28 -0
  202. package/dist/mjs/types/websockets/ws-api-response.js +2 -0
  203. package/dist/mjs/types/websockets/ws-api-response.js.map +1 -0
  204. package/dist/mjs/types/websockets/ws-api.d.ts +139 -0
  205. package/dist/mjs/types/websockets/ws-api.js +35 -0
  206. package/dist/mjs/types/websockets/ws-api.js.map +1 -0
  207. package/dist/mjs/types/websockets/ws-events.d.ts +33 -0
  208. package/dist/mjs/types/websockets/ws-events.js +8 -0
  209. package/dist/mjs/types/websockets/ws-events.js.map +1 -0
  210. package/dist/mjs/types/websockets/ws-general.d.ts +48 -0
  211. package/dist/mjs/types/websockets/ws-general.js +2 -0
  212. package/dist/mjs/types/websockets/ws-general.js.map +1 -0
  213. package/dist/mjs/types/websockets/ws-request.d.ts +93 -0
  214. package/dist/mjs/types/websockets/ws-request.js +2 -0
  215. package/dist/mjs/types/websockets/ws-request.js.map +1 -0
  216. package/dist/mjs/util/BaseRestClient.d.ts +29 -0
  217. package/dist/mjs/util/BaseRestClient.js +230 -0
  218. package/dist/mjs/util/BaseRestClient.js.map +1 -0
  219. package/dist/mjs/util/BaseWSClient.d.ts +198 -0
  220. package/dist/mjs/util/BaseWSClient.js +763 -0
  221. package/dist/mjs/util/BaseWSClient.js.map +1 -0
  222. package/dist/mjs/util/WsStore.d.ts +75 -0
  223. package/dist/mjs/util/WsStore.js +298 -0
  224. package/dist/mjs/util/WsStore.js.map +1 -0
  225. package/dist/mjs/util/WsStore.types.d.ts +51 -0
  226. package/dist/mjs/util/WsStore.types.js +11 -0
  227. package/dist/mjs/util/WsStore.types.js.map +1 -0
  228. package/dist/mjs/util/logger.d.ts +8 -0
  229. package/dist/mjs/util/logger.js +14 -0
  230. package/dist/mjs/util/logger.js.map +1 -0
  231. package/dist/mjs/util/requestUtils.d.ts +8 -0
  232. package/dist/mjs/util/requestUtils.js +51 -0
  233. package/dist/mjs/util/requestUtils.js.map +1 -0
  234. package/dist/mjs/util/typeGuards.d.ts +19 -0
  235. package/dist/mjs/util/typeGuards.js +85 -0
  236. package/dist/mjs/util/typeGuards.js.map +1 -0
  237. package/dist/mjs/util/webCryptoAPI.d.ts +15 -0
  238. package/dist/mjs/util/webCryptoAPI.js +77 -0
  239. package/dist/mjs/util/webCryptoAPI.js.map +1 -0
  240. package/dist/mjs/util/websocket-util.d.ts +142 -0
  241. package/dist/mjs/util/websocket-util.js +517 -0
  242. package/dist/mjs/util/websocket-util.js.map +1 -0
  243. package/dist/mjs/websocket-api-client.d.ts +135 -0
  244. package/dist/mjs/websocket-api-client.js +167 -0
  245. package/dist/mjs/websocket-api-client.js.map +1 -0
  246. package/dist/mjs/websocket-client-legacy.d.ts +76 -0
  247. package/dist/mjs/websocket-client-legacy.js +517 -0
  248. package/dist/mjs/websocket-client-legacy.js.map +1 -0
  249. package/dist/mjs/websocket-client.d.ts +81 -0
  250. package/dist/mjs/websocket-client.js +544 -0
  251. package/dist/mjs/websocket-client.js.map +1 -0
  252. package/llms.txt +5604 -3719
  253. package/package.json +28 -13
  254. package/index.js +0 -1
  255. package/lib/constants/funding.js.map +0 -1
  256. package/lib/constants/index.d.ts +0 -1
  257. package/lib/constants/index.js +0 -18
  258. package/lib/constants/index.js.map +0 -1
  259. package/lib/index.d.ts +0 -5
  260. package/lib/index.js +0 -22
  261. package/lib/index.js.map +0 -1
  262. package/lib/rest-client.js.map +0 -1
  263. package/lib/types/index.d.ts +0 -3
  264. package/lib/types/index.js +0 -20
  265. package/lib/types/index.js.map +0 -1
  266. package/lib/types/rest/client.d.ts +0 -20
  267. package/lib/types/rest/index.d.ts +0 -4
  268. package/lib/types/rest/index.js +0 -21
  269. package/lib/types/rest/index.js.map +0 -1
  270. package/lib/types/rest/request/account.js.map +0 -1
  271. package/lib/types/rest/request/announement.d.ts +0 -0
  272. package/lib/types/rest/request/announement.js +0 -1
  273. package/lib/types/rest/request/announement.js.map +0 -1
  274. package/lib/types/rest/request/block-trading.js.map +0 -1
  275. package/lib/types/rest/request/convert.js.map +0 -1
  276. package/lib/types/rest/request/copy-trading.js.map +0 -1
  277. package/lib/types/rest/request/funding.js.map +0 -1
  278. package/lib/types/rest/request/grid-trading.js.map +0 -1
  279. package/lib/types/rest/request/index.d.ts +0 -14
  280. package/lib/types/rest/request/index.js +0 -31
  281. package/lib/types/rest/request/index.js.map +0 -1
  282. package/lib/types/rest/request/public.js.map +0 -1
  283. package/lib/types/rest/request/recurring-buy.js.map +0 -1
  284. package/lib/types/rest/request/shared.js.map +0 -1
  285. package/lib/types/rest/request/signal-bot.js.map +0 -1
  286. package/lib/types/rest/request/simple-earn.js.map +0 -1
  287. package/lib/types/rest/request/spread-trading.js.map +0 -1
  288. package/lib/types/rest/request/subaccount.js.map +0 -1
  289. package/lib/types/rest/request/trade.js.map +0 -1
  290. package/lib/types/rest/response/index.d.ts +0 -11
  291. package/lib/types/rest/response/index.js +0 -28
  292. package/lib/types/rest/response/index.js.map +0 -1
  293. package/lib/types/rest/response/private-account.js.map +0 -1
  294. package/lib/types/rest/response/private-block-trading.js.map +0 -1
  295. package/lib/types/rest/response/private-copy-trading.js.map +0 -1
  296. package/lib/types/rest/response/private-flexible-loan.js.map +0 -1
  297. package/lib/types/rest/response/private-funding.js.map +0 -1
  298. package/lib/types/rest/response/private-recurring-buy.js.map +0 -1
  299. package/lib/types/rest/response/private-signal-bot.js.map +0 -1
  300. package/lib/types/rest/response/private-spread-trading.js.map +0 -1
  301. package/lib/types/rest/response/private-subaccount.js.map +0 -1
  302. package/lib/types/rest/response/private-trade.js.map +0 -1
  303. package/lib/types/rest/response/public-data.js.map +0 -1
  304. package/lib/types/shared.d.ts +0 -6
  305. package/lib/types/websockets/client.d.ts +0 -22
  306. package/lib/types/websockets/client.js +0 -3
  307. package/lib/types/websockets/event.js +0 -3
  308. package/lib/types/websockets/event.js.map +0 -1
  309. package/lib/types/websockets/index.d.ts +0 -3
  310. package/lib/types/websockets/index.js +0 -20
  311. package/lib/types/websockets/index.js.map +0 -1
  312. package/lib/types/websockets/request.js +0 -3
  313. package/lib/types/websockets/request.js.map +0 -1
  314. package/lib/util/BaseRestClient.js +0 -217
  315. package/lib/util/BaseRestClient.js.map +0 -1
  316. package/lib/util/WsStore.d.ts +0 -66
  317. package/lib/util/WsStore.js +0 -168
  318. package/lib/util/WsStore.js.map +0 -1
  319. package/lib/util/browser-support.d.ts +0 -6
  320. package/lib/util/browser-support.js +0 -48
  321. package/lib/util/browser-support.js.map +0 -1
  322. package/lib/util/index.d.ts +0 -4
  323. package/lib/util/index.js +0 -21
  324. package/lib/util/index.js.map +0 -1
  325. package/lib/util/logger.d.ts +0 -9
  326. package/lib/util/logger.js.map +0 -1
  327. package/lib/util/node-support.d.ts +0 -1
  328. package/lib/util/node-support.js +0 -8
  329. package/lib/util/node-support.js.map +0 -1
  330. package/lib/util/requestUtils.js.map +0 -1
  331. package/lib/util/typeGuards.js.map +0 -1
  332. package/lib/util/websocket-util.d.ts +0 -35
  333. package/lib/util/websocket-util.js +0 -282
  334. package/lib/util/websocket-util.js.map +0 -1
  335. package/lib/websocket-client.js +0 -472
  336. package/lib/websocket-client.js.map +0 -1
  337. /package/{lib → dist/cjs}/constants/funding.d.ts +0 -0
  338. /package/{lib → dist/cjs}/constants/funding.js +0 -0
  339. /package/{lib → dist/cjs}/types/rest/client.js +0 -0
  340. /package/{lib → dist/cjs}/types/rest/request/account.js +0 -0
  341. /package/{lib → dist/cjs}/types/rest/request/block-trading.js +0 -0
  342. /package/{lib → dist/cjs}/types/rest/request/convert.d.ts +0 -0
  343. /package/{lib → dist/cjs}/types/rest/request/convert.js +0 -0
  344. /package/{lib → dist/cjs}/types/rest/request/copy-trading.d.ts +0 -0
  345. /package/{lib → dist/cjs}/types/rest/request/copy-trading.js +0 -0
  346. /package/{lib → dist/cjs}/types/rest/request/funding.d.ts +0 -0
  347. /package/{lib → dist/cjs}/types/rest/request/funding.js +0 -0
  348. /package/{lib → dist/cjs}/types/rest/request/grid-trading.d.ts +0 -0
  349. /package/{lib → dist/cjs}/types/rest/request/grid-trading.js +0 -0
  350. /package/{lib → dist/cjs}/types/rest/request/public.d.ts +0 -0
  351. /package/{lib → dist/cjs}/types/rest/request/public.js +0 -0
  352. /package/{lib → dist/cjs}/types/rest/request/recurring-buy.d.ts +0 -0
  353. /package/{lib → dist/cjs}/types/rest/request/recurring-buy.js +0 -0
  354. /package/{lib → dist/cjs}/types/rest/request/shared.js +0 -0
  355. /package/{lib → dist/cjs}/types/rest/request/signal-bot.d.ts +0 -0
  356. /package/{lib → dist/cjs}/types/rest/request/signal-bot.js +0 -0
  357. /package/{lib → dist/cjs}/types/rest/request/simple-earn.d.ts +0 -0
  358. /package/{lib → dist/cjs}/types/rest/request/simple-earn.js +0 -0
  359. /package/{lib → dist/cjs}/types/rest/request/spread-trading.d.ts +0 -0
  360. /package/{lib → dist/cjs}/types/rest/request/spread-trading.js +0 -0
  361. /package/{lib → dist/cjs}/types/rest/request/subaccount.d.ts +0 -0
  362. /package/{lib → dist/cjs}/types/rest/request/subaccount.js +0 -0
  363. /package/{lib → dist/cjs}/types/rest/request/trade.js +0 -0
  364. /package/{lib → dist/cjs}/types/rest/response/private-account.js +0 -0
  365. /package/{lib → dist/cjs}/types/rest/response/private-block-trading.js +0 -0
  366. /package/{lib → dist/cjs}/types/rest/response/private-copy-trading.d.ts +0 -0
  367. /package/{lib → dist/cjs}/types/rest/response/private-copy-trading.js +0 -0
  368. /package/{lib → dist/cjs}/types/rest/response/private-flexible-loan.d.ts +0 -0
  369. /package/{lib → dist/cjs}/types/rest/response/private-flexible-loan.js +0 -0
  370. /package/{lib → dist/cjs}/types/rest/response/private-funding.js +0 -0
  371. /package/{lib → dist/cjs}/types/rest/response/private-recurring-buy.d.ts +0 -0
  372. /package/{lib → dist/cjs}/types/rest/response/private-recurring-buy.js +0 -0
  373. /package/{lib → dist/cjs}/types/rest/response/private-signal-bot.d.ts +0 -0
  374. /package/{lib → dist/cjs}/types/rest/response/private-signal-bot.js +0 -0
  375. /package/{lib → dist/cjs}/types/rest/response/private-spread-trading.d.ts +0 -0
  376. /package/{lib → dist/cjs}/types/rest/response/private-spread-trading.js +0 -0
  377. /package/{lib → dist/cjs}/types/rest/response/private-subaccount.d.ts +0 -0
  378. /package/{lib → dist/cjs}/types/rest/response/private-subaccount.js +0 -0
  379. /package/{lib → dist/cjs}/types/rest/response/private-trade.js +0 -0
  380. /package/{lib → dist/cjs}/types/rest/response/public-data.js +0 -0
  381. /package/{lib → dist/cjs}/types/rest/shared.js +0 -0
  382. /package/{lib → dist/cjs}/types/shared.js +0 -0
@@ -1,217 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.MISSING_CREDENTIALS_ERROR = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- const https_1 = __importDefault(require("https"));
18
- const node_support_1 = require("./node-support");
19
- const requestUtils_1 = require("./requestUtils");
20
- const typeGuards_1 = require("./typeGuards");
21
- // axios.interceptors.request.use((request) => {
22
- // console.log(new Date(), 'Starting Request', JSON.stringify(request, null, 2));
23
- // return request;
24
- // });
25
- // axios.interceptors.response.use((response) => {
26
- // // console.log(new Date(), 'Response:', JSON.stringify(response, null, 2));
27
- // console.log(
28
- // new Date(),
29
- // 'Response:',
30
- // JSON.stringify(
31
- // {
32
- // data: response.data,
33
- // headers: response.headers,
34
- // },
35
- // null,
36
- // 2,
37
- // ),
38
- // );
39
- // return response;
40
- // });
41
- exports.MISSING_CREDENTIALS_ERROR = 'Private endpoints require api and secret to be provided in the REST client constructor';
42
- class BaseRestClient {
43
- constructor(options = {}, requestOptions = {}) {
44
- // this.environment = environment;
45
- this.options = Object.assign({
46
- // if true, we'll throw errors if any params are undefined
47
- strict_param_validation: false }, options);
48
- this.baseUrl = (0, requestUtils_1.getRestBaseUrl)(options.market || 'prod', options);
49
- const hasOneCredential = options.apiKey || options.apiSecret || options.apiPass;
50
- const hasAllCredentials = !!options.apiKey && !!options.apiSecret && !!options.apiPass;
51
- // Allow empty object
52
- if (hasOneCredential && !hasAllCredentials) {
53
- throw new Error('API Key, Secret AND Passphrase are ALL required for private enpoints');
54
- }
55
- this.globalRequestOptions = Object.assign({
56
- // in ms == 5 minutes by default
57
- timeout: 1000 * 60 * 5 }, requestOptions);
58
- if (!this.globalRequestOptions.headers) {
59
- this.globalRequestOptions.headers = {};
60
- }
61
- // Note: `x-simulated-trading: 1` needs to be added to the header of the Demo Trading request.
62
- if (options.market === 'demo') {
63
- this.globalRequestOptions.headers['x-simulated-trading'] = 1;
64
- }
65
- this.globalRequestOptions.headers['Content-Type'] = 'application/json';
66
- this.globalRequestOptions.headers['Accept'] = 'application/json';
67
- // If enabled, configure a https agent with keepAlive enabled
68
- if (this.options.keepAlive) {
69
- // Extract existing https agent parameters, if provided, to prevent the keepAlive flag from overwriting an existing https agent completely
70
- const existingHttpsAgent = this.globalRequestOptions.httpsAgent;
71
- const existingAgentOptions = (existingHttpsAgent === null || existingHttpsAgent === void 0 ? void 0 : existingHttpsAgent.options) || {};
72
- // For more advanced configuration, raise an issue on GitHub or use the "requestOptions"
73
- // parameter to define a custom httpsAgent with the desired properties
74
- this.globalRequestOptions.httpsAgent = new https_1.default.Agent(Object.assign(Object.assign({}, existingAgentOptions), { keepAlive: true, keepAliveMsecs: this.options.keepAliveMsecs }));
75
- }
76
- this.apiKey = options === null || options === void 0 ? void 0 : options.apiKey;
77
- this.apiSecret = options === null || options === void 0 ? void 0 : options.apiSecret;
78
- this.apiPassphrase = options === null || options === void 0 ? void 0 : options.apiPass;
79
- }
80
- get(endpoint, params) {
81
- return this._call('GET', endpoint, params, true);
82
- }
83
- post(endpoint, params) {
84
- return this._call('POST', endpoint, params, true);
85
- }
86
- getPrivate(endpoint, params) {
87
- return this._call('GET', endpoint, params, false);
88
- }
89
- postPrivate(endpoint, params) {
90
- return this._call('POST', endpoint, Array.isArray(params)
91
- ? params.map((p) => (Object.assign(Object.assign({}, p), { [requestUtils_1.programKey]: requestUtils_1.programId })))
92
- : Object.assign(Object.assign({}, params), { [requestUtils_1.programKey]: requestUtils_1.programId }), false);
93
- }
94
- deletePrivate(endpoint, params) {
95
- return this._call('DELETE', endpoint, params, false);
96
- }
97
- /**
98
- * Make a HTTP request to a specific endpoint. Private endpoints are automatically signed.
99
- */
100
- _call(method, endpoint, params, isPublicApi) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const options = Object.assign(Object.assign({}, this.globalRequestOptions), { url: [this.baseUrl, endpoint].join(endpoint.startsWith('/') ? '' : '/'), method: method, json: true });
103
- // Delete any params without value
104
- for (const key in params) {
105
- if (typeof params[key] === 'undefined') {
106
- delete params[key];
107
- }
108
- }
109
- const tsISO = new Date().toISOString();
110
- const signResult = yield this.signRequest(isPublicApi, tsISO, method, endpoint, params);
111
- if (!options.headers) {
112
- options.headers = {};
113
- }
114
- if (!isPublicApi) {
115
- options.headers['OK-ACCESS-KEY'] = this.apiKey;
116
- options.headers['OK-ACCESS-SIGN'] = signResult.sign;
117
- options.headers['OK-ACCESS-TIMESTAMP'] = tsISO;
118
- options.headers['OK-ACCESS-PASSPHRASE'] = this.apiPassphrase;
119
- }
120
- if (method === 'GET') {
121
- options.params = signResult.requestBody;
122
- }
123
- else {
124
- options.data = signResult.requestBody;
125
- }
126
- // console.log(new Date(), 'request: ', {
127
- // url: options.url,
128
- // method,
129
- // params: signResult.requestBody,
130
- // sign: signResult.sign,
131
- // options,
132
- // });
133
- return (0, axios_1.default)(options)
134
- .then((response) => {
135
- var _a;
136
- // Check this is an API response without an error code.
137
- // If so, resolve the nested data property, else throw the full response body
138
- if ((0, typeGuards_1.isRawAPIResponse)(response.data) &&
139
- response.status == 200 &&
140
- ((_a = response.data) === null || _a === void 0 ? void 0 : _a.code) === '0') {
141
- return response.data.data;
142
- }
143
- // console.log('request: ', JSON.stringify(options, null, 2));
144
- // console.log(
145
- // 'bad response: ',
146
- // JSON.stringify(
147
- // {
148
- // data: response.data,
149
- // headers: response.headers,
150
- // },
151
- // null,
152
- // 2
153
- // )
154
- // );
155
- // Also throw if API returned error code
156
- // This API error thrown by the exchange will be post-processed by the exception parser
157
- throw { response };
158
- })
159
- .catch((e) => this.parseException(e));
160
- });
161
- }
162
- /**
163
- * Sign request
164
- */
165
- signRequest(isPublicApi, tsISO, method, endpoint, params) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- const res = {
168
- requestBody: params,
169
- method,
170
- endpoint,
171
- sign: '',
172
- };
173
- if (isPublicApi) {
174
- return res;
175
- }
176
- if (!this.apiKey || !this.apiSecret || !this.apiPassphrase) {
177
- throw new Error(exports.MISSING_CREDENTIALS_ERROR);
178
- }
179
- const serializedParams = (0, requestUtils_1.serializeParams)(params, method, this.options.strict_param_validation);
180
- const message = tsISO + method + endpoint + serializedParams;
181
- // console.log(new Date(), `Sign params: `, {
182
- // message,
183
- // secret: this.apiSecret,
184
- // });
185
- return Object.assign(Object.assign({}, res), { sign: yield (0, node_support_1.signMessage)(message, this.apiSecret) });
186
- });
187
- }
188
- /**
189
- * Generic handler to parse request exceptions
190
- */
191
- parseException(e) {
192
- if (this.options.parse_exceptions === false) {
193
- throw e;
194
- }
195
- // Something happened in setting up the request that triggered an Error
196
- if (!e.response) {
197
- if (!e.request) {
198
- throw e.message;
199
- }
200
- // request made but no response received
201
- throw e;
202
- }
203
- // The request was made and the server responded with a status code
204
- // that falls out of the range of 2xx
205
- const response = e.response;
206
- throw response.data;
207
- // throw {
208
- // status: response.status,
209
- // statusText: response.statusText,
210
- // data: response.data,
211
- // headers: response.headers,
212
- // requestOptions: this.options,
213
- // };
214
- }
215
- }
216
- exports.default = BaseRestClient;
217
- //# sourceMappingURL=BaseRestClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseRestClient.js","sourceRoot":"","sources":["../../src/util/BaseRestClient.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- import WebSocket from 'isomorphic-ws';
2
- import { DefaultLogger } from './logger';
3
- import { WsKey } from './websocket-util';
4
- export declare enum WsConnectionStateEnum {
5
- INITIAL = 0,
6
- CONNECTING = 1,
7
- CONNECTED = 2,
8
- CLOSING = 3,
9
- RECONNECTING = 4
10
- }
11
- /** A "topic" is always a string */
12
- type WsTopic = string;
13
- /**
14
- * A "Set" is used to ensure we only subscribe to a topic once (tracking a list of unique topics we're expected to be connected to)
15
- * Note: Accurate duplicate tracking only works for plaintext topics. E.g. JSON objects may not be seen as duplicates if keys are in different orders. If that's needed, check the FTX implementation.
16
- */
17
- interface WsStoredState<WSTopic> {
18
- /** The currently active websocket connection */
19
- ws?: WebSocket;
20
- /** The current lifecycle state of the connection (enum) */
21
- connectionState?: WsConnectionStateEnum;
22
- /** A timer that will send an upstream heartbeat (ping) when it expires */
23
- activePingTimer?: ReturnType<typeof setTimeout> | undefined;
24
- /** A timer tracking that an upstream heartbeat was sent, expecting a reply before it expires */
25
- activePongTimer?: ReturnType<typeof setTimeout> | undefined;
26
- /** If a reconnection is in progress, this will have the timer for the delayed reconnect */
27
- activeReconnectTimer?: ReturnType<typeof setTimeout> | undefined;
28
- /**
29
- * All the topics we are expected to be subscribed to (and we automatically resubscribed to if the connection drops)
30
- * A "Set" is used to ensure we only subscribe to a topic once (tracking a list of unique topics we're expected to be connected to)
31
- *
32
- * Note: Accurate duplicate tracking using a Set only works for plaintext topics. E.g. JSON objects may not be seen as duplicates if keys are in different orders.
33
- * More complex topics (objects) are matched using the isDeepObjectMatch function
34
- */
35
- subscribedTopics: Set<WSTopic>;
36
- }
37
- export declare function isDeepObjectMatch(object1: any, object2: any): boolean;
38
- type WSSimpleTopic = string;
39
- export declare class WsStore<WSComplexTopic> {
40
- private wsState;
41
- private logger;
42
- constructor(logger: typeof DefaultLogger);
43
- /** Get WS stored state for key, optionally create if missing */
44
- get(wsKey: WsKey, createIfMissing?: true): WsStoredState<WSComplexTopic | WSSimpleTopic>;
45
- get(wsKey: WsKey, createIfMissing?: false): WsStoredState<WSComplexTopic | WSSimpleTopic> | undefined;
46
- getKeys(): WsKey[];
47
- create(wsKey: WsKey): WsStoredState<WSComplexTopic | WSSimpleTopic> | undefined;
48
- delete(wsKey: WsKey): void;
49
- hasExistingActiveConnection(wsKey: WsKey): boolean;
50
- getWs(wsKey: WsKey): WebSocket | undefined;
51
- setWs(wsKey: WsKey, wsConnection: WebSocket): WebSocket;
52
- isWsOpen(wsKey: WsKey): boolean;
53
- getConnectionState(wsKey: WsKey): WsConnectionStateEnum;
54
- setConnectionState(wsKey: WsKey, state: WsConnectionStateEnum): void;
55
- isConnectionState(wsKey: WsKey, state: WsConnectionStateEnum): boolean;
56
- getTopics(wsKey: WsKey): Set<WSComplexTopic | WSSimpleTopic>;
57
- getTopicsByKey(): Record<string, Set<WSComplexTopic | WSSimpleTopic>>;
58
- addTopic(wsKey: WsKey, topic: WsTopic): Set<string | WSComplexTopic>;
59
- /** Add subscribed topic to store, only if not already subscribed */
60
- addComplexTopic(wsKey: WsKey, topic: WSComplexTopic): Set<string | WSComplexTopic>;
61
- deleteTopic(wsKey: WsKey, topic: WsTopic): boolean;
62
- /** Remove subscribed topic from store */
63
- deleteComplexTopic(wsKey: WsKey, topic: WSComplexTopic): Set<string | WSComplexTopic>;
64
- getMatchingTopic(key: WsKey, topic: WsTopic | WSComplexTopic): WSComplexTopic | WSSimpleTopic | undefined;
65
- }
66
- export {};
@@ -1,168 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WsStore = exports.WsConnectionStateEnum = void 0;
4
- exports.isDeepObjectMatch = isDeepObjectMatch;
5
- const logger_1 = require("./logger");
6
- var WsConnectionStateEnum;
7
- (function (WsConnectionStateEnum) {
8
- WsConnectionStateEnum[WsConnectionStateEnum["INITIAL"] = 0] = "INITIAL";
9
- WsConnectionStateEnum[WsConnectionStateEnum["CONNECTING"] = 1] = "CONNECTING";
10
- WsConnectionStateEnum[WsConnectionStateEnum["CONNECTED"] = 2] = "CONNECTED";
11
- WsConnectionStateEnum[WsConnectionStateEnum["CLOSING"] = 3] = "CLOSING";
12
- WsConnectionStateEnum[WsConnectionStateEnum["RECONNECTING"] = 4] = "RECONNECTING";
13
- // ERROR = 5,
14
- })(WsConnectionStateEnum || (exports.WsConnectionStateEnum = WsConnectionStateEnum = {}));
15
- function isDeepObjectMatch(object1, object2) {
16
- if (typeof object2 !== typeof object1) {
17
- return false;
18
- }
19
- const keys1 = Object.keys(object1).sort();
20
- const keys2 = Object.keys(object2).sort();
21
- const hasSameKeyCount = keys1.length === keys2.length;
22
- if (!hasSameKeyCount) {
23
- // console.log('not same key count', { keys1, keys2 });
24
- // not the same amount of keys or keys don't match
25
- return false;
26
- }
27
- const hasSameKeyNames = keys1.every((val, i) => val === keys2[i]);
28
- if (!hasSameKeyNames) {
29
- // console.log('not same key names: ', { keys1, keys2 });
30
- return false;
31
- }
32
- for (const key in object1) {
33
- const value1 = object1[key];
34
- const value2 = object2[key];
35
- if (typeof value1 === 'object' && typeof value2 === 'object') {
36
- if (!isDeepObjectMatch(value1, value2)) {
37
- return false;
38
- }
39
- }
40
- if (value1 !== value2) {
41
- return false;
42
- }
43
- }
44
- return true;
45
- }
46
- class WsStore {
47
- constructor(logger) {
48
- this.wsState = {};
49
- this.logger = logger || logger_1.DefaultLogger;
50
- this.wsState = {};
51
- }
52
- get(wsKey, createIfMissing) {
53
- if (this.wsState[wsKey]) {
54
- return this.wsState[wsKey];
55
- }
56
- if (createIfMissing) {
57
- return this.create(wsKey);
58
- }
59
- }
60
- getKeys() {
61
- return Object.keys(this.wsState);
62
- }
63
- create(wsKey) {
64
- if (this.hasExistingActiveConnection(wsKey)) {
65
- this.logger.warning('WsStore setConnection() overwriting existing open connection: ', this.getWs(wsKey));
66
- }
67
- this.wsState[wsKey] = {
68
- subscribedTopics: new Set(),
69
- connectionState: WsConnectionStateEnum.INITIAL,
70
- };
71
- return this.get(wsKey);
72
- }
73
- delete(wsKey) {
74
- if (this.hasExistingActiveConnection(wsKey)) {
75
- const ws = this.getWs(wsKey);
76
- this.logger.warning('WsStore deleting state for connection still open: ', ws);
77
- ws === null || ws === void 0 ? void 0 : ws.close();
78
- }
79
- delete this.wsState[wsKey];
80
- }
81
- /* connection websocket */
82
- hasExistingActiveConnection(wsKey) {
83
- return this.get(wsKey) && this.isWsOpen(wsKey);
84
- }
85
- getWs(wsKey) {
86
- var _a;
87
- return (_a = this.get(wsKey)) === null || _a === void 0 ? void 0 : _a.ws;
88
- }
89
- setWs(wsKey, wsConnection) {
90
- if (this.isWsOpen(wsKey)) {
91
- this.logger.warning('WsStore setConnection() overwriting existing open connection: ', this.getWs(wsKey));
92
- }
93
- this.get(wsKey, true).ws = wsConnection;
94
- return wsConnection;
95
- }
96
- /* connection state */
97
- isWsOpen(wsKey) {
98
- const existingConnection = this.getWs(wsKey);
99
- return (!!existingConnection &&
100
- existingConnection.readyState === existingConnection.OPEN);
101
- }
102
- getConnectionState(wsKey) {
103
- return this.get(wsKey, true).connectionState;
104
- }
105
- setConnectionState(wsKey, state) {
106
- this.get(wsKey, true).connectionState = state;
107
- }
108
- isConnectionState(wsKey, state) {
109
- return this.getConnectionState(wsKey) === state;
110
- }
111
- /* subscribed topics */
112
- getTopics(wsKey) {
113
- return this.get(wsKey, true).subscribedTopics;
114
- }
115
- getTopicsByKey() {
116
- const result = {};
117
- for (const refKey in this.wsState) {
118
- result[refKey] = this.getTopics(refKey);
119
- }
120
- return result;
121
- }
122
- addTopic(wsKey, topic) {
123
- return this.getTopics(wsKey).add(topic);
124
- }
125
- /** Add subscribed topic to store, only if not already subscribed */
126
- addComplexTopic(wsKey, topic) {
127
- if (this.getMatchingTopic(wsKey, topic)) {
128
- return this.getTopics(wsKey);
129
- }
130
- // console.log('add complex topic: ', topic);
131
- return this.getTopics(wsKey).add(topic);
132
- }
133
- deleteTopic(wsKey, topic) {
134
- return this.getTopics(wsKey).delete(topic);
135
- }
136
- /** Remove subscribed topic from store */
137
- deleteComplexTopic(wsKey, topic) {
138
- const storedTopic = this.getMatchingTopic(wsKey, topic);
139
- if (storedTopic) {
140
- this.getTopics(wsKey).delete(storedTopic);
141
- }
142
- return this.getTopics(wsKey);
143
- }
144
- // Since topics are objects we can't rely on the set to detect duplicates
145
- getMatchingTopic(key, topic) {
146
- if (typeof topic === 'string') {
147
- if (this.getTopics(key).has(topic)) {
148
- return topic;
149
- }
150
- else {
151
- return undefined;
152
- }
153
- }
154
- const allTopics = this.getTopics(key).values();
155
- for (const storedTopic of allTopics) {
156
- // console.log('?: ', {
157
- // isMatch: isDeepObjectMatch(topic, storedTopic),
158
- // newTopic: topic,
159
- // storedTopic: storedTopic,
160
- // });
161
- if (isDeepObjectMatch(topic, storedTopic)) {
162
- return storedTopic;
163
- }
164
- }
165
- }
166
- }
167
- exports.WsStore = WsStore;
168
- //# sourceMappingURL=WsStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WsStore.js","sourceRoot":"","sources":["../../src/util/WsStore.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export type SignEncodeMethod = 'hex' | 'base64';
2
- export type SignAlgorithm = 'SHA-256' | 'SHA-512';
3
- /**
4
- * Sign a message, with a secret, using the Web Crypto API
5
- */
6
- export declare function signMessage(message: string, secret: string): Promise<string>;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.signMessage = signMessage;
13
- const typeGuards_1 = require("./typeGuards");
14
- function bufferToB64(buffer) {
15
- let binary = '';
16
- const bytes = new Uint8Array(buffer);
17
- const len = bytes.byteLength;
18
- for (let i = 0; i < len; i++) {
19
- binary += String.fromCharCode(bytes[i]);
20
- }
21
- return globalThis.btoa(binary);
22
- }
23
- /**
24
- * Sign a message, with a secret, using the Web Crypto API
25
- */
26
- function signMessage(message, secret) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- const encoder = new TextEncoder();
29
- const method = 'base64';
30
- const algorithm = 'SHA-256';
31
- const key = yield globalThis.crypto.subtle.importKey('raw', encoder.encode(secret), { name: 'HMAC', hash: algorithm }, false, ['sign']);
32
- const buffer = yield globalThis.crypto.subtle.sign('HMAC', key, encoder.encode(message));
33
- switch (method) {
34
- // case 'hex': {
35
- // return Array.from(new Uint8Array(buffer))
36
- // .map((byte) => byte.toString(16).padStart(2, '0'))
37
- // .join('');
38
- // }
39
- case 'base64': {
40
- return bufferToB64(buffer);
41
- }
42
- default: {
43
- throw (0, typeGuards_1.neverGuard)(method, `Unhandled sign method: "${method}"`);
44
- }
45
- }
46
- });
47
- }
48
- //# sourceMappingURL=browser-support.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-support.js","sourceRoot":"","sources":["../../src/util/browser-support.ts"],"names":[],"mappings":";;;;;;;;;;;AAkBA,kCAmCC;AArDD,6CAA0C;AAE1C,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;AACH,SAAsB,WAAW,CAC/B,OAAe,EACf,MAAc;;QAEd,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,MAAM,GAAqB,QAAQ,CAAC;QAC1C,MAAM,SAAS,GAAkB,SAAS,CAAC;QAE3C,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;QAEF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAChD,MAAM,EACN,GAAG,EACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CACxB,CAAC;QAEF,QAAQ,MAAM,EAAE,CAAC;YACf,gBAAgB;YAChB,8CAA8C;YAC9C,yDAAyD;YACzD,iBAAiB;YACjB,IAAI;YACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,uBAAU,EAAC,MAAM,EAAE,2BAA2B,MAAM,GAAG,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;CAAA"}
@@ -1,4 +0,0 @@
1
- export * from './logger';
2
- export * from './typeGuards';
3
- export * from './websocket-util';
4
- export * from './WsStore';
package/lib/util/index.js DELETED
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./logger"), exports);
18
- __exportStar(require("./typeGuards"), exports);
19
- __exportStar(require("./websocket-util"), exports);
20
- __exportStar(require("./WsStore"), exports);
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,mDAAiC;AACjC,4CAA0B"}
@@ -1,9 +0,0 @@
1
- export type LogParams = null | any;
2
- export declare const DefaultLogger: {
3
- silly: (...params: LogParams) => void;
4
- debug: (...params: LogParams) => void;
5
- notice: (...params: LogParams) => void;
6
- info: (...params: LogParams) => void;
7
- warning: (...params: LogParams) => void;
8
- error: (...params: LogParams) => void;
9
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAG;IAC3B,6DAA6D;IAC7D,KAAK,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACpC,uBAAuB;IACzB,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,MAAiB,EAAQ,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- export declare function signMessage(message: string, secret: string): string;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signMessage = signMessage;
4
- const crypto_1 = require("crypto");
5
- function signMessage(message, secret) {
6
- return (0, crypto_1.createHmac)('sha256', secret).update(message).digest('base64');
7
- }
8
- //# sourceMappingURL=node-support.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-support.js","sourceRoot":"","sources":["../../src/util/node-support.ts"],"names":[],"mappings":";;AAEA,kCAEC;AAJD,mCAAoC;AAEpC,SAAgB,WAAW,CAAC,OAAe,EAAE,MAAc;IACzD,OAAO,IAAA,mBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../src/util/requestUtils.ts"],"names":[],"mappings":";;;AAIA,0CA2BC;AAID,wCAeC;AAED,4BAUC;AA1DD,SAAgB,eAAe,CAC7B,MAA0B,EAC1B,MAAc,EACd,iBAAiB,GAAG,KAAK;IAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACpC,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,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,iDAAiD;IACjD,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AACvD,CAAC;AACY,QAAA,UAAU,GAAG,KAAK,CAAC;AACnB,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,SAAgB,cAAc,CAC5B,MAAiB,EACjB,iBAAoC;IAEpC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,QAAQ;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,qBAAqB,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,QAAa;IACpC,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,QAAQ,CAAC,OAAO;QAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM;QAC9B,QAAQ,CAAC,OAAO,KAAK,MAAM;QAC3B,QAAQ,CAAC,OAAO,KAAK,IAAI,CAC1B,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/util/typeGuards.ts"],"names":[],"mappings":";;AAGA,4CAYC;AAGD,8BAUC;AAED,sCASC;AAED,wCAEC;AAGD,wCAEC;AAGD,gDAEC;AAGD,oDAEC;AAGD,4CAEC;AAGD,gCAEC;AAjED,SAAgB,gBAAgB,CAC9B,QAAiB;IAEjB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,SAAgB,SAAS,CAAC,OAAgB;IACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,cAAc,CAAC,GAAY;IACzC,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;AACjD,CAAC;AAED,mDAAmD;AACnD,SAAgB,cAAc,CAAC,GAAY;IACzC,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC;AACjD,CAAC;AAED,6CAA6C;AAC7C,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC;AAC7D,CAAC;AAED,iDAAiD;AACjD,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC;AAC/D,CAAC;AAED,wBAAwB;AACxB,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,oBAAoB,CAAC;AACtE,CAAC;AAED,uGAAuG;AACvG,SAAgB,UAAU,CAAC,CAAQ,EAAE,GAAW;IAC9C,OAAO,IAAI,KAAK,CAAC,8BAA8B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,35 +0,0 @@
1
- import { APIMarket, WebsocketClientOptions, WsChannel } from '../types';
2
- import { DefaultLogger } from './logger';
3
- export declare const WS_BASE_URL_MAP: Record<APIMarket, Record<'public' | 'private', string>>;
4
- export declare const WS_KEY_MAP: {
5
- readonly prodPublic: "prodPublic";
6
- readonly prodPrivate: "prodPrivate";
7
- readonly demoPublic: "demoPublic";
8
- readonly demoPrivate: "demoPrivate";
9
- readonly businessPrivate: "businessPrivate";
10
- readonly businessPublic: "businessPublic";
11
- readonly businessDemoPublic: "businessDemoPublic";
12
- readonly businessDemoPrivate: "businessDemoPrivate";
13
- };
14
- /** This is used to differentiate between each of the available websocket streams (as bybit has multiple websockets) */
15
- export type WsKey = (typeof WS_KEY_MAP)[keyof typeof WS_KEY_MAP];
16
- export declare const PRIVATE_WS_KEYS: WsKey[];
17
- export declare const PUBLIC_WS_KEYS: WsKey[];
18
- /** Determine which WsKey (ws connection) to route an event to */
19
- export declare function getWsKeyForTopicChannel(market: APIMarket, channel: WsChannel, isPrivate?: boolean): WsKey;
20
- export declare function getWsKeyForMarket(market: APIMarket, isPrivate: boolean, isBusinessChannel: boolean): WsKey;
21
- /** Maps a WS key back to a WS URL */
22
- export declare function getWsUrlForWsKey(wsKey: WsKey, wsClientOptions: WebsocketClientOptions, logger: typeof DefaultLogger): string;
23
- export declare function getMaxTopicsPerSubscribeEvent(market: APIMarket): number | null;
24
- export declare function isWsPong(event: unknown): boolean;
25
- export declare const WS_EVENT_CODE_ENUM: {
26
- OK: string;
27
- LOGIN_FAILED: string;
28
- LOGIN_PARTIALLY_FAILED: string;
29
- };
30
- /**
31
- * #305: ws.terminate() is undefined in browsers.
32
- * This only works in node.js, not in browsers.
33
- * Does nothing if `ws` is undefined. Does nothing in browsers.
34
- */
35
- export declare function safeTerminateWs(ws?: WebSocket | any, fallbackToClose?: boolean): boolean;