@polyester/sdk 0.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 (745) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +7 -0
  3. package/README.md +55 -0
  4. package/SECURITY.md +14 -0
  5. package/dist/_virtual/_rolldown/runtime.js +13 -0
  6. package/dist/account-signer/create-polyester-account-signer.d.ts +28 -0
  7. package/dist/account-signer/create-polyester-account-signer.d.ts.map +1 -0
  8. package/dist/account-signer/create-polyester-account-signer.js +101 -0
  9. package/dist/account-signer/create-polyester-account-signer.js.map +1 -0
  10. package/dist/account-signer/index.d.ts +3 -0
  11. package/dist/account-signer/index.js +3 -0
  12. package/dist/account-signer/predict-safe-address.js +230 -0
  13. package/dist/account-signer/predict-safe-address.js.map +1 -0
  14. package/dist/account-signer/types.d.ts +40 -0
  15. package/dist/account-signer/types.d.ts.map +1 -0
  16. package/dist/account-signer/types.js +29 -0
  17. package/dist/account-signer/types.js.map +1 -0
  18. package/dist/browser-client.d.ts +37 -0
  19. package/dist/browser-client.d.ts.map +1 -0
  20. package/dist/browser-client.js +69 -0
  21. package/dist/browser-client.js.map +1 -0
  22. package/dist/catalogs/client-catalog.d.ts +6 -0
  23. package/dist/catalogs/client-catalog.d.ts.map +1 -0
  24. package/dist/catalogs/client-catalog.js +88 -0
  25. package/dist/catalogs/client-catalog.js.map +1 -0
  26. package/dist/catalogs/decimal.js +92 -0
  27. package/dist/catalogs/decimal.js.map +1 -0
  28. package/dist/catalogs/index.d.ts +10 -0
  29. package/dist/catalogs/index.js +8 -0
  30. package/dist/catalogs/indexes.js +36 -0
  31. package/dist/catalogs/indexes.js.map +1 -0
  32. package/dist/catalogs/market-data-catalog.d.ts +37 -0
  33. package/dist/catalogs/market-data-catalog.d.ts.map +1 -0
  34. package/dist/catalogs/market-data-catalog.js +49 -0
  35. package/dist/catalogs/market-data-catalog.js.map +1 -0
  36. package/dist/catalogs/readers.d.ts +6 -0
  37. package/dist/catalogs/readers.d.ts.map +1 -0
  38. package/dist/catalogs/readers.js +545 -0
  39. package/dist/catalogs/readers.js.map +1 -0
  40. package/dist/catalogs/snapshot.d.ts +18 -0
  41. package/dist/catalogs/snapshot.d.ts.map +1 -0
  42. package/dist/catalogs/snapshot.js +16 -0
  43. package/dist/catalogs/snapshot.js.map +1 -0
  44. package/dist/catalogs/types.d.ts +268 -0
  45. package/dist/catalogs/types.d.ts.map +1 -0
  46. package/dist/catalogs/types.js +48 -0
  47. package/dist/catalogs/types.js.map +1 -0
  48. package/dist/catalogs/unknown-asset.d.ts +27 -0
  49. package/dist/catalogs/unknown-asset.d.ts.map +1 -0
  50. package/dist/catalogs/unknown-asset.js +38 -0
  51. package/dist/catalogs/unknown-asset.js.map +1 -0
  52. package/dist/catalogs/zipper-catalog.d.ts +33 -0
  53. package/dist/catalogs/zipper-catalog.d.ts.map +1 -0
  54. package/dist/catalogs/zipper-catalog.js +54 -0
  55. package/dist/catalogs/zipper-catalog.js.map +1 -0
  56. package/dist/catalogs/zipper-supply.d.ts +10 -0
  57. package/dist/catalogs/zipper-supply.d.ts.map +1 -0
  58. package/dist/catalogs/zipper-supply.js +40 -0
  59. package/dist/catalogs/zipper-supply.js.map +1 -0
  60. package/dist/core-client.d.ts +155 -0
  61. package/dist/core-client.d.ts.map +1 -0
  62. package/dist/core-client.js +266 -0
  63. package/dist/core-client.js.map +1 -0
  64. package/dist/environment.d.ts +57 -0
  65. package/dist/environment.d.ts.map +1 -0
  66. package/dist/environment.js +153 -0
  67. package/dist/environment.js.map +1 -0
  68. package/dist/gen/auth/v1/address_book_pb.d.ts +2012 -0
  69. package/dist/gen/auth/v1/address_book_pb.d.ts.map +1 -0
  70. package/dist/gen/auth/v1/address_book_pb.js +505 -0
  71. package/dist/gen/auth/v1/address_book_pb.js.map +1 -0
  72. package/dist/gen/auth/v1/api_keys_pb.d.ts +496 -0
  73. package/dist/gen/auth/v1/api_keys_pb.d.ts.map +1 -0
  74. package/dist/gen/auth/v1/api_keys_pb.js +137 -0
  75. package/dist/gen/auth/v1/api_keys_pb.js.map +1 -0
  76. package/dist/gen/auth/v1/auth_pb.d.ts +523 -0
  77. package/dist/gen/auth/v1/auth_pb.d.ts.map +1 -0
  78. package/dist/gen/auth/v1/auth_pb.js +313 -0
  79. package/dist/gen/auth/v1/auth_pb.js.map +1 -0
  80. package/dist/gen/auth/v1/mfa_pb.d.ts +1020 -0
  81. package/dist/gen/auth/v1/mfa_pb.d.ts.map +1 -0
  82. package/dist/gen/auth/v1/mfa_pb.js +315 -0
  83. package/dist/gen/auth/v1/mfa_pb.js.map +1 -0
  84. package/dist/gen/auth/v1/policies_pb.d.ts +1410 -0
  85. package/dist/gen/auth/v1/policies_pb.d.ts.map +1 -0
  86. package/dist/gen/auth/v1/policies_pb.js +341 -0
  87. package/dist/gen/auth/v1/policies_pb.js.map +1 -0
  88. package/dist/gen/auth/v1/profile_pb.d.ts +370 -0
  89. package/dist/gen/auth/v1/profile_pb.d.ts.map +1 -0
  90. package/dist/gen/auth/v1/profile_pb.js +114 -0
  91. package/dist/gen/auth/v1/profile_pb.js.map +1 -0
  92. package/dist/gen/auth/v1/resolve_pb.d.ts +174 -0
  93. package/dist/gen/auth/v1/resolve_pb.d.ts.map +1 -0
  94. package/dist/gen/auth/v1/resolve_pb.js +80 -0
  95. package/dist/gen/auth/v1/resolve_pb.js.map +1 -0
  96. package/dist/gen/auth/v1/social_verification_pb.d.ts +408 -0
  97. package/dist/gen/auth/v1/social_verification_pb.d.ts.map +1 -0
  98. package/dist/gen/auth/v1/social_verification_pb.js +196 -0
  99. package/dist/gen/auth/v1/social_verification_pb.js.map +1 -0
  100. package/dist/gen/auth/v1/subaccounts_pb.d.ts +1490 -0
  101. package/dist/gen/auth/v1/subaccounts_pb.d.ts.map +1 -0
  102. package/dist/gen/auth/v1/subaccounts_pb.js +574 -0
  103. package/dist/gen/auth/v1/subaccounts_pb.js.map +1 -0
  104. package/dist/gen/chain/analytics/v1/analytics_read_pb.d.ts +426 -0
  105. package/dist/gen/chain/analytics/v1/analytics_read_pb.d.ts.map +1 -0
  106. package/dist/gen/chain/analytics/v1/analytics_read_pb.js +119 -0
  107. package/dist/gen/chain/analytics/v1/analytics_read_pb.js.map +1 -0
  108. package/dist/gen/chain/deposit/v1/deposit_pb.d.ts +158 -0
  109. package/dist/gen/chain/deposit/v1/deposit_pb.d.ts.map +1 -0
  110. package/dist/gen/chain/deposit/v1/deposit_pb.js +52 -0
  111. package/dist/gen/chain/deposit/v1/deposit_pb.js.map +1 -0
  112. package/dist/gen/chain/guard/v1/guard_signer_pb.d.ts +588 -0
  113. package/dist/gen/chain/guard/v1/guard_signer_pb.d.ts.map +1 -0
  114. package/dist/gen/chain/guard/v1/guard_signer_pb.js +195 -0
  115. package/dist/gen/chain/guard/v1/guard_signer_pb.js.map +1 -0
  116. package/dist/gen/chain/lifecycle/v1/lifecycle_read_pb.d.ts +1297 -0
  117. package/dist/gen/chain/lifecycle/v1/lifecycle_read_pb.d.ts.map +1 -0
  118. package/dist/gen/chain/lifecycle/v1/lifecycle_read_pb.js +408 -0
  119. package/dist/gen/chain/lifecycle/v1/lifecycle_read_pb.js.map +1 -0
  120. package/dist/gen/chain/lifecycle/v1/types_pb.d.ts +359 -0
  121. package/dist/gen/chain/lifecycle/v1/types_pb.d.ts.map +1 -0
  122. package/dist/gen/chain/lifecycle/v1/types_pb.js +322 -0
  123. package/dist/gen/chain/lifecycle/v1/types_pb.js.map +1 -0
  124. package/dist/gen/chain/withdraw/v1/withdraw_pb.d.ts +236 -0
  125. package/dist/gen/chain/withdraw/v1/withdraw_pb.d.ts.map +1 -0
  126. package/dist/gen/chain/withdraw/v1/withdraw_pb.js +79 -0
  127. package/dist/gen/chain/withdraw/v1/withdraw_pb.js.map +1 -0
  128. package/dist/gen/chain/zipper/v1/reason_pb.d.ts +349 -0
  129. package/dist/gen/chain/zipper/v1/reason_pb.d.ts.map +1 -0
  130. package/dist/gen/chain/zipper/v1/reason_pb.js +330 -0
  131. package/dist/gen/chain/zipper/v1/reason_pb.js.map +1 -0
  132. package/dist/gen/chain/zipper/v1/zipper_pb.d.ts +396 -0
  133. package/dist/gen/chain/zipper/v1/zipper_pb.d.ts.map +1 -0
  134. package/dist/gen/chain/zipper/v1/zipper_pb.js +70 -0
  135. package/dist/gen/chain/zipper/v1/zipper_pb.js.map +1 -0
  136. package/dist/gen/collab/v1/whiteboard_pb.d.ts +829 -0
  137. package/dist/gen/collab/v1/whiteboard_pb.d.ts.map +1 -0
  138. package/dist/gen/collab/v1/whiteboard_pb.js +250 -0
  139. package/dist/gen/collab/v1/whiteboard_pb.js.map +1 -0
  140. package/dist/gen/index.d.ts +35 -0
  141. package/dist/gen/index.js +35 -0
  142. package/dist/gen/layout/v1/layout_pb.d.ts +1289 -0
  143. package/dist/gen/layout/v1/layout_pb.d.ts.map +1 -0
  144. package/dist/gen/layout/v1/layout_pb.js +313 -0
  145. package/dist/gen/layout/v1/layout_pb.js.map +1 -0
  146. package/dist/gen/ledger/read/v1/ledger_read_pb.d.ts +1000 -0
  147. package/dist/gen/ledger/read/v1/ledger_read_pb.d.ts.map +1 -0
  148. package/dist/gen/ledger/read/v1/ledger_read_pb.js +347 -0
  149. package/dist/gen/ledger/read/v1/ledger_read_pb.js.map +1 -0
  150. package/dist/gen/ledger/v1/catalog_pb.d.ts +129 -0
  151. package/dist/gen/ledger/v1/catalog_pb.d.ts.map +1 -0
  152. package/dist/gen/ledger/v1/catalog_pb.js +138 -0
  153. package/dist/gen/ledger/v1/catalog_pb.js.map +1 -0
  154. package/dist/gen/marketdata/v1/heatmap_pb.d.ts +571 -0
  155. package/dist/gen/marketdata/v1/heatmap_pb.d.ts.map +1 -0
  156. package/dist/gen/marketdata/v1/heatmap_pb.js +194 -0
  157. package/dist/gen/marketdata/v1/heatmap_pb.js.map +1 -0
  158. package/dist/gen/marketdata/v1/marketdata_pb.d.ts +1015 -0
  159. package/dist/gen/marketdata/v1/marketdata_pb.d.ts.map +1 -0
  160. package/dist/gen/marketdata/v1/marketdata_pb.js +274 -0
  161. package/dist/gen/marketdata/v1/marketdata_pb.js.map +1 -0
  162. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +419 -0
  163. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -0
  164. package/dist/gen/marketoverview/v1/marketoverview_pb.js +212 -0
  165. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -0
  166. package/dist/gen/orderbook/v1/orderbook_pb.d.ts +260 -0
  167. package/dist/gen/orderbook/v1/orderbook_pb.d.ts.map +1 -0
  168. package/dist/gen/orderbook/v1/orderbook_pb.js +119 -0
  169. package/dist/gen/orderbook/v1/orderbook_pb.js.map +1 -0
  170. package/dist/gen/orders/v1/orders_pb.d.ts +2497 -0
  171. package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -0
  172. package/dist/gen/orders/v1/orders_pb.js +1043 -0
  173. package/dist/gen/orders/v1/orders_pb.js.map +1 -0
  174. package/dist/gen/orders/v1/orders_read_pb.d.ts +1322 -0
  175. package/dist/gen/orders/v1/orders_read_pb.d.ts.map +1 -0
  176. package/dist/gen/orders/v1/orders_read_pb.js +408 -0
  177. package/dist/gen/orders/v1/orders_read_pb.js.map +1 -0
  178. package/dist/gen/polychart/events/v1/polychart_events_pb.d.ts +192 -0
  179. package/dist/gen/polychart/events/v1/polychart_events_pb.d.ts.map +1 -0
  180. package/dist/gen/polychart/events/v1/polychart_events_pb.js +57 -0
  181. package/dist/gen/polychart/events/v1/polychart_events_pb.js.map +1 -0
  182. package/dist/gen/polychart/v1/polychart_pb.d.ts +1208 -0
  183. package/dist/gen/polychart/v1/polychart_pb.d.ts.map +1 -0
  184. package/dist/gen/polychart/v1/polychart_pb.js +244 -0
  185. package/dist/gen/polychart/v1/polychart_pb.js.map +1 -0
  186. package/dist/gen/polyester/api/options_pb.d.ts +67 -0
  187. package/dist/gen/polyester/api/options_pb.d.ts.map +1 -0
  188. package/dist/gen/polyester/api/options_pb.js +76 -0
  189. package/dist/gen/polyester/api/options_pb.js.map +1 -0
  190. package/dist/gen/polyester/type/v1/u128_pb.d.ts +42 -0
  191. package/dist/gen/polyester/type/v1/u128_pb.d.ts.map +1 -0
  192. package/dist/gen/polyester/type/v1/u128_pb.js +20 -0
  193. package/dist/gen/polyester/type/v1/u128_pb.js.map +1 -0
  194. package/dist/gen/tradews/v1/trade_ws_pb.d.ts +316 -0
  195. package/dist/gen/tradews/v1/trade_ws_pb.d.ts.map +1 -0
  196. package/dist/gen/tradews/v1/trade_ws_pb.js +63 -0
  197. package/dist/gen/tradews/v1/trade_ws_pb.js.map +1 -0
  198. package/dist/gen/transfer/v1/internal_transfer_pb.d.ts +235 -0
  199. package/dist/gen/transfer/v1/internal_transfer_pb.d.ts.map +1 -0
  200. package/dist/gen/transfer/v1/internal_transfer_pb.js +81 -0
  201. package/dist/gen/transfer/v1/internal_transfer_pb.js.map +1 -0
  202. package/dist/gen/triggers/v1/triggers_pb.d.ts +1731 -0
  203. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -0
  204. package/dist/gen/triggers/v1/triggers_pb.js +413 -0
  205. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -0
  206. package/dist/index.d.ts +100 -0
  207. package/dist/index.js +18 -0
  208. package/dist/realtime/client.d.ts +18 -0
  209. package/dist/realtime/client.d.ts.map +1 -0
  210. package/dist/realtime/client.js +420 -0
  211. package/dist/realtime/client.js.map +1 -0
  212. package/dist/realtime/index.d.ts +3 -0
  213. package/dist/realtime/snapshot-then-stream.js +144 -0
  214. package/dist/realtime/snapshot-then-stream.js.map +1 -0
  215. package/dist/realtime/types.d.ts +41 -0
  216. package/dist/realtime/types.d.ts.map +1 -0
  217. package/dist/server-client.d.ts +73 -0
  218. package/dist/server-client.d.ts.map +1 -0
  219. package/dist/server-client.js +126 -0
  220. package/dist/server-client.js.map +1 -0
  221. package/dist/server-session.d.ts +4 -0
  222. package/dist/server-session.js +3 -0
  223. package/dist/services/accounts/accounts.codecs.js +17 -0
  224. package/dist/services/accounts/accounts.codecs.js.map +1 -0
  225. package/dist/services/accounts/accounts.d.ts +18 -0
  226. package/dist/services/accounts/accounts.d.ts.map +1 -0
  227. package/dist/services/accounts/accounts.js +27 -0
  228. package/dist/services/accounts/accounts.js.map +1 -0
  229. package/dist/services/accounts/accounts.schemas.d.ts +20 -0
  230. package/dist/services/accounts/accounts.schemas.d.ts.map +1 -0
  231. package/dist/services/accounts/accounts.schemas.js +28 -0
  232. package/dist/services/accounts/accounts.schemas.js.map +1 -0
  233. package/dist/services/accounts/accounts.types.d.ts +2 -0
  234. package/dist/services/accounts/index.d.ts +3 -0
  235. package/dist/services/address-book/address-book.codecs.d.ts +1 -0
  236. package/dist/services/address-book/address-book.codecs.js +61 -0
  237. package/dist/services/address-book/address-book.codecs.js.map +1 -0
  238. package/dist/services/address-book/address-book.d.ts +95 -0
  239. package/dist/services/address-book/address-book.d.ts.map +1 -0
  240. package/dist/services/address-book/address-book.js +166 -0
  241. package/dist/services/address-book/address-book.js.map +1 -0
  242. package/dist/services/address-book/address-book.schemas.d.ts +1140 -0
  243. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -0
  244. package/dist/services/address-book/address-book.schemas.js +343 -0
  245. package/dist/services/address-book/address-book.schemas.js.map +1 -0
  246. package/dist/services/address-book/address-book.types.d.ts +2 -0
  247. package/dist/services/address-book/index.d.ts +4 -0
  248. package/dist/services/api-keys/api-keys.codecs.js +24 -0
  249. package/dist/services/api-keys/api-keys.codecs.js.map +1 -0
  250. package/dist/services/api-keys/api-keys.d.ts +62 -0
  251. package/dist/services/api-keys/api-keys.d.ts.map +1 -0
  252. package/dist/services/api-keys/api-keys.js +104 -0
  253. package/dist/services/api-keys/api-keys.js.map +1 -0
  254. package/dist/services/api-keys/api-keys.schemas.d.ts +181 -0
  255. package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -0
  256. package/dist/services/api-keys/api-keys.schemas.js +111 -0
  257. package/dist/services/api-keys/api-keys.schemas.js.map +1 -0
  258. package/dist/services/api-keys/api-keys.types.d.ts +2 -0
  259. package/dist/services/api-keys/index.d.ts +3 -0
  260. package/dist/services/auth/account-signer-auth.d.ts +131 -0
  261. package/dist/services/auth/account-signer-auth.d.ts.map +1 -0
  262. package/dist/services/auth/account-signer-auth.js +337 -0
  263. package/dist/services/auth/account-signer-auth.js.map +1 -0
  264. package/dist/services/auth/auth.d.ts +91 -0
  265. package/dist/services/auth/auth.d.ts.map +1 -0
  266. package/dist/services/auth/auth.js +71 -0
  267. package/dist/services/auth/auth.js.map +1 -0
  268. package/dist/services/auth/auth.types.d.ts +3 -0
  269. package/dist/services/auth/cookie-constants.d.ts +6 -0
  270. package/dist/services/auth/cookie-constants.d.ts.map +1 -0
  271. package/dist/services/auth/cookie-constants.js +8 -0
  272. package/dist/services/auth/cookie-constants.js.map +1 -0
  273. package/dist/services/auth/profile/profile.d.ts +35 -0
  274. package/dist/services/auth/profile/profile.d.ts.map +1 -0
  275. package/dist/services/auth/profile/profile.js +61 -0
  276. package/dist/services/auth/profile/profile.js.map +1 -0
  277. package/dist/services/auth/profile/profile.schemas.d.ts +58 -0
  278. package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -0
  279. package/dist/services/auth/profile/profile.schemas.js +39 -0
  280. package/dist/services/auth/profile/profile.schemas.js.map +1 -0
  281. package/dist/services/auth/profile/profile.types.d.ts +2 -0
  282. package/dist/services/auth/session-codec.js +22 -0
  283. package/dist/services/auth/session-codec.js.map +1 -0
  284. package/dist/services/auth/session.d.ts +51 -0
  285. package/dist/services/auth/session.d.ts.map +1 -0
  286. package/dist/services/auth/session.js +200 -0
  287. package/dist/services/auth/session.js.map +1 -0
  288. package/dist/services/auth/session.schemas.js +41 -0
  289. package/dist/services/auth/session.schemas.js.map +1 -0
  290. package/dist/services/auth/session.types.d.ts +70 -0
  291. package/dist/services/auth/session.types.d.ts.map +1 -0
  292. package/dist/services/auth/token-storage.d.ts +27 -0
  293. package/dist/services/auth/token-storage.d.ts.map +1 -0
  294. package/dist/services/auth/token-storage.js +61 -0
  295. package/dist/services/auth/token-storage.js.map +1 -0
  296. package/dist/services/balances/balances.codecs.js +29 -0
  297. package/dist/services/balances/balances.codecs.js.map +1 -0
  298. package/dist/services/balances/balances.d.ts +39 -0
  299. package/dist/services/balances/balances.d.ts.map +1 -0
  300. package/dist/services/balances/balances.js +85 -0
  301. package/dist/services/balances/balances.js.map +1 -0
  302. package/dist/services/balances/balances.merge.d.ts +9 -0
  303. package/dist/services/balances/balances.merge.d.ts.map +1 -0
  304. package/dist/services/balances/balances.merge.js +31 -0
  305. package/dist/services/balances/balances.merge.js.map +1 -0
  306. package/dist/services/balances/balances.schemas.d.ts +265 -0
  307. package/dist/services/balances/balances.schemas.d.ts.map +1 -0
  308. package/dist/services/balances/balances.schemas.js +167 -0
  309. package/dist/services/balances/balances.schemas.js.map +1 -0
  310. package/dist/services/balances/balances.types.d.ts +2 -0
  311. package/dist/services/balances/index.d.ts +4 -0
  312. package/dist/services/candles/candles.codecs.js +48 -0
  313. package/dist/services/candles/candles.codecs.js.map +1 -0
  314. package/dist/services/candles/candles.d.ts +45 -0
  315. package/dist/services/candles/candles.d.ts.map +1 -0
  316. package/dist/services/candles/candles.js +108 -0
  317. package/dist/services/candles/candles.js.map +1 -0
  318. package/dist/services/candles/candles.schemas.d.ts +182 -0
  319. package/dist/services/candles/candles.schemas.d.ts.map +1 -0
  320. package/dist/services/candles/candles.schemas.js +154 -0
  321. package/dist/services/candles/candles.schemas.js.map +1 -0
  322. package/dist/services/candles/candles.types.d.ts +2 -0
  323. package/dist/services/candles/index.d.ts +3 -0
  324. package/dist/services/chain-analytics/chain-analytics.codecs.d.ts +1 -0
  325. package/dist/services/chain-analytics/chain-analytics.codecs.js +33 -0
  326. package/dist/services/chain-analytics/chain-analytics.codecs.js.map +1 -0
  327. package/dist/services/chain-analytics/chain-analytics.d.ts +27 -0
  328. package/dist/services/chain-analytics/chain-analytics.d.ts.map +1 -0
  329. package/dist/services/chain-analytics/chain-analytics.js +48 -0
  330. package/dist/services/chain-analytics/chain-analytics.js.map +1 -0
  331. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +192 -0
  332. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -0
  333. package/dist/services/chain-analytics/chain-analytics.schemas.js +100 -0
  334. package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -0
  335. package/dist/services/chain-analytics/chain-analytics.types.d.ts +2 -0
  336. package/dist/services/chain-analytics/index.d.ts +4 -0
  337. package/dist/services/deposit/deposit.d.ts +23 -0
  338. package/dist/services/deposit/deposit.d.ts.map +1 -0
  339. package/dist/services/deposit/deposit.js +42 -0
  340. package/dist/services/deposit/deposit.js.map +1 -0
  341. package/dist/services/deposit/deposit.schemas.d.ts +40 -0
  342. package/dist/services/deposit/deposit.schemas.d.ts.map +1 -0
  343. package/dist/services/deposit/deposit.schemas.js +27 -0
  344. package/dist/services/deposit/deposit.schemas.js.map +1 -0
  345. package/dist/services/deposit/deposit.types.d.ts +2 -0
  346. package/dist/services/deposit/index.d.ts +3 -0
  347. package/dist/services/guard-signer/guard-signer.codecs.d.ts +1 -0
  348. package/dist/services/guard-signer/guard-signer.codecs.js +33 -0
  349. package/dist/services/guard-signer/guard-signer.codecs.js.map +1 -0
  350. package/dist/services/guard-signer/guard-signer.d.ts +40 -0
  351. package/dist/services/guard-signer/guard-signer.d.ts.map +1 -0
  352. package/dist/services/guard-signer/guard-signer.js +85 -0
  353. package/dist/services/guard-signer/guard-signer.js.map +1 -0
  354. package/dist/services/guard-signer/guard-signer.schemas.d.ts +269 -0
  355. package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -0
  356. package/dist/services/guard-signer/guard-signer.schemas.js +93 -0
  357. package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -0
  358. package/dist/services/guard-signer/guard-signer.types.d.ts +2 -0
  359. package/dist/services/guard-signer/index.d.ts +4 -0
  360. package/dist/services/heatmap/heatmap.codecs.d.ts +11 -0
  361. package/dist/services/heatmap/heatmap.codecs.d.ts.map +1 -0
  362. package/dist/services/heatmap/heatmap.codecs.js +76 -0
  363. package/dist/services/heatmap/heatmap.codecs.js.map +1 -0
  364. package/dist/services/heatmap/heatmap.d.ts +33 -0
  365. package/dist/services/heatmap/heatmap.d.ts.map +1 -0
  366. package/dist/services/heatmap/heatmap.js +79 -0
  367. package/dist/services/heatmap/heatmap.js.map +1 -0
  368. package/dist/services/heatmap/heatmap.schemas.d.ts +412 -0
  369. package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -0
  370. package/dist/services/heatmap/heatmap.schemas.js +174 -0
  371. package/dist/services/heatmap/heatmap.schemas.js.map +1 -0
  372. package/dist/services/heatmap/heatmap.types.d.ts +3 -0
  373. package/dist/services/heatmap/index.d.ts +4 -0
  374. package/dist/services/internal-transfers/index.d.ts +3 -0
  375. package/dist/services/internal-transfers/internal-transfers.codecs.js +10 -0
  376. package/dist/services/internal-transfers/internal-transfers.codecs.js.map +1 -0
  377. package/dist/services/internal-transfers/internal-transfers.d.ts +20 -0
  378. package/dist/services/internal-transfers/internal-transfers.d.ts.map +1 -0
  379. package/dist/services/internal-transfers/internal-transfers.js +39 -0
  380. package/dist/services/internal-transfers/internal-transfers.js.map +1 -0
  381. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +174 -0
  382. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -0
  383. package/dist/services/internal-transfers/internal-transfers.schemas.js +90 -0
  384. package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -0
  385. package/dist/services/internal-transfers/internal-transfers.types.d.ts +2 -0
  386. package/dist/services/lifecycle/index.d.ts +4 -0
  387. package/dist/services/lifecycle/lifecycle.codecs.d.ts +23 -0
  388. package/dist/services/lifecycle/lifecycle.codecs.d.ts.map +1 -0
  389. package/dist/services/lifecycle/lifecycle.codecs.js +171 -0
  390. package/dist/services/lifecycle/lifecycle.codecs.js.map +1 -0
  391. package/dist/services/lifecycle/lifecycle.d.ts +42 -0
  392. package/dist/services/lifecycle/lifecycle.d.ts.map +1 -0
  393. package/dist/services/lifecycle/lifecycle.js +87 -0
  394. package/dist/services/lifecycle/lifecycle.js.map +1 -0
  395. package/dist/services/lifecycle/lifecycle.schemas.d.ts +2107 -0
  396. package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -0
  397. package/dist/services/lifecycle/lifecycle.schemas.js +282 -0
  398. package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -0
  399. package/dist/services/lifecycle/lifecycle.types.d.ts +2 -0
  400. package/dist/services/market-data/index.d.ts +4 -0
  401. package/dist/services/market-data/market-data.codecs.js +18 -0
  402. package/dist/services/market-data/market-data.codecs.js.map +1 -0
  403. package/dist/services/market-data/market-data.d.ts +40 -0
  404. package/dist/services/market-data/market-data.d.ts.map +1 -0
  405. package/dist/services/market-data/market-data.js +75 -0
  406. package/dist/services/market-data/market-data.js.map +1 -0
  407. package/dist/services/market-data/market-data.schemas.d.ts +56 -0
  408. package/dist/services/market-data/market-data.schemas.d.ts.map +1 -0
  409. package/dist/services/market-data/market-data.schemas.js +178 -0
  410. package/dist/services/market-data/market-data.schemas.js.map +1 -0
  411. package/dist/services/market-data/market-data.types.d.ts +3 -0
  412. package/dist/services/market-overview/index.d.ts +4 -0
  413. package/dist/services/market-overview/market-overview.codecs.d.ts +1 -0
  414. package/dist/services/market-overview/market-overview.codecs.js +44 -0
  415. package/dist/services/market-overview/market-overview.codecs.js.map +1 -0
  416. package/dist/services/market-overview/market-overview.d.ts +32 -0
  417. package/dist/services/market-overview/market-overview.d.ts.map +1 -0
  418. package/dist/services/market-overview/market-overview.js +100 -0
  419. package/dist/services/market-overview/market-overview.js.map +1 -0
  420. package/dist/services/market-overview/market-overview.schemas.d.ts +85 -0
  421. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -0
  422. package/dist/services/market-overview/market-overview.schemas.js +71 -0
  423. package/dist/services/market-overview/market-overview.schemas.js.map +1 -0
  424. package/dist/services/market-overview/market-overview.types.d.ts +2 -0
  425. package/dist/services/mfa/index.d.ts +4 -0
  426. package/dist/services/mfa/mfa.codecs.d.ts +1 -0
  427. package/dist/services/mfa/mfa.codecs.js +44 -0
  428. package/dist/services/mfa/mfa.codecs.js.map +1 -0
  429. package/dist/services/mfa/mfa.d.ts +74 -0
  430. package/dist/services/mfa/mfa.d.ts.map +1 -0
  431. package/dist/services/mfa/mfa.js +139 -0
  432. package/dist/services/mfa/mfa.js.map +1 -0
  433. package/dist/services/mfa/mfa.schemas.d.ts +392 -0
  434. package/dist/services/mfa/mfa.schemas.d.ts.map +1 -0
  435. package/dist/services/mfa/mfa.schemas.js +132 -0
  436. package/dist/services/mfa/mfa.schemas.js.map +1 -0
  437. package/dist/services/mfa/mfa.types.d.ts +2 -0
  438. package/dist/services/orderbook/index.d.ts +3 -0
  439. package/dist/services/orderbook/orderbook.codecs.js +45 -0
  440. package/dist/services/orderbook/orderbook.codecs.js.map +1 -0
  441. package/dist/services/orderbook/orderbook.d.ts +42 -0
  442. package/dist/services/orderbook/orderbook.d.ts.map +1 -0
  443. package/dist/services/orderbook/orderbook.js +193 -0
  444. package/dist/services/orderbook/orderbook.js.map +1 -0
  445. package/dist/services/orderbook/orderbook.schemas.d.ts +68 -0
  446. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -0
  447. package/dist/services/orderbook/orderbook.schemas.js +43 -0
  448. package/dist/services/orderbook/orderbook.schemas.js.map +1 -0
  449. package/dist/services/orderbook/orderbook.types.d.ts +3 -0
  450. package/dist/services/orders/index.d.ts +9 -0
  451. package/dist/services/orders/order-enums.codecs.js +85 -0
  452. package/dist/services/orders/order-enums.codecs.js.map +1 -0
  453. package/dist/services/orders/order-errors.schemas.d.ts +7 -0
  454. package/dist/services/orders/order-errors.schemas.d.ts.map +1 -0
  455. package/dist/services/orders/order-errors.schemas.js +20 -0
  456. package/dist/services/orders/order-errors.schemas.js.map +1 -0
  457. package/dist/services/orders/orders-batch.schemas.d.ts +2979 -0
  458. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -0
  459. package/dist/services/orders/orders-batch.schemas.js +282 -0
  460. package/dist/services/orders/orders-batch.schemas.js.map +1 -0
  461. package/dist/services/orders/orders-identifiers.schemas.js +11 -0
  462. package/dist/services/orders/orders-identifiers.schemas.js.map +1 -0
  463. package/dist/services/orders/orders-input.schemas.d.ts +3738 -0
  464. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -0
  465. package/dist/services/orders/orders-input.schemas.js +267 -0
  466. package/dist/services/orders/orders-input.schemas.js.map +1 -0
  467. package/dist/services/orders/orders-modify.schemas.d.ts +1774 -0
  468. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -0
  469. package/dist/services/orders/orders-modify.schemas.js +132 -0
  470. package/dist/services/orders/orders-modify.schemas.js.map +1 -0
  471. package/dist/services/orders/orders-output.schemas.d.ts +598 -0
  472. package/dist/services/orders/orders-output.schemas.d.ts.map +1 -0
  473. package/dist/services/orders/orders-output.schemas.js +139 -0
  474. package/dist/services/orders/orders-output.schemas.js.map +1 -0
  475. package/dist/services/orders/orders-risk.schemas.d.ts +1041 -0
  476. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -0
  477. package/dist/services/orders/orders-risk.schemas.js +251 -0
  478. package/dist/services/orders/orders-risk.schemas.js.map +1 -0
  479. package/dist/services/orders/orders.codecs.js +75 -0
  480. package/dist/services/orders/orders.codecs.js.map +1 -0
  481. package/dist/services/orders/orders.d.ts +88 -0
  482. package/dist/services/orders/orders.d.ts.map +1 -0
  483. package/dist/services/orders/orders.js +242 -0
  484. package/dist/services/orders/orders.js.map +1 -0
  485. package/dist/services/orders/orders.schemas.d.ts +7 -0
  486. package/dist/services/orders/orders.types.d.ts +8 -0
  487. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +39 -0
  488. package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -0
  489. package/dist/services/policies/api-key-policies/api-key-policies.js +74 -0
  490. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -0
  491. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +392 -0
  492. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -0
  493. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +169 -0
  494. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -0
  495. package/dist/services/policies/api-key-policies/api-key-policies.types.d.ts +2 -0
  496. package/dist/services/policies/api-key-policies/index.d.ts +3 -0
  497. package/dist/services/policies/policies.types.d.ts +2 -0
  498. package/dist/services/policies/shared.codecs.js +61 -0
  499. package/dist/services/policies/shared.codecs.js.map +1 -0
  500. package/dist/services/policies/shared.d.ts +10 -0
  501. package/dist/services/policies/shared.d.ts.map +1 -0
  502. package/dist/services/policies/shared.js +33 -0
  503. package/dist/services/policies/shared.js.map +1 -0
  504. package/dist/services/policies/subaccount-policies/index.d.ts +3 -0
  505. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +50 -0
  506. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -0
  507. package/dist/services/policies/subaccount-policies/subaccount-policies.js +93 -0
  508. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -0
  509. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +429 -0
  510. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -0
  511. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +300 -0
  512. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -0
  513. package/dist/services/policies/subaccount-policies/subaccount-policies.types.d.ts +2 -0
  514. package/dist/services/shared.js +24 -0
  515. package/dist/services/shared.js.map +1 -0
  516. package/dist/services/social-verification/index.d.ts +3 -0
  517. package/dist/services/social-verification/social-verification.codecs.d.ts +1 -0
  518. package/dist/services/social-verification/social-verification.codecs.js +55 -0
  519. package/dist/services/social-verification/social-verification.codecs.js.map +1 -0
  520. package/dist/services/social-verification/social-verification.d.ts +27 -0
  521. package/dist/services/social-verification/social-verification.d.ts.map +1 -0
  522. package/dist/services/social-verification/social-verification.js +43 -0
  523. package/dist/services/social-verification/social-verification.js.map +1 -0
  524. package/dist/services/social-verification/social-verification.schemas.d.ts +96 -0
  525. package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -0
  526. package/dist/services/social-verification/social-verification.schemas.js +69 -0
  527. package/dist/services/social-verification/social-verification.schemas.js.map +1 -0
  528. package/dist/services/social-verification/social-verification.types.d.ts +2 -0
  529. package/dist/services/subaccount-resolver.d.ts +14 -0
  530. package/dist/services/subaccount-resolver.d.ts.map +1 -0
  531. package/dist/services/subaccount-resolver.js +33 -0
  532. package/dist/services/subaccount-resolver.js.map +1 -0
  533. package/dist/services/subaccounts/index.d.ts +3 -0
  534. package/dist/services/subaccounts/subaccounts.codecs.js +94 -0
  535. package/dist/services/subaccounts/subaccounts.codecs.js.map +1 -0
  536. package/dist/services/subaccounts/subaccounts.d.ts +102 -0
  537. package/dist/services/subaccounts/subaccounts.d.ts.map +1 -0
  538. package/dist/services/subaccounts/subaccounts.js +196 -0
  539. package/dist/services/subaccounts/subaccounts.js.map +1 -0
  540. package/dist/services/subaccounts/subaccounts.schemas.d.ts +257 -0
  541. package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -0
  542. package/dist/services/subaccounts/subaccounts.schemas.js +178 -0
  543. package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -0
  544. package/dist/services/subaccounts/subaccounts.types.d.ts +2 -0
  545. package/dist/services/trades/index.d.ts +3 -0
  546. package/dist/services/trades/trades.codecs.js +10 -0
  547. package/dist/services/trades/trades.codecs.js.map +1 -0
  548. package/dist/services/trades/trades.d.ts +33 -0
  549. package/dist/services/trades/trades.d.ts.map +1 -0
  550. package/dist/services/trades/trades.js +64 -0
  551. package/dist/services/trades/trades.js.map +1 -0
  552. package/dist/services/trades/trades.schemas.d.ts +80 -0
  553. package/dist/services/trades/trades.schemas.d.ts.map +1 -0
  554. package/dist/services/trades/trades.schemas.js +66 -0
  555. package/dist/services/trades/trades.schemas.js.map +1 -0
  556. package/dist/services/trades/trades.types.d.ts +2 -0
  557. package/dist/services/trading-withdraws/index.d.ts +4 -0
  558. package/dist/services/trading-withdraws/trading-withdraws.codecs.d.ts +1 -0
  559. package/dist/services/trading-withdraws/trading-withdraws.codecs.js +10 -0
  560. package/dist/services/trading-withdraws/trading-withdraws.codecs.js.map +1 -0
  561. package/dist/services/trading-withdraws/trading-withdraws.d.ts +124 -0
  562. package/dist/services/trading-withdraws/trading-withdraws.d.ts.map +1 -0
  563. package/dist/services/trading-withdraws/trading-withdraws.js +218 -0
  564. package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -0
  565. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +73 -0
  566. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -0
  567. package/dist/services/trading-withdraws/trading-withdraws.schemas.js +95 -0
  568. package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -0
  569. package/dist/services/trading-withdraws/trading-withdraws.types.d.ts +3 -0
  570. package/dist/services/trailing-oneof-inputs.js +49 -0
  571. package/dist/services/trailing-oneof-inputs.js.map +1 -0
  572. package/dist/services/transfers/index.d.ts +4 -0
  573. package/dist/services/transfers/transfers.codecs.d.ts +6 -0
  574. package/dist/services/transfers/transfers.codecs.d.ts.map +1 -0
  575. package/dist/services/transfers/transfers.codecs.js +15 -0
  576. package/dist/services/transfers/transfers.codecs.js.map +1 -0
  577. package/dist/services/transfers/transfers.d.ts +33 -0
  578. package/dist/services/transfers/transfers.d.ts.map +1 -0
  579. package/dist/services/transfers/transfers.js +63 -0
  580. package/dist/services/transfers/transfers.js.map +1 -0
  581. package/dist/services/transfers/transfers.schemas.d.ts +121 -0
  582. package/dist/services/transfers/transfers.schemas.d.ts.map +1 -0
  583. package/dist/services/transfers/transfers.schemas.js +77 -0
  584. package/dist/services/transfers/transfers.schemas.js.map +1 -0
  585. package/dist/services/transfers/transfers.types.d.ts +3 -0
  586. package/dist/services/triggers/index.d.ts +5 -0
  587. package/dist/services/triggers/trigger-child-order.schemas.js +89 -0
  588. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -0
  589. package/dist/services/triggers/trigger-input.schemas.d.ts +1009 -0
  590. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -0
  591. package/dist/services/triggers/trigger-input.schemas.js +270 -0
  592. package/dist/services/triggers/trigger-input.schemas.js.map +1 -0
  593. package/dist/services/triggers/triggers-output.schemas.d.ts +688 -0
  594. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -0
  595. package/dist/services/triggers/triggers-output.schemas.js +372 -0
  596. package/dist/services/triggers/triggers-output.schemas.js.map +1 -0
  597. package/dist/services/triggers/triggers.codecs.js +100 -0
  598. package/dist/services/triggers/triggers.codecs.js.map +1 -0
  599. package/dist/services/triggers/triggers.d.ts +71 -0
  600. package/dist/services/triggers/triggers.d.ts.map +1 -0
  601. package/dist/services/triggers/triggers.js +176 -0
  602. package/dist/services/triggers/triggers.js.map +1 -0
  603. package/dist/services/triggers/triggers.schemas.d.ts +3 -0
  604. package/dist/services/triggers/triggers.types.d.ts +5 -0
  605. package/dist/services/whiteboard/index.d.ts +3 -0
  606. package/dist/services/whiteboard/whiteboard.codecs.js +55 -0
  607. package/dist/services/whiteboard/whiteboard.codecs.js.map +1 -0
  608. package/dist/services/whiteboard/whiteboard.d.ts +42 -0
  609. package/dist/services/whiteboard/whiteboard.d.ts.map +1 -0
  610. package/dist/services/whiteboard/whiteboard.js +76 -0
  611. package/dist/services/whiteboard/whiteboard.js.map +1 -0
  612. package/dist/services/whiteboard/whiteboard.schemas.d.ts +771 -0
  613. package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -0
  614. package/dist/services/whiteboard/whiteboard.schemas.js +133 -0
  615. package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -0
  616. package/dist/services/whiteboard/whiteboard.types.d.ts +2 -0
  617. package/dist/services/zipper/index.d.ts +4 -0
  618. package/dist/services/zipper/zipper.d.ts +28 -0
  619. package/dist/services/zipper/zipper.d.ts.map +1 -0
  620. package/dist/services/zipper/zipper.js +84 -0
  621. package/dist/services/zipper/zipper.js.map +1 -0
  622. package/dist/services/zipper/zipper.schemas.d.ts +13 -0
  623. package/dist/services/zipper/zipper.schemas.d.ts.map +1 -0
  624. package/dist/services/zipper/zipper.schemas.js +89 -0
  625. package/dist/services/zipper/zipper.schemas.js.map +1 -0
  626. package/dist/services/zipper/zipper.types.d.ts +4 -0
  627. package/dist/shared/account-scope.d.ts +17 -0
  628. package/dist/shared/account-scope.d.ts.map +1 -0
  629. package/dist/shared/account-scope.js +14 -0
  630. package/dist/shared/account-scope.js.map +1 -0
  631. package/dist/shared/catalog-config.d.ts +95 -0
  632. package/dist/shared/catalog-config.d.ts.map +1 -0
  633. package/dist/shared/catalog-config.js +12 -0
  634. package/dist/shared/catalog-config.js.map +1 -0
  635. package/dist/shared/connect-error-mapping.d.ts +23 -0
  636. package/dist/shared/connect-error-mapping.d.ts.map +1 -0
  637. package/dist/shared/connect-error-mapping.js +147 -0
  638. package/dist/shared/connect-error-mapping.js.map +1 -0
  639. package/dist/shared/decimal-surface.d.ts +18 -0
  640. package/dist/shared/decimal-surface.d.ts.map +1 -0
  641. package/dist/shared/decimal-surface.js +89 -0
  642. package/dist/shared/decimal-surface.js.map +1 -0
  643. package/dist/shared/errors.d.ts +242 -0
  644. package/dist/shared/errors.d.ts.map +1 -0
  645. package/dist/shared/errors.js +271 -0
  646. package/dist/shared/errors.js.map +1 -0
  647. package/dist/shared/ledger-codes.d.ts +9 -0
  648. package/dist/shared/ledger-codes.d.ts.map +1 -0
  649. package/dist/shared/ledger-codes.js +63 -0
  650. package/dist/shared/ledger-codes.js.map +1 -0
  651. package/dist/shared/proto-enum-codec.js +13 -0
  652. package/dist/shared/proto-enum-codec.js.map +1 -0
  653. package/dist/shared/reconciliation.d.ts +14 -0
  654. package/dist/shared/reconciliation.d.ts.map +1 -0
  655. package/dist/shared/reconciliation.js +30 -0
  656. package/dist/shared/reconciliation.js.map +1 -0
  657. package/dist/shared/request-options.d.ts +10 -0
  658. package/dist/shared/request-options.d.ts.map +1 -0
  659. package/dist/shared/request-options.js +22 -0
  660. package/dist/shared/request-options.js.map +1 -0
  661. package/dist/shared/schemas.js +65 -0
  662. package/dist/shared/schemas.js.map +1 -0
  663. package/dist/shared/subscription-errors.d.ts +14 -0
  664. package/dist/shared/subscription-errors.d.ts.map +1 -0
  665. package/dist/shared/subscription-errors.js +49 -0
  666. package/dist/shared/subscription-errors.js.map +1 -0
  667. package/dist/shared/transports.d.ts +28 -0
  668. package/dist/shared/transports.d.ts.map +1 -0
  669. package/dist/shared/transports.js +111 -0
  670. package/dist/shared/transports.js.map +1 -0
  671. package/dist/shared/types.d.ts +11 -0
  672. package/dist/shared/types.d.ts.map +1 -0
  673. package/dist/smart-account/index.d.ts +2 -0
  674. package/dist/smart-account/index.js +2 -0
  675. package/dist/smart-account/smart-account.d.ts +3093 -0
  676. package/dist/smart-account/smart-account.d.ts.map +1 -0
  677. package/dist/smart-account/smart-account.js +94 -0
  678. package/dist/smart-account/smart-account.js.map +1 -0
  679. package/dist/utils/base58-id.js +110 -0
  680. package/dist/utils/base58-id.js.map +1 -0
  681. package/dist/utils/columnar-time.d.ts +11 -0
  682. package/dist/utils/columnar-time.d.ts.map +1 -0
  683. package/dist/utils/columnar-time.js +30 -0
  684. package/dist/utils/columnar-time.js.map +1 -0
  685. package/dist/utils/connect-mfa-errors.d.ts +23 -0
  686. package/dist/utils/connect-mfa-errors.d.ts.map +1 -0
  687. package/dist/utils/connect-mfa-errors.js +34 -0
  688. package/dist/utils/connect-mfa-errors.js.map +1 -0
  689. package/dist/utils/connect-order-errors.d.ts +9 -0
  690. package/dist/utils/connect-order-errors.d.ts.map +1 -0
  691. package/dist/utils/connect-order-errors.js +20 -0
  692. package/dist/utils/connect-order-errors.js.map +1 -0
  693. package/dist/utils/cookie-es/_utils.js +41 -0
  694. package/dist/utils/cookie-es/_utils.js.map +1 -0
  695. package/dist/utils/cookie-es/cookie/parse.js +53 -0
  696. package/dist/utils/cookie-es/cookie/parse.js.map +1 -0
  697. package/dist/utils/cookie-es/cookie/serialize.js +145 -0
  698. package/dist/utils/cookie-es/cookie/serialize.js.map +1 -0
  699. package/dist/utils/cookies.d.ts +7 -0
  700. package/dist/utils/cookies.d.ts.map +1 -0
  701. package/dist/utils/cookies.js +110 -0
  702. package/dist/utils/cookies.js.map +1 -0
  703. package/dist/utils/errors.d.ts +36 -0
  704. package/dist/utils/errors.d.ts.map +1 -0
  705. package/dist/utils/errors.js +111 -0
  706. package/dist/utils/errors.js.map +1 -0
  707. package/dist/utils/event-emitter.d.ts +31 -0
  708. package/dist/utils/event-emitter.d.ts.map +1 -0
  709. package/dist/utils/event-emitter.js +51 -0
  710. package/dist/utils/event-emitter.js.map +1 -0
  711. package/dist/utils/evm.d.ts +33 -0
  712. package/dist/utils/evm.d.ts.map +1 -0
  713. package/dist/utils/evm.js +53 -0
  714. package/dist/utils/evm.js.map +1 -0
  715. package/dist/utils/is-dev.js +57 -0
  716. package/dist/utils/is-dev.js.map +1 -0
  717. package/dist/utils/jwt.d.ts +8 -0
  718. package/dist/utils/jwt.d.ts.map +1 -0
  719. package/dist/utils/jwt.js +74 -0
  720. package/dist/utils/jwt.js.map +1 -0
  721. package/dist/utils/numbers.js +60 -0
  722. package/dist/utils/numbers.js.map +1 -0
  723. package/dist/utils/proto-patch.js +29 -0
  724. package/dist/utils/proto-patch.js.map +1 -0
  725. package/dist/utils/remove-undefined.js +12 -0
  726. package/dist/utils/remove-undefined.js.map +1 -0
  727. package/dist/utils/streams.js +19 -0
  728. package/dist/utils/streams.js.map +1 -0
  729. package/dist/utils/time.d.ts +22 -0
  730. package/dist/utils/time.d.ts.map +1 -0
  731. package/dist/utils/time.js +71 -0
  732. package/dist/utils/time.js.map +1 -0
  733. package/dist/utils/timestamp.js +52 -0
  734. package/dist/utils/timestamp.js.map +1 -0
  735. package/dist/utils/types.d.ts +6 -0
  736. package/dist/utils/types.d.ts.map +1 -0
  737. package/dist/utils/u128.d.ts +8 -0
  738. package/dist/utils/u128.d.ts.map +1 -0
  739. package/dist/utils/u128.js +43 -0
  740. package/dist/utils/u128.js.map +1 -0
  741. package/dist/wired-services.d.ts +15 -0
  742. package/dist/wired-services.d.ts.map +1 -0
  743. package/dist/wired-services.js +67 -0
  744. package/dist/wired-services.js.map +1 -0
  745. package/package.json +117 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","names":["#config","#getAuthHeaders","#sharedSubs","#channelKind","#emitSubscriptionError","#publicClient","#connectionHandlers","#privateClient","#emitConnectionTokenError","#createPublicClient","#hasAuth","#createPrivateClient","#assertChannelAuth","#ensurePrivateClient","#ensurePublicClient","#attachSubscriptionNow","#attachSubscriptionWhenLoaded","#ensureClientForChannel","#subscriptionOpts","#pendingTeardowns","#attachSubscription","#callErrorHandler","#disconnectClientIfIdle","#hasChannelsForKind","#teardownSubscription","#getOrCreateSubscription","#callConsumerHandler","#disconnect","#disconnectPrivate"],"sources":["../../src/realtime/client.ts"],"sourcesContent":["import { fromBinary, type DescMessage, type MessageShape } from \"@bufbuild/protobuf\";\nimport type {\n Centrifuge,\n SubscriptionErrorContext,\n PublicationContext,\n Subscription,\n} from \"centrifuge/build/protobuf\";\nimport type * as CentrifugeModule from \"centrifuge/build/protobuf\";\nimport {\n createSdkSubscriptionErrorContext,\n fromCentrifugeSubscriptionError,\n type SdkSubscriptionErrorContext,\n} from \"../shared/subscription-errors.js\";\nimport { AuthenticationError, errorFromHttpStatus, InternalServerError } from \"../shared/errors.js\";\nimport { makeFetch } from \"../shared/transports.js\";\nimport { decodeProtoFrame } from \"../utils/streams.js\";\nimport type { ConnectChannelParams, PolyesterRealtime, SubscribeHandlers } from \"./types.js\";\n\nconst realtimeFetch = makeFetch();\n\ntype CentrifugeCtor = typeof CentrifugeModule.Centrifuge;\n\n// Centrifuge's protobuf build embeds the protobuf.js runtime (~300 KB minified).\n// Loading it lazily keeps it out of the eager module graph on both the server\n// (Cloudflare isolate cold start — SSR never opens a websocket) and the client\n// app shell; it is only fetched when the first subscription attaches.\nlet centrifugeCtorPromise: Promise<CentrifugeCtor> | null = null;\nlet loadedCentrifugeCtor: CentrifugeCtor | null = null;\nexport function __setRealtimeCentrifugeForTests(Centrifuge: CentrifugeCtor | null): void {\n loadedCentrifugeCtor = Centrifuge;\n centrifugeCtorPromise = Centrifuge ? Promise.resolve(Centrifuge) : null;\n}\n\nfunction loadCentrifuge(): Promise<CentrifugeCtor> {\n if ((import.meta as { env?: { SSR?: boolean } }).env?.SSR) {\n return Promise.reject(new Error(\"Realtime subscriptions are browser-only during SSR.\"));\n }\n\n centrifugeCtorPromise ??= import(\"centrifuge/build/protobuf\").then((mod) => {\n loadedCentrifugeCtor = mod.Centrifuge;\n return mod.Centrifuge;\n });\n return centrifugeCtorPromise;\n}\n\nexport interface RealtimeAuthRequest {\n url: string | URL;\n method: string;\n}\n\nexport interface RealtimeConfig {\n wsUrl: string;\n tokenEndpoint: string;\n subscribeEndpoint: string;\n getAuthHeaders?: (request: RealtimeAuthRequest) => Promise<HeadersInit> | HeadersInit;\n hasAuth?: () => boolean;\n}\n\ntype ResolvedRealtimeConfig = Pick<\n RealtimeConfig,\n \"wsUrl\" | \"tokenEndpoint\" | \"subscribeEndpoint\"\n> & {\n getAuthHeaders: (request: RealtimeAuthRequest) => Promise<HeadersInit> | HeadersInit;\n hasAuth: () => boolean;\n};\n\nexport type { ConnectChannelParams, PolyesterRealtime, SubscribeHandlers } from \"./types.js\";\n\ntype ConnectionHandler = { onConnected?: () => void; onDisconnected?: () => void };\ntype PublicationHandler<T = unknown> = (data: T) => void;\ntype ErrorHandler = (ctx: SdkSubscriptionErrorContext) => void;\ntype RealtimeClientKind = \"public\" | \"private\";\n\ninterface SharedSubscription {\n channel: string;\n sub: Subscription | null;\n client: Centrifuge | null;\n attachmentEpoch: number;\n consumers: number;\n subscriptionEpoch: number;\n publicationHandlers: Set<PublicationHandler>;\n subscribedHandlers: Set<(epoch: number) => void>;\n unsubscribedHandlers: Set<() => void>;\n errorHandlers: Set<ErrorHandler>;\n}\n\n/**\n * Shared Centrifuge realtime client that multiplexes public and private protobuf subscriptions across SDK services.\n */\nexport class RealtimeClient implements PolyesterRealtime {\n #publicClient: Centrifuge | null = null;\n #privateClient: Centrifuge | null = null;\n #connectionHandlers = new Set<ConnectionHandler>();\n #sharedSubs = new Map<string, SharedSubscription>();\n #pendingTeardowns = new Map<string, SharedSubscription>();\n readonly #config: ResolvedRealtimeConfig;\n\n constructor(config: RealtimeConfig) {\n this.#config = {\n wsUrl: config.wsUrl,\n tokenEndpoint: config.tokenEndpoint,\n subscribeEndpoint: config.subscribeEndpoint,\n getAuthHeaders: config.getAuthHeaders ?? (() => ({})),\n hasAuth: config.hasAuth ?? (() => false),\n };\n }\n\n async #getAuthHeaders(request: RealtimeAuthRequest): Promise<HeadersInit> {\n return this.#config.getAuthHeaders(request);\n }\n\n #emitSubscriptionError(shared: SharedSubscription, type: string, error: unknown): void {\n const ctx = createSdkSubscriptionErrorContext(shared.channel, type, error);\n for (const handler of shared.errorHandlers) {\n handler(ctx);\n }\n }\n\n #emitConnectionTokenError(error: unknown): void {\n for (const shared of this.#sharedSubs.values()) {\n if (this.#channelKind(shared.channel) === \"private\") {\n this.#emitSubscriptionError(shared, \"connection_token\", error);\n }\n }\n }\n\n #subscriptionOpts(shared: SharedSubscription, attachmentEpoch: number) {\n if (this.#channelKind(shared.channel) !== \"private\") return undefined;\n return {\n getToken: async () => {\n try {\n const url = new URL(this.#config.subscribeEndpoint);\n url.searchParams.set(\"channel\", shared.channel);\n const headers = await this.#getAuthHeaders({ url, method: \"GET\" });\n const res = await realtimeFetch(url, { headers });\n if (!res.ok) {\n throw errorFromHttpStatus(\n res.status,\n `Failed to fetch subscription token: ${res.status}`,\n );\n }\n const json = (await res.json()) as { token?: string };\n if (!json?.token) {\n throw new InternalServerError(\"Subscription token response had no token\");\n }\n return json.token;\n } catch (error) {\n if (shared.attachmentEpoch === attachmentEpoch) {\n this.#emitSubscriptionError(shared, \"subscription_token\", error);\n }\n throw error;\n }\n },\n };\n }\n\n #hasAuth(): boolean {\n return this.#config.hasAuth();\n }\n\n #channelKind(channel: string): RealtimeClientKind {\n return channel.startsWith(\"private:\") ? \"private\" : \"public\";\n }\n\n #createPublicClient(Centrifuge: CentrifugeCtor): Centrifuge {\n const client = new Centrifuge(this.#config.wsUrl);\n this.#publicClient = client;\n\n client.on(\"connected\", () => {\n if (this.#publicClient !== client) return;\n for (const h of this.#connectionHandlers) h.onConnected?.();\n });\n client.on(\"disconnected\", () => {\n if (this.#publicClient !== client) return;\n for (const h of this.#connectionHandlers) h.onDisconnected?.();\n });\n\n client.connect();\n return client;\n }\n\n #createPrivateClient(Centrifuge: CentrifugeCtor): Centrifuge {\n let client: Centrifuge;\n const opts = {\n getToken: async () => {\n try {\n const headers = await this.#getAuthHeaders({\n url: this.#config.tokenEndpoint,\n method: \"GET\",\n });\n const res = await realtimeFetch(this.#config.tokenEndpoint, {\n headers,\n });\n if (!res.ok) {\n throw errorFromHttpStatus(\n res.status,\n `Failed to fetch connection token: ${res.status}`,\n );\n }\n const json = (await res.json()) as { token?: string };\n if (!json?.token) {\n throw new InternalServerError(\"Connection token response had no token\");\n }\n return json.token;\n } catch (error) {\n if (this.#privateClient === client) {\n this.#emitConnectionTokenError(error);\n }\n throw error;\n }\n },\n };\n\n client = new Centrifuge(this.#config.wsUrl, opts);\n this.#privateClient = client;\n\n client.on(\"connected\", () => {\n if (this.#privateClient !== client) return;\n for (const h of this.#connectionHandlers) h.onConnected?.();\n });\n client.on(\"disconnected\", () => {\n if (this.#privateClient !== client) return;\n for (const h of this.#connectionHandlers) h.onDisconnected?.();\n });\n\n client.connect();\n return client;\n }\n\n #ensurePublicClient(Centrifuge: CentrifugeCtor): Centrifuge {\n return this.#publicClient ?? this.#createPublicClient(Centrifuge);\n }\n\n #ensurePrivateClient(Centrifuge: CentrifugeCtor): Centrifuge {\n if (!this.#hasAuth()) {\n throw new AuthenticationError(\n \"Cannot create authenticated realtime client without authentication\",\n );\n }\n return this.#privateClient ?? this.#createPrivateClient(Centrifuge);\n }\n\n #assertChannelAuth(channel: string): void {\n if (this.#channelKind(channel) === \"private\" && !this.#hasAuth()) {\n throw new AuthenticationError(\n `Cannot subscribe to private channel \"${channel}\" without authentication`,\n );\n }\n }\n\n #ensureClientForChannel(Centrifuge: CentrifugeCtor, channel: string): Centrifuge {\n this.#assertChannelAuth(channel);\n if (this.#channelKind(channel) === \"private\") {\n return this.#ensurePrivateClient(Centrifuge);\n }\n\n return this.#ensurePublicClient(Centrifuge);\n }\n\n #attachSubscription(shared: SharedSubscription): void {\n if (shared.sub) return;\n\n // Auth failures must surface synchronously to subscribe() callers, as\n // they did when centrifuge was imported statically.\n this.#assertChannelAuth(shared.channel);\n\n const attachmentEpoch = shared.attachmentEpoch + 1;\n shared.attachmentEpoch = attachmentEpoch;\n\n // Once the transport module is loaded, attachment stays fully\n // synchronous — only the very first attach pays the dynamic import.\n if (loadedCentrifugeCtor) {\n this.#attachSubscriptionNow(loadedCentrifugeCtor, shared, attachmentEpoch);\n return;\n }\n void this.#attachSubscriptionWhenLoaded(shared, attachmentEpoch);\n }\n\n async #attachSubscriptionWhenLoaded(\n shared: SharedSubscription,\n attachmentEpoch: number,\n ): Promise<void> {\n let Centrifuge: CentrifugeCtor;\n try {\n Centrifuge = await loadCentrifuge();\n } catch (error) {\n if (shared.attachmentEpoch !== attachmentEpoch) return;\n if (this.#sharedSubs.get(shared.channel) === shared) {\n this.#sharedSubs.delete(shared.channel);\n }\n this.#emitSubscriptionError(shared, \"transport_load\", error);\n return;\n }\n\n // The subscription may have been torn down or re-attached while the\n // transport module was loading.\n if (shared.attachmentEpoch !== attachmentEpoch || shared.sub) return;\n if (this.#sharedSubs.get(shared.channel) !== shared) return;\n\n try {\n this.#attachSubscriptionNow(Centrifuge, shared, attachmentEpoch);\n } catch (error) {\n this.#sharedSubs.delete(shared.channel);\n this.#emitSubscriptionError(shared, \"auth\", error);\n }\n }\n\n #attachSubscriptionNow(\n Centrifuge: CentrifugeCtor,\n shared: SharedSubscription,\n attachmentEpoch: number,\n ): void {\n const client = this.#ensureClientForChannel(Centrifuge, shared.channel);\n\n const sub = client.newSubscription(\n shared.channel,\n this.#subscriptionOpts(shared, attachmentEpoch),\n );\n shared.sub = sub;\n shared.client = client;\n\n sub.on(\"publication\", (ctx: PublicationContext) => {\n if (shared.sub !== sub || shared.attachmentEpoch !== attachmentEpoch) return;\n for (const handler of shared.publicationHandlers) handler(ctx.data);\n });\n sub.on(\"subscribed\", () => {\n if (shared.sub !== sub || shared.attachmentEpoch !== attachmentEpoch) return;\n const subscriptionEpoch = ++shared.subscriptionEpoch;\n for (const handler of shared.subscribedHandlers) handler(subscriptionEpoch);\n });\n sub.on(\"unsubscribed\", () => {\n if (shared.sub !== sub || shared.attachmentEpoch !== attachmentEpoch) return;\n for (const handler of shared.unsubscribedHandlers) handler();\n });\n sub.on(\"error\", (ctx: SubscriptionErrorContext) => {\n if (shared.sub !== sub || shared.attachmentEpoch !== attachmentEpoch) return;\n const sdkCtx = fromCentrifugeSubscriptionError(ctx);\n for (const handler of shared.errorHandlers) handler(sdkCtx);\n });\n\n sub.subscribe();\n }\n\n #getOrCreateSubscription(channel: string): SharedSubscription {\n const existing = this.#sharedSubs.get(channel);\n if (existing) return existing;\n\n const pending = this.#pendingTeardowns.get(channel);\n if (pending) {\n this.#pendingTeardowns.delete(channel);\n this.#sharedSubs.set(channel, pending);\n if (!pending.sub) {\n this.#attachSubscription(pending);\n } else if (pending.sub.state !== \"subscribed\") {\n pending.sub.subscribe();\n }\n return pending;\n }\n\n const shared: SharedSubscription = {\n channel,\n sub: null,\n client: null,\n attachmentEpoch: 0,\n consumers: 0,\n subscriptionEpoch: 0,\n publicationHandlers: new Set(),\n subscribedHandlers: new Set(),\n unsubscribedHandlers: new Set(),\n errorHandlers: new Set(),\n };\n\n this.#sharedSubs.set(channel, shared);\n try {\n this.#attachSubscription(shared);\n } catch (error) {\n this.#sharedSubs.delete(channel);\n throw error;\n }\n return shared;\n }\n\n #callErrorHandler(handler: ErrorHandler | undefined, ctx: SdkSubscriptionErrorContext): void {\n if (!handler) return;\n\n try {\n handler(ctx);\n } catch {\n // Keep error reporting isolated from other subscription consumers.\n }\n }\n\n #callConsumerHandler(\n channel: string,\n type: string,\n handler: () => void,\n onError?: ErrorHandler,\n ): void {\n try {\n handler();\n } catch (error) {\n this.#callErrorHandler(\n onError,\n createSdkSubscriptionErrorContext(channel, type, error),\n );\n }\n }\n\n #teardownSubscription(shared: SharedSubscription): void {\n const sub = shared.sub;\n const client = shared.client;\n const kind = this.#channelKind(shared.channel);\n shared.sub = null;\n shared.client = null;\n shared.attachmentEpoch++;\n if (!sub) return;\n\n try {\n if (sub.state !== \"unsubscribed\") {\n sub.unsubscribe();\n }\n } catch {\n // noop\n }\n try {\n client?.removeSubscription?.(sub);\n } catch {\n // noop\n }\n this.#disconnectClientIfIdle(kind);\n }\n\n #hasChannelsForKind(kind: RealtimeClientKind): boolean {\n for (const shared of this.#sharedSubs.values()) {\n if (this.#channelKind(shared.channel) === kind) return true;\n }\n for (const shared of this.#pendingTeardowns.values()) {\n if (this.#channelKind(shared.channel) === kind) return true;\n }\n return false;\n }\n\n #disconnectClientIfIdle(kind: RealtimeClientKind): void {\n if (this.#hasChannelsForKind(kind)) return;\n\n const client = kind === \"private\" ? this.#privateClient : this.#publicClient;\n if (kind === \"private\") {\n this.#privateClient = null;\n } else {\n this.#publicClient = null;\n }\n\n try {\n client?.disconnect();\n } catch {\n // noop\n }\n }\n\n #disconnect(): void {\n const publicClient = this.#publicClient;\n const privateClient = this.#privateClient;\n\n this.#pendingTeardowns.clear();\n this.#sharedSubs.clear();\n this.#publicClient = null;\n this.#privateClient = null;\n\n try {\n publicClient?.disconnect();\n } catch {\n // noop\n }\n try {\n privateClient?.disconnect();\n } catch {\n // noop\n }\n this.#connectionHandlers.clear();\n }\n\n #disconnectPrivate(): void {\n const privateClient = this.#privateClient;\n this.#privateClient = null;\n\n for (const [channel, shared] of this.#sharedSubs) {\n if (this.#channelKind(channel) !== \"private\") continue;\n this.#sharedSubs.delete(channel);\n this.#teardownSubscription(shared);\n }\n for (const [channel, shared] of this.#pendingTeardowns) {\n if (this.#channelKind(channel) !== \"private\") continue;\n this.#pendingTeardowns.delete(channel);\n this.#teardownSubscription(shared);\n }\n\n try {\n privateClient?.disconnect();\n } catch {\n // noop\n }\n }\n\n /**\n * Subscribes to a realtime channel and returns an unsubscribe function.\n */\n subscribe<T>(channel: string, handlers: SubscribeHandlers<T>): () => void {\n const shared = this.#getOrCreateSubscription(channel);\n shared.consumers++;\n\n const publicationHandler = handlers.onPublication;\n const errorHandler = handlers.onError;\n const subscribedHandler = handlers.onSubscribed;\n const unsubscribedHandler = handlers.onUnsubscribed;\n\n const onError: ErrorHandler | undefined = errorHandler\n ? (ctx) => this.#callErrorHandler(errorHandler, ctx)\n : undefined;\n const onPub: PublicationHandler = (data) => {\n this.#callConsumerHandler(\n channel,\n \"publication_handler\",\n () => publicationHandler(data as T),\n onError,\n );\n };\n let lastSubscribedEpoch = -1;\n const onSubscribed = subscribedHandler\n ? (subscriptionEpoch: number) => {\n if (subscriptionEpoch <= lastSubscribedEpoch) return;\n lastSubscribedEpoch = subscriptionEpoch;\n this.#callConsumerHandler(\n channel,\n \"subscribed_handler\",\n subscribedHandler,\n onError,\n );\n }\n : undefined;\n const onUnsubscribed = unsubscribedHandler\n ? () =>\n this.#callConsumerHandler(\n channel,\n \"unsubscribed_handler\",\n unsubscribedHandler,\n onError,\n )\n : undefined;\n\n shared.publicationHandlers.add(onPub);\n\n if (onSubscribed) shared.subscribedHandlers.add(onSubscribed);\n if (onUnsubscribed) shared.unsubscribedHandlers.add(onUnsubscribed);\n if (onError) shared.errorHandlers.add(onError);\n\n let closed = false;\n if (onSubscribed && shared.sub?.state === \"subscribed\") {\n const subscriptionEpoch = shared.subscriptionEpoch;\n queueMicrotask(() => {\n if (closed || shared.sub?.state !== \"subscribed\") return;\n onSubscribed(subscriptionEpoch);\n });\n }\n\n return () => {\n if (closed) return;\n closed = true;\n\n shared.publicationHandlers.delete(onPub);\n if (onSubscribed) shared.subscribedHandlers.delete(onSubscribed);\n if (onUnsubscribed) shared.unsubscribedHandlers.delete(onUnsubscribed);\n if (onError) shared.errorHandlers.delete(onError);\n\n shared.consumers--;\n if (shared.consumers <= 0) {\n const currentShared = this.#sharedSubs.get(channel);\n if (currentShared !== shared) return;\n\n this.#sharedSubs.delete(channel);\n this.#pendingTeardowns.set(channel, shared);\n\n queueMicrotask(() => {\n if (this.#pendingTeardowns.get(channel) !== shared) return;\n this.#pendingTeardowns.delete(channel);\n\n this.#teardownSubscription(shared);\n\n if (this.#sharedSubs.size === 0 && this.#pendingTeardowns.size === 0) {\n this.#disconnect();\n }\n });\n }\n };\n }\n\n /**\n * Connects to a realtime channel with a custom message decoder.\n */\n connectChannel<T extends DescMessage>(params: ConnectChannelParams<T>): () => void {\n return this.subscribe<Uint8Array>(params.channel, {\n onPublication: (data) => {\n let decoded: MessageShape<T>;\n try {\n decoded = fromBinary(params.schema, data);\n } catch (error) {\n this.#callErrorHandler(\n params.onError,\n createSdkSubscriptionErrorContext(params.channel, \"decode\", error),\n );\n return;\n }\n params.onPublication(decoded);\n },\n onSubscribed: params.onConnected,\n onUnsubscribed: params.onDisconnected,\n onError: params.onError,\n });\n }\n\n /**\n * Connects to a realtime channel that emits protobuf messages.\n */\n connectProtoChannel<T extends DescMessage>(params: ConnectChannelParams<T>): () => void {\n return this.subscribe<Uint8Array | MessageShape<T>>(params.channel, {\n onPublication: (data) => {\n let msg: MessageShape<T> | null;\n try {\n msg = decodeProtoFrame(params.schema, data);\n } catch (error) {\n this.#callErrorHandler(\n params.onError,\n createSdkSubscriptionErrorContext(params.channel, \"decode\", error),\n );\n return;\n }\n if (!msg) {\n this.#callErrorHandler(\n params.onError,\n createSdkSubscriptionErrorContext(\n params.channel,\n \"decode\",\n \"Unable to decode protobuf frame\",\n ),\n );\n return;\n }\n params.onPublication(msg);\n },\n onSubscribed: params.onConnected,\n onUnsubscribed: params.onDisconnected,\n onError: params.onError,\n });\n }\n\n /**\n * Disconnects the realtime client from all active channels.\n */\n disconnect(): void {\n this.#disconnect();\n }\n\n /**\n * Disconnects authenticated realtime state without touching public channels.\n */\n disconnectPrivate(): void {\n this.#disconnectPrivate();\n }\n\n get isConnected(): boolean {\n return this.#publicClient !== null || this.#privateClient !== null;\n }\n\n get activeChannels(): number {\n return this.#sharedSubs.size;\n }\n\n get totalConsumers(): number {\n let total = 0;\n for (const shared of this.#sharedSubs.values()) {\n total += shared.consumers;\n }\n return total;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ConnectChannelParams, PolyesterRealtime, SubscribeHandlers } from "./types.js";
2
+ import { RealtimeConfig } from "./client.js";
3
+ export type { ConnectChannelParams, PolyesterRealtime, RealtimeConfig, SubscribeHandlers };
@@ -0,0 +1,144 @@
1
+ import { createSdkSubscriptionErrorContext } from "../shared/subscription-errors.js";
2
+ import { isDev } from "../utils/is-dev.js";
3
+ import { formatConnectError } from "../utils/errors.js";
4
+ //#region src/realtime/snapshot-then-stream.ts
5
+ /**
6
+ * Snapshot-then-stream for feed state. By default, the buffer caps at
7
+ * `maxBufferedPublications` and drops the OLDEST publications, which is correct for
8
+ * ephemeral feeds where a later publication supersedes earlier ones. Keyed state can
9
+ * provide `bufferPublicationKey` to retain the latest value for every key without FIFO
10
+ * loss. Entity transitions (orders, triggers, balances, trades) must NOT use this —
11
+ * their ordering contract lives in the app-side `EntityStreamStore`, which buffers
12
+ * unbounded and replays because dropping an event loses a row transition.
13
+ */
14
+ function snapshotThenStream(params) {
15
+ const maxBufferedPublications = params.maxBufferedPublications ?? 200;
16
+ let droppedPublications = 0;
17
+ let ready = false;
18
+ let disposed = false;
19
+ let refreshGeneration = 0;
20
+ let pendingPublications = [];
21
+ let retryAttempts = 0;
22
+ let retryTimer = null;
23
+ function reportSnapshotError(error) {
24
+ if (isDev() && params.snapshotErrorLog) console.error(params.snapshotErrorLog, error);
25
+ params.onError?.(createSdkSubscriptionErrorContext(params.channel, "snapshot", formatConnectError(error, "snapshot failed")));
26
+ }
27
+ function takePendingPublications() {
28
+ const buffered = pendingPublications;
29
+ pendingPublications = [];
30
+ return buffered;
31
+ }
32
+ function applyBufferedAsLive() {
33
+ const buffered = takePendingPublications();
34
+ if (buffered.length === 0) return;
35
+ params.applyLivePublications(buffered);
36
+ }
37
+ function bufferPublications(publications) {
38
+ if (params.bufferPublicationKey) {
39
+ const byKey = /* @__PURE__ */ new Map();
40
+ for (const publication of pendingPublications) byKey.set(params.bufferPublicationKey(publication), publication);
41
+ for (const publication of publications) byKey.set(params.bufferPublicationKey(publication), publication);
42
+ pendingPublications = Array.from(byKey.values());
43
+ return;
44
+ }
45
+ const next = pendingPublications.concat(publications);
46
+ if (next.length > maxBufferedPublications) {
47
+ droppedPublications += next.length - maxBufferedPublications;
48
+ if (isDev()) console.warn(`[snapshot-then-stream] ${params.channel}: buffer cap dropped ${droppedPublications} publication(s) while snapshot in flight`);
49
+ }
50
+ pendingPublications = next.slice(-maxBufferedPublications);
51
+ }
52
+ function clearRetryTimer() {
53
+ if (retryTimer === null) return;
54
+ clearTimeout(retryTimer);
55
+ retryTimer = null;
56
+ }
57
+ function reportBufferedPublicationError(error) {
58
+ params.onError?.(createSdkSubscriptionErrorContext(params.channel, "publication_handler", error));
59
+ }
60
+ function scheduleSnapshotRetry() {
61
+ const retry = params.snapshotRetry;
62
+ if (!retry || retryAttempts >= retry.maxAttempts || disposed) return;
63
+ const delayMs = retry.delayMs * 2 ** retryAttempts;
64
+ retryAttempts++;
65
+ retryTimer = setTimeout(() => {
66
+ retryTimer = null;
67
+ refreshSnapshot(false);
68
+ }, delayMs);
69
+ }
70
+ function refreshSnapshot(resetRetries = true) {
71
+ if (disposed) return;
72
+ clearRetryTimer();
73
+ if (resetRetries) retryAttempts = 0;
74
+ const generation = ++refreshGeneration;
75
+ ready = false;
76
+ Promise.resolve().then(() => params.fetchSnapshot()).then((snapshot) => {
77
+ if (disposed || generation !== refreshGeneration) return;
78
+ const buffered = takePendingPublications();
79
+ params.applySnapshot(snapshot, buffered);
80
+ if (disposed || generation !== refreshGeneration) return;
81
+ ready = true;
82
+ retryAttempts = 0;
83
+ }).catch((error) => {
84
+ if (disposed || generation !== refreshGeneration) return;
85
+ reportSnapshotError(error);
86
+ if (params.snapshotFailureMode === "live") {
87
+ ready = true;
88
+ try {
89
+ applyBufferedAsLive();
90
+ } catch (publicationError) {
91
+ reportBufferedPublicationError(publicationError);
92
+ }
93
+ }
94
+ scheduleSnapshotRetry();
95
+ });
96
+ }
97
+ const unsubscribeRealtime = params.realtime.connectProtoChannel({
98
+ channel: params.channel,
99
+ schema: params.schema,
100
+ onPublication: (message) => {
101
+ const publications = params.readPublication(message);
102
+ if (publications.length === 0) return;
103
+ if (!ready) {
104
+ bufferPublications(publications);
105
+ return;
106
+ }
107
+ params.applyLivePublications(publications);
108
+ },
109
+ onConnected: () => {
110
+ if (disposed) return;
111
+ pendingPublications = [];
112
+ refreshSnapshot();
113
+ params.onOpen?.();
114
+ },
115
+ onDisconnected: () => {
116
+ if (disposed) return;
117
+ clearRetryTimer();
118
+ refreshGeneration++;
119
+ ready = false;
120
+ pendingPublications = [];
121
+ params.onClose?.();
122
+ },
123
+ onError: (ctx) => params.onError?.(ctx)
124
+ });
125
+ function unsubscribe() {
126
+ disposed = true;
127
+ clearRetryTimer();
128
+ refreshGeneration++;
129
+ pendingPublications = [];
130
+ try {
131
+ unsubscribeRealtime();
132
+ } catch {}
133
+ }
134
+ return {
135
+ unsubscribe,
136
+ refreshSnapshot,
137
+ isReady: () => ready,
138
+ isDisposed: () => disposed
139
+ };
140
+ }
141
+ //#endregion
142
+ export { snapshotThenStream };
143
+
144
+ //# sourceMappingURL=snapshot-then-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-then-stream.js","names":[],"sources":["../../src/realtime/snapshot-then-stream.ts"],"sourcesContent":["import type { DescMessage, MessageShape } from \"@bufbuild/protobuf\";\nimport {\n createSdkSubscriptionErrorContext,\n type SdkSubscriptionErrorContext,\n} from \"../shared/subscription-errors.js\";\nimport type { PolyesterRealtime } from \"./types.js\";\nimport { formatConnectError } from \"../utils/errors.js\";\nimport { isDev } from \"../utils/is-dev.js\";\n\nexport interface SnapshotThenStreamSubscription {\n unsubscribe: () => void;\n refreshSnapshot: () => void;\n isReady: () => boolean;\n isDisposed: () => boolean;\n}\n\nexport interface SnapshotThenStreamInput<TSchema extends DescMessage, TSnapshot, TPublication> {\n realtime: PolyesterRealtime;\n channel: string;\n schema: TSchema;\n maxBufferedPublications?: number;\n bufferPublicationKey?: (publication: TPublication) => PropertyKey;\n snapshotRetry?: {\n maxAttempts: number;\n delayMs: number;\n };\n snapshotFailureMode?: \"wait\" | \"live\";\n snapshotErrorLog?: string;\n fetchSnapshot: () => Promise<TSnapshot>;\n readPublication: (message: MessageShape<TSchema>) => readonly TPublication[];\n applySnapshot: (snapshot: TSnapshot, bufferedPublications: readonly TPublication[]) => void;\n applyLivePublications: (publications: readonly TPublication[]) => void;\n onOpen?: () => void;\n onClose?: () => void;\n onError?: (ctx: SdkSubscriptionErrorContext) => void;\n}\n\n/**\n * Snapshot-then-stream for feed state. By default, the buffer caps at\n * `maxBufferedPublications` and drops the OLDEST publications, which is correct for\n * ephemeral feeds where a later publication supersedes earlier ones. Keyed state can\n * provide `bufferPublicationKey` to retain the latest value for every key without FIFO\n * loss. Entity transitions (orders, triggers, balances, trades) must NOT use this —\n * their ordering contract lives in the app-side `EntityStreamStore`, which buffers\n * unbounded and replays because dropping an event loses a row transition.\n */\nexport function snapshotThenStream<TSchema extends DescMessage, TSnapshot, TPublication>(\n params: SnapshotThenStreamInput<TSchema, TSnapshot, TPublication>,\n): SnapshotThenStreamSubscription {\n const maxBufferedPublications = params.maxBufferedPublications ?? 200;\n let droppedPublications = 0;\n\n let ready = false;\n let disposed = false;\n let refreshGeneration = 0;\n let pendingPublications: TPublication[] = [];\n let retryAttempts = 0;\n let retryTimer: ReturnType<typeof setTimeout> | null = null;\n\n function reportSnapshotError(error: unknown): void {\n if (isDev() && params.snapshotErrorLog) {\n console.error(params.snapshotErrorLog, error);\n }\n params.onError?.(\n createSdkSubscriptionErrorContext(\n params.channel,\n \"snapshot\",\n formatConnectError(error, \"snapshot failed\"),\n ),\n );\n }\n\n function takePendingPublications(): TPublication[] {\n const buffered = pendingPublications;\n pendingPublications = [];\n return buffered;\n }\n\n function applyBufferedAsLive(): void {\n const buffered = takePendingPublications();\n if (buffered.length === 0) return;\n params.applyLivePublications(buffered);\n }\n\n function bufferPublications(publications: readonly TPublication[]): void {\n if (params.bufferPublicationKey) {\n const byKey = new Map<PropertyKey, TPublication>();\n for (const publication of pendingPublications) {\n byKey.set(params.bufferPublicationKey(publication), publication);\n }\n for (const publication of publications) {\n byKey.set(params.bufferPublicationKey(publication), publication);\n }\n pendingPublications = Array.from(byKey.values());\n return;\n }\n\n const next = pendingPublications.concat(publications);\n if (next.length > maxBufferedPublications) {\n droppedPublications += next.length - maxBufferedPublications;\n if (isDev()) {\n console.warn(\n `[snapshot-then-stream] ${params.channel}: buffer cap dropped ${droppedPublications} publication(s) while snapshot in flight`,\n );\n }\n }\n pendingPublications = next.slice(-maxBufferedPublications);\n }\n\n function clearRetryTimer(): void {\n if (retryTimer === null) return;\n clearTimeout(retryTimer);\n retryTimer = null;\n }\n\n function reportBufferedPublicationError(error: unknown): void {\n params.onError?.(\n createSdkSubscriptionErrorContext(params.channel, \"publication_handler\", error),\n );\n }\n\n function scheduleSnapshotRetry(): void {\n const retry = params.snapshotRetry;\n if (!retry || retryAttempts >= retry.maxAttempts || disposed) return;\n\n const delayMs = retry.delayMs * 2 ** retryAttempts;\n retryAttempts++;\n retryTimer = setTimeout(() => {\n retryTimer = null;\n refreshSnapshot(false);\n }, delayMs);\n }\n\n function refreshSnapshot(resetRetries = true): void {\n if (disposed) return;\n clearRetryTimer();\n if (resetRetries) retryAttempts = 0;\n\n const generation = ++refreshGeneration;\n ready = false;\n\n Promise.resolve()\n .then(() => params.fetchSnapshot())\n .then((snapshot) => {\n if (disposed || generation !== refreshGeneration) return;\n\n const buffered = takePendingPublications();\n params.applySnapshot(snapshot, buffered);\n\n if (disposed || generation !== refreshGeneration) return;\n ready = true;\n retryAttempts = 0;\n })\n .catch((error: unknown) => {\n if (disposed || generation !== refreshGeneration) return;\n reportSnapshotError(error);\n if (params.snapshotFailureMode === \"live\") {\n ready = true;\n try {\n applyBufferedAsLive();\n } catch (publicationError) {\n reportBufferedPublicationError(publicationError);\n }\n }\n scheduleSnapshotRetry();\n });\n }\n\n const unsubscribeRealtime = params.realtime.connectProtoChannel({\n channel: params.channel,\n schema: params.schema,\n onPublication: (message) => {\n const publications = params.readPublication(message);\n if (publications.length === 0) return;\n\n if (!ready) {\n bufferPublications(publications);\n return;\n }\n\n params.applyLivePublications(publications);\n },\n onConnected: () => {\n if (disposed) return;\n pendingPublications = [];\n refreshSnapshot();\n params.onOpen?.();\n },\n onDisconnected: () => {\n if (disposed) return;\n clearRetryTimer();\n refreshGeneration++;\n ready = false;\n pendingPublications = [];\n params.onClose?.();\n },\n onError: (ctx) => params.onError?.(ctx),\n });\n\n function unsubscribe(): void {\n disposed = true;\n clearRetryTimer();\n refreshGeneration++;\n pendingPublications = [];\n try {\n unsubscribeRealtime();\n } catch {\n // noop\n }\n }\n\n return {\n unsubscribe,\n refreshSnapshot,\n isReady: () => ready,\n isDisposed: () => disposed,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { SdkSubscriptionErrorContext } from "../shared/subscription-errors.js";
2
+ import { DescMessage, MessageShape } from "@bufbuild/protobuf";
3
+ //#region src/realtime/types.d.ts
4
+ interface SubscribeHandlers<T> {
5
+ onPublication: (data: T) => void;
6
+ onSubscribed?: () => void;
7
+ onUnsubscribed?: () => void;
8
+ onError?: (ctx: SdkSubscriptionErrorContext) => void;
9
+ }
10
+ interface ConnectChannelParams<T extends DescMessage> {
11
+ channel: string;
12
+ schema: T;
13
+ onPublication: (data: MessageShape<T>) => void;
14
+ onConnected?: () => void;
15
+ onDisconnected?: () => void;
16
+ onError?: (ctx: SdkSubscriptionErrorContext) => void;
17
+ }
18
+ /**
19
+ * Structural realtime contract consumed by SDK services. The default
20
+ * implementation is the Centrifuge-backed {@link ../realtime/client.js RealtimeClient};
21
+ * alternative implementations (in-memory mocks, custom stacks) can be injected
22
+ * via the client config's `realtimeClient` field.
23
+ */
24
+ interface PolyesterRealtime {
25
+ /** Subscribes to a realtime channel and returns an unsubscribe function. */
26
+ subscribe<T>(channel: string, handlers: SubscribeHandlers<T>): () => void;
27
+ /** Connects to a realtime channel with a custom message decoder. */
28
+ connectChannel<T extends DescMessage>(params: ConnectChannelParams<T>): () => void;
29
+ /** Connects to a realtime channel that emits protobuf messages. */
30
+ connectProtoChannel<T extends DescMessage>(params: ConnectChannelParams<T>): () => void;
31
+ /** Disconnects from all active channels. */
32
+ disconnect(): void;
33
+ /** Disconnects authenticated realtime state without touching public channels. */
34
+ disconnectPrivate(): void;
35
+ readonly isConnected: boolean;
36
+ readonly activeChannels: number;
37
+ readonly totalConsumers: number;
38
+ }
39
+ //#endregion
40
+ export { ConnectChannelParams, PolyesterRealtime, SubscribeHandlers };
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/realtime/types.ts"],"mappings":";;;UAGiB,kBAAkB;EAC/B,gBAAgB,MAAM;EACtB;EACA;EACA,WAAW,KAAK;;UAGH,qBAAqB,UAAU;EAC5C;EACA,QAAQ;EACR,gBAAgB,MAAM,aAAa;EACnC;EACA;EACA,WAAW,KAAK;;;;;;;;UASH;;EAEb,UAAU,GAAG,iBAAiB,UAAU,kBAAkB;;EAE1D,eAAe,UAAU,aAAa,QAAQ,qBAAqB;;EAEnE,oBAAoB,UAAU,aAAa,QAAQ,qBAAqB;;EAExE;;EAEA;WACS;WACA;WACA"}
@@ -0,0 +1,73 @@
1
+ import "./environment.js";
2
+ import { ApiKeyEd25519AuthProvider, JwtAuthProvider } from "./shared/transports.js";
3
+ import { SubaccountResolver } from "./services/subaccount-resolver.js";
4
+ import { Me } from "./services/auth/auth.js";
5
+ import { PolyesterClient, PolyesterClientBaseConfig } from "./core-client.js";
6
+ import { CookieGetter } from "./utils/cookies.js";
7
+ import { ServerSessionSnapshot } from "./services/auth/session.types.js";
8
+ import { POLYESTER_AUTH_TOKEN_COOKIE_NAME, POLYESTER_SESSION_COOKIE_NAME } from "./services/auth/cookie-constants.js";
9
+ //#region src/server-client.d.ts
10
+ interface PolyesterServerClientConfig extends PolyesterClientBaseConfig {
11
+ /** Auth provider config for HTTP/Connect endpoints. */
12
+ auth?: JwtAuthProvider | ApiKeyEd25519AuthProvider;
13
+ /** Display-only session data parsed from cookies. Not proof of authentication. */
14
+ session?: ServerSessionSnapshot;
15
+ /**
16
+ * Use unsigned display-session `activeAccount` as the default subaccount for
17
+ * calls that omit `subaccountId`. This preserves account-switcher intent for
18
+ * apps that explicitly opt in; backend authorization must still decide what
19
+ * the authenticated user can access.
20
+ */
21
+ useDisplaySessionActiveAccountAsDefault?: boolean;
22
+ }
23
+ /**
24
+ * Server-side SDK client that can parse display-session cookies and verify bearer-token sessions with the backend.
25
+ */
26
+ declare class PolyesterServerClient extends PolyesterClient {
27
+ #private;
28
+ constructor(config: PolyesterServerClientConfig);
29
+ /**
30
+ * Creates a resolver for server-side subaccount defaults. Display-session
31
+ * `activeAccount` is only used as caller intent when explicitly enabled;
32
+ * backend auth remains authoritative.
33
+ */
34
+ protected createSubaccountResolver(): SubaccountResolver;
35
+ get hasAuthProvider(): boolean;
36
+ get hasBearerToken(): boolean;
37
+ get hasUsableBearerToken(): boolean;
38
+ get hasDisplaySession(): boolean;
39
+ get session(): ServerSessionSnapshot;
40
+ /**
41
+ * Verifies the current server session and returns its auth state.
42
+ */
43
+ verifySession(): Promise<Me | null>;
44
+ }
45
+ interface CreateServerClientFromCookiesParams extends Pick<PolyesterClientBaseConfig, "environment" | "interceptors" | "realtime" | "wireFormat" | "catalog" | "catalogSnapshot" | "catalogCell" | "transports" | "realtimeClient"> {
46
+ cookies: CookieGetter;
47
+ /**
48
+ * Use unsigned display-session `activeAccount` as the default subaccount for
49
+ * calls that omit `subaccountId`. This is caller intent from UI hydration,
50
+ * not proof of authority; backend authorization remains authoritative.
51
+ */
52
+ useDisplaySessionActiveAccountAsDefault?: boolean;
53
+ }
54
+ interface CreateServerClientFromRequestParams extends Pick<PolyesterClientBaseConfig, "environment" | "interceptors" | "realtime" | "wireFormat" | "catalog" | "catalogSnapshot" | "catalogCell" | "transports" | "realtimeClient"> {
55
+ request: Request;
56
+ /**
57
+ * Use unsigned display-session `activeAccount` as the default subaccount for
58
+ * calls that omit `subaccountId`. This is caller intent from UI hydration,
59
+ * not proof of authority; backend authorization remains authoritative.
60
+ */
61
+ useDisplaySessionActiveAccountAsDefault?: boolean;
62
+ }
63
+ /**
64
+ * Creates a server SDK client from a cookie source.
65
+ */
66
+ declare function createPolyesterServerClientFromCookies(params: CreateServerClientFromCookiesParams): PolyesterServerClient;
67
+ /**
68
+ * Creates a server SDK client from a Request object.
69
+ */
70
+ declare function createPolyesterServerClientFromRequest(params: CreateServerClientFromRequestParams): PolyesterServerClient;
71
+ //#endregion
72
+ export { CreateServerClientFromCookiesParams, CreateServerClientFromRequestParams, PolyesterServerClient, PolyesterServerClientConfig, type ServerSessionSnapshot, createPolyesterServerClientFromCookies, createPolyesterServerClientFromRequest };
73
+ //# sourceMappingURL=server-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-client.d.ts","names":[],"sources":["../src/server-client.ts"],"mappings":";;;;;;;;;UA0BiB,oCAAoC;;EAEjD,OAAO,kBAAkB;;EAEzB,UAAU;;;;;;;EAOV;;;;;cAMS,8BAA8B;;EAK3B,YAAA,QAAQ;;;;;;YA0BD,4BAA4B;MAc3C;MAIA;MAIA;MAIA;MAIA,WAAW;;;;EAOT,iBAAiB,QAAQ;;UAWlB,4CAA4C,KACzD;EAWA,SAAS;;;;;;EAMT;;UAGa,4CAA4C,KACzD;EAWA,SAAS;;;;;;EAMT;;;;;iBAMY,uCACZ,QAAQ,sCACT;;;;iBA4Ba,uCACZ,QAAQ,sCACT"}
@@ -0,0 +1,126 @@
1
+ import { PolyesterClient } from "./core-client.js";
2
+ import "./services/auth/cookie-constants.js";
3
+ import { emptyServerSessionSnapshot, parseServerSessionSnapshot } from "./services/auth/session.js";
4
+ import { isJwtValid } from "./utils/jwt.js";
5
+ //#region src/server-client.ts
6
+ /**
7
+ * Parses a serialized session cookie into SDK session data.
8
+ */
9
+ function parseSessionCookie(cookies, environment) {
10
+ return parseServerSessionSnapshot(cookies, environment);
11
+ }
12
+ /**
13
+ * Server-side SDK client that can parse display-session cookies and verify bearer-token sessions with the backend.
14
+ */
15
+ var PolyesterServerClient = class extends PolyesterClient {
16
+ #hasAuthProvider;
17
+ #session;
18
+ #useDisplaySessionActiveAccountAsDefault;
19
+ constructor(config) {
20
+ const auth = config.auth ?? void 0;
21
+ super({
22
+ environment: config.environment,
23
+ interceptors: config.interceptors,
24
+ auth,
25
+ wireFormat: config.wireFormat,
26
+ realtime: config.realtime,
27
+ catalog: config.catalog,
28
+ catalogSnapshot: config.catalogSnapshot,
29
+ catalogCell: config.catalogCell,
30
+ transports: config.transports,
31
+ realtimeClient: config.realtimeClient
32
+ });
33
+ this.#hasAuthProvider = !!auth;
34
+ this.#session = config.session ?? emptyServerSessionSnapshot();
35
+ this.#useDisplaySessionActiveAccountAsDefault = config.useDisplaySessionActiveAccountAsDefault ?? false;
36
+ }
37
+ /**
38
+ * Creates a resolver for server-side subaccount defaults. Display-session
39
+ * `activeAccount` is only used as caller intent when explicitly enabled;
40
+ * backend auth remains authoritative.
41
+ */
42
+ createSubaccountResolver() {
43
+ return {
44
+ getDefaultSubaccountId: () => {
45
+ if (!this.#useDisplaySessionActiveAccountAsDefault) return null;
46
+ const activeAccount = this.#session.activeAccount;
47
+ if (activeAccount && !activeAccount.isMain) return activeAccount.accountId;
48
+ return null;
49
+ },
50
+ getActiveAccountId: () => this.#session.activeAccount?.accountId ?? null,
51
+ getMainAccountId: () => this.#session.activeAccount?.mainAccountId ?? null
52
+ };
53
+ }
54
+ get hasAuthProvider() {
55
+ return this.#hasAuthProvider;
56
+ }
57
+ get hasBearerToken() {
58
+ return !!this.#session.bearerToken;
59
+ }
60
+ get hasUsableBearerToken() {
61
+ return isJwtValid(this.#session.bearerToken);
62
+ }
63
+ get hasDisplaySession() {
64
+ return this.#session.hasDisplaySession;
65
+ }
66
+ get session() {
67
+ return this.#session;
68
+ }
69
+ /**
70
+ * Verifies the current server session and returns its auth state.
71
+ */
72
+ async verifySession() {
73
+ if (!this.#hasAuthProvider) return null;
74
+ try {
75
+ return await this.auth.me();
76
+ } catch {
77
+ return null;
78
+ }
79
+ }
80
+ };
81
+ /**
82
+ * Creates a server SDK client from a cookie source.
83
+ */
84
+ function createPolyesterServerClientFromCookies(params) {
85
+ const session = parseSessionCookie(params.cookies, params.environment);
86
+ const auth = isJwtValid(session.bearerToken) ? {
87
+ kind: "jwt",
88
+ getToken: () => session.bearerToken
89
+ } : void 0;
90
+ return new PolyesterServerClient({
91
+ environment: params.environment,
92
+ interceptors: params.interceptors,
93
+ session,
94
+ wireFormat: params.wireFormat,
95
+ realtime: params.realtime,
96
+ catalog: params.catalog,
97
+ catalogSnapshot: params.catalogSnapshot,
98
+ catalogCell: params.catalogCell,
99
+ transports: params.transports,
100
+ realtimeClient: params.realtimeClient,
101
+ auth,
102
+ useDisplaySessionActiveAccountAsDefault: params.useDisplaySessionActiveAccountAsDefault
103
+ });
104
+ }
105
+ /**
106
+ * Creates a server SDK client from a Request object.
107
+ */
108
+ function createPolyesterServerClientFromRequest(params) {
109
+ return createPolyesterServerClientFromCookies({
110
+ cookies: params.request,
111
+ environment: params.environment,
112
+ interceptors: params.interceptors,
113
+ wireFormat: params.wireFormat,
114
+ realtime: params.realtime,
115
+ catalog: params.catalog,
116
+ catalogSnapshot: params.catalogSnapshot,
117
+ catalogCell: params.catalogCell,
118
+ transports: params.transports,
119
+ realtimeClient: params.realtimeClient,
120
+ useDisplaySessionActiveAccountAsDefault: params.useDisplaySessionActiveAccountAsDefault
121
+ });
122
+ }
123
+ //#endregion
124
+ export { PolyesterServerClient, createPolyesterServerClientFromCookies, createPolyesterServerClientFromRequest, parseSessionCookie };
125
+
126
+ //# sourceMappingURL=server-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-client.js","names":["#hasAuthProvider","#session","#useDisplaySessionActiveAccountAsDefault"],"sources":["../src/server-client.ts"],"sourcesContent":["import { PolyesterClient, type PolyesterClientBaseConfig } from \"./core-client.js\";\nimport {\n POLYESTER_AUTH_TOKEN_COOKIE_NAME,\n POLYESTER_SESSION_COOKIE_NAME,\n} from \"./services/auth/cookie-constants.js\";\nimport type { ServerSessionSnapshot } from \"./services/auth/session.types.js\";\nimport { emptyServerSessionSnapshot, parseServerSessionSnapshot } from \"./services/auth/session.js\";\nimport type { CookieGetter } from \"./utils/cookies.js\";\nimport type { JwtAuthProvider, ApiKeyEd25519AuthProvider } from \"./shared/transports.js\";\nimport type { SubaccountResolver } from \"./services/subaccount-resolver.js\";\nimport { isJwtValid } from \"./utils/jwt.js\";\nimport type { Me } from \"./services/auth/auth.js\";\nimport type { PolyesterEnvironment } from \"./environment.js\";\n\nexport type { ServerSessionSnapshot };\n\n/**\n * Parses a serialized session cookie into SDK session data.\n */\nexport function parseSessionCookie(\n cookies: CookieGetter,\n environment: PolyesterEnvironment,\n): ServerSessionSnapshot {\n return parseServerSessionSnapshot(cookies, environment);\n}\n\nexport interface PolyesterServerClientConfig extends PolyesterClientBaseConfig {\n /** Auth provider config for HTTP/Connect endpoints. */\n auth?: JwtAuthProvider | ApiKeyEd25519AuthProvider;\n /** Display-only session data parsed from cookies. Not proof of authentication. */\n session?: ServerSessionSnapshot;\n /**\n * Use unsigned display-session `activeAccount` as the default subaccount for\n * calls that omit `subaccountId`. This preserves account-switcher intent for\n * apps that explicitly opt in; backend authorization must still decide what\n * the authenticated user can access.\n */\n useDisplaySessionActiveAccountAsDefault?: boolean;\n}\n\n/**\n * Server-side SDK client that can parse display-session cookies and verify bearer-token sessions with the backend.\n */\nexport class PolyesterServerClient extends PolyesterClient {\n #hasAuthProvider: boolean;\n #session: ServerSessionSnapshot;\n #useDisplaySessionActiveAccountAsDefault: boolean;\n\n constructor(config: PolyesterServerClientConfig) {\n const auth = config.auth ?? undefined;\n\n super({\n environment: config.environment,\n interceptors: config.interceptors,\n auth,\n wireFormat: config.wireFormat,\n realtime: config.realtime,\n catalog: config.catalog,\n catalogSnapshot: config.catalogSnapshot,\n catalogCell: config.catalogCell,\n transports: config.transports,\n realtimeClient: config.realtimeClient,\n });\n this.#hasAuthProvider = !!auth;\n this.#session = config.session ?? emptyServerSessionSnapshot();\n this.#useDisplaySessionActiveAccountAsDefault =\n config.useDisplaySessionActiveAccountAsDefault ?? false;\n }\n\n /**\n * Creates a resolver for server-side subaccount defaults. Display-session\n * `activeAccount` is only used as caller intent when explicitly enabled;\n * backend auth remains authoritative.\n */\n protected override createSubaccountResolver(): SubaccountResolver {\n return {\n getDefaultSubaccountId: () => {\n if (!this.#useDisplaySessionActiveAccountAsDefault) return null;\n\n const activeAccount = this.#session.activeAccount;\n if (activeAccount && !activeAccount.isMain) return activeAccount.accountId;\n return null;\n },\n getActiveAccountId: () => this.#session.activeAccount?.accountId ?? null,\n getMainAccountId: () => this.#session.activeAccount?.mainAccountId ?? null,\n };\n }\n\n get hasAuthProvider(): boolean {\n return this.#hasAuthProvider;\n }\n\n get hasBearerToken(): boolean {\n return !!this.#session.bearerToken;\n }\n\n get hasUsableBearerToken(): boolean {\n return isJwtValid(this.#session.bearerToken);\n }\n\n get hasDisplaySession(): boolean {\n return this.#session.hasDisplaySession;\n }\n\n get session(): ServerSessionSnapshot {\n return this.#session;\n }\n\n /**\n * Verifies the current server session and returns its auth state.\n */\n async verifySession(): Promise<Me | null> {\n if (!this.#hasAuthProvider) return null;\n\n try {\n return await this.auth.me();\n } catch {\n return null;\n }\n }\n}\n\nexport interface CreateServerClientFromCookiesParams extends Pick<\n PolyesterClientBaseConfig,\n | \"environment\"\n | \"interceptors\"\n | \"realtime\"\n | \"wireFormat\"\n | \"catalog\"\n | \"catalogSnapshot\"\n | \"catalogCell\"\n | \"transports\"\n | \"realtimeClient\"\n> {\n cookies: CookieGetter;\n /**\n * Use unsigned display-session `activeAccount` as the default subaccount for\n * calls that omit `subaccountId`. This is caller intent from UI hydration,\n * not proof of authority; backend authorization remains authoritative.\n */\n useDisplaySessionActiveAccountAsDefault?: boolean;\n}\n\nexport interface CreateServerClientFromRequestParams extends Pick<\n PolyesterClientBaseConfig,\n | \"environment\"\n | \"interceptors\"\n | \"realtime\"\n | \"wireFormat\"\n | \"catalog\"\n | \"catalogSnapshot\"\n | \"catalogCell\"\n | \"transports\"\n | \"realtimeClient\"\n> {\n request: Request;\n /**\n * Use unsigned display-session `activeAccount` as the default subaccount for\n * calls that omit `subaccountId`. This is caller intent from UI hydration,\n * not proof of authority; backend authorization remains authoritative.\n */\n useDisplaySessionActiveAccountAsDefault?: boolean;\n}\n\n/**\n * Creates a server SDK client from a cookie source.\n */\nexport function createPolyesterServerClientFromCookies(\n params: CreateServerClientFromCookiesParams,\n): PolyesterServerClient {\n const session = parseSessionCookie(params.cookies, params.environment);\n const auth = isJwtValid(session.bearerToken)\n ? ({\n kind: \"jwt\",\n getToken: () => session.bearerToken,\n } satisfies JwtAuthProvider)\n : undefined;\n\n return new PolyesterServerClient({\n environment: params.environment,\n interceptors: params.interceptors,\n session,\n wireFormat: params.wireFormat,\n realtime: params.realtime,\n catalog: params.catalog,\n catalogSnapshot: params.catalogSnapshot,\n catalogCell: params.catalogCell,\n transports: params.transports,\n realtimeClient: params.realtimeClient,\n auth,\n useDisplaySessionActiveAccountAsDefault: params.useDisplaySessionActiveAccountAsDefault,\n });\n}\n\n/**\n * Creates a server SDK client from a Request object.\n */\nexport function createPolyesterServerClientFromRequest(\n params: CreateServerClientFromRequestParams,\n): PolyesterServerClient {\n return createPolyesterServerClientFromCookies({\n cookies: params.request,\n environment: params.environment,\n interceptors: params.interceptors,\n wireFormat: params.wireFormat,\n realtime: params.realtime,\n catalog: params.catalog,\n catalogSnapshot: params.catalogSnapshot,\n catalogCell: params.catalogCell,\n transports: params.transports,\n realtimeClient: params.realtimeClient,\n useDisplaySessionActiveAccountAsDefault: params.useDisplaySessionActiveAccountAsDefault,\n });\n}\n\n/**\n * Reads a bearer token from supported auth cookies.\n */\nexport function getBearerTokenFromCookies(\n cookies: CookieGetter,\n environment: PolyesterEnvironment,\n): string | null {\n return parseSessionCookie(cookies, environment).bearerToken;\n}\n\nexport { POLYESTER_AUTH_TOKEN_COOKIE_NAME, POLYESTER_SESSION_COOKIE_NAME };\n"],"mappings":";;;;;;;;AAmBA,SAAgB,mBACZ,SACA,aACqB;CACrB,OAAO,2BAA2B,SAAS,WAAW;AAC1D;;;;AAmBA,IAAa,wBAAb,cAA2C,gBAAgB;CACvD;CACA;CACA;CAEA,YAAY,QAAqC;EAC7C,MAAM,OAAO,OAAO,QAAQ,KAAA;EAE5B,MAAM;GACF,aAAa,OAAO;GACpB,cAAc,OAAO;GACrB;GACA,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,SAAS,OAAO;GAChB,iBAAiB,OAAO;GACxB,aAAa,OAAO;GACpB,YAAY,OAAO;GACnB,gBAAgB,OAAO;EAC3B,CAAC;EACD,KAAKA,mBAAmB,CAAC,CAAC;EAC1B,KAAKC,WAAW,OAAO,WAAW,2BAA2B;EAC7D,KAAKC,2CACD,OAAO,2CAA2C;CAC1D;;;;;;CAOA,2BAAkE;EAC9D,OAAO;GACH,8BAA8B;IAC1B,IAAI,CAAC,KAAKA,0CAA0C,OAAO;IAE3D,MAAM,gBAAgB,KAAKD,SAAS;IACpC,IAAI,iBAAiB,CAAC,cAAc,QAAQ,OAAO,cAAc;IACjE,OAAO;GACX;GACA,0BAA0B,KAAKA,SAAS,eAAe,aAAa;GACpE,wBAAwB,KAAKA,SAAS,eAAe,iBAAiB;EAC1E;CACJ;CAEA,IAAI,kBAA2B;EAC3B,OAAO,KAAKD;CAChB;CAEA,IAAI,iBAA0B;EAC1B,OAAO,CAAC,CAAC,KAAKC,SAAS;CAC3B;CAEA,IAAI,uBAAgC;EAChC,OAAO,WAAW,KAAKA,SAAS,WAAW;CAC/C;CAEA,IAAI,oBAA6B;EAC7B,OAAO,KAAKA,SAAS;CACzB;CAEA,IAAI,UAAiC;EACjC,OAAO,KAAKA;CAChB;;;;CAKA,MAAM,gBAAoC;EACtC,IAAI,CAAC,KAAKD,kBAAkB,OAAO;EAEnC,IAAI;GACA,OAAO,MAAM,KAAK,KAAK,GAAG;EAC9B,QAAQ;GACJ,OAAO;EACX;CACJ;AACJ;;;;AA+CA,SAAgB,uCACZ,QACqB;CACrB,MAAM,UAAU,mBAAmB,OAAO,SAAS,OAAO,WAAW;CACrE,MAAM,OAAO,WAAW,QAAQ,WAAW,IACpC;EACG,MAAM;EACN,gBAAgB,QAAQ;CAC5B,IACA,KAAA;CAEN,OAAO,IAAI,sBAAsB;EAC7B,aAAa,OAAO;EACpB,cAAc,OAAO;EACrB;EACA,YAAY,OAAO;EACnB,UAAU,OAAO;EACjB,SAAS,OAAO;EAChB,iBAAiB,OAAO;EACxB,aAAa,OAAO;EACpB,YAAY,OAAO;EACnB,gBAAgB,OAAO;EACvB;EACA,yCAAyC,OAAO;CACpD,CAAC;AACL;;;;AAKA,SAAgB,uCACZ,QACqB;CACrB,OAAO,uCAAuC;EAC1C,SAAS,OAAO;EAChB,aAAa,OAAO;EACpB,cAAc,OAAO;EACrB,YAAY,OAAO;EACnB,UAAU,OAAO;EACjB,SAAS,OAAO;EAChB,iBAAiB,OAAO;EACxB,aAAa,OAAO;EACpB,YAAY,OAAO;EACnB,gBAAgB,OAAO;EACvB,yCAAyC,OAAO;CACpD,CAAC;AACL"}
@@ -0,0 +1,4 @@
1
+ import { ServerSessionSnapshot } from "./services/auth/session.types.js";
2
+ import { emptyServerSessionSnapshot, parseServerSessionSnapshot } from "./services/auth/session.js";
3
+ import { isJwtValid } from "./utils/jwt.js";
4
+ export { type ServerSessionSnapshot, emptyServerSessionSnapshot, isJwtValid, parseServerSessionSnapshot as parseSessionCookie };
@@ -0,0 +1,3 @@
1
+ import { emptyServerSessionSnapshot, parseServerSessionSnapshot } from "./services/auth/session.js";
2
+ import { isJwtValid } from "./utils/jwt.js";
3
+ export { emptyServerSessionSnapshot, isJwtValid, parseServerSessionSnapshot as parseSessionCookie };
@@ -0,0 +1,17 @@
1
+ import "../../gen/auth/v1/resolve_pb.js";
2
+ //#region src/services/accounts/accounts.codecs.ts
3
+ const keyToProto = {
4
+ USERNAME: 1,
5
+ ID: 2,
6
+ PUBLIC_ID: 2,
7
+ SMART_ACCOUNT: 3,
8
+ SMARTACCOUNT: 3
9
+ };
10
+ const ResolveHintCodec = {
11
+ keyToProto,
12
+ keyToProtoLookup: keyToProto
13
+ };
14
+ //#endregion
15
+ export { ResolveHintCodec };
16
+
17
+ //# sourceMappingURL=accounts.codecs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.codecs.js","names":[],"sources":["../../../src/services/accounts/accounts.codecs.ts"],"sourcesContent":["import * as ProtoResolve from \"../../gen/auth/v1/resolve_pb.js\";\n\nexport const RESOLVE_HINT_KEYS = [\n \"USERNAME\",\n \"ID\",\n \"PUBLIC_ID\",\n \"SMART_ACCOUNT\",\n \"SMARTACCOUNT\",\n] as const;\nexport type ResolveHintKey = (typeof RESOLVE_HINT_KEYS)[number];\n\nconst keyToProto = {\n USERNAME: ProtoResolve.ResolveHint.USERNAME,\n ID: ProtoResolve.ResolveHint.ID,\n PUBLIC_ID: ProtoResolve.ResolveHint.ID,\n SMART_ACCOUNT: ProtoResolve.ResolveHint.SMART_ACCOUNT,\n SMARTACCOUNT: ProtoResolve.ResolveHint.SMART_ACCOUNT,\n} satisfies Record<ResolveHintKey, ProtoResolve.ResolveHint>;\n\nexport const ResolveHintCodec = {\n keyToProto,\n keyToProtoLookup: keyToProto as Record<string, ProtoResolve.ResolveHint>,\n} as const;\n"],"mappings":";;AAWA,MAAM,aAAa;CACf,UAAA;CACA,IAAA;CACA,WAAA;CACA,eAAA;CACA,cAAA;AACJ;AAEA,MAAa,mBAAmB;CAC5B;CACA,kBAAkB;AACtB"}
@@ -0,0 +1,18 @@
1
+ import { PolyesterRequestOptions } from "../../shared/request-options.js";
2
+ import { ResolveAccountInput, ResolvedAccount } from "./accounts.schemas.js";
3
+ import { Transport } from "@connectrpc/connect";
4
+ //#region src/services/accounts/accounts.d.ts
5
+ /**
6
+ * Resolves user-entered account identifiers into transfer/shareable root or subaccount destinations.
7
+ */
8
+ declare class AccountsService {
9
+ #private;
10
+ constructor(transport: Transport);
11
+ /**
12
+ * Resolves a username, opaque account/subaccount ID, or smart-account address into matching destination accounts; set includeSubaccounts for internal-transfer flows that may target subaccounts.
13
+ */
14
+ resolve(input: ResolveAccountInput, options?: PolyesterRequestOptions): Promise<ResolvedAccount[]>;
15
+ }
16
+ //#endregion
17
+ export { AccountsService };
18
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","names":[],"sources":["../../../src/services/accounts/accounts.ts"],"mappings":";;;;;;;cAiBa;;EAGG,YAAA,WAAW;;;;EAOjB,QACF,OAAO,qBACP,UAAU,0BACX,QAAQ"}
@@ -0,0 +1,27 @@
1
+ import { ResolveService } from "../../gen/auth/v1/resolve_pb.js";
2
+ import { toConnectCallOptions } from "../../shared/request-options.js";
3
+ import { ResolveAccountInputSchema, ResolvedAccountArraySchema } from "./accounts.schemas.js";
4
+ import { createClient } from "@connectrpc/connect";
5
+ import * as v from "valibot";
6
+ //#region src/services/accounts/accounts.ts
7
+ /**
8
+ * Resolves user-entered account identifiers into transfer/shareable root or subaccount destinations.
9
+ */
10
+ var AccountsService = class {
11
+ #client;
12
+ constructor(transport) {
13
+ this.#client = createClient(ResolveService, transport);
14
+ }
15
+ /**
16
+ * Resolves a username, opaque account/subaccount ID, or smart-account address into matching destination accounts; set includeSubaccounts for internal-transfer flows that may target subaccounts.
17
+ */
18
+ async resolve(input, options) {
19
+ const validatedInput = v.parse(ResolveAccountInputSchema, input);
20
+ const res = await this.#client.resolveAccount(validatedInput, toConnectCallOptions(options));
21
+ return v.parse(ResolvedAccountArraySchema, res.matches);
22
+ }
23
+ };
24
+ //#endregion
25
+ export { AccountsService };
26
+
27
+ //# sourceMappingURL=accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.js","names":["#client","ProtoResolve.ResolveService"],"sources":["../../../src/services/accounts/accounts.ts"],"sourcesContent":["import { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as ProtoResolve from \"../../gen/auth/v1/resolve_pb.js\";\nimport * as v from \"valibot\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport {\n ResolveAccountInputSchema,\n ResolvedAccountArraySchema,\n type ResolveAccountInput,\n type ResolvedAccount,\n} from \"./accounts.schemas.js\";\n\n/**\n * Resolves user-entered account identifiers into transfer/shareable root or subaccount destinations.\n */\nexport class AccountsService {\n #client: Client<typeof ProtoResolve.ResolveService>;\n\n constructor(transport: Transport) {\n this.#client = createClient(ProtoResolve.ResolveService, transport);\n }\n\n /**\n * Resolves a username, opaque account/subaccount ID, or smart-account address into matching destination accounts; set includeSubaccounts for internal-transfer flows that may target subaccounts.\n */\n async resolve(\n input: ResolveAccountInput,\n options?: PolyesterRequestOptions,\n ): Promise<ResolvedAccount[]> {\n const validatedInput = v.parse(ResolveAccountInputSchema, input);\n const res = await this.#client.resolveAccount(\n validatedInput,\n toConnectCallOptions(options),\n );\n\n return v.parse(ResolvedAccountArraySchema, res.matches);\n }\n}\n"],"mappings":";;;;;;;;;AAiBA,IAAa,kBAAb,MAA6B;CACzB;CAEA,YAAY,WAAsB;EAC9B,KAAKA,UAAU,aAAaC,gBAA6B,SAAS;CACtE;;;;CAKA,MAAM,QACF,OACA,SAC0B;EAC1B,MAAM,iBAAiB,EAAE,MAAM,2BAA2B,KAAK;EAC/D,MAAM,MAAM,MAAM,KAAKD,QAAQ,eAC3B,gBACA,qBAAqB,OAAO,CAChC;EAEA,OAAO,EAAE,MAAM,4BAA4B,IAAI,OAAO;CAC1D;AACJ"}