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
@@ -0,0 +1,533 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WS_EVENT_CODE_ENUM = exports.PUBLIC_WS_KEYS = exports.PRIVATE_WS_KEYS = exports.WS_KEY_MAP = exports.WS_BASE_URL_MAP = exports.WS_LOGGER_CATEGORY = void 0;
4
+ exports.getDemoWsKey = getDemoWsKey;
5
+ exports.getWsKeyForTopicChannel = getWsKeyForTopicChannel;
6
+ exports.getWsKeyForMarket = getWsKeyForMarket;
7
+ exports.requiresWSAPITag = requiresWSAPITag;
8
+ exports.validateWSAPITag = validateWSAPITag;
9
+ exports.getWsUrlForWsKey = getWsUrlForWsKey;
10
+ exports.getMaxTopicsPerSubscribeEventForMarket = getMaxTopicsPerSubscribeEventForMarket;
11
+ exports.isWsPong = isWsPong;
12
+ exports.safeTerminateWs = safeTerminateWs;
13
+ exports.getNormalisedTopicRequests = getNormalisedTopicRequests;
14
+ exports.isWSPingFrameAvailable = isWSPingFrameAvailable;
15
+ exports.isWSPongFrameAvailable = isWSPongFrameAvailable;
16
+ exports.getPromiseRefForWSAPIRequest = getPromiseRefForWSAPIRequest;
17
+ const ws_api_js_1 = require("../types/websockets/ws-api.js");
18
+ const requestUtils_js_1 = require("./requestUtils.js");
19
+ const typeGuards_js_1 = require("./typeGuards.js");
20
+ exports.WS_LOGGER_CATEGORY = { category: 'okx-ws' };
21
+ exports.WS_BASE_URL_MAP = {
22
+ prod: {
23
+ live: {
24
+ public: 'wss://ws.okx.com:8443/ws/v5/public',
25
+ private: 'wss://ws.okx.com:8443/ws/v5/private',
26
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
27
+ business: 'wss://ws.okx.com:8443/ws/v5/business',
28
+ },
29
+ demo: {
30
+ public: 'wss://wspap.okx.com:8443/ws/v5/public',
31
+ private: 'wss://wspap.okx.com:8443/ws/v5/private',
32
+ business: 'wss://wspap.okx.com:8443/ws/v5/business?brokerId=9999',
33
+ },
34
+ },
35
+ // Exactly the same as "prod"
36
+ // also known as "www.okx.com", the default: https://www.okx.com/docs-v5/en/#overview-production-trading-services
37
+ GLOBAL: {
38
+ live: {
39
+ public: 'wss://ws.okx.com:8443/ws/v5/public',
40
+ private: 'wss://ws.okx.com:8443/ws/v5/private',
41
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
42
+ business: 'wss://ws.okx.com:8443/ws/v5/business',
43
+ },
44
+ demo: {
45
+ public: 'wss://wspap.okx.com:8443/ws/v5/public',
46
+ private: 'wss://wspap.okx.com:8443/ws/v5/private',
47
+ business: 'wss://wspap.okx.com:8443/ws/v5/business?brokerId=9999',
48
+ },
49
+ },
50
+ // also known as "my.okx.com" https://my.okx.com/docs-v5/en/#overview-production-trading-services
51
+ EEA: {
52
+ live: {
53
+ public: 'wss://wseea.okx.com:8443/ws/v5/public',
54
+ private: 'wss://wseea.okx.com:8443/ws/v5/private',
55
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
56
+ business: 'wss://wseea.okx.com:8443/ws/v5/business',
57
+ },
58
+ demo: {
59
+ public: 'wss://wseeapap.okx.com:8443/ws/v5/public',
60
+ private: 'wss://wseeapap.okx.com:8443/ws/v5/private',
61
+ business: 'wss://wseeapap.okx.com:8443/ws/v5/business?brokerId=9999',
62
+ },
63
+ },
64
+ // also known as "app.okx.com" https://app.okx.com/docs-v5/en/#overview-production-trading-services
65
+ US: {
66
+ live: {
67
+ public: 'wss://wsus.okx.com:8443/ws/v5/public',
68
+ private: 'wss://wsus.okx.com:8443/ws/v5/private',
69
+ // Some channels require business suffix: https://www.okx.com/help/changes-to-v5-api-websocket-subscription-parameter-and-url
70
+ business: 'wss://wsus.okx.com:8443/ws/v5/business',
71
+ },
72
+ demo: {
73
+ public: 'wss://wsuspap.okx.com:8443/ws/v5/public',
74
+ private: 'wss://wsuspap.okx.com:8443/ws/v5/private',
75
+ business: 'wss://wsuspap.okx.com:8443/ws/v5/business?brokerId=9999',
76
+ },
77
+ },
78
+ };
79
+ exports.WS_KEY_MAP = {
80
+ // OKX Global: https://www.okx.com/docs-v5/en/#overview-production-trading-services
81
+ /**
82
+ * Public WS connection for OKX Global (www.okx.com), does not require auth.
83
+ */
84
+ prodPublic: 'prodPublic',
85
+ /**
86
+ * Private WS connection for OKX Global (www.okx.com), requires auth.
87
+ */
88
+ prodPrivate: 'prodPrivate',
89
+ /**
90
+ * Business WS connection for OKX Global (www.okx.com), sometimes requires auth.
91
+ */
92
+ prodBusiness: 'prodBusiness',
93
+ /**
94
+ * Public DEMO WS connection for OKX Global (www.okx.com), does not require auth.
95
+ */
96
+ prodDemoPublic: 'prodDemoPublic',
97
+ /**
98
+ * Private DEMO WS connection for OKX Global (www.okx.com), requires auth.
99
+ */
100
+ prodDemoPrivate: 'prodDemoPrivate',
101
+ /**
102
+ * Business DEMO WS connection for OKX Global (www.okx.com), sometimes requires auth.
103
+ */
104
+ prodDemoBusiness: 'prodDemoBusiness',
105
+ // Also known as "my.okx.com" https://my.okx.com/docs-v5/en/#overview-production-trading-services
106
+ /**
107
+ * Public WS connection for OKX EEA (my.okx.com), does not require auth.
108
+ */
109
+ eeaLivePublic: 'eeaLivePublic',
110
+ /**
111
+ * Private WS connection for OKX EEA (my.okx.com), requires auth.
112
+ */
113
+ eeaLivePrivate: 'eeaLivePrivate',
114
+ /**
115
+ * Business WS connection for OKX EEA (my.okx.com), sometimes requires auth.
116
+ */
117
+ eeaLiveBusiness: 'eeaLiveBusiness',
118
+ /**
119
+ * Public DEMO WS connection for OKX EEA (my.okx.com), does not require auth.
120
+ */
121
+ eeaDemoPublic: 'eeaDemoPublic',
122
+ /**
123
+ * Private DEMO WS connection for OKX EEA (my.okx.com), requires auth.
124
+ */
125
+ eeaDemoPrivate: 'eeaDemoPrivate',
126
+ /**
127
+ * Business DEMO WS connection for OKX EEA (my.okx.com), sometimes requires auth.
128
+ */
129
+ eeaDemoBusiness: 'eeaDemoBusiness',
130
+ // Also known as "app.okx.com" https://app.okx.com/docs-v5/en/#overview-production-trading-services
131
+ /**
132
+ * Public WS connection for OKX US (app.okx.com), does not require auth.
133
+ */
134
+ usLivePublic: 'usLivePublic',
135
+ /**
136
+ * Private WS connection for OKX US (app.okx.com), requires auth.
137
+ */
138
+ usLivePrivate: 'usLivePrivate',
139
+ /**
140
+ * Business WS connection for OKX US (app.okx.com), sometimes requires auth.
141
+ */
142
+ usLiveBusiness: 'usLiveBusiness',
143
+ usDemoPublic: 'usDemoPublic',
144
+ usDemoPrivate: 'usDemoPrivate',
145
+ usDemoBusiness: 'usDemoBusiness',
146
+ };
147
+ exports.PRIVATE_WS_KEYS = [
148
+ exports.WS_KEY_MAP.prodPrivate,
149
+ exports.WS_KEY_MAP.prodBusiness,
150
+ exports.WS_KEY_MAP.prodDemoPrivate,
151
+ exports.WS_KEY_MAP.prodDemoBusiness,
152
+ exports.WS_KEY_MAP.eeaLivePrivate,
153
+ exports.WS_KEY_MAP.eeaLiveBusiness,
154
+ exports.WS_KEY_MAP.eeaDemoPrivate,
155
+ exports.WS_KEY_MAP.eeaDemoBusiness,
156
+ exports.WS_KEY_MAP.usLivePrivate,
157
+ exports.WS_KEY_MAP.usLiveBusiness,
158
+ exports.WS_KEY_MAP.usDemoPrivate,
159
+ exports.WS_KEY_MAP.usDemoBusiness,
160
+ ];
161
+ exports.PUBLIC_WS_KEYS = [
162
+ exports.WS_KEY_MAP.prodPublic,
163
+ exports.WS_KEY_MAP.prodDemoPublic,
164
+ exports.WS_KEY_MAP.eeaLivePublic,
165
+ exports.WS_KEY_MAP.eeaDemoPublic,
166
+ exports.WS_KEY_MAP.usLivePublic,
167
+ exports.WS_KEY_MAP.usDemoPublic,
168
+ ];
169
+ /**
170
+ * Returns the DEMO connection WsKey for the provided WsKey
171
+ */
172
+ function getDemoWsKey(wsKey) {
173
+ switch (wsKey) {
174
+ case exports.WS_KEY_MAP.prodDemoPublic:
175
+ case exports.WS_KEY_MAP.prodDemoPrivate:
176
+ case exports.WS_KEY_MAP.prodDemoBusiness:
177
+ case exports.WS_KEY_MAP.eeaDemoPublic:
178
+ case exports.WS_KEY_MAP.eeaDemoPrivate:
179
+ case exports.WS_KEY_MAP.eeaDemoBusiness:
180
+ case exports.WS_KEY_MAP.usDemoPublic:
181
+ case exports.WS_KEY_MAP.usDemoPrivate:
182
+ case exports.WS_KEY_MAP.usDemoBusiness: {
183
+ return wsKey;
184
+ }
185
+ case exports.WS_KEY_MAP.prodPublic:
186
+ return exports.WS_KEY_MAP.prodDemoPublic;
187
+ case exports.WS_KEY_MAP.prodPrivate:
188
+ return exports.WS_KEY_MAP.prodDemoBusiness;
189
+ case exports.WS_KEY_MAP.prodBusiness:
190
+ return exports.WS_KEY_MAP.prodDemoBusiness;
191
+ case exports.WS_KEY_MAP.eeaLivePublic:
192
+ return exports.WS_KEY_MAP.eeaDemoPublic;
193
+ case exports.WS_KEY_MAP.eeaLivePrivate:
194
+ return exports.WS_KEY_MAP.eeaDemoPrivate;
195
+ case exports.WS_KEY_MAP.eeaLiveBusiness:
196
+ return exports.WS_KEY_MAP.eeaDemoBusiness;
197
+ case exports.WS_KEY_MAP.usLivePublic:
198
+ return exports.WS_KEY_MAP.usDemoPublic;
199
+ case exports.WS_KEY_MAP.usLivePrivate:
200
+ return exports.WS_KEY_MAP.usDemoPrivate;
201
+ case exports.WS_KEY_MAP.usLiveBusiness:
202
+ return exports.WS_KEY_MAP.usDemoBusiness;
203
+ default:
204
+ throw (0, typeGuards_js_1.neverGuard)(wsKey, `Unhandled wsKey "${wsKey}"`);
205
+ }
206
+ }
207
+ /** Used to automatically determine if a sub request should be to the public or private ws (when there's two) */
208
+ const PRIVATE_CHANNELS = [
209
+ 'account',
210
+ 'positions',
211
+ 'balance_and_position',
212
+ 'orders',
213
+ 'orders-algo',
214
+ 'algo-advance',
215
+ 'liquidation-warning',
216
+ 'account-greeks',
217
+ 'grid-orders-spot',
218
+ 'grid-orders-contract',
219
+ 'grid-orders-moon',
220
+ 'grid-positions',
221
+ 'grid-sub-orders',
222
+ ];
223
+ /**
224
+ * The following channels only support the new business wss endpoint:
225
+ * https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url
226
+ */
227
+ const BUSINESS_CHANNELS = [
228
+ 'orders-algo',
229
+ 'algo-advance',
230
+ 'deposit-info',
231
+ 'withdrawal-info',
232
+ 'grid-orders-spot',
233
+ 'grid-orders-contract',
234
+ 'grid-orders-moon',
235
+ 'grid-positions',
236
+ 'grid-sub-orders',
237
+ 'algo-recurring-buy',
238
+ 'candle1Y',
239
+ 'candle6M',
240
+ 'candle3M',
241
+ 'candle1M',
242
+ 'candle1W',
243
+ 'candle1D',
244
+ 'candle2D',
245
+ 'candle3D',
246
+ 'candle5D',
247
+ 'candle12H',
248
+ 'candle6H',
249
+ 'candle4H',
250
+ 'candle2H',
251
+ 'candle1H',
252
+ 'candle30m',
253
+ 'candle15m',
254
+ 'candle5m',
255
+ 'candle3m',
256
+ 'candle1m',
257
+ 'candle1s',
258
+ 'candle1Yutc',
259
+ 'candle3Mutc',
260
+ 'candle1Mutc',
261
+ 'candle1Wutc',
262
+ 'candle1Dutc',
263
+ 'candle2Dutc',
264
+ 'candle3Dutc',
265
+ 'candle5Dutc',
266
+ 'candle12Hutc',
267
+ 'candle6Hutc',
268
+ 'mark-price-candle1Y',
269
+ 'mark-price-candle6M',
270
+ 'mark-price-candle3M',
271
+ 'mark-price-candle1M',
272
+ 'mark-price-candle1W',
273
+ 'mark-price-candle1D',
274
+ 'mark-price-candle2D',
275
+ 'mark-price-candle3D',
276
+ 'mark-price-candle5D',
277
+ 'mark-price-candle12H',
278
+ 'mark-price-candle6H',
279
+ 'mark-price-candle4H',
280
+ 'mark-price-candle2H',
281
+ 'mark-price-candle1H',
282
+ 'mark-price-candle30m',
283
+ 'mark-price-candle15m',
284
+ 'mark-price-candle5m',
285
+ 'mark-price-candle3m',
286
+ 'mark-price-candle1m',
287
+ 'mark-price-candle1Yutc',
288
+ 'mark-price-candle3Mutc',
289
+ 'mark-price-candle1Mutc',
290
+ 'mark-price-candle1Wutc',
291
+ 'mark-price-candle1Dutc',
292
+ 'mark-price-candle2Dutc',
293
+ 'mark-price-candle3Dutc',
294
+ 'mark-price-candle5Dutc',
295
+ 'mark-price-candle12Hutc',
296
+ 'mark-price-candle6Hutc',
297
+ 'index-candle1Y',
298
+ 'index-candle6M',
299
+ 'index-candle3M',
300
+ 'index-candle1M',
301
+ 'index-candle1W',
302
+ 'index-candle1D',
303
+ 'index-candle2D',
304
+ 'index-candle3D',
305
+ 'index-candle5D',
306
+ 'index-candle12H',
307
+ 'index-candle6H',
308
+ 'index-candle4H index -candle2H',
309
+ 'index-candle1H',
310
+ 'index-candle30m',
311
+ 'index-candle15m',
312
+ 'index-candle5m',
313
+ 'index-candle3m',
314
+ 'index-candle1m',
315
+ 'index-candle1Yutc',
316
+ 'index-candle3Mutc',
317
+ 'index-candle1Mutc',
318
+ 'index-candle1Wutc',
319
+ 'index-candle1Dutc',
320
+ 'index-candle2Dutc',
321
+ 'index-candle3Dutc',
322
+ 'index-candle5Dutc',
323
+ 'index-candle12Hutc',
324
+ 'index-candle6Hutc',
325
+ ];
326
+ /** Determine which WsKey (ws connection) to route an event to */
327
+ function getWsKeyForTopicChannel(market, channel, isPrivate) {
328
+ const isPrivateTopic = isPrivate === true || PRIVATE_CHANNELS.includes(channel);
329
+ const isBusinessChannel = BUSINESS_CHANNELS.includes(channel);
330
+ return getWsKeyForMarket(market, isPrivateTopic, isBusinessChannel);
331
+ }
332
+ /**
333
+ * Returns wsKey for product group. Demo resolution is handled in URL lookup function, separately.
334
+ */
335
+ function getWsKeyForMarket(market, isPrivate, isBusinessChannel) {
336
+ switch (market) {
337
+ case 'prod':
338
+ case 'GLOBAL': {
339
+ if (isBusinessChannel) {
340
+ return exports.WS_KEY_MAP.prodBusiness;
341
+ }
342
+ return isPrivate ? exports.WS_KEY_MAP.prodPrivate : exports.WS_KEY_MAP.prodPublic;
343
+ }
344
+ case 'EEA': {
345
+ if (isBusinessChannel) {
346
+ return exports.WS_KEY_MAP.eeaLiveBusiness;
347
+ }
348
+ return isPrivate ? exports.WS_KEY_MAP.eeaLivePrivate : exports.WS_KEY_MAP.eeaLivePublic;
349
+ }
350
+ case 'US': {
351
+ if (isBusinessChannel) {
352
+ return exports.WS_KEY_MAP.usLiveBusiness;
353
+ }
354
+ return isPrivate ? exports.WS_KEY_MAP.usLivePrivate : exports.WS_KEY_MAP.usLivePublic;
355
+ }
356
+ default: {
357
+ throw (0, typeGuards_js_1.neverGuard)(market, `getWsKeyForTopic(): Unhandled market "${market}"`);
358
+ }
359
+ }
360
+ }
361
+ function requiresWSAPITag(operation, wsKey) {
362
+ switch (wsKey) {
363
+ case exports.WS_KEY_MAP.prodPublic:
364
+ case exports.WS_KEY_MAP.prodDemoPublic:
365
+ case exports.WS_KEY_MAP.eeaLivePublic:
366
+ case exports.WS_KEY_MAP.eeaDemoPublic:
367
+ case exports.WS_KEY_MAP.usLivePublic:
368
+ case exports.WS_KEY_MAP.usDemoPublic:
369
+ return false;
370
+ case exports.WS_KEY_MAP.prodDemoPrivate:
371
+ case exports.WS_KEY_MAP.prodDemoBusiness:
372
+ case exports.WS_KEY_MAP.eeaDemoPrivate:
373
+ case exports.WS_KEY_MAP.eeaDemoBusiness:
374
+ case exports.WS_KEY_MAP.usDemoPrivate:
375
+ case exports.WS_KEY_MAP.usDemoBusiness:
376
+ case exports.WS_KEY_MAP.prodPrivate:
377
+ case exports.WS_KEY_MAP.prodBusiness:
378
+ case exports.WS_KEY_MAP.eeaLivePrivate:
379
+ case exports.WS_KEY_MAP.eeaLiveBusiness:
380
+ case exports.WS_KEY_MAP.usLivePrivate:
381
+ case exports.WS_KEY_MAP.usLiveBusiness:
382
+ return ws_api_js_1.WS_API_TAG_OPERATIONS.includes(operation);
383
+ default: {
384
+ throw (0, typeGuards_js_1.neverGuard)(wsKey, `Unhandled WsKey "${wsKey}"`);
385
+ }
386
+ }
387
+ }
388
+ function validateWSAPITag(request, wsKey) {
389
+ if (!requiresWSAPITag(request.op, wsKey)) {
390
+ return;
391
+ }
392
+ for (let i = 0; i < request.args.length; i++) {
393
+ request.args[i]['tag'] = requestUtils_js_1.programId;
394
+ }
395
+ }
396
+ /**
397
+ * Maps a WS key back to a WS URL. Resolves to demo wsKey automatically, if configured.
398
+ */
399
+ function getWsUrlForWsKey(wsKey, wsClientOptions, logger) {
400
+ if (wsClientOptions.wsUrl) {
401
+ return wsClientOptions.wsUrl;
402
+ }
403
+ const isDemoTrading = !!wsClientOptions?.demoTrading;
404
+ const LIVE_OR_DEMO = isDemoTrading ? 'demo' : 'live';
405
+ switch (wsKey) {
406
+ // Global (www.okx.com)
407
+ case 'prodPublic':
408
+ case 'prodDemoPublic':
409
+ return exports.WS_BASE_URL_MAP.GLOBAL[LIVE_OR_DEMO].public;
410
+ case 'prodPrivate':
411
+ case 'prodDemoPrivate':
412
+ return exports.WS_BASE_URL_MAP.GLOBAL[LIVE_OR_DEMO].private;
413
+ case 'prodBusiness':
414
+ case 'prodDemoBusiness':
415
+ return exports.WS_BASE_URL_MAP.GLOBAL[LIVE_OR_DEMO].business;
416
+ // EEA (my.okx.com)
417
+ case 'eeaLivePublic':
418
+ case 'eeaDemoPublic':
419
+ return exports.WS_BASE_URL_MAP.EEA[LIVE_OR_DEMO].public;
420
+ case 'eeaLivePrivate':
421
+ case 'eeaDemoPrivate':
422
+ return exports.WS_BASE_URL_MAP.EEA[LIVE_OR_DEMO].private;
423
+ case 'eeaLiveBusiness':
424
+ case 'eeaDemoBusiness':
425
+ return exports.WS_BASE_URL_MAP.EEA[LIVE_OR_DEMO].business;
426
+ // US (app.okx.com)
427
+ case 'usLivePublic':
428
+ case 'usDemoPublic':
429
+ return exports.WS_BASE_URL_MAP.US[LIVE_OR_DEMO].public;
430
+ case 'usLivePrivate':
431
+ case 'usDemoPrivate':
432
+ return exports.WS_BASE_URL_MAP.US[LIVE_OR_DEMO].private;
433
+ case 'usLiveBusiness':
434
+ case 'usDemoBusiness':
435
+ return exports.WS_BASE_URL_MAP.US[LIVE_OR_DEMO].business;
436
+ default: {
437
+ const errorMessage = 'getWsUrl(): Unhandled wsKey: ';
438
+ logger.error(errorMessage, {
439
+ category: 'okx-ws',
440
+ wsKey,
441
+ });
442
+ throw (0, typeGuards_js_1.neverGuard)(wsKey, errorMessage);
443
+ }
444
+ }
445
+ }
446
+ function getMaxTopicsPerSubscribeEventForMarket(market) {
447
+ switch (market) {
448
+ case 'prod':
449
+ case 'EEA':
450
+ case 'GLOBAL':
451
+ case 'US': {
452
+ return null;
453
+ }
454
+ default: {
455
+ throw (0, typeGuards_js_1.neverGuard)(market, 'getWsKeyForTopic(): Unhandled market');
456
+ }
457
+ }
458
+ }
459
+ function isWsPong(event) {
460
+ return (typeof event === 'object' &&
461
+ !!event &&
462
+ 'data' in event &&
463
+ typeof event['data'] === 'string' &&
464
+ event['data'] === 'pong');
465
+ }
466
+ exports.WS_EVENT_CODE_ENUM = {
467
+ OK: '0',
468
+ LOGIN_FAILED: '60009',
469
+ LOGIN_PARTIALLY_FAILED: '60022',
470
+ };
471
+ /**
472
+ * #305: ws.terminate() is undefined in browsers.
473
+ * This only works in node.js, not in browsers.
474
+ * Does nothing if `ws` is undefined. Does nothing in browsers.
475
+ */
476
+ function safeTerminateWs(ws, fallbackToClose) {
477
+ if (!ws) {
478
+ return false;
479
+ }
480
+ if (typeof ws['terminate'] === 'function') {
481
+ ws.terminate();
482
+ return true;
483
+ }
484
+ else if (fallbackToClose) {
485
+ ws.close();
486
+ }
487
+ return false;
488
+ }
489
+ /**
490
+ * Users can conveniently pass topics as strings or objects (object has topic name + optional params).
491
+ *
492
+ * This method normalises topics into objects (object has topic name + optional params).
493
+ */
494
+ function getNormalisedTopicRequests(wsTopicRequests) {
495
+ const normalisedTopicRequests = [];
496
+ for (const wsTopicRequest of wsTopicRequests) {
497
+ // passed as string, convert to object
498
+ if (typeof wsTopicRequest === 'string') {
499
+ const topicRequest = {
500
+ topic: wsTopicRequest,
501
+ payload: undefined,
502
+ };
503
+ normalisedTopicRequests.push(topicRequest);
504
+ continue;
505
+ }
506
+ // already a normalised object, thanks to user
507
+ normalisedTopicRequests.push(wsTopicRequest);
508
+ }
509
+ return normalisedTopicRequests;
510
+ }
511
+ /**
512
+ * WebSocket.ping() is not available in browsers. This is a simple check used to
513
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
514
+ */
515
+ function isWSPingFrameAvailable() {
516
+ return typeof WebSocket.prototype['ping'] === 'function';
517
+ }
518
+ /**
519
+ * WebSocket.pong() is not available in browsers. This is a simple check used to
520
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
521
+ */
522
+ function isWSPongFrameAvailable() {
523
+ return typeof WebSocket.prototype['pong'] === 'function';
524
+ }
525
+ /**
526
+ * WS API promises are stored using a primary key. This key is constructed using
527
+ * properties found in every request & reply.
528
+ */
529
+ function getPromiseRefForWSAPIRequest(requestEvent) {
530
+ const promiseRef = [requestEvent.id, requestEvent.op].join('_');
531
+ return promiseRef;
532
+ }
533
+ //# sourceMappingURL=websocket-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-util.js","sourceRoot":"","sources":["../../../src/util/websocket-util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { OrderIdRequest } from './types/rest/request/trade.js';
2
+ import { OrderResult } from './types/rest/response/private-trade.js';
3
+ import { WSAPIResponse } from './types/websockets/ws-api.js';
4
+ import { WSAPIAmendOrderRequestV5, WSAPIAmendSpreadOrderRequestV5, WSAPICancelSpreadOrderRequestV5, WSAPIMassCancelOrdersRequestV5, WSAPIPlaceOrderRequestV5, WSAPIPlaceSpreadOrderRequestV5, WSAPISpreadMassCancelOrdersRequestV5 } from './types/websockets/ws-api-request.js';
5
+ import { WSAPICancelOrderResultV5, WSAPISpreadAmendOrderResultV5, WSAPISpreadCancelOrderResultV5, WSAPISpreadPlaceOrderResultV5 } from './types/websockets/ws-api-response.js';
6
+ import { WSClientConfigurableOptions } from './types/websockets/ws-general.js';
7
+ import { DefaultLogger } from './util/logger.js';
8
+ import { WebsocketClient } from './websocket-client.js';
9
+ /**
10
+ * Configurable options specific to only the REST-like WebsocketAPIClient
11
+ */
12
+ export interface WSAPIClientConfigurableOptions {
13
+ /**
14
+ * Default: true
15
+ *
16
+ * Attach default event listeners, which will console log any high level
17
+ * events (opened/reconnecting/reconnected/etc).
18
+ *
19
+ * If you disable this, you should set your own event listeners
20
+ * on the embedded WS Client `wsApiClient.getWSClient().on(....)`.
21
+ */
22
+ attachEventListeners: boolean;
23
+ }
24
+ /**
25
+ * This is a minimal Websocket API wrapper around the WebsocketClient. It allows you to use the WebSocket API in a promise-driven way, send a request and await the response.
26
+ *
27
+ * Note: You can also directly use the sendWSAPIRequest() method to make WS API calls, but some
28
+ * may find the below methods slightly more intuitive.
29
+ *
30
+ * Refer to the WS API promises example for a more detailed example on using sendWSAPIRequest() directly:
31
+ * https://github.com/tiagosiebler/okx-api/blob/master/examples/ws-api-trade-raw.ts
32
+ */
33
+ export declare class WebsocketAPIClient {
34
+ private wsClient;
35
+ private options;
36
+ constructor(options?: WSClientConfigurableOptions & Partial<WSAPIClientConfigurableOptions>, logger?: DefaultLogger);
37
+ getWSClient(): WebsocketClient;
38
+ setTimeOffsetMs(newOffset: number): void;
39
+ /**
40
+ *
41
+ *
42
+ * OKX WebSocket API Methods
43
+ *
44
+ *
45
+ */
46
+ /**
47
+ * Submit a new order
48
+ *
49
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-place-order
50
+ */
51
+ submitNewOrder(params: WSAPIPlaceOrderRequestV5): Promise<WSAPIResponse<[OrderResult], 'order'>>;
52
+ /**
53
+ * Submit multiple orders in a batch
54
+ *
55
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-place-multiple-orders
56
+ */
57
+ submitMultipleOrders(params: WSAPIPlaceOrderRequestV5[]): Promise<WSAPIResponse<OrderResult[], 'batch-orders'>>;
58
+ /**
59
+ * Cancel a single order
60
+ *
61
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-cancel-order
62
+ */
63
+ cancelOrder(params: OrderIdRequest): Promise<WSAPIResponse<[WSAPICancelOrderResultV5], 'cancel-order'>>;
64
+ /**
65
+ * Cancel multiple orders
66
+ *
67
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-cancel-multiple-orders
68
+ */
69
+ cancelMultipleOrders(params: OrderIdRequest[]): Promise<WSAPIResponse<WSAPICancelOrderResultV5[], 'batch-cancel-orders'>>;
70
+ /**
71
+ * Amend a single order
72
+ *
73
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-amend-order
74
+ */
75
+ amendOrder(params: WSAPIAmendOrderRequestV5): Promise<WSAPIResponse<[OrderResult], 'amend-order'>>;
76
+ /**
77
+ * Amend multiple orders
78
+ *
79
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-amend-multiple-orders
80
+ */
81
+ amendMultipleOrders(params: WSAPIAmendOrderRequestV5[]): Promise<WSAPIResponse<[OrderResult], 'batch-amend-orders'>>;
82
+ /**
83
+ * Mass cancel orders
84
+ *
85
+ * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-mass-cancel-order
86
+ */
87
+ massCancelOrders(params: WSAPIMassCancelOrdersRequestV5): Promise<WSAPIResponse<[{
88
+ result: boolean;
89
+ }], 'mass-cancel'>>;
90
+ /**
91
+ * Submit a new spread order
92
+ *
93
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-place-order
94
+ */
95
+ submitSpreadOrder(params: WSAPIPlaceSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadPlaceOrderResultV5], 'sprd-order'>>;
96
+ /**
97
+ * Amend a spread order
98
+ *
99
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-amend-order
100
+ */
101
+ amendSpreadOrder(params: WSAPIAmendSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadAmendOrderResultV5], 'sprd-amend-order'>>;
102
+ /**
103
+ * Cancel a spread order
104
+ *
105
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-cancel-order
106
+ */
107
+ cancelSpreadOrder(params: WSAPICancelSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadCancelOrderResultV5], 'sprd-cancel-order'>>;
108
+ /**
109
+ * Mass cancel spread orders
110
+ *
111
+ * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-cancel-all-orders
112
+ */
113
+ massCancelSpreadOrders(params: WSAPISpreadMassCancelOrdersRequestV5): Promise<WSAPIResponse<[{
114
+ result: boolean;
115
+ }], 'sprd-mass-cancel'>>;
116
+ /**
117
+ *
118
+ *
119
+ *
120
+ *
121
+ *
122
+ *
123
+ *
124
+ * Private methods for handling some of the convenience/automation provided by the WS API Client
125
+ *
126
+ *
127
+ *
128
+ *
129
+ *
130
+ *
131
+ *
132
+ */
133
+ connectWSAPI(): Promise<unknown[]>;
134
+ private setupDefaultEventListeners;
135
+ }