@lifi/perps-sdk 0.2.0-alpha.0 → 1.0.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 (908) hide show
  1. package/README.md +138 -24
  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,246 @@
1
+ import { wsLog } from './wsLog.js';
2
+ /**
3
+ * Linger before tearing a channel off the wire after its last listener
4
+ * releases. A re-subscribe to the same key within this window cancels the
5
+ * pending teardown, so React StrictMode's synchronous unmount→remount (ref
6
+ * count 1→0→1) and fast route flips collapse to one wire subscription rather
7
+ * than a subscribe→unsubscribe→subscribe churn the venue would reject.
8
+ *
9
+ * @public
10
+ */
11
+ export const WS_CHANNEL_TEARDOWN_LINGER_MS = 250;
12
+ /**
13
+ * Base for per-provider realtime transports. Owns the {@link
14
+ * ReconnectingWebSocket}, the fan-out lifecycle — ref-counted multi-listener
15
+ * subscription per channel key, deferred teardown, status fan-out — so any
16
+ * number of consumers (and StrictMode double-mounts) collapse to exactly one
17
+ * wire subscribe/unsubscribe per key, and the wire-subscription registry:
18
+ * subs recorded via {@link WsProviderBase.registerSub} are sent only while
19
+ * connected and replayed (failure-isolated) on every (re)open. Subclasses own
20
+ * everything wire-specific via {@link WsProviderBase.openChannel}, {@link
21
+ * WsProviderBase.sendSubscribe} and {@link WsProviderBase.handleMessage}:
22
+ * payload framing, frame validation and dispatch.
23
+ *
24
+ * `TSub` is the per-subscription state {@link WsProviderBase.sendSubscribe}
25
+ * needs to (re)build one subscribe frame.
26
+ *
27
+ * @public
28
+ */
29
+ export class WsProviderBase {
30
+ rws;
31
+ providerKey;
32
+ channels = new Map();
33
+ statusListeners = new Map();
34
+ wireSubs = new Map();
35
+ constructor(rws, providerKey) {
36
+ this.providerKey = providerKey;
37
+ this.rws = rws;
38
+ this.rws.on('message', (data) => this.handleMessage(data));
39
+ this.rws.on('open', () => {
40
+ void this.replaySubs();
41
+ });
42
+ this.rws.onStatus((status) => {
43
+ for (const fn of this.statusListeners.keys()) {
44
+ this.callListener('status', fn, status);
45
+ }
46
+ });
47
+ }
48
+ async subscribe(sub, listener, onStatus) {
49
+ this.reconnect();
50
+ const key = this.toKey(sub);
51
+ await this.acquireChannel(key, sub, listener);
52
+ if (onStatus) {
53
+ this.statusListeners.set(onStatus, (this.statusListeners.get(onStatus) ?? 0) + 1);
54
+ onStatus(this.rws.getStatus());
55
+ }
56
+ return () => {
57
+ if (onStatus) {
58
+ const remaining = (this.statusListeners.get(onStatus) ?? 0) - 1;
59
+ if (remaining > 0) {
60
+ this.statusListeners.set(onStatus, remaining);
61
+ }
62
+ else {
63
+ this.statusListeners.delete(onStatus);
64
+ }
65
+ }
66
+ this.releaseChannel(key, listener);
67
+ };
68
+ }
69
+ reconnect() {
70
+ if (this.rws.getStatus() !== 'disconnected') {
71
+ return;
72
+ }
73
+ this.rws.reconnect();
74
+ }
75
+ close() {
76
+ for (const entry of this.channels.values()) {
77
+ if (entry.pendingTeardown !== undefined) {
78
+ clearTimeout(entry.pendingTeardown);
79
+ }
80
+ }
81
+ this.onClose();
82
+ this.rws.close();
83
+ this.channels.clear();
84
+ this.statusListeners.clear();
85
+ this.wireSubs.clear();
86
+ }
87
+ /** Deliver an event to every listener on `key`. */
88
+ emit(key, event) {
89
+ const entry = this.channels.get(key);
90
+ if (entry === undefined) {
91
+ return;
92
+ }
93
+ for (const fn of entry.listeners.keys()) {
94
+ this.callListener(`subscription:${key}`, fn, event);
95
+ }
96
+ }
97
+ /**
98
+ * Tear `key` off the wire immediately if no listener holds it — i.e. it is
99
+ * lingering in the deferred-teardown window (or its open is still
100
+ * unwinding). Returns `true` when the key is free (absent or just torn
101
+ * down), `false` — leaving the channel untouched — while live listeners
102
+ * hold it. Lets a subclass that enforces an exclusivity invariant across
103
+ * keys reclaim a released channel without waiting out the linger.
104
+ */
105
+ closeChannelIfIdle(key) {
106
+ const entry = this.channels.get(key);
107
+ if (entry === undefined) {
108
+ return true;
109
+ }
110
+ if (entry.listeners.size > 0) {
111
+ return false;
112
+ }
113
+ if (entry.pendingTeardown !== undefined) {
114
+ clearTimeout(entry.pendingTeardown);
115
+ }
116
+ entry.teardown?.();
117
+ this.channels.delete(key);
118
+ return true;
119
+ }
120
+ /**
121
+ * Record a wire subscription for replay-on-(re)open and, when the socket is
122
+ * already connected, send its subscribe frame via {@link sendSubscribe}.
123
+ * While the socket is down the replay loop on the next open is the sole
124
+ * sender — sending in both places would double-subscribe. A failed send
125
+ * removes the sub again so a rejected open leaves no registry entry behind.
126
+ */
127
+ async registerSub(key, state) {
128
+ this.wireSubs.set(key, state);
129
+ if (this.rws.getStatus() !== 'connected') {
130
+ return;
131
+ }
132
+ try {
133
+ await this.sendSubscribe(state);
134
+ }
135
+ catch (err) {
136
+ this.wireSubs.delete(key);
137
+ throw err;
138
+ }
139
+ }
140
+ /** Forget a wire subscription so the next (re)open no longer replays it. */
141
+ unregisterSub(key) {
142
+ this.wireSubs.delete(key);
143
+ }
144
+ async replaySubs() {
145
+ for (const [key, state] of this.wireSubs) {
146
+ // Isolate each resubscribe: a send can reject (e.g. an auth-token fetch
147
+ // after reconnect), and one sub's failure must not abort the rest of
148
+ // the loop or escape as an unhandled rejection.
149
+ try {
150
+ await this.sendSubscribe(state);
151
+ }
152
+ catch (err) {
153
+ wsLog.subscribeFailure(this.providerKey, key, err);
154
+ }
155
+ }
156
+ }
157
+ /** Release subclass-only resources on {@link close} (keep-alive, cached state). */
158
+ onClose() { }
159
+ callListener(listenerType, listener, ...args) {
160
+ try {
161
+ listener(...args);
162
+ }
163
+ catch (error) {
164
+ wsLog.listenerFailure(this.providerKey, listenerType, error);
165
+ }
166
+ }
167
+ async acquireChannel(key, sub, listener) {
168
+ let entry = this.channels.get(key);
169
+ if (entry === undefined) {
170
+ entry = { listeners: new Map() };
171
+ this.channels.set(key, entry);
172
+ }
173
+ // Register first (ref-counted) so a frame arriving during an in-flight open
174
+ // is delivered; cancel any pending teardown (re-subscribe within the linger).
175
+ entry.listeners.set(listener, (entry.listeners.get(listener) ?? 0) + 1);
176
+ if (entry.pendingTeardown !== undefined) {
177
+ clearTimeout(entry.pendingTeardown);
178
+ entry.pendingTeardown = undefined;
179
+ }
180
+ if (entry.teardown !== undefined) {
181
+ return;
182
+ }
183
+ if (entry.opening !== undefined) {
184
+ await entry.opening;
185
+ return;
186
+ }
187
+ const opening = this.openChannel(sub);
188
+ entry.opening = opening;
189
+ try {
190
+ const teardown = await opening;
191
+ const current = this.channels.get(key);
192
+ if (current === undefined || current.listeners.size === 0) {
193
+ // Every listener released while opening — unwind immediately.
194
+ teardown();
195
+ this.channels.delete(key);
196
+ return;
197
+ }
198
+ current.teardown = teardown;
199
+ current.opening = undefined;
200
+ }
201
+ catch (err) {
202
+ // Open failed: drop the channel so all (concurrent) subscribers reject
203
+ // cleanly and a later subscribe re-opens.
204
+ this.channels.delete(key);
205
+ throw err;
206
+ }
207
+ }
208
+ releaseChannel(key, listener) {
209
+ const entry = this.channels.get(key);
210
+ if (entry === undefined) {
211
+ return;
212
+ }
213
+ const remaining = (entry.listeners.get(listener) ?? 0) - 1;
214
+ if (remaining > 0) {
215
+ entry.listeners.set(listener, remaining);
216
+ return;
217
+ }
218
+ entry.listeners.delete(listener);
219
+ if (entry.listeners.size > 0) {
220
+ return;
221
+ }
222
+ if (entry.teardown === undefined) {
223
+ // Open not resolved yet — acquireChannel's post-open check unwinds it.
224
+ if (entry.opening === undefined) {
225
+ this.channels.delete(key);
226
+ }
227
+ return;
228
+ }
229
+ if (entry.pendingTeardown !== undefined) {
230
+ return;
231
+ }
232
+ entry.pendingTeardown = setTimeout(() => {
233
+ const e = this.channels.get(key);
234
+ if (e === undefined) {
235
+ return;
236
+ }
237
+ if (e.listeners.size > 0) {
238
+ e.pendingTeardown = undefined;
239
+ return;
240
+ }
241
+ e.teardown?.();
242
+ this.channels.delete(key);
243
+ }, WS_CHANNEL_TEARDOWN_LINGER_MS);
244
+ }
245
+ }
246
+ //# sourceMappingURL=WsProviderBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WsProviderBase.js","sourceRoot":"","sources":["../../../src/websocket/WsProviderBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Single-flight a promise through a caller-owned cache slot, evicting the
3
+ * cached promise if it rejects so the next call retries cleanly.
4
+ *
5
+ * Concurrent callers share the one in-flight promise; the rejection still
6
+ * propagates to every awaiter that triggered it. Only a settled rejection is
7
+ * evicted — a resolved promise stays cached.
8
+ *
9
+ * @param read - Returns the currently cached promise, or `undefined` if none.
10
+ * @param write - Stores (or with `undefined`, clears) the cached promise.
11
+ * @param factory - Creates the promise when the slot is empty.
12
+ */
13
+ export declare function cachePromise<T>(read: () => Promise<T> | undefined, write: (promise: Promise<T> | undefined) => void, factory: () => Promise<T>): Promise<T>;
14
+ //# sourceMappingURL=cachePromise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cachePromise.d.ts","sourceRoot":"","sources":["../../../src/websocket/cachePromise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,IAAI,EAChD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Single-flight a promise through a caller-owned cache slot, evicting the
3
+ * cached promise if it rejects so the next call retries cleanly.
4
+ *
5
+ * Concurrent callers share the one in-flight promise; the rejection still
6
+ * propagates to every awaiter that triggered it. Only a settled rejection is
7
+ * evicted — a resolved promise stays cached.
8
+ *
9
+ * @param read - Returns the currently cached promise, or `undefined` if none.
10
+ * @param write - Stores (or with `undefined`, clears) the cached promise.
11
+ * @param factory - Creates the promise when the slot is empty.
12
+ */
13
+ export function cachePromise(read, write, factory) {
14
+ const cached = read();
15
+ if (cached) {
16
+ return cached;
17
+ }
18
+ const promise = factory();
19
+ promise.catch(() => {
20
+ if (read() === promise) {
21
+ write(undefined);
22
+ }
23
+ });
24
+ write(promise);
25
+ return promise;
26
+ }
27
+ //# sourceMappingURL=cachePromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cachePromise.js","sourceRoot":"","sources":["../../../src/websocket/cachePromise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAkC,EAClC,KAAgD,EAChD,OAAyB;IAEzB,MAAM,MAAM,GAAG,IAAI,EAAE,CAAA;IACrB,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,EAAE,CAAA;IACzB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QACjB,IAAI,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACvB,KAAK,CAAC,SAAS,CAAC,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,OAAO,CAAC,CAAA;IACd,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { Subscription, SubscriptionEvent } from '@lifi/perps-types';
2
+ import type { ProviderGetQuoteParams, QuoteListener } from '../types/provider.js';
3
+ /**
4
+ * The concrete {@link SubscriptionEvent} variant a given subscription `S`
5
+ * emits, narrowed by its `channel`.
6
+ *
7
+ * @public
8
+ */
9
+ export type EventForSubscription<S extends Subscription> = Extract<SubscriptionEvent, {
10
+ channel: S['channel'];
11
+ }>;
12
+ /**
13
+ * Listener invoked with each realtime {@link SubscriptionEvent}.
14
+ *
15
+ * @public
16
+ */
17
+ export type SubscriptionListener = (event: SubscriptionEvent) => void;
18
+ /**
19
+ * Health of a provider's underlying WS connection.
20
+ *
21
+ * - `connected` — socket open, live data flowing.
22
+ * - `reconnecting` — socket dropped; auto-reconnect with backoff in progress.
23
+ * Data may be stale until it returns to `connected`.
24
+ * - `disconnected` — reconnection abandoned after the retry cap. The
25
+ * connection is permanently dead and will not recover on its own; the
26
+ * subscription's data is stale. Terminal.
27
+ *
28
+ * @public
29
+ */
30
+ export type WsConnectionStatus = 'connected' | 'reconnecting' | 'disconnected';
31
+ /**
32
+ * Listener invoked when the underlying WS connection's health changes.
33
+ *
34
+ * @public
35
+ */
36
+ export type WsStatusListener = (status: WsConnectionStatus) => void;
37
+ /**
38
+ * Per-provider realtime transport contract used by {@link PerpsWsClient}.
39
+ * Implemented by the provider packages' WS plugins.
40
+ *
41
+ * @public
42
+ */
43
+ export interface WsProvider {
44
+ subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
45
+ /**
46
+ * Recover a terminally exhausted connection. Safe no-op unless status is
47
+ * `disconnected`.
48
+ */
49
+ reconnect(): void;
50
+ /**
51
+ * Stream live fill {@link Quote}s for `params.size` USD notional of
52
+ * `params.symbol` on this venue, layered on the orderbook channel: the
53
+ * provider resolves the symbol against its own markets and re-runs the
54
+ * one-shot quote transform on each (throttled) book update, applying its
55
+ * public base fee tier. Returns an idempotent unsubscribe.
56
+ */
57
+ subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
58
+ close(): void;
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/websocket/types.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;AAE7B;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI,OAAO,CAChE,iBAAiB,EACjB;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,CACP,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB;;;OAGG;IACH,SAAS,IAAI,IAAI,CAAA;IACjB;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,IAAI,CAAA;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/realtime/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/websocket/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Structured logger for WS message-handling and subscription failures, shared
3
+ * by the provider packages so a malformed frame, a throwing mapper, or a failed
4
+ * resubscribe never vanishes silently.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare const wsLog: {
9
+ /**
10
+ * A single frame that could not be parsed as JSON. Expected to recur on a
11
+ * noisy stream, so logged at `warn` with a truncated payload — never fatal.
12
+ */
13
+ readonly parseFailure: (provider: string, raw: string) => void;
14
+ /**
15
+ * A frame parsed but its handler threw (mapper bug, `MarketNotFound`, …).
16
+ * This is unexpected and must surface; the frame is skipped so one bad
17
+ * frame does not stall the stream or starve other channels.
18
+ */
19
+ readonly handlerFailure: (provider: string, error: unknown) => void;
20
+ /**
21
+ * An `error`-channel frame the server pushed (e.g. a rejected or duplicate
22
+ * subscription). The frame parsed fine — this is the venue reporting a
23
+ * problem, not a malformed frame — so surface it at `error` with the
24
+ * server's own text rather than mislabelling it a parse failure.
25
+ */
26
+ readonly serverError: (provider: string, message: string) => void;
27
+ /**
28
+ * A channel's (re)subscribe threw while (re)opening the socket — e.g. an
29
+ * auth-token fetch rejected after a reconnect. Surfaced at `error`; the
30
+ * channel is skipped so one failure does not abort the others.
31
+ */
32
+ readonly subscribeFailure: (provider: string, channel: string, error: unknown) => void;
33
+ /**
34
+ * A frame item referenced a market id missing from the registry (e.g.
35
+ * listed after the snapshot). The item is skipped — never the whole frame —
36
+ * so logged at `warn`.
37
+ */
38
+ readonly unknownMarket: (provider: string, marketId: string) => void;
39
+ /**
40
+ * A background market-registry refetch rejected. Unknown-market items keep
41
+ * being skipped until the next cooldown-gated retry, so logged at `warn`.
42
+ */
43
+ readonly marketRefreshFailure: (provider: string, error: unknown) => void;
44
+ /**
45
+ * A consumer listener callback threw during fan-out. Logged and skipped so
46
+ * one bad listener cannot starve sibling listeners or break socket flow.
47
+ */
48
+ readonly listenerFailure: (provider: string, listenerType: string, error: unknown) => void;
49
+ };
50
+ //# sourceMappingURL=wsLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsLog.d.ts","sourceRoot":"","sources":["../../../src/websocket/wsLog.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,eAAO,MAAM,KAAK;IAChB;;;OAGG;sCACoB,MAAM,OAAO,MAAM,KAAG,IAAI;IAGjD;;;;OAIG;wCACsB,MAAM,SAAS,OAAO,KAAG,IAAI;IAGtD;;;;;OAKG;qCACmB,MAAM,WAAW,MAAM,KAAG,IAAI;IAGpD;;;;OAIG;0CACwB,MAAM,WAAW,MAAM,SAAS,OAAO,KAAG,IAAI;IAMzE;;;;OAIG;uCACqB,MAAM,YAAY,MAAM,KAAG,IAAI;IAKvD;;;OAGG;8CAC4B,MAAM,SAAS,OAAO,KAAG,IAAI;IAG5D;;;OAGG;yCAES,MAAM,gBACF,MAAM,SACb,OAAO,KACb,IAAI;CAMC,CAAA"}
@@ -0,0 +1,68 @@
1
+ const MAX_PAYLOAD_CHARS = 512;
2
+ const truncate = (raw) => raw.length > MAX_PAYLOAD_CHARS
3
+ ? `${raw.slice(0, MAX_PAYLOAD_CHARS)}…(${raw.length} chars)`
4
+ : raw;
5
+ /**
6
+ * Structured logger for WS message-handling and subscription failures, shared
7
+ * by the provider packages so a malformed frame, a throwing mapper, or a failed
8
+ * resubscribe never vanishes silently.
9
+ *
10
+ * @internal
11
+ */
12
+ export const wsLog = {
13
+ /**
14
+ * A single frame that could not be parsed as JSON. Expected to recur on a
15
+ * noisy stream, so logged at `warn` with a truncated payload — never fatal.
16
+ */
17
+ parseFailure(provider, raw) {
18
+ console.warn(`[${provider}:ws] dropping unparseable frame`, truncate(raw));
19
+ },
20
+ /**
21
+ * A frame parsed but its handler threw (mapper bug, `MarketNotFound`, …).
22
+ * This is unexpected and must surface; the frame is skipped so one bad
23
+ * frame does not stall the stream or starve other channels.
24
+ */
25
+ handlerFailure(provider, error) {
26
+ console.error(`[${provider}:ws] message handler threw`, error);
27
+ },
28
+ /**
29
+ * An `error`-channel frame the server pushed (e.g. a rejected or duplicate
30
+ * subscription). The frame parsed fine — this is the venue reporting a
31
+ * problem, not a malformed frame — so surface it at `error` with the
32
+ * server's own text rather than mislabelling it a parse failure.
33
+ */
34
+ serverError(provider, message) {
35
+ console.error(`[${provider}:ws] server error`, message);
36
+ },
37
+ /**
38
+ * A channel's (re)subscribe threw while (re)opening the socket — e.g. an
39
+ * auth-token fetch rejected after a reconnect. Surfaced at `error`; the
40
+ * channel is skipped so one failure does not abort the others.
41
+ */
42
+ subscribeFailure(provider, channel, error) {
43
+ console.error(`[${provider}:ws] resubscribe failed for channel '${channel}'; it will not receive updates until the next reconnect.`, error);
44
+ },
45
+ /**
46
+ * A frame item referenced a market id missing from the registry (e.g.
47
+ * listed after the snapshot). The item is skipped — never the whole frame —
48
+ * so logged at `warn`.
49
+ */
50
+ unknownMarket(provider, marketId) {
51
+ console.warn(`[${provider}:ws] skipping item for unknown market '${marketId}'`);
52
+ },
53
+ /**
54
+ * A background market-registry refetch rejected. Unknown-market items keep
55
+ * being skipped until the next cooldown-gated retry, so logged at `warn`.
56
+ */
57
+ marketRefreshFailure(provider, error) {
58
+ console.warn(`[${provider}:ws] market registry refresh failed`, error);
59
+ },
60
+ /**
61
+ * A consumer listener callback threw during fan-out. Logged and skipped so
62
+ * one bad listener cannot starve sibling listeners or break socket flow.
63
+ */
64
+ listenerFailure(provider, listenerType, error) {
65
+ console.error(`[${provider}:ws] listener threw during '${listenerType}' fan-out`, error);
66
+ },
67
+ };
68
+ //# sourceMappingURL=wsLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsLog.js","sourceRoot":"","sources":["../../../src/websocket/wsLog.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CACvC,GAAG,CAAC,MAAM,GAAG,iBAAiB;IAC5B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,GAAG,CAAC,MAAM,SAAS;IAC5D,CAAC,CAAC,GAAG,CAAA;AAET;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;;OAGG;IACH,YAAY,CAAC,QAAgB,EAAE,GAAW;QACxC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,iCAAiC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD;;;;OAIG;IACH,cAAc,CAAC,QAAgB,EAAE,KAAc;QAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,4BAA4B,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC;IACD;;;;;OAKG;IACH,WAAW,CAAC,QAAgB,EAAE,OAAe;QAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IACD;;;;OAIG;IACH,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,KAAc;QAChE,OAAO,CAAC,KAAK,CACX,IAAI,QAAQ,wCAAwC,OAAO,0DAA0D,EACrH,KAAK,CACN,CAAA;IACH,CAAC;IACD;;;;OAIG;IACH,aAAa,CAAC,QAAgB,EAAE,QAAgB;QAC9C,OAAO,CAAC,IAAI,CACV,IAAI,QAAQ,0CAA0C,QAAQ,GAAG,CAClE,CAAA;IACH,CAAC;IACD;;;OAGG;IACH,oBAAoB,CAAC,QAAgB,EAAE,KAAc;QACnD,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,qCAAqC,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IACD;;;OAGG;IACH,eAAe,CACb,QAAgB,EAChB,YAAoB,EACpB,KAAc;QAEd,OAAO,CAAC,KAAK,CACX,IAAI,QAAQ,+BAA+B,YAAY,WAAW,EAClE,KAAK,CACN,CAAA;IACH,CAAC;CACO,CAAA"}