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
@@ -9,6 +9,7 @@ exports.isWsSubscribeEvent = isWsSubscribeEvent;
9
9
  exports.isWsUnsubscribeEvent = isWsUnsubscribeEvent;
10
10
  exports.isConnCountEvent = isConnCountEvent;
11
11
  exports.neverGuard = neverGuard;
12
+ exports.isWSAPIResponse = isWSAPIResponse;
12
13
  function isRawAPIResponse(response) {
13
14
  if (typeof response !== 'object' || !response) {
14
15
  return false;
@@ -60,4 +61,37 @@ function isConnCountEvent(evtData) {
60
61
  function neverGuard(x, msg) {
61
62
  return new Error(`Unhandled value exception "${x}", ${msg}`);
62
63
  }
64
+ function isWSAPIResponse(msg) {
65
+ if (typeof msg !== 'object' || !msg) {
66
+ return false;
67
+ }
68
+ const response = msg;
69
+ /**
70
+ * Very simple type guard around this structure. Could also just check the "op" is a known WS API operation, but this might be slightly faster as the list of operations grows:
71
+ {
72
+ id: '2',
73
+ op: 'order',
74
+ code: '1',
75
+ msg: '',
76
+ data: [
77
+ {
78
+ tag: '159881cb7207BCDE',
79
+ ts: '1753783406701',
80
+ ordId: '',
81
+ clOrdId: '',
82
+ sCode: 'asdfasfsafdasf',
83
+ sMsg: 'adsfadsfasdf'
84
+ }
85
+ ],
86
+ inTime: '1753783406701275',
87
+ outTime: '1753783406702251',
88
+ wsKey: 'prodPrivate',
89
+ isWSAPIResponse: false
90
+ }
91
+ */
92
+ if (typeof response.id !== 'string' || typeof response.inTime !== 'string') {
93
+ return false;
94
+ }
95
+ return true;
96
+ }
63
97
  //# sourceMappingURL=typeGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../../src/util/typeGuards.ts"],"names":[],"mappings":";;AAQA,4CAYC;AAGD,8BAUC;AAED,sCASC;AAED,wCAEC;AAGD,wCAEC;AAGD,gDAEC;AAGD,oDAEC;AAGD,4CAEC;AAGD,gCAEC;AAED,0CAoCC;AAvGD,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;AAED,SAAgB,eAAe,CAC7B,GAAY;IAEZ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,GAAoB,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type SignEncodeMethod = 'hex' | 'base64';
2
+ export type SignAlgorithm = 'SHA-256' | 'SHA-512';
3
+ /**
4
+ * Similar to node crypto's `createHash()` function
5
+ */
6
+ type KeyType = 'HMAC' | 'RSASSA-PKCS1-v1_5' | 'Ed25519';
7
+ export declare function getSignKeyType(secret: string): KeyType;
8
+ /**
9
+ * Sign a message, with a secret, using the Web Crypto API
10
+ *
11
+ * Ed25519 is stable as of v23.5.0, but also not available in all browsers
12
+ */
13
+ export declare function signMessage(message: string, secret: string, method: SignEncodeMethod, algorithm: SignAlgorithm, _pemEncodeMethod?: SignEncodeMethod): Promise<string>;
14
+ export declare function checkWebCryptoAPISupported(): void;
15
+ export {};
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getSignKeyType = getSignKeyType;
5
+ exports.signMessage = signMessage;
6
+ exports.checkWebCryptoAPISupported = checkWebCryptoAPISupported;
7
+ const typeGuards_js_1 = require("./typeGuards.js");
8
+ function bufferToB64(buffer) {
9
+ let binary = '';
10
+ const bytes = new Uint8Array(buffer);
11
+ const len = bytes.byteLength;
12
+ for (let i = 0; i < len; i++) {
13
+ binary += String.fromCharCode(bytes[i]);
14
+ }
15
+ return globalThis.btoa(binary);
16
+ }
17
+ function getSignKeyType(secret) {
18
+ if (secret.includes('PRIVATE KEY')) {
19
+ // Sometimes, not always, RSA keys include "RSA" in the header. That's a definite RSA key.
20
+ if (secret.includes('RSA PRIVATE KEY')) {
21
+ return 'RSASSA-PKCS1-v1_5';
22
+ }
23
+ // RSA keys are significantly longer than Ed25519 keys. 150 accounts for length of header & footer
24
+ if (secret.length <= 150) {
25
+ return 'Ed25519';
26
+ }
27
+ return 'RSASSA-PKCS1-v1_5';
28
+ }
29
+ return 'HMAC';
30
+ }
31
+ async function importKey(pem, type, algorithm, encoder) {
32
+ switch (type) {
33
+ case 'Ed25519':
34
+ case 'RSASSA-PKCS1-v1_5': {
35
+ const base64Key = pem.replace(/(?:-----BEGIN RSA PRIVATE KEY-----|-----BEGIN PRIVATE KEY-----|-----END RSA PRIVATE KEY-----|-----END PRIVATE KEY-----|\s+)/g, '');
36
+ const binaryKey = Uint8Array.from(atob(base64Key), (c) => c.charCodeAt(0));
37
+ return globalThis.crypto.subtle.importKey('pkcs8', binaryKey.buffer, { name: type, hash: { name: algorithm } }, false, ['sign']);
38
+ }
39
+ case 'HMAC': {
40
+ return globalThis.crypto.subtle.importKey('raw', encoder.encode(pem), { name: type, hash: algorithm }, false, ['sign']);
41
+ }
42
+ default: {
43
+ throw (0, typeGuards_js_1.neverGuard)(type, `Unhandled key type: "${type}"`);
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Sign a message, with a secret, using the Web Crypto API
49
+ *
50
+ * Ed25519 is stable as of v23.5.0, but also not available in all browsers
51
+ */
52
+ async function signMessage(message, secret, method, algorithm, _pemEncodeMethod = method) {
53
+ const encoder = new TextEncoder();
54
+ const signKeyType = getSignKeyType(secret);
55
+ const key = await importKey(secret, signKeyType, algorithm, encoder);
56
+ const buffer = await globalThis.crypto.subtle.sign({ name: signKeyType }, key, encoder.encode(message));
57
+ switch (method) {
58
+ case 'hex': {
59
+ return Array.from(new Uint8Array(buffer))
60
+ .map((byte) => byte.toString(16).padStart(2, '0'))
61
+ .join('');
62
+ }
63
+ case 'base64': {
64
+ return bufferToB64(buffer);
65
+ }
66
+ default: {
67
+ throw (0, typeGuards_js_1.neverGuard)(method, `Unhandled sign method: "${method}"`);
68
+ }
69
+ }
70
+ }
71
+ function checkWebCryptoAPISupported() {
72
+ if (!globalThis.crypto) {
73
+ throw new Error(`Web Crypto API unavailable. Authentication will not work.
74
+
75
+ Are you using an old Node.js release? Refer to the current Node.js LTS version. Node.js v18 reached end of life in April 2025! You should be using Node LTS or newer (v22 or above)!
76
+
77
+ If you prefer to continue using an outdated Node.js version, check github for an example on using the node:crypto module for sign instead:
78
+ https://github.com/tiagosiebler/okx-api/blob/master/examples/fasterHmacSign.ts
79
+ `);
80
+ }
81
+ }
82
+ //# sourceMappingURL=webCryptoAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webCryptoAPI.js","sourceRoot":"","sources":["../../../src/util/webCryptoAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { APIMarket } from '../types/shared.js';
2
+ import { WSAPIOperation, WSAPIRequestOKX } from '../types/websockets/ws-api.js';
3
+ import { WebsocketClientOptions } from '../types/websockets/ws-general.js';
4
+ import { WsChannel } from '../types/websockets/ws-request.js';
5
+ import { DefaultLogger } from './logger.js';
6
+ export declare const WS_LOGGER_CATEGORY: {
7
+ category: string;
8
+ };
9
+ export declare const WS_BASE_URL_MAP: Record<APIMarket, Record<'live' | 'demo', Record<'public' | 'private' | 'business', string>>>;
10
+ export declare const WS_KEY_MAP: {
11
+ /**
12
+ * Public WS connection for OKX Global (www.okx.com), does not require auth.
13
+ */
14
+ readonly prodPublic: "prodPublic";
15
+ /**
16
+ * Private WS connection for OKX Global (www.okx.com), requires auth.
17
+ */
18
+ readonly prodPrivate: "prodPrivate";
19
+ /**
20
+ * Business WS connection for OKX Global (www.okx.com), sometimes requires auth.
21
+ */
22
+ readonly prodBusiness: "prodBusiness";
23
+ /**
24
+ * Public DEMO WS connection for OKX Global (www.okx.com), does not require auth.
25
+ */
26
+ readonly prodDemoPublic: "prodDemoPublic";
27
+ /**
28
+ * Private DEMO WS connection for OKX Global (www.okx.com), requires auth.
29
+ */
30
+ readonly prodDemoPrivate: "prodDemoPrivate";
31
+ /**
32
+ * Business DEMO WS connection for OKX Global (www.okx.com), sometimes requires auth.
33
+ */
34
+ readonly prodDemoBusiness: "prodDemoBusiness";
35
+ /**
36
+ * Public WS connection for OKX EEA (my.okx.com), does not require auth.
37
+ */
38
+ readonly eeaLivePublic: "eeaLivePublic";
39
+ /**
40
+ * Private WS connection for OKX EEA (my.okx.com), requires auth.
41
+ */
42
+ readonly eeaLivePrivate: "eeaLivePrivate";
43
+ /**
44
+ * Business WS connection for OKX EEA (my.okx.com), sometimes requires auth.
45
+ */
46
+ readonly eeaLiveBusiness: "eeaLiveBusiness";
47
+ /**
48
+ * Public DEMO WS connection for OKX EEA (my.okx.com), does not require auth.
49
+ */
50
+ readonly eeaDemoPublic: "eeaDemoPublic";
51
+ /**
52
+ * Private DEMO WS connection for OKX EEA (my.okx.com), requires auth.
53
+ */
54
+ readonly eeaDemoPrivate: "eeaDemoPrivate";
55
+ /**
56
+ * Business DEMO WS connection for OKX EEA (my.okx.com), sometimes requires auth.
57
+ */
58
+ readonly eeaDemoBusiness: "eeaDemoBusiness";
59
+ /**
60
+ * Public WS connection for OKX US (app.okx.com), does not require auth.
61
+ */
62
+ readonly usLivePublic: "usLivePublic";
63
+ /**
64
+ * Private WS connection for OKX US (app.okx.com), requires auth.
65
+ */
66
+ readonly usLivePrivate: "usLivePrivate";
67
+ /**
68
+ * Business WS connection for OKX US (app.okx.com), sometimes requires auth.
69
+ */
70
+ readonly usLiveBusiness: "usLiveBusiness";
71
+ readonly usDemoPublic: "usDemoPublic";
72
+ readonly usDemoPrivate: "usDemoPrivate";
73
+ readonly usDemoBusiness: "usDemoBusiness";
74
+ };
75
+ /** This is used to differentiate between each of the available websocket streams (as bybit has multiple websockets) */
76
+ export type WsKey = (typeof WS_KEY_MAP)[keyof typeof WS_KEY_MAP];
77
+ export declare const PRIVATE_WS_KEYS: WsKey[];
78
+ export declare const PUBLIC_WS_KEYS: WsKey[];
79
+ /**
80
+ * Returns the DEMO connection WsKey for the provided WsKey
81
+ */
82
+ export declare function getDemoWsKey(wsKey: WsKey): WsKey;
83
+ /** Determine which WsKey (ws connection) to route an event to */
84
+ export declare function getWsKeyForTopicChannel(market: APIMarket, channel: WsChannel, isPrivate?: boolean): WsKey;
85
+ /**
86
+ * Returns wsKey for product group. Demo resolution is handled in URL lookup function, separately.
87
+ */
88
+ export declare function getWsKeyForMarket(market: APIMarket, isPrivate: boolean, isBusinessChannel: boolean): WsKey;
89
+ export declare function requiresWSAPITag(operation: WSAPIOperation, wsKey: WsKey): boolean;
90
+ export declare function validateWSAPITag(request: WSAPIRequestOKX<any>, wsKey: WsKey): void;
91
+ /**
92
+ * Maps a WS key back to a WS URL. Resolves to demo wsKey automatically, if configured.
93
+ */
94
+ export declare function getWsUrlForWsKey(wsKey: WsKey, wsClientOptions: WebsocketClientOptions, logger: typeof DefaultLogger): string;
95
+ export declare function getMaxTopicsPerSubscribeEventForMarket(market: APIMarket): number | null;
96
+ export declare function isWsPong(event: unknown): boolean;
97
+ export declare const WS_EVENT_CODE_ENUM: {
98
+ OK: string;
99
+ LOGIN_FAILED: string;
100
+ LOGIN_PARTIALLY_FAILED: string;
101
+ };
102
+ /**
103
+ * #305: ws.terminate() is undefined in browsers.
104
+ * This only works in node.js, not in browsers.
105
+ * Does nothing if `ws` is undefined. Does nothing in browsers.
106
+ */
107
+ export declare function safeTerminateWs(ws?: WebSocket | any, fallbackToClose?: boolean): boolean;
108
+ /**
109
+ * Normalised internal format for a request (subscribe/unsubscribe/etc) on a topic, with optional parameters.
110
+ *
111
+ * - Topic: the topic this event is for
112
+ * - Payload: the parameters to include, optional. E.g. auth requires key + sign. Some topics allow configurable parameters.
113
+ */
114
+ export interface WsTopicRequest<TWSTopic extends string = string, TWSPayload = unknown> {
115
+ topic: TWSTopic;
116
+ payload?: TWSPayload;
117
+ }
118
+ /**
119
+ * Conveniently allow users to request a topic either as string topics or objects (containing string topic + params)
120
+ */
121
+ export type WsTopicRequestOrStringTopic<TWSTopic extends string, TWSPayload = unknown> = WsTopicRequest<TWSTopic, TWSPayload> | string;
122
+ /**
123
+ * Users can conveniently pass topics as strings or objects (object has topic name + optional params).
124
+ *
125
+ * This method normalises topics into objects (object has topic name + optional params).
126
+ */
127
+ export declare function getNormalisedTopicRequests(wsTopicRequests: WsTopicRequestOrStringTopic<string>[]): WsTopicRequest<string>[];
128
+ /**
129
+ * WebSocket.ping() is not available in browsers. This is a simple check used to
130
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
131
+ */
132
+ export declare function isWSPingFrameAvailable(): boolean;
133
+ /**
134
+ * WebSocket.pong() is not available in browsers. This is a simple check used to
135
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
136
+ */
137
+ export declare function isWSPongFrameAvailable(): boolean;
138
+ /**
139
+ * WS API promises are stored using a primary key. This key is constructed using
140
+ * properties found in every request & reply.
141
+ */
142
+ export declare function getPromiseRefForWSAPIRequest(requestEvent: WSAPIRequestOKX<unknown>): string;