@lifi/perps-sdk 0.2.0-alpha.0 → 1.0.1

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 (908) hide show
  1. package/README.md +21 -47
  2. package/dist/cjs/client/PerpsClient.d.ts +27 -48
  3. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  4. package/dist/cjs/client/PerpsClient.js +119 -578
  5. package/dist/cjs/client/PerpsClient.js.map +1 -1
  6. package/dist/cjs/client/bindProvider.d.ts +3 -0
  7. package/dist/cjs/client/bindProvider.d.ts.map +1 -0
  8. package/dist/cjs/client/bindProvider.js +9 -0
  9. package/dist/cjs/client/bindProvider.js.map +1 -0
  10. package/dist/cjs/client/createPerpsClient.d.ts +7 -38
  11. package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
  12. package/dist/cjs/client/createPerpsClient.js +25 -8
  13. package/dist/cjs/client/createPerpsClient.js.map +1 -1
  14. package/dist/cjs/client/requireProvider.d.ts +3 -0
  15. package/dist/cjs/client/requireProvider.d.ts.map +1 -0
  16. package/dist/cjs/client/requireProvider.js +16 -0
  17. package/dist/cjs/client/requireProvider.js.map +1 -0
  18. package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
  19. package/dist/cjs/errors/PerpsError.js.map +1 -1
  20. package/dist/cjs/errors/constants.d.ts +2 -2
  21. package/dist/cjs/errors/constants.d.ts.map +1 -1
  22. package/dist/cjs/errors/constants.js +2 -2
  23. package/dist/cjs/errors/constants.js.map +1 -1
  24. package/dist/cjs/index.d.ts +41 -23
  25. package/dist/cjs/index.d.ts.map +1 -1
  26. package/dist/cjs/index.js +73 -41
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/registry/assetRegistry.d.ts +11 -0
  29. package/dist/cjs/registry/assetRegistry.d.ts.map +1 -0
  30. package/dist/cjs/registry/assetRegistry.js +39 -0
  31. package/dist/cjs/registry/assetRegistry.js.map +1 -0
  32. package/dist/cjs/registry/marketRegistry.d.ts +13 -0
  33. package/dist/cjs/registry/marketRegistry.d.ts.map +1 -0
  34. package/dist/cjs/registry/marketRegistry.js +58 -0
  35. package/dist/cjs/registry/marketRegistry.js.map +1 -0
  36. package/dist/cjs/registry/referenceDataRegistry.d.ts +20 -0
  37. package/dist/cjs/registry/referenceDataRegistry.d.ts.map +1 -0
  38. package/dist/cjs/registry/referenceDataRegistry.js +59 -0
  39. package/dist/cjs/registry/referenceDataRegistry.js.map +1 -0
  40. package/dist/cjs/services/createAction.d.ts +4 -2
  41. package/dist/cjs/services/createAction.d.ts.map +1 -1
  42. package/dist/cjs/services/createAction.js +1 -1
  43. package/dist/cjs/services/createAction.js.map +1 -1
  44. package/dist/cjs/services/executeAction.d.ts +4 -2
  45. package/dist/cjs/services/executeAction.d.ts.map +1 -1
  46. package/dist/cjs/services/executeAction.js +2 -1
  47. package/dist/cjs/services/executeAction.js.map +1 -1
  48. package/dist/cjs/services/getAccount.d.ts +4 -2
  49. package/dist/cjs/services/getAccount.d.ts.map +1 -1
  50. package/dist/cjs/services/getAccount.js +2 -6
  51. package/dist/cjs/services/getAccount.js.map +1 -1
  52. package/dist/cjs/services/getActivity.d.ts +4 -2
  53. package/dist/cjs/services/getActivity.d.ts.map +1 -1
  54. package/dist/cjs/services/getActivity.js +4 -10
  55. package/dist/cjs/services/getActivity.js.map +1 -1
  56. package/dist/cjs/services/getAssets.d.ts +2 -1
  57. package/dist/cjs/services/getAssets.d.ts.map +1 -1
  58. package/dist/cjs/services/getAssets.js +1 -1
  59. package/dist/cjs/services/getAssets.js.map +1 -1
  60. package/dist/cjs/services/getFills.d.ts +4 -2
  61. package/dist/cjs/services/getFills.d.ts.map +1 -1
  62. package/dist/cjs/services/getFills.js +3 -5
  63. package/dist/cjs/services/getFills.js.map +1 -1
  64. package/dist/cjs/services/getMarket.d.ts +9 -0
  65. package/dist/cjs/services/getMarket.d.ts.map +1 -0
  66. package/dist/cjs/services/getMarket.js +13 -0
  67. package/dist/cjs/services/getMarket.js.map +1 -0
  68. package/dist/cjs/services/getMarkets.d.ts +9 -0
  69. package/dist/cjs/services/getMarkets.d.ts.map +1 -0
  70. package/dist/cjs/services/{getAsset.js → getMarkets.js} +6 -5
  71. package/dist/cjs/services/getMarkets.js.map +1 -0
  72. package/dist/cjs/services/getMeta.d.ts +5 -0
  73. package/dist/cjs/services/getMeta.d.ts.map +1 -0
  74. package/dist/cjs/services/getMeta.js +8 -0
  75. package/dist/cjs/services/getMeta.js.map +1 -0
  76. package/dist/cjs/services/getOhlcv.d.ts +3 -2
  77. package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
  78. package/dist/cjs/services/getOhlcv.js +3 -2
  79. package/dist/cjs/services/getOhlcv.js.map +1 -1
  80. package/dist/cjs/services/getOrder.d.ts +4 -2
  81. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  82. package/dist/cjs/services/getOrder.js +2 -6
  83. package/dist/cjs/services/getOrder.js.map +1 -1
  84. package/dist/cjs/services/getOrderbook.d.ts +3 -2
  85. package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
  86. package/dist/cjs/services/getOrderbook.js +3 -2
  87. package/dist/cjs/services/getOrderbook.js.map +1 -1
  88. package/dist/cjs/services/getOrders.d.ts +5 -3
  89. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  90. package/dist/cjs/services/getOrders.js +6 -8
  91. package/dist/cjs/services/getOrders.js.map +1 -1
  92. package/dist/cjs/services/getPositions.d.ts +5 -3
  93. package/dist/cjs/services/getPositions.d.ts.map +1 -1
  94. package/dist/cjs/services/getPositions.js +6 -8
  95. package/dist/cjs/services/getPositions.js.map +1 -1
  96. package/dist/cjs/services/getPrices.d.ts +3 -2
  97. package/dist/cjs/services/getPrices.d.ts.map +1 -1
  98. package/dist/cjs/services/getPrices.js +2 -2
  99. package/dist/cjs/services/getPrices.js.map +1 -1
  100. package/dist/cjs/services/getProviders.d.ts +2 -1
  101. package/dist/cjs/services/getProviders.d.ts.map +1 -1
  102. package/dist/cjs/services/getProviders.js +1 -1
  103. package/dist/cjs/services/getProviders.js.map +1 -1
  104. package/dist/cjs/services/getQuote.d.ts +12 -0
  105. package/dist/cjs/services/getQuote.d.ts.map +1 -0
  106. package/dist/cjs/services/getQuote.js +13 -0
  107. package/dist/cjs/services/getQuote.js.map +1 -0
  108. package/dist/cjs/services/getTermsAcceptance.d.ts +6 -0
  109. package/dist/cjs/services/getTermsAcceptance.d.ts.map +1 -0
  110. package/dist/cjs/services/getTermsAcceptance.js +9 -0
  111. package/dist/cjs/services/getTermsAcceptance.js.map +1 -0
  112. package/dist/cjs/services/resolveQuote.d.ts +7 -0
  113. package/dist/cjs/services/resolveQuote.d.ts.map +1 -0
  114. package/dist/cjs/services/resolveQuote.js +50 -0
  115. package/dist/cjs/services/resolveQuote.js.map +1 -0
  116. package/dist/cjs/services/resolveSubscribeQuote.d.ts +6 -0
  117. package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -0
  118. package/dist/cjs/services/resolveSubscribeQuote.js +65 -0
  119. package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -0
  120. package/dist/cjs/storage/parseStoredRecord.d.ts +4 -0
  121. package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -0
  122. package/dist/cjs/storage/parseStoredRecord.js +26 -0
  123. package/dist/cjs/storage/parseStoredRecord.js.map +1 -0
  124. package/dist/cjs/storage/storage.d.ts.map +1 -0
  125. package/dist/cjs/storage/storage.js.map +1 -0
  126. package/dist/cjs/{agent → storage}/types.d.ts +0 -5
  127. package/dist/cjs/storage/types.d.ts.map +1 -0
  128. package/dist/cjs/{agent → storage}/types.js.map +1 -1
  129. package/dist/cjs/transport/fetchWithRetry.d.ts +8 -0
  130. package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -0
  131. package/dist/cjs/transport/fetchWithRetry.js +81 -0
  132. package/dist/cjs/transport/fetchWithRetry.js.map +1 -0
  133. package/dist/cjs/{utils → transport}/request.d.ts +3 -2
  134. package/dist/cjs/transport/request.d.ts.map +1 -0
  135. package/dist/cjs/{utils → transport}/request.js +14 -14
  136. package/dist/cjs/transport/request.js.map +1 -0
  137. package/dist/cjs/transport/retryPolicy.d.ts +37 -0
  138. package/dist/cjs/transport/retryPolicy.d.ts.map +1 -0
  139. package/dist/cjs/transport/retryPolicy.js +79 -0
  140. package/dist/cjs/transport/retryPolicy.js.map +1 -0
  141. package/dist/cjs/types/api.d.ts +85 -0
  142. package/dist/cjs/types/api.d.ts.map +1 -0
  143. package/dist/cjs/{realtime/lighter/types.js → types/api.js} +1 -1
  144. package/dist/cjs/types/api.js.map +1 -0
  145. package/dist/cjs/types/config.d.ts +26 -0
  146. package/dist/cjs/types/config.d.ts.map +1 -0
  147. package/dist/cjs/{realtime/types.js → types/config.js} +1 -1
  148. package/dist/cjs/types/config.js.map +1 -0
  149. package/dist/cjs/types/provider.d.ts +84 -0
  150. package/dist/cjs/types/provider.d.ts.map +1 -0
  151. package/dist/cjs/types/provider.js +3 -0
  152. package/dist/cjs/types/provider.js.map +1 -0
  153. package/dist/cjs/utils/accountSummary.d.ts +2 -8
  154. package/dist/cjs/utils/accountSummary.d.ts.map +1 -1
  155. package/dist/cjs/utils/accountSummary.js +12 -70
  156. package/dist/cjs/utils/accountSummary.js.map +1 -1
  157. package/dist/cjs/utils/assertNever.d.ts.map +1 -1
  158. package/dist/cjs/utils/assertNever.js.map +1 -1
  159. package/dist/cjs/utils/calculations.d.ts +36 -0
  160. package/dist/cjs/utils/calculations.d.ts.map +1 -1
  161. package/dist/cjs/utils/calculations.js +77 -0
  162. package/dist/cjs/utils/calculations.js.map +1 -1
  163. package/dist/cjs/utils/depositChain.d.ts +6 -0
  164. package/dist/cjs/utils/depositChain.d.ts.map +1 -0
  165. package/dist/cjs/utils/depositChain.js +13 -0
  166. package/dist/cjs/utils/depositChain.js.map +1 -0
  167. package/dist/cjs/utils/explorer.d.ts +9 -0
  168. package/dist/cjs/utils/explorer.d.ts.map +1 -0
  169. package/dist/cjs/utils/explorer.js +23 -0
  170. package/dist/cjs/utils/explorer.js.map +1 -0
  171. package/dist/cjs/utils/fillClassification.d.ts +3 -0
  172. package/dist/cjs/utils/fillClassification.d.ts.map +1 -0
  173. package/dist/cjs/utils/fillClassification.js +37 -0
  174. package/dist/cjs/utils/fillClassification.js.map +1 -0
  175. package/dist/cjs/utils/format.d.ts +13 -0
  176. package/dist/cjs/utils/format.d.ts.map +1 -0
  177. package/dist/cjs/utils/format.js +117 -0
  178. package/dist/cjs/utils/format.js.map +1 -0
  179. package/dist/cjs/utils/orderClassification.d.ts +3 -1
  180. package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
  181. package/dist/cjs/utils/orderClassification.js +11 -1
  182. package/dist/cjs/utils/orderClassification.js.map +1 -1
  183. package/dist/cjs/utils/orderMath.d.ts +1 -1
  184. package/dist/cjs/utils/orderMath.d.ts.map +1 -1
  185. package/dist/cjs/utils/orderMath.js +2 -2
  186. package/dist/cjs/utils/orderMath.js.map +1 -1
  187. package/dist/cjs/utils/parse.d.ts.map +1 -1
  188. package/dist/cjs/utils/parse.js.map +1 -1
  189. package/dist/cjs/utils/positionMath.d.ts +6 -0
  190. package/dist/cjs/utils/positionMath.d.ts.map +1 -1
  191. package/dist/cjs/utils/positionMath.js +14 -0
  192. package/dist/cjs/utils/positionMath.js.map +1 -1
  193. package/dist/cjs/utils/signTypedData.d.ts +3 -3
  194. package/dist/cjs/utils/signTypedData.d.ts.map +1 -1
  195. package/dist/cjs/utils/signTypedData.js +3 -2
  196. package/dist/cjs/utils/signTypedData.js.map +1 -1
  197. package/dist/cjs/utils/sleep.d.ts.map +1 -1
  198. package/dist/cjs/utils/sleep.js.map +1 -1
  199. package/dist/cjs/utils/units.d.ts.map +1 -1
  200. package/dist/cjs/utils/units.js.map +1 -1
  201. package/dist/cjs/utils/validation.d.ts.map +1 -1
  202. package/dist/cjs/utils/validation.js.map +1 -1
  203. package/dist/cjs/version.d.ts +1 -1
  204. package/dist/cjs/version.d.ts.map +1 -1
  205. package/dist/cjs/version.js +1 -1
  206. package/dist/cjs/version.js.map +1 -1
  207. package/dist/cjs/websocket/PerpsWsClient.d.ts +27 -0
  208. package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -0
  209. package/dist/cjs/websocket/PerpsWsClient.js +84 -0
  210. package/dist/cjs/websocket/PerpsWsClient.js.map +1 -0
  211. package/dist/{types/realtime → cjs/websocket}/ReconnectingWebSocket.d.ts +23 -7
  212. package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -0
  213. package/dist/cjs/websocket/ReconnectingWebSocket.js +213 -0
  214. package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -0
  215. package/dist/cjs/websocket/WsProviderBase.d.ts +31 -0
  216. package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -0
  217. package/dist/cjs/websocket/WsProviderBase.js +197 -0
  218. package/dist/cjs/websocket/WsProviderBase.js.map +1 -0
  219. package/dist/cjs/websocket/cachePromise.d.ts +2 -0
  220. package/dist/cjs/websocket/cachePromise.d.ts.map +1 -0
  221. package/dist/cjs/websocket/cachePromise.js +18 -0
  222. package/dist/cjs/websocket/cachePromise.js.map +1 -0
  223. package/dist/cjs/websocket/types.d.ts +15 -0
  224. package/dist/cjs/websocket/types.d.ts.map +1 -0
  225. package/dist/cjs/{realtime → websocket}/types.js.map +1 -1
  226. package/dist/cjs/websocket/wsLog.d.ts +10 -0
  227. package/dist/cjs/websocket/wsLog.d.ts.map +1 -0
  228. package/dist/cjs/websocket/wsLog.js +31 -0
  229. package/dist/cjs/websocket/wsLog.js.map +1 -0
  230. package/dist/esm/client/PerpsClient.d.ts +200 -195
  231. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  232. package/dist/esm/client/PerpsClient.js +305 -794
  233. package/dist/esm/client/PerpsClient.js.map +1 -1
  234. package/dist/esm/client/bindProvider.d.ts +13 -0
  235. package/dist/esm/client/bindProvider.d.ts.map +1 -0
  236. package/dist/esm/client/bindProvider.js +16 -0
  237. package/dist/esm/client/bindProvider.js.map +1 -0
  238. package/dist/esm/client/createPerpsClient.d.ts +34 -53
  239. package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
  240. package/dist/esm/client/createPerpsClient.js +51 -8
  241. package/dist/esm/client/createPerpsClient.js.map +1 -1
  242. package/dist/esm/client/requireProvider.d.ts +12 -0
  243. package/dist/esm/client/requireProvider.d.ts.map +1 -0
  244. package/dist/esm/client/requireProvider.js +22 -0
  245. package/dist/esm/client/requireProvider.js.map +1 -0
  246. package/dist/esm/errors/PerpsError.d.ts +8 -0
  247. package/dist/esm/errors/PerpsError.d.ts.map +1 -1
  248. package/dist/esm/errors/PerpsError.js +8 -0
  249. package/dist/esm/errors/PerpsError.js.map +1 -1
  250. package/dist/esm/errors/constants.d.ts +8 -2
  251. package/dist/esm/errors/constants.d.ts.map +1 -1
  252. package/dist/esm/errors/constants.js +8 -2
  253. package/dist/esm/errors/constants.js.map +1 -1
  254. package/dist/esm/index.d.ts +49 -23
  255. package/dist/esm/index.d.ts.map +1 -1
  256. package/dist/esm/index.js +38 -23
  257. package/dist/esm/index.js.map +1 -1
  258. package/dist/esm/registry/assetRegistry.d.ts +25 -0
  259. package/dist/esm/registry/assetRegistry.d.ts.map +1 -0
  260. package/dist/esm/registry/assetRegistry.js +48 -0
  261. package/dist/esm/registry/assetRegistry.js.map +1 -0
  262. package/dist/esm/registry/marketRegistry.d.ts +42 -0
  263. package/dist/esm/registry/marketRegistry.d.ts.map +1 -0
  264. package/dist/esm/registry/marketRegistry.js +81 -0
  265. package/dist/esm/registry/marketRegistry.js.map +1 -0
  266. package/dist/esm/registry/referenceDataRegistry.d.ts +44 -0
  267. package/dist/esm/registry/referenceDataRegistry.d.ts.map +1 -0
  268. package/dist/esm/registry/referenceDataRegistry.js +79 -0
  269. package/dist/esm/registry/referenceDataRegistry.js.map +1 -0
  270. package/dist/esm/services/createAction.d.ts +17 -2
  271. package/dist/esm/services/createAction.d.ts.map +1 -1
  272. package/dist/esm/services/createAction.js +9 -1
  273. package/dist/esm/services/createAction.js.map +1 -1
  274. package/dist/esm/services/executeAction.d.ts +17 -2
  275. package/dist/esm/services/executeAction.d.ts.map +1 -1
  276. package/dist/esm/services/executeAction.js +13 -1
  277. package/dist/esm/services/executeAction.js.map +1 -1
  278. package/dist/esm/services/getAccount.d.ts +19 -16
  279. package/dist/esm/services/getAccount.d.ts.map +1 -1
  280. package/dist/esm/services/getAccount.js +12 -18
  281. package/dist/esm/services/getAccount.js.map +1 -1
  282. package/dist/esm/services/getActivity.d.ts +15 -25
  283. package/dist/esm/services/getActivity.d.ts.map +1 -1
  284. package/dist/esm/services/getActivity.js +10 -28
  285. package/dist/esm/services/getActivity.js.map +1 -1
  286. package/dist/esm/services/getAssets.d.ts +14 -5
  287. package/dist/esm/services/getAssets.d.ts.map +1 -1
  288. package/dist/esm/services/getAssets.js +8 -4
  289. package/dist/esm/services/getAssets.js.map +1 -1
  290. package/dist/esm/services/getFills.d.ts +18 -29
  291. package/dist/esm/services/getFills.d.ts.map +1 -1
  292. package/dist/esm/services/getFills.js +10 -26
  293. package/dist/esm/services/getFills.js.map +1 -1
  294. package/dist/esm/services/getMarket.d.ts +34 -0
  295. package/dist/esm/services/getMarket.d.ts.map +1 -0
  296. package/dist/esm/services/getMarket.js +25 -0
  297. package/dist/esm/services/getMarket.js.map +1 -0
  298. package/dist/esm/services/getMarkets.d.ts +28 -0
  299. package/dist/esm/services/getMarkets.d.ts.map +1 -0
  300. package/dist/esm/services/getMarkets.js +22 -0
  301. package/dist/esm/services/getMarkets.js.map +1 -0
  302. package/dist/esm/services/getMeta.d.ts +19 -0
  303. package/dist/esm/services/getMeta.d.ts.map +1 -0
  304. package/dist/esm/services/getMeta.js +19 -0
  305. package/dist/esm/services/getMeta.js.map +1 -0
  306. package/dist/esm/services/getOhlcv.d.ts +15 -19
  307. package/dist/esm/services/getOhlcv.d.ts.map +1 -1
  308. package/dist/esm/services/getOhlcv.js +7 -13
  309. package/dist/esm/services/getOhlcv.js.map +1 -1
  310. package/dist/esm/services/getOrder.d.ts +16 -16
  311. package/dist/esm/services/getOrder.d.ts.map +1 -1
  312. package/dist/esm/services/getOrder.js +9 -17
  313. package/dist/esm/services/getOrder.js.map +1 -1
  314. package/dist/esm/services/getOrderbook.d.ts +13 -23
  315. package/dist/esm/services/getOrderbook.d.ts.map +1 -1
  316. package/dist/esm/services/getOrderbook.js +7 -21
  317. package/dist/esm/services/getOrderbook.js.map +1 -1
  318. package/dist/esm/services/getOrders.d.ts +17 -9
  319. package/dist/esm/services/getOrders.d.ts.map +1 -1
  320. package/dist/esm/services/getOrders.js +12 -9
  321. package/dist/esm/services/getOrders.js.map +1 -1
  322. package/dist/esm/services/getPositions.d.ts +17 -9
  323. package/dist/esm/services/getPositions.d.ts.map +1 -1
  324. package/dist/esm/services/getPositions.js +12 -9
  325. package/dist/esm/services/getPositions.js.map +1 -1
  326. package/dist/esm/services/getPrices.d.ts +12 -24
  327. package/dist/esm/services/getPrices.d.ts.map +1 -1
  328. package/dist/esm/services/getPrices.js +5 -22
  329. package/dist/esm/services/getPrices.js.map +1 -1
  330. package/dist/esm/services/getProviders.d.ts +3 -3
  331. package/dist/esm/services/getProviders.d.ts.map +1 -1
  332. package/dist/esm/services/getProviders.js +2 -3
  333. package/dist/esm/services/getProviders.js.map +1 -1
  334. package/dist/esm/services/getQuote.d.ts +42 -0
  335. package/dist/esm/services/getQuote.d.ts.map +1 -0
  336. package/dist/esm/services/getQuote.js +33 -0
  337. package/dist/esm/services/getQuote.js.map +1 -0
  338. package/dist/esm/services/getTermsAcceptance.d.ts +24 -0
  339. package/dist/esm/services/getTermsAcceptance.d.ts.map +1 -0
  340. package/dist/esm/services/getTermsAcceptance.js +24 -0
  341. package/dist/esm/services/getTermsAcceptance.js.map +1 -0
  342. package/dist/esm/services/resolveQuote.d.ts +36 -0
  343. package/dist/esm/services/resolveQuote.d.ts.map +1 -0
  344. package/dist/esm/services/resolveQuote.js +74 -0
  345. package/dist/esm/services/resolveQuote.js.map +1 -0
  346. package/dist/esm/services/resolveSubscribeQuote.d.ts +31 -0
  347. package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -0
  348. package/dist/esm/services/resolveSubscribeQuote.js +86 -0
  349. package/dist/esm/services/resolveSubscribeQuote.js.map +1 -0
  350. package/dist/esm/storage/parseStoredRecord.d.ts +29 -0
  351. package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -0
  352. package/dist/esm/storage/parseStoredRecord.js +47 -0
  353. package/dist/esm/storage/parseStoredRecord.js.map +1 -0
  354. package/dist/{types/agent → esm/storage}/storage.d.ts +6 -3
  355. package/dist/esm/storage/storage.d.ts.map +1 -0
  356. package/dist/esm/{agent → storage}/storage.js +6 -4
  357. package/dist/esm/storage/storage.js.map +1 -0
  358. package/dist/esm/storage/types.d.ts +14 -0
  359. package/dist/esm/storage/types.d.ts.map +1 -0
  360. package/dist/esm/{agent → storage}/types.js.map +1 -1
  361. package/dist/esm/transport/fetchWithRetry.d.ts +22 -0
  362. package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -0
  363. package/dist/esm/transport/fetchWithRetry.js +87 -0
  364. package/dist/esm/transport/fetchWithRetry.js.map +1 -0
  365. package/dist/esm/transport/request.d.ts +25 -0
  366. package/dist/esm/transport/request.d.ts.map +1 -0
  367. package/dist/esm/{utils → transport}/request.js +19 -31
  368. package/dist/esm/transport/request.js.map +1 -0
  369. package/dist/esm/transport/retryPolicy.d.ts +106 -0
  370. package/dist/esm/transport/retryPolicy.d.ts.map +1 -0
  371. package/dist/esm/transport/retryPolicy.js +99 -0
  372. package/dist/esm/transport/retryPolicy.js.map +1 -0
  373. package/dist/esm/types/api.d.ts +214 -0
  374. package/dist/esm/types/api.d.ts.map +1 -0
  375. package/dist/esm/types/api.js +2 -0
  376. package/dist/esm/types/api.js.map +1 -0
  377. package/dist/esm/types/config.d.ts +70 -0
  378. package/dist/esm/types/config.d.ts.map +1 -0
  379. package/dist/esm/types/config.js +2 -0
  380. package/dist/esm/types/config.js.map +1 -0
  381. package/dist/esm/types/provider.d.ts +330 -0
  382. package/dist/esm/types/provider.d.ts.map +1 -0
  383. package/dist/esm/types/provider.js +2 -0
  384. package/dist/esm/types/provider.js.map +1 -0
  385. package/dist/esm/utils/accountSummary.d.ts +12 -12
  386. package/dist/esm/utils/accountSummary.d.ts.map +1 -1
  387. package/dist/esm/utils/accountSummary.js +18 -83
  388. package/dist/esm/utils/accountSummary.js.map +1 -1
  389. package/dist/esm/utils/assertNever.d.ts +1 -0
  390. package/dist/esm/utils/assertNever.d.ts.map +1 -1
  391. package/dist/esm/utils/assertNever.js +1 -0
  392. package/dist/esm/utils/assertNever.js.map +1 -1
  393. package/dist/esm/utils/calculations.d.ts +116 -0
  394. package/dist/esm/utils/calculations.d.ts.map +1 -1
  395. package/dist/esm/utils/calculations.js +140 -3
  396. package/dist/esm/utils/calculations.js.map +1 -1
  397. package/dist/esm/utils/depositChain.d.ts +25 -0
  398. package/dist/esm/utils/depositChain.d.ts.map +1 -0
  399. package/dist/esm/utils/depositChain.js +23 -0
  400. package/dist/esm/utils/depositChain.js.map +1 -0
  401. package/dist/esm/utils/explorer.d.ts +33 -0
  402. package/dist/esm/utils/explorer.d.ts.map +1 -0
  403. package/dist/esm/utils/explorer.js +38 -0
  404. package/dist/esm/utils/explorer.js.map +1 -0
  405. package/dist/esm/utils/fillClassification.d.ts +13 -0
  406. package/dist/esm/utils/fillClassification.d.ts.map +1 -0
  407. package/dist/esm/utils/fillClassification.js +44 -0
  408. package/dist/esm/utils/fillClassification.js.map +1 -0
  409. package/dist/esm/utils/format.d.ts +66 -0
  410. package/dist/esm/utils/format.d.ts.map +1 -0
  411. package/dist/esm/utils/format.js +171 -0
  412. package/dist/esm/utils/format.js.map +1 -0
  413. package/dist/esm/utils/orderClassification.d.ts +19 -1
  414. package/dist/esm/utils/orderClassification.d.ts.map +1 -1
  415. package/dist/esm/utils/orderClassification.js +26 -1
  416. package/dist/esm/utils/orderClassification.js.map +1 -1
  417. package/dist/esm/utils/orderMath.d.ts +8 -4
  418. package/dist/esm/utils/orderMath.d.ts.map +1 -1
  419. package/dist/esm/utils/orderMath.js +9 -5
  420. package/dist/esm/utils/orderMath.js.map +1 -1
  421. package/dist/esm/utils/parse.d.ts +8 -5
  422. package/dist/esm/utils/parse.d.ts.map +1 -1
  423. package/dist/esm/utils/parse.js +8 -6
  424. package/dist/esm/utils/parse.js.map +1 -1
  425. package/dist/esm/utils/positionMath.d.ts +29 -0
  426. package/dist/esm/utils/positionMath.d.ts.map +1 -1
  427. package/dist/esm/utils/positionMath.js +36 -0
  428. package/dist/esm/utils/positionMath.js.map +1 -1
  429. package/dist/esm/utils/signTypedData.d.ts +9 -4
  430. package/dist/esm/utils/signTypedData.d.ts.map +1 -1
  431. package/dist/esm/utils/signTypedData.js +9 -3
  432. package/dist/esm/utils/signTypedData.js.map +1 -1
  433. package/dist/esm/utils/sleep.d.ts +5 -0
  434. package/dist/esm/utils/sleep.d.ts.map +1 -1
  435. package/dist/esm/utils/sleep.js +5 -0
  436. package/dist/esm/utils/sleep.js.map +1 -1
  437. package/dist/esm/utils/units.d.ts +8 -1
  438. package/dist/esm/utils/units.d.ts.map +1 -1
  439. package/dist/esm/utils/units.js +8 -1
  440. package/dist/esm/utils/units.js.map +1 -1
  441. package/dist/esm/utils/validation.d.ts +4 -1
  442. package/dist/esm/utils/validation.d.ts.map +1 -1
  443. package/dist/esm/utils/validation.js +4 -1
  444. package/dist/esm/utils/validation.js.map +1 -1
  445. package/dist/esm/version.d.ts +1 -1
  446. package/dist/esm/version.d.ts.map +1 -1
  447. package/dist/esm/version.js +1 -1
  448. package/dist/esm/version.js.map +1 -1
  449. package/dist/esm/websocket/PerpsWsClient.d.ts +100 -0
  450. package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -0
  451. package/dist/esm/websocket/PerpsWsClient.js +121 -0
  452. package/dist/esm/websocket/PerpsWsClient.js.map +1 -0
  453. package/dist/esm/websocket/ReconnectingWebSocket.d.ts +130 -0
  454. package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -0
  455. package/dist/esm/websocket/ReconnectingWebSocket.js +288 -0
  456. package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -0
  457. package/dist/esm/websocket/WsProviderBase.d.ts +89 -0
  458. package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -0
  459. package/dist/esm/websocket/WsProviderBase.js +246 -0
  460. package/dist/esm/websocket/WsProviderBase.js.map +1 -0
  461. package/dist/esm/websocket/cachePromise.d.ts +14 -0
  462. package/dist/esm/websocket/cachePromise.d.ts.map +1 -0
  463. package/dist/esm/websocket/cachePromise.js +27 -0
  464. package/dist/esm/websocket/cachePromise.js.map +1 -0
  465. package/dist/esm/websocket/types.d.ts +60 -0
  466. package/dist/esm/websocket/types.d.ts.map +1 -0
  467. package/dist/esm/{realtime → websocket}/types.js.map +1 -1
  468. package/dist/esm/websocket/wsLog.d.ts +50 -0
  469. package/dist/esm/websocket/wsLog.d.ts.map +1 -0
  470. package/dist/esm/websocket/wsLog.js +68 -0
  471. package/dist/esm/websocket/wsLog.js.map +1 -0
  472. package/dist/types/client/PerpsClient.d.ts +200 -195
  473. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  474. package/dist/types/client/bindProvider.d.ts +13 -0
  475. package/dist/types/client/bindProvider.d.ts.map +1 -0
  476. package/dist/types/client/createPerpsClient.d.ts +34 -53
  477. package/dist/types/client/createPerpsClient.d.ts.map +1 -1
  478. package/dist/types/client/requireProvider.d.ts +12 -0
  479. package/dist/types/client/requireProvider.d.ts.map +1 -0
  480. package/dist/types/errors/PerpsError.d.ts +8 -0
  481. package/dist/types/errors/PerpsError.d.ts.map +1 -1
  482. package/dist/types/errors/constants.d.ts +8 -2
  483. package/dist/types/errors/constants.d.ts.map +1 -1
  484. package/dist/types/index.d.ts +49 -23
  485. package/dist/types/index.d.ts.map +1 -1
  486. package/dist/types/registry/assetRegistry.d.ts +25 -0
  487. package/dist/types/registry/assetRegistry.d.ts.map +1 -0
  488. package/dist/types/registry/marketRegistry.d.ts +42 -0
  489. package/dist/types/registry/marketRegistry.d.ts.map +1 -0
  490. package/dist/types/registry/referenceDataRegistry.d.ts +44 -0
  491. package/dist/types/registry/referenceDataRegistry.d.ts.map +1 -0
  492. package/dist/types/services/createAction.d.ts +17 -2
  493. package/dist/types/services/createAction.d.ts.map +1 -1
  494. package/dist/types/services/executeAction.d.ts +17 -2
  495. package/dist/types/services/executeAction.d.ts.map +1 -1
  496. package/dist/types/services/getAccount.d.ts +19 -16
  497. package/dist/types/services/getAccount.d.ts.map +1 -1
  498. package/dist/types/services/getActivity.d.ts +15 -25
  499. package/dist/types/services/getActivity.d.ts.map +1 -1
  500. package/dist/types/services/getAssets.d.ts +14 -5
  501. package/dist/types/services/getAssets.d.ts.map +1 -1
  502. package/dist/types/services/getFills.d.ts +18 -29
  503. package/dist/types/services/getFills.d.ts.map +1 -1
  504. package/dist/types/services/getMarket.d.ts +34 -0
  505. package/dist/types/services/getMarket.d.ts.map +1 -0
  506. package/dist/types/services/getMarkets.d.ts +28 -0
  507. package/dist/types/services/getMarkets.d.ts.map +1 -0
  508. package/dist/types/services/getMeta.d.ts +19 -0
  509. package/dist/types/services/getMeta.d.ts.map +1 -0
  510. package/dist/types/services/getOhlcv.d.ts +15 -19
  511. package/dist/types/services/getOhlcv.d.ts.map +1 -1
  512. package/dist/types/services/getOrder.d.ts +16 -16
  513. package/dist/types/services/getOrder.d.ts.map +1 -1
  514. package/dist/types/services/getOrderbook.d.ts +13 -23
  515. package/dist/types/services/getOrderbook.d.ts.map +1 -1
  516. package/dist/types/services/getOrders.d.ts +17 -9
  517. package/dist/types/services/getOrders.d.ts.map +1 -1
  518. package/dist/types/services/getPositions.d.ts +17 -9
  519. package/dist/types/services/getPositions.d.ts.map +1 -1
  520. package/dist/types/services/getPrices.d.ts +12 -24
  521. package/dist/types/services/getPrices.d.ts.map +1 -1
  522. package/dist/types/services/getProviders.d.ts +3 -3
  523. package/dist/types/services/getProviders.d.ts.map +1 -1
  524. package/dist/types/services/getQuote.d.ts +42 -0
  525. package/dist/types/services/getQuote.d.ts.map +1 -0
  526. package/dist/types/services/getTermsAcceptance.d.ts +24 -0
  527. package/dist/types/services/getTermsAcceptance.d.ts.map +1 -0
  528. package/dist/types/services/resolveQuote.d.ts +36 -0
  529. package/dist/types/services/resolveQuote.d.ts.map +1 -0
  530. package/dist/types/services/resolveSubscribeQuote.d.ts +31 -0
  531. package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -0
  532. package/dist/types/storage/parseStoredRecord.d.ts +29 -0
  533. package/dist/types/storage/parseStoredRecord.d.ts.map +1 -0
  534. package/dist/{esm/agent → types/storage}/storage.d.ts +6 -3
  535. package/dist/types/storage/storage.d.ts.map +1 -0
  536. package/dist/types/storage/types.d.ts +14 -0
  537. package/dist/types/storage/types.d.ts.map +1 -0
  538. package/dist/types/transport/fetchWithRetry.d.ts +22 -0
  539. package/dist/types/transport/fetchWithRetry.d.ts.map +1 -0
  540. package/dist/types/transport/request.d.ts +25 -0
  541. package/dist/types/transport/request.d.ts.map +1 -0
  542. package/dist/types/transport/retryPolicy.d.ts +106 -0
  543. package/dist/types/transport/retryPolicy.d.ts.map +1 -0
  544. package/dist/types/types/api.d.ts +214 -0
  545. package/dist/types/types/api.d.ts.map +1 -0
  546. package/dist/types/types/config.d.ts +70 -0
  547. package/dist/types/types/config.d.ts.map +1 -0
  548. package/dist/types/types/provider.d.ts +330 -0
  549. package/dist/types/types/provider.d.ts.map +1 -0
  550. package/dist/types/utils/accountSummary.d.ts +12 -12
  551. package/dist/types/utils/accountSummary.d.ts.map +1 -1
  552. package/dist/types/utils/assertNever.d.ts +1 -0
  553. package/dist/types/utils/assertNever.d.ts.map +1 -1
  554. package/dist/types/utils/calculations.d.ts +116 -0
  555. package/dist/types/utils/calculations.d.ts.map +1 -1
  556. package/dist/types/utils/depositChain.d.ts +25 -0
  557. package/dist/types/utils/depositChain.d.ts.map +1 -0
  558. package/dist/types/utils/explorer.d.ts +33 -0
  559. package/dist/types/utils/explorer.d.ts.map +1 -0
  560. package/dist/types/utils/fillClassification.d.ts +13 -0
  561. package/dist/types/utils/fillClassification.d.ts.map +1 -0
  562. package/dist/types/utils/format.d.ts +66 -0
  563. package/dist/types/utils/format.d.ts.map +1 -0
  564. package/dist/types/utils/orderClassification.d.ts +19 -1
  565. package/dist/types/utils/orderClassification.d.ts.map +1 -1
  566. package/dist/types/utils/orderMath.d.ts +8 -4
  567. package/dist/types/utils/orderMath.d.ts.map +1 -1
  568. package/dist/types/utils/parse.d.ts +8 -5
  569. package/dist/types/utils/parse.d.ts.map +1 -1
  570. package/dist/types/utils/positionMath.d.ts +29 -0
  571. package/dist/types/utils/positionMath.d.ts.map +1 -1
  572. package/dist/types/utils/signTypedData.d.ts +9 -4
  573. package/dist/types/utils/signTypedData.d.ts.map +1 -1
  574. package/dist/types/utils/sleep.d.ts +5 -0
  575. package/dist/types/utils/sleep.d.ts.map +1 -1
  576. package/dist/types/utils/units.d.ts +8 -1
  577. package/dist/types/utils/units.d.ts.map +1 -1
  578. package/dist/types/utils/validation.d.ts +4 -1
  579. package/dist/types/utils/validation.d.ts.map +1 -1
  580. package/dist/types/version.d.ts +1 -1
  581. package/dist/types/version.d.ts.map +1 -1
  582. package/dist/types/websocket/PerpsWsClient.d.ts +100 -0
  583. package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -0
  584. package/dist/types/websocket/ReconnectingWebSocket.d.ts +130 -0
  585. package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -0
  586. package/dist/types/websocket/WsProviderBase.d.ts +89 -0
  587. package/dist/types/websocket/WsProviderBase.d.ts.map +1 -0
  588. package/dist/types/websocket/cachePromise.d.ts +14 -0
  589. package/dist/types/websocket/cachePromise.d.ts.map +1 -0
  590. package/dist/types/websocket/types.d.ts +60 -0
  591. package/dist/types/websocket/types.d.ts.map +1 -0
  592. package/dist/types/websocket/wsLog.d.ts +50 -0
  593. package/dist/types/websocket/wsLog.d.ts.map +1 -0
  594. package/package.json +13 -60
  595. package/src/client/PerpsClient.ts +404 -1115
  596. package/src/client/bindProvider.ts +24 -0
  597. package/src/client/createPerpsClient.ts +68 -72
  598. package/src/client/requireProvider.ts +29 -0
  599. package/src/errors/PerpsError.ts +8 -0
  600. package/src/errors/constants.ts +8 -2
  601. package/src/index.ts +138 -82
  602. package/src/registry/assetRegistry.ts +62 -0
  603. package/src/registry/marketRegistry.ts +100 -0
  604. package/src/registry/referenceDataRegistry.ts +95 -0
  605. package/src/services/createAction.ts +17 -6
  606. package/src/services/executeAction.ts +21 -6
  607. package/src/services/getAccount.ts +24 -25
  608. package/src/services/getActivity.ts +27 -47
  609. package/src/services/getAssets.ts +15 -9
  610. package/src/services/getFills.ts +29 -42
  611. package/src/services/getMarket.ts +52 -0
  612. package/src/services/getMarkets.ts +40 -0
  613. package/src/services/getMeta.ts +30 -0
  614. package/src/services/getOhlcv.ts +24 -33
  615. package/src/services/getOrder.ts +20 -27
  616. package/src/services/getOrderbook.ts +19 -34
  617. package/src/services/getOrders.ts +27 -21
  618. package/src/services/getPositions.ts +27 -21
  619. package/src/services/getPrices.ts +14 -29
  620. package/src/services/getProviders.ts +4 -7
  621. package/src/services/getQuote.ts +58 -0
  622. package/src/services/getTermsAcceptance.ts +32 -0
  623. package/src/services/resolveQuote.ts +122 -0
  624. package/src/services/resolveSubscribeQuote.ts +109 -0
  625. package/src/storage/parseStoredRecord.ts +55 -0
  626. package/src/{agent → storage}/storage.ts +6 -4
  627. package/src/storage/types.ts +13 -0
  628. package/src/transport/fetchWithRetry.ts +116 -0
  629. package/src/{utils → transport}/request.ts +33 -45
  630. package/src/transport/retryPolicy.ts +202 -0
  631. package/src/types/api.ts +239 -0
  632. package/src/types/config.ts +79 -0
  633. package/src/types/provider.ts +429 -0
  634. package/src/utils/accountSummary.ts +25 -109
  635. package/src/utils/assertNever.ts +1 -0
  636. package/src/utils/calculations.ts +204 -7
  637. package/src/utils/depositChain.ts +37 -0
  638. package/src/utils/explorer.ts +51 -0
  639. package/src/utils/fillClassification.ts +51 -0
  640. package/src/utils/format.ts +212 -0
  641. package/src/utils/orderClassification.ts +33 -1
  642. package/src/utils/orderMath.ts +9 -5
  643. package/src/utils/parse.ts +8 -7
  644. package/src/utils/positionMath.ts +42 -0
  645. package/src/utils/signTypedData.ts +11 -5
  646. package/src/utils/sleep.ts +5 -0
  647. package/src/utils/units.ts +8 -1
  648. package/src/utils/validation.ts +4 -1
  649. package/src/version.ts +1 -1
  650. package/src/websocket/PerpsWsClient.ts +204 -0
  651. package/src/websocket/ReconnectingWebSocket.ts +353 -0
  652. package/src/websocket/WsProviderBase.ts +333 -0
  653. package/src/websocket/cachePromise.ts +30 -0
  654. package/src/websocket/types.ts +75 -0
  655. package/src/websocket/wsLog.ts +82 -0
  656. package/dist/cjs/agent/AgentManager.d.ts +0 -15
  657. package/dist/cjs/agent/AgentManager.d.ts.map +0 -1
  658. package/dist/cjs/agent/AgentManager.js +0 -82
  659. package/dist/cjs/agent/AgentManager.js.map +0 -1
  660. package/dist/cjs/agent/storage.d.ts.map +0 -1
  661. package/dist/cjs/agent/storage.js.map +0 -1
  662. package/dist/cjs/agent/types.d.ts.map +0 -1
  663. package/dist/cjs/client/projectAccountConfigSettings.d.ts +0 -3
  664. package/dist/cjs/client/projectAccountConfigSettings.d.ts.map +0 -1
  665. package/dist/cjs/client/projectAccountConfigSettings.js +0 -17
  666. package/dist/cjs/client/projectAccountConfigSettings.js.map +0 -1
  667. package/dist/cjs/client/types.d.ts +0 -85
  668. package/dist/cjs/client/types.d.ts.map +0 -1
  669. package/dist/cjs/client/types.js +0 -9
  670. package/dist/cjs/client/types.js.map +0 -1
  671. package/dist/cjs/providers/hyperliquid/accountConfig.d.ts +0 -3
  672. package/dist/cjs/providers/hyperliquid/accountConfig.d.ts.map +0 -1
  673. package/dist/cjs/providers/hyperliquid/accountConfig.js +0 -41
  674. package/dist/cjs/providers/hyperliquid/accountConfig.js.map +0 -1
  675. package/dist/cjs/providers/lighter/accountConfig.d.ts +0 -3
  676. package/dist/cjs/providers/lighter/accountConfig.d.ts.map +0 -1
  677. package/dist/cjs/providers/lighter/accountConfig.js +0 -45
  678. package/dist/cjs/providers/lighter/accountConfig.js.map +0 -1
  679. package/dist/cjs/realtime/PerpsWsClient.d.ts +0 -20
  680. package/dist/cjs/realtime/PerpsWsClient.d.ts.map +0 -1
  681. package/dist/cjs/realtime/PerpsWsClient.js +0 -69
  682. package/dist/cjs/realtime/PerpsWsClient.js.map +0 -1
  683. package/dist/cjs/realtime/ReconnectingWebSocket.d.ts +0 -36
  684. package/dist/cjs/realtime/ReconnectingWebSocket.d.ts.map +0 -1
  685. package/dist/cjs/realtime/ReconnectingWebSocket.js +0 -132
  686. package/dist/cjs/realtime/ReconnectingWebSocket.js.map +0 -1
  687. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -30
  688. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
  689. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +0 -331
  690. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +0 -1
  691. package/dist/cjs/realtime/hyperliquid/types.d.ts +0 -37
  692. package/dist/cjs/realtime/hyperliquid/types.d.ts.map +0 -1
  693. package/dist/cjs/realtime/hyperliquid/types.js.map +0 -1
  694. package/dist/cjs/realtime/lighter/LighterWsProvider.d.ts +0 -48
  695. package/dist/cjs/realtime/lighter/LighterWsProvider.d.ts.map +0 -1
  696. package/dist/cjs/realtime/lighter/LighterWsProvider.js +0 -424
  697. package/dist/cjs/realtime/lighter/LighterWsProvider.js.map +0 -1
  698. package/dist/cjs/realtime/lighter/types.d.ts +0 -84
  699. package/dist/cjs/realtime/lighter/types.d.ts.map +0 -1
  700. package/dist/cjs/realtime/lighter/types.js.map +0 -1
  701. package/dist/cjs/realtime/types.d.ts +0 -10
  702. package/dist/cjs/realtime/types.d.ts.map +0 -1
  703. package/dist/cjs/services/getAsset.d.ts +0 -8
  704. package/dist/cjs/services/getAsset.d.ts.map +0 -1
  705. package/dist/cjs/services/getAsset.js.map +0 -1
  706. package/dist/cjs/signers/lighter/LighterKeyStore.d.ts +0 -20
  707. package/dist/cjs/signers/lighter/LighterKeyStore.d.ts.map +0 -1
  708. package/dist/cjs/signers/lighter/LighterKeyStore.js +0 -42
  709. package/dist/cjs/signers/lighter/LighterKeyStore.js.map +0 -1
  710. package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.d.ts +0 -66
  711. package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +0 -1
  712. package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.js +0 -141
  713. package/dist/cjs/signers/lighter/LighterReadOnlyTokenManager.js.map +0 -1
  714. package/dist/cjs/signers/lighter/LighterSigner.d.ts +0 -41
  715. package/dist/cjs/signers/lighter/LighterSigner.d.ts.map +0 -1
  716. package/dist/cjs/signers/lighter/LighterSigner.js +0 -176
  717. package/dist/cjs/signers/lighter/LighterSigner.js.map +0 -1
  718. package/dist/cjs/signers/lighter/index.d.ts +0 -9
  719. package/dist/cjs/signers/lighter/index.d.ts.map +0 -1
  720. package/dist/cjs/signers/lighter/index.js +0 -20
  721. package/dist/cjs/signers/lighter/index.js.map +0 -1
  722. package/dist/cjs/signers/lighter/wasmLoader.d.ts +0 -42
  723. package/dist/cjs/signers/lighter/wasmLoader.d.ts.map +0 -1
  724. package/dist/cjs/signers/lighter/wasmLoader.js +0 -166
  725. package/dist/cjs/signers/lighter/wasmLoader.js.map +0 -1
  726. package/dist/cjs/utils/hyperliquid/index.d.ts +0 -3
  727. package/dist/cjs/utils/hyperliquid/index.d.ts.map +0 -1
  728. package/dist/cjs/utils/hyperliquid/index.js +0 -11
  729. package/dist/cjs/utils/hyperliquid/index.js.map +0 -1
  730. package/dist/cjs/utils/hyperliquid/liquidation.d.ts +0 -3
  731. package/dist/cjs/utils/hyperliquid/liquidation.d.ts.map +0 -1
  732. package/dist/cjs/utils/hyperliquid/liquidation.js +0 -24
  733. package/dist/cjs/utils/hyperliquid/liquidation.js.map +0 -1
  734. package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts +0 -4
  735. package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts.map +0 -1
  736. package/dist/cjs/utils/hyperliquid/orderFormatting.js +0 -33
  737. package/dist/cjs/utils/hyperliquid/orderFormatting.js.map +0 -1
  738. package/dist/cjs/utils/request.d.ts.map +0 -1
  739. package/dist/cjs/utils/request.js.map +0 -1
  740. package/dist/cjs/wasm/lighter-signer.wasm +0 -0
  741. package/dist/cjs/wasm/wasm_exec.js +0 -575
  742. package/dist/esm/agent/AgentManager.d.ts +0 -45
  743. package/dist/esm/agent/AgentManager.d.ts.map +0 -1
  744. package/dist/esm/agent/AgentManager.js +0 -112
  745. package/dist/esm/agent/AgentManager.js.map +0 -1
  746. package/dist/esm/agent/storage.d.ts.map +0 -1
  747. package/dist/esm/agent/storage.js.map +0 -1
  748. package/dist/esm/agent/types.d.ts +0 -23
  749. package/dist/esm/agent/types.d.ts.map +0 -1
  750. package/dist/esm/client/projectAccountConfigSettings.d.ts +0 -18
  751. package/dist/esm/client/projectAccountConfigSettings.d.ts.map +0 -1
  752. package/dist/esm/client/projectAccountConfigSettings.js +0 -29
  753. package/dist/esm/client/projectAccountConfigSettings.js.map +0 -1
  754. package/dist/esm/client/types.d.ts +0 -200
  755. package/dist/esm/client/types.d.ts.map +0 -1
  756. package/dist/esm/client/types.js +0 -12
  757. package/dist/esm/client/types.js.map +0 -1
  758. package/dist/esm/providers/hyperliquid/accountConfig.d.ts +0 -13
  759. package/dist/esm/providers/hyperliquid/accountConfig.d.ts.map +0 -1
  760. package/dist/esm/providers/hyperliquid/accountConfig.js +0 -69
  761. package/dist/esm/providers/hyperliquid/accountConfig.js.map +0 -1
  762. package/dist/esm/providers/lighter/accountConfig.d.ts +0 -13
  763. package/dist/esm/providers/lighter/accountConfig.d.ts.map +0 -1
  764. package/dist/esm/providers/lighter/accountConfig.js +0 -79
  765. package/dist/esm/providers/lighter/accountConfig.js.map +0 -1
  766. package/dist/esm/realtime/PerpsWsClient.d.ts +0 -26
  767. package/dist/esm/realtime/PerpsWsClient.d.ts.map +0 -1
  768. package/dist/esm/realtime/PerpsWsClient.js +0 -65
  769. package/dist/esm/realtime/PerpsWsClient.js.map +0 -1
  770. package/dist/esm/realtime/ReconnectingWebSocket.d.ts +0 -36
  771. package/dist/esm/realtime/ReconnectingWebSocket.d.ts.map +0 -1
  772. package/dist/esm/realtime/ReconnectingWebSocket.js +0 -128
  773. package/dist/esm/realtime/ReconnectingWebSocket.js.map +0 -1
  774. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -32
  775. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
  776. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +0 -339
  777. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +0 -1
  778. package/dist/esm/realtime/hyperliquid/types.d.ts +0 -37
  779. package/dist/esm/realtime/hyperliquid/types.d.ts.map +0 -1
  780. package/dist/esm/realtime/hyperliquid/types.js +0 -4
  781. package/dist/esm/realtime/hyperliquid/types.js.map +0 -1
  782. package/dist/esm/realtime/lighter/LighterWsProvider.d.ts +0 -68
  783. package/dist/esm/realtime/lighter/LighterWsProvider.d.ts.map +0 -1
  784. package/dist/esm/realtime/lighter/LighterWsProvider.js +0 -474
  785. package/dist/esm/realtime/lighter/LighterWsProvider.js.map +0 -1
  786. package/dist/esm/realtime/lighter/types.d.ts +0 -108
  787. package/dist/esm/realtime/lighter/types.d.ts.map +0 -1
  788. package/dist/esm/realtime/lighter/types.js +0 -14
  789. package/dist/esm/realtime/lighter/types.js.map +0 -1
  790. package/dist/esm/realtime/types.d.ts +0 -10
  791. package/dist/esm/realtime/types.d.ts.map +0 -1
  792. package/dist/esm/services/getAsset.d.ts +0 -20
  793. package/dist/esm/services/getAsset.d.ts.map +0 -1
  794. package/dist/esm/services/getAsset.js +0 -18
  795. package/dist/esm/services/getAsset.js.map +0 -1
  796. package/dist/esm/signers/lighter/LighterKeyStore.d.ts +0 -29
  797. package/dist/esm/signers/lighter/LighterKeyStore.d.ts.map +0 -1
  798. package/dist/esm/signers/lighter/LighterKeyStore.js +0 -53
  799. package/dist/esm/signers/lighter/LighterKeyStore.js.map +0 -1
  800. package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.d.ts +0 -174
  801. package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +0 -1
  802. package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.js +0 -214
  803. package/dist/esm/signers/lighter/LighterReadOnlyTokenManager.js.map +0 -1
  804. package/dist/esm/signers/lighter/LighterSigner.d.ts +0 -88
  805. package/dist/esm/signers/lighter/LighterSigner.d.ts.map +0 -1
  806. package/dist/esm/signers/lighter/LighterSigner.js +0 -226
  807. package/dist/esm/signers/lighter/LighterSigner.js.map +0 -1
  808. package/dist/esm/signers/lighter/index.d.ts +0 -9
  809. package/dist/esm/signers/lighter/index.d.ts.map +0 -1
  810. package/dist/esm/signers/lighter/index.js +0 -5
  811. package/dist/esm/signers/lighter/index.js.map +0 -1
  812. package/dist/esm/signers/lighter/wasmLoader.d.ts +0 -71
  813. package/dist/esm/signers/lighter/wasmLoader.d.ts.map +0 -1
  814. package/dist/esm/signers/lighter/wasmLoader.js +0 -181
  815. package/dist/esm/signers/lighter/wasmLoader.js.map +0 -1
  816. package/dist/esm/utils/hyperliquid/index.d.ts +0 -3
  817. package/dist/esm/utils/hyperliquid/index.d.ts.map +0 -1
  818. package/dist/esm/utils/hyperliquid/index.js +0 -3
  819. package/dist/esm/utils/hyperliquid/index.js.map +0 -1
  820. package/dist/esm/utils/hyperliquid/liquidation.d.ts +0 -46
  821. package/dist/esm/utils/hyperliquid/liquidation.d.ts.map +0 -1
  822. package/dist/esm/utils/hyperliquid/liquidation.js +0 -63
  823. package/dist/esm/utils/hyperliquid/liquidation.js.map +0 -1
  824. package/dist/esm/utils/hyperliquid/orderFormatting.d.ts +0 -44
  825. package/dist/esm/utils/hyperliquid/orderFormatting.d.ts.map +0 -1
  826. package/dist/esm/utils/hyperliquid/orderFormatting.js +0 -79
  827. package/dist/esm/utils/hyperliquid/orderFormatting.js.map +0 -1
  828. package/dist/esm/utils/request.d.ts +0 -25
  829. package/dist/esm/utils/request.d.ts.map +0 -1
  830. package/dist/esm/utils/request.js.map +0 -1
  831. package/dist/esm/wasm/lighter-signer.wasm +0 -0
  832. package/dist/esm/wasm/wasm_exec.js +0 -575
  833. package/dist/types/agent/AgentManager.d.ts +0 -45
  834. package/dist/types/agent/AgentManager.d.ts.map +0 -1
  835. package/dist/types/agent/storage.d.ts.map +0 -1
  836. package/dist/types/agent/types.d.ts +0 -23
  837. package/dist/types/agent/types.d.ts.map +0 -1
  838. package/dist/types/client/projectAccountConfigSettings.d.ts +0 -18
  839. package/dist/types/client/projectAccountConfigSettings.d.ts.map +0 -1
  840. package/dist/types/client/types.d.ts +0 -200
  841. package/dist/types/client/types.d.ts.map +0 -1
  842. package/dist/types/providers/hyperliquid/accountConfig.d.ts +0 -13
  843. package/dist/types/providers/hyperliquid/accountConfig.d.ts.map +0 -1
  844. package/dist/types/providers/lighter/accountConfig.d.ts +0 -13
  845. package/dist/types/providers/lighter/accountConfig.d.ts.map +0 -1
  846. package/dist/types/realtime/PerpsWsClient.d.ts +0 -26
  847. package/dist/types/realtime/PerpsWsClient.d.ts.map +0 -1
  848. package/dist/types/realtime/ReconnectingWebSocket.d.ts.map +0 -1
  849. package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +0 -32
  850. package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +0 -1
  851. package/dist/types/realtime/hyperliquid/types.d.ts +0 -37
  852. package/dist/types/realtime/hyperliquid/types.d.ts.map +0 -1
  853. package/dist/types/realtime/lighter/LighterWsProvider.d.ts +0 -68
  854. package/dist/types/realtime/lighter/LighterWsProvider.d.ts.map +0 -1
  855. package/dist/types/realtime/lighter/types.d.ts +0 -108
  856. package/dist/types/realtime/lighter/types.d.ts.map +0 -1
  857. package/dist/types/realtime/types.d.ts +0 -10
  858. package/dist/types/realtime/types.d.ts.map +0 -1
  859. package/dist/types/services/getAsset.d.ts +0 -20
  860. package/dist/types/services/getAsset.d.ts.map +0 -1
  861. package/dist/types/signers/lighter/LighterKeyStore.d.ts +0 -29
  862. package/dist/types/signers/lighter/LighterKeyStore.d.ts.map +0 -1
  863. package/dist/types/signers/lighter/LighterReadOnlyTokenManager.d.ts +0 -174
  864. package/dist/types/signers/lighter/LighterReadOnlyTokenManager.d.ts.map +0 -1
  865. package/dist/types/signers/lighter/LighterSigner.d.ts +0 -88
  866. package/dist/types/signers/lighter/LighterSigner.d.ts.map +0 -1
  867. package/dist/types/signers/lighter/index.d.ts +0 -9
  868. package/dist/types/signers/lighter/index.d.ts.map +0 -1
  869. package/dist/types/signers/lighter/wasmLoader.d.ts +0 -71
  870. package/dist/types/signers/lighter/wasmLoader.d.ts.map +0 -1
  871. package/dist/types/utils/hyperliquid/index.d.ts +0 -3
  872. package/dist/types/utils/hyperliquid/index.d.ts.map +0 -1
  873. package/dist/types/utils/hyperliquid/liquidation.d.ts +0 -46
  874. package/dist/types/utils/hyperliquid/liquidation.d.ts.map +0 -1
  875. package/dist/types/utils/hyperliquid/orderFormatting.d.ts +0 -44
  876. package/dist/types/utils/hyperliquid/orderFormatting.d.ts.map +0 -1
  877. package/dist/types/utils/request.d.ts +0 -25
  878. package/dist/types/utils/request.d.ts.map +0 -1
  879. package/src/agent/AgentManager.ts +0 -137
  880. package/src/agent/types.ts +0 -24
  881. package/src/client/projectAccountConfigSettings.ts +0 -39
  882. package/src/client/types.ts +0 -240
  883. package/src/providers/hyperliquid/accountConfig.ts +0 -92
  884. package/src/providers/lighter/accountConfig.ts +0 -103
  885. package/src/realtime/PerpsWsClient.ts +0 -108
  886. package/src/realtime/ReconnectingWebSocket.ts +0 -156
  887. package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +0 -413
  888. package/src/realtime/hyperliquid/types.ts +0 -46
  889. package/src/realtime/lighter/LighterWsProvider.ts +0 -682
  890. package/src/realtime/lighter/types.ts +0 -121
  891. package/src/realtime/types.ts +0 -16
  892. package/src/services/getAsset.ts +0 -37
  893. package/src/signers/lighter/LighterKeyStore.ts +0 -74
  894. package/src/signers/lighter/LighterReadOnlyTokenManager.ts +0 -358
  895. package/src/signers/lighter/LighterSigner.ts +0 -396
  896. package/src/signers/lighter/index.ts +0 -36
  897. package/src/signers/lighter/wasmLoader.ts +0 -291
  898. package/src/utils/hyperliquid/index.ts +0 -9
  899. package/src/utils/hyperliquid/liquidation.ts +0 -71
  900. package/src/utils/hyperliquid/orderFormatting.ts +0 -96
  901. package/wasm/lighter-signer.wasm +0 -0
  902. package/wasm/wasm_exec.js +0 -575
  903. /package/dist/cjs/{agent → storage}/storage.d.ts +0 -0
  904. /package/dist/cjs/{agent → storage}/storage.js +0 -0
  905. /package/dist/cjs/{agent → storage}/types.js +0 -0
  906. /package/dist/cjs/{realtime/hyperliquid → websocket}/types.js +0 -0
  907. /package/dist/esm/{agent → storage}/types.js +0 -0
  908. /package/dist/esm/{realtime → websocket}/types.js +0 -0
@@ -0,0 +1,130 @@
1
+ import type { WsConnectionStatus, WsStatusListener } from './types.js';
2
+ type WsEventMap = {
3
+ open: () => void;
4
+ close: (code: number, reason: string) => void;
5
+ error: (error: Event) => void;
6
+ message: (data: string) => void;
7
+ };
8
+ type WsEvent = keyof WsEventMap;
9
+ /**
10
+ * Options for {@link ReconnectingWebSocket}.
11
+ *
12
+ * @public
13
+ */
14
+ export interface ReconnectingWebSocketOptions {
15
+ maxRetries?: number;
16
+ pingIntervalMs?: number;
17
+ /**
18
+ * Keepalive frame sent every `pingIntervalMs` while the socket is open.
19
+ * Framing is venue-specific, so when omitted no keepalive is sent.
20
+ */
21
+ pingPayload?: string;
22
+ /**
23
+ * Stale-stream watchdog window. With `pingPayload` configured, the socket is
24
+ * force-reconnected when no inbound frame arrives within this window.
25
+ * Defaults to 3× `pingIntervalMs`.
26
+ */
27
+ staleWindowMs?: number;
28
+ }
29
+ /**
30
+ * A `WebSocket` transport that auto-reconnects with jittered exponential
31
+ * backoff (`partysocket` internals), buffers sends (bounded) while
32
+ * disconnected, keepalive-pings with the caller-supplied `pingPayload`, and
33
+ * force-reconnects a silently stale stream. Surfaces the
34
+ * {@link WsConnectionStatus} state machine: `reconnecting` on transient drops,
35
+ * terminal `disconnected` once the retry budget is exhausted.
36
+ *
37
+ * @public
38
+ */
39
+ export declare class ReconnectingWebSocket {
40
+ private readonly socket;
41
+ private readonly maxRetries;
42
+ private readonly pingIntervalMs;
43
+ private readonly pingPayload;
44
+ private readonly staleWindowMs;
45
+ private closed;
46
+ private reconnectRequested;
47
+ private lastCloseRetryCount;
48
+ private pingTimer;
49
+ private staleTimer;
50
+ private listeners;
51
+ private statusListeners;
52
+ private status;
53
+ private readyResolvers;
54
+ constructor(url: string, options?: ReconnectingWebSocketOptions);
55
+ private handleOpen;
56
+ private handleClose;
57
+ private handleError;
58
+ private handleMessage;
59
+ private setStatus;
60
+ private callListener;
61
+ private startPing;
62
+ private stopPing;
63
+ private armWatchdog;
64
+ private clearWatchdog;
65
+ /**
66
+ * Send `data`, buffering it (bounded) for replay when the socket is not yet
67
+ * open.
68
+ *
69
+ * @public
70
+ */
71
+ send(data: string): void;
72
+ /**
73
+ * Permanently close the socket and suppress further reconnection.
74
+ *
75
+ * @public
76
+ */
77
+ close(): void;
78
+ /**
79
+ * Drop the current connection (if any) and reconnect with a fresh retry
80
+ * budget. Recovers a socket that reached terminal `disconnected`: status
81
+ * returns to `reconnecting` and the normal backoff cycle restarts.
82
+ *
83
+ * @public
84
+ */
85
+ reconnect(): void;
86
+ /**
87
+ * Register a listener for a socket lifecycle event.
88
+ *
89
+ * @public
90
+ */
91
+ on<E extends WsEvent>(event: E, fn: WsEventMap[E]): void;
92
+ /**
93
+ * Remove a previously registered lifecycle-event listener.
94
+ *
95
+ * @public
96
+ */
97
+ off<E extends WsEvent>(event: E, fn: WsEventMap[E]): void;
98
+ /**
99
+ * Current connection health. `reconnecting` until the first open;
100
+ * `disconnected` once auto-reconnect is abandoned (terminal until
101
+ * {@link ReconnectingWebSocket.reconnect} is called).
102
+ *
103
+ * @public
104
+ */
105
+ getStatus(): WsConnectionStatus;
106
+ /**
107
+ * Register a connection-health listener. Fires on every status transition,
108
+ * including the terminal `disconnected` emitted on reconnect exhaustion.
109
+ *
110
+ * @public
111
+ */
112
+ onStatus(fn: WsStatusListener): void;
113
+ /**
114
+ * Remove a previously registered connection-health listener.
115
+ *
116
+ * @public
117
+ */
118
+ offStatus(fn: WsStatusListener): void;
119
+ /**
120
+ * Resolve once the socket is open; reject if it closes or exhausts retries
121
+ * before opening. When the socket is already terminally dead — `close()`d or
122
+ * reconnect-exhausted (`disconnected`) — rejects immediately rather than
123
+ * queuing a waiter nothing would ever settle.
124
+ *
125
+ * @public
126
+ */
127
+ ready(): Promise<void>;
128
+ }
129
+ export {};
130
+ //# sourceMappingURL=ReconnectingWebSocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconnectingWebSocket.d.ts","sourceRoot":"","sources":["../../../src/websocket/ReconnectingWebSocket.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGtE,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,KAAK,OAAO,GAAG,MAAM,UAAU,CAAA;AAyB/B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,SAAS,CAKhB;IACD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,cAAc,CAGf;gBAEK,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B;IAyB/D,OAAO,CAAC,UAAU,CAWjB;IAED,OAAO,CAAC,WAAW,CA4BlB;IAED,OAAO,CAAC,WAAW,CAIlB;IAED,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAOrB;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB;;;;OAIG;IACH,KAAK;IAWL;;;;;;OAMG;IACH,SAAS;IAWT;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAIjD;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAIlD;;;;;;OAMG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,gBAAgB;IAI7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,gBAAgB;IAI9B;;;;;;;OAOG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAcvB"}
@@ -0,0 +1,288 @@
1
+ import PartySocketWebSocket from 'partysocket/ws';
2
+ import { wsLog } from './wsLog.js';
3
+ /**
4
+ * Default reconnect attempt cap. With the jittered backoff below, ten attempts
5
+ * span roughly 20–60s of retries before the socket is declared `disconnected`
6
+ * — long enough for a live trading feed to ride out a transient network blip.
7
+ */
8
+ const DEFAULT_MAX_RETRIES = 10;
9
+ /** Default watchdog window: three keepalive intervals without inbound traffic. */
10
+ const DEFAULT_STALE_WINDOW_PING_INTERVALS = 3;
11
+ const CONNECTION_TIMEOUT_MS = 4_000;
12
+ /** Uptime below which an open does not reset the retry budget, so an accept-then-drop server still exhausts. */
13
+ const MIN_UPTIME_MS = 5_000;
14
+ const MAX_ENQUEUED_MESSAGES = 1_000;
15
+ /** First-retry delay is drawn once per socket from [500, 1500)ms to de-synchronize reconnect storms. */
16
+ const MIN_RECONNECTION_DELAY_MS = 500;
17
+ const RECONNECTION_JITTER_MS = 1_000;
18
+ const MAX_RECONNECTION_DELAY_MS = 10_000;
19
+ const CLOSED_ERROR = 'WebSocket closed';
20
+ const EXHAUSTED_ERROR = 'WebSocket max reconnect attempts reached';
21
+ const WS_PROVIDER_KEY = 'reconnecting-websocket';
22
+ /**
23
+ * A `WebSocket` transport that auto-reconnects with jittered exponential
24
+ * backoff (`partysocket` internals), buffers sends (bounded) while
25
+ * disconnected, keepalive-pings with the caller-supplied `pingPayload`, and
26
+ * force-reconnects a silently stale stream. Surfaces the
27
+ * {@link WsConnectionStatus} state machine: `reconnecting` on transient drops,
28
+ * terminal `disconnected` once the retry budget is exhausted.
29
+ *
30
+ * @public
31
+ */
32
+ export class ReconnectingWebSocket {
33
+ socket;
34
+ maxRetries;
35
+ pingIntervalMs;
36
+ pingPayload;
37
+ staleWindowMs;
38
+ closed = false;
39
+ reconnectRequested = false;
40
+ lastCloseRetryCount;
41
+ pingTimer = null;
42
+ staleTimer = null;
43
+ listeners = {
44
+ open: new Set(),
45
+ close: new Set(),
46
+ error: new Set(),
47
+ message: new Set(),
48
+ };
49
+ statusListeners = new Set();
50
+ status = 'reconnecting';
51
+ readyResolvers = [];
52
+ constructor(url, options) {
53
+ this.maxRetries = options?.maxRetries ?? DEFAULT_MAX_RETRIES;
54
+ this.pingIntervalMs = options?.pingIntervalMs ?? 30_000;
55
+ this.pingPayload = options?.pingPayload;
56
+ this.staleWindowMs =
57
+ options?.staleWindowMs ??
58
+ this.pingIntervalMs * DEFAULT_STALE_WINDOW_PING_INTERVALS;
59
+ this.socket = new PartySocketWebSocket(url, undefined, {
60
+ maxRetries: this.maxRetries,
61
+ connectionTimeout: CONNECTION_TIMEOUT_MS,
62
+ minUptime: MIN_UPTIME_MS,
63
+ maxEnqueuedMessages: MAX_ENQUEUED_MESSAGES,
64
+ minReconnectionDelay: MIN_RECONNECTION_DELAY_MS + Math.random() * RECONNECTION_JITTER_MS,
65
+ maxReconnectionDelay: MAX_RECONNECTION_DELAY_MS,
66
+ });
67
+ this.lastCloseRetryCount = this.socket.retryCount;
68
+ // The onX handlers receive the raw events; addEventListener would hand out
69
+ // partysocket's clones, which rewrite an empty close reason in Node.
70
+ this.socket.onopen = this.handleOpen;
71
+ this.socket.onclose = this.handleClose;
72
+ this.socket.onerror = this.handleError;
73
+ this.socket.onmessage = this.handleMessage;
74
+ }
75
+ handleOpen = () => {
76
+ this.startPing();
77
+ this.armWatchdog();
78
+ this.setStatus('connected');
79
+ for (const fn of this.listeners.open) {
80
+ this.callListener('open', fn);
81
+ }
82
+ for (const { resolve } of this.readyResolvers) {
83
+ resolve();
84
+ }
85
+ this.readyResolvers = [];
86
+ };
87
+ handleClose = (event) => {
88
+ this.stopPing();
89
+ this.clearWatchdog();
90
+ if (this.closed) {
91
+ return;
92
+ }
93
+ for (const fn of this.listeners.close) {
94
+ this.callListener('close', fn, event.code, event.reason);
95
+ }
96
+ // partysocket schedules the next attempt — incrementing retryCount —
97
+ // before dispatching close, and exhausts silently: a retryCount at the cap
98
+ // that did not move since the previous close means no attempt was
99
+ // scheduled, i.e. the retry budget is spent.
100
+ const retryCount = this.socket.retryCount;
101
+ const exhausted = !this.reconnectRequested &&
102
+ retryCount >= this.maxRetries &&
103
+ retryCount === this.lastCloseRetryCount;
104
+ this.lastCloseRetryCount = retryCount;
105
+ if (exhausted) {
106
+ for (const { reject } of this.readyResolvers) {
107
+ reject(new Error(EXHAUSTED_ERROR));
108
+ }
109
+ this.readyResolvers = [];
110
+ this.setStatus('disconnected');
111
+ }
112
+ else {
113
+ this.setStatus('reconnecting');
114
+ }
115
+ };
116
+ handleError = (event) => {
117
+ for (const fn of this.listeners.error) {
118
+ this.callListener('error', fn, event);
119
+ }
120
+ };
121
+ handleMessage = (event) => {
122
+ this.armWatchdog();
123
+ const data = typeof event.data === 'string' ? event.data : String(event.data);
124
+ for (const fn of this.listeners.message) {
125
+ this.callListener('message', fn, data);
126
+ }
127
+ };
128
+ setStatus(status) {
129
+ if (this.status === status) {
130
+ return;
131
+ }
132
+ this.status = status;
133
+ for (const fn of this.statusListeners) {
134
+ this.callListener('status', fn, status);
135
+ }
136
+ }
137
+ callListener(listenerType, listener, ...args) {
138
+ try {
139
+ listener(...args);
140
+ }
141
+ catch (error) {
142
+ wsLog.listenerFailure(WS_PROVIDER_KEY, listenerType, error);
143
+ }
144
+ }
145
+ startPing() {
146
+ const payload = this.pingPayload;
147
+ if (payload === undefined) {
148
+ return;
149
+ }
150
+ this.pingTimer = setInterval(() => {
151
+ if (this.socket.readyState === PartySocketWebSocket.OPEN) {
152
+ this.socket.send(payload);
153
+ }
154
+ }, this.pingIntervalMs);
155
+ }
156
+ stopPing() {
157
+ if (this.pingTimer) {
158
+ clearInterval(this.pingTimer);
159
+ this.pingTimer = null;
160
+ }
161
+ }
162
+ armWatchdog() {
163
+ if (this.pingPayload === undefined || this.closed) {
164
+ return;
165
+ }
166
+ this.clearWatchdog();
167
+ this.staleTimer = setTimeout(() => {
168
+ // The keepalive went unanswered for the whole window: the connection is
169
+ // half-open and serving stale data — tear it down and reconnect.
170
+ this.reconnect();
171
+ }, this.staleWindowMs);
172
+ }
173
+ clearWatchdog() {
174
+ if (this.staleTimer) {
175
+ clearTimeout(this.staleTimer);
176
+ this.staleTimer = null;
177
+ }
178
+ }
179
+ /**
180
+ * Send `data`, buffering it (bounded) for replay when the socket is not yet
181
+ * open.
182
+ *
183
+ * @public
184
+ */
185
+ send(data) {
186
+ this.socket.send(data);
187
+ }
188
+ /**
189
+ * Permanently close the socket and suppress further reconnection.
190
+ *
191
+ * @public
192
+ */
193
+ close() {
194
+ this.closed = true;
195
+ this.stopPing();
196
+ this.clearWatchdog();
197
+ this.socket.close();
198
+ for (const { reject } of this.readyResolvers) {
199
+ reject(new Error(CLOSED_ERROR));
200
+ }
201
+ this.readyResolvers = [];
202
+ }
203
+ /**
204
+ * Drop the current connection (if any) and reconnect with a fresh retry
205
+ * budget. Recovers a socket that reached terminal `disconnected`: status
206
+ * returns to `reconnecting` and the normal backoff cycle restarts.
207
+ *
208
+ * @public
209
+ */
210
+ reconnect() {
211
+ this.closed = false;
212
+ // Suppress the exhaustion check for the synchronous teardown close the
213
+ // underlying reconnect dispatches — a fresh attempt is always scheduled.
214
+ this.reconnectRequested = true;
215
+ this.socket.reconnect();
216
+ this.reconnectRequested = false;
217
+ this.lastCloseRetryCount = this.socket.retryCount;
218
+ this.setStatus('reconnecting');
219
+ }
220
+ /**
221
+ * Register a listener for a socket lifecycle event.
222
+ *
223
+ * @public
224
+ */
225
+ on(event, fn) {
226
+ ;
227
+ this.listeners[event].add(fn);
228
+ }
229
+ /**
230
+ * Remove a previously registered lifecycle-event listener.
231
+ *
232
+ * @public
233
+ */
234
+ off(event, fn) {
235
+ ;
236
+ this.listeners[event].delete(fn);
237
+ }
238
+ /**
239
+ * Current connection health. `reconnecting` until the first open;
240
+ * `disconnected` once auto-reconnect is abandoned (terminal until
241
+ * {@link ReconnectingWebSocket.reconnect} is called).
242
+ *
243
+ * @public
244
+ */
245
+ getStatus() {
246
+ return this.status;
247
+ }
248
+ /**
249
+ * Register a connection-health listener. Fires on every status transition,
250
+ * including the terminal `disconnected` emitted on reconnect exhaustion.
251
+ *
252
+ * @public
253
+ */
254
+ onStatus(fn) {
255
+ this.statusListeners.add(fn);
256
+ }
257
+ /**
258
+ * Remove a previously registered connection-health listener.
259
+ *
260
+ * @public
261
+ */
262
+ offStatus(fn) {
263
+ this.statusListeners.delete(fn);
264
+ }
265
+ /**
266
+ * Resolve once the socket is open; reject if it closes or exhausts retries
267
+ * before opening. When the socket is already terminally dead — `close()`d or
268
+ * reconnect-exhausted (`disconnected`) — rejects immediately rather than
269
+ * queuing a waiter nothing would ever settle.
270
+ *
271
+ * @public
272
+ */
273
+ ready() {
274
+ if (this.socket.readyState === PartySocketWebSocket.OPEN) {
275
+ return Promise.resolve();
276
+ }
277
+ if (this.closed) {
278
+ return Promise.reject(new Error(CLOSED_ERROR));
279
+ }
280
+ if (this.status === 'disconnected') {
281
+ return Promise.reject(new Error(EXHAUSTED_ERROR));
282
+ }
283
+ return new Promise((resolve, reject) => {
284
+ this.readyResolvers.push({ resolve, reject });
285
+ });
286
+ }
287
+ }
288
+ //# sourceMappingURL=ReconnectingWebSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconnectingWebSocket.js","sourceRoot":"","sources":["../../../src/websocket/ReconnectingWebSocket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import type { Subscription, SubscriptionEvent } from '@lifi/perps-types';
2
+ import type { ProviderGetQuoteParams, QuoteListener } from '../types/provider.js';
3
+ import type { ReconnectingWebSocket } from './ReconnectingWebSocket.js';
4
+ import type { SubscriptionListener, WsProvider, WsStatusListener } from './types.js';
5
+ /**
6
+ * Linger before tearing a channel off the wire after its last listener
7
+ * releases. A re-subscribe to the same key within this window cancels the
8
+ * pending teardown, so React StrictMode's synchronous unmount→remount (ref
9
+ * count 1→0→1) and fast route flips collapse to one wire subscription rather
10
+ * than a subscribe→unsubscribe→subscribe churn the venue would reject.
11
+ *
12
+ * @public
13
+ */
14
+ export declare const WS_CHANNEL_TEARDOWN_LINGER_MS = 250;
15
+ /**
16
+ * Base for per-provider realtime transports. Owns the {@link
17
+ * ReconnectingWebSocket}, the fan-out lifecycle — ref-counted multi-listener
18
+ * subscription per channel key, deferred teardown, status fan-out — so any
19
+ * number of consumers (and StrictMode double-mounts) collapse to exactly one
20
+ * wire subscribe/unsubscribe per key, and the wire-subscription registry:
21
+ * subs recorded via {@link WsProviderBase.registerSub} are sent only while
22
+ * connected and replayed (failure-isolated) on every (re)open. Subclasses own
23
+ * everything wire-specific via {@link WsProviderBase.openChannel}, {@link
24
+ * WsProviderBase.sendSubscribe} and {@link WsProviderBase.handleMessage}:
25
+ * payload framing, frame validation and dispatch.
26
+ *
27
+ * `TSub` is the per-subscription state {@link WsProviderBase.sendSubscribe}
28
+ * needs to (re)build one subscribe frame.
29
+ *
30
+ * @public
31
+ */
32
+ export declare abstract class WsProviderBase<TSub = unknown> implements WsProvider {
33
+ protected readonly rws: ReconnectingWebSocket;
34
+ protected readonly providerKey: string;
35
+ private readonly channels;
36
+ private readonly statusListeners;
37
+ private readonly wireSubs;
38
+ constructor(rws: ReconnectingWebSocket, providerKey: string);
39
+ subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
40
+ reconnect(): void;
41
+ close(): void;
42
+ /** Deliver an event to every listener on `key`. */
43
+ protected emit(key: string, event: SubscriptionEvent): void;
44
+ /**
45
+ * Tear `key` off the wire immediately if no listener holds it — i.e. it is
46
+ * lingering in the deferred-teardown window (or its open is still
47
+ * unwinding). Returns `true` when the key is free (absent or just torn
48
+ * down), `false` — leaving the channel untouched — while live listeners
49
+ * hold it. Lets a subclass that enforces an exclusivity invariant across
50
+ * keys reclaim a released channel without waiting out the linger.
51
+ */
52
+ protected closeChannelIfIdle(key: string): boolean;
53
+ /**
54
+ * Record a wire subscription for replay-on-(re)open and, when the socket is
55
+ * already connected, send its subscribe frame via {@link sendSubscribe}.
56
+ * While the socket is down the replay loop on the next open is the sole
57
+ * sender — sending in both places would double-subscribe. A failed send
58
+ * removes the sub again so a rejected open leaves no registry entry behind.
59
+ */
60
+ protected registerSub(key: string, state: TSub): Promise<void>;
61
+ /** Forget a wire subscription so the next (re)open no longer replays it. */
62
+ protected unregisterSub(key: string): void;
63
+ private replaySubs;
64
+ /** Venue-specific {@link WsProvider.subscribeQuote}; see `resolveSubscribeQuote`. */
65
+ abstract subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
66
+ /** Canonical fan-out key for `sub`; must match the key the subclass emits to. */
67
+ protected abstract toKey(sub: Subscription): string;
68
+ /**
69
+ * Open the channel on the wire (0→1 transition only). Record the wire
70
+ * sub(s) via {@link registerSub} and return a closure that unregisters them
71
+ * and sends the unsubscribe frame(s).
72
+ */
73
+ protected abstract openChannel(sub: Subscription): Promise<() => void>;
74
+ /**
75
+ * Encode and send the subscribe frame for one registered sub. Called by the
76
+ * base while connected — once on register and again on every (re)open — so
77
+ * it must be safe to invoke repeatedly with the same state (e.g. re-fetch a
78
+ * fresh auth token per call rather than embedding one in `state`).
79
+ */
80
+ protected abstract sendSubscribe(state: TSub): void | Promise<void>;
81
+ /** Parse one inbound frame and route it via {@link emit}. */
82
+ protected abstract handleMessage(raw: string): void;
83
+ /** Release subclass-only resources on {@link close} (keep-alive, cached state). */
84
+ protected onClose(): void;
85
+ private callListener;
86
+ private acquireChannel;
87
+ private releaseChannel;
88
+ }
89
+ //# sourceMappingURL=WsProviderBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WsProviderBase.d.ts","sourceRoot":"","sources":["../../../src/websocket/WsProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAiBhD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,cAAc,CAAC,IAAI,GAAG,OAAO,CAAE,YAAW,UAAU;IACxE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAEtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM;IAcrD,SAAS,CACb,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IA2BtB,SAAS,IAAI,IAAI;IAOjB,KAAK,IAAI,IAAI;IAab,mDAAmD;IACnD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAU3D;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgBlD;;;;;;OAMG;cACa,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,4EAA4E;IAC5E,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;YAI5B,UAAU;IAaxB,qFAAqF;IACrF,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtB,iFAAiF;IACjF,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAEnD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnE,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAEnD,mFAAmF;IACnF,SAAS,CAAC,OAAO,IAAI,IAAI;IAEzB,OAAO,CAAC,YAAY;YAYN,cAAc;IAgD5B,OAAO,CAAC,cAAc;CAwCvB"}