@polyester/sdk 0.3.0 → 0.4.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 (316) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +63 -17
  3. package/dist/_virtual/_rolldown/runtime.js +15 -1
  4. package/dist/account-signer/types.d.ts.map +1 -1
  5. package/dist/account-signer/types.js +6 -3
  6. package/dist/account-signer/types.js.map +1 -1
  7. package/dist/browser-client.d.ts +4 -2
  8. package/dist/browser-client.d.ts.map +1 -1
  9. package/dist/browser-client.js +3 -4
  10. package/dist/browser-client.js.map +1 -1
  11. package/dist/catalogs/client-catalog.d.ts.map +1 -1
  12. package/dist/catalogs/client-catalog.js +11 -4
  13. package/dist/catalogs/client-catalog.js.map +1 -1
  14. package/dist/catalogs/index.js +1 -1
  15. package/dist/catalogs/readers.d.ts.map +1 -1
  16. package/dist/catalogs/readers.js +3 -1
  17. package/dist/catalogs/readers.js.map +1 -1
  18. package/dist/catalogs/snapshot-validation.js +132 -0
  19. package/dist/catalogs/snapshot-validation.js.map +1 -0
  20. package/dist/catalogs/snapshot.d.ts.map +1 -1
  21. package/dist/catalogs/snapshot.js +16 -7
  22. package/dist/catalogs/snapshot.js.map +1 -1
  23. package/dist/catalogs/zipper-supply.d.ts.map +1 -1
  24. package/dist/catalogs/zipper-supply.js +10 -7
  25. package/dist/catalogs/zipper-supply.js.map +1 -1
  26. package/dist/core-client.d.ts +24 -17
  27. package/dist/core-client.d.ts.map +1 -1
  28. package/dist/core-client.js +21 -3
  29. package/dist/core-client.js.map +1 -1
  30. package/dist/environment.d.ts.map +1 -1
  31. package/dist/environment.js +32 -1
  32. package/dist/environment.js.map +1 -1
  33. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +7 -0
  34. package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
  35. package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
  36. package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
  37. package/dist/index.js +3 -3
  38. package/dist/realtime/client.js +13 -2
  39. package/dist/realtime/client.js.map +1 -1
  40. package/dist/realtime/snapshot-then-stream.js +1 -1
  41. package/dist/realtime/snapshot-then-stream.js.map +1 -1
  42. package/dist/realtime/types.d.ts +2 -0
  43. package/dist/realtime/types.d.ts.map +1 -1
  44. package/dist/server-client.d.ts +17 -8
  45. package/dist/server-client.d.ts.map +1 -1
  46. package/dist/server-client.js +8 -11
  47. package/dist/server-client.js.map +1 -1
  48. package/dist/services/accounts/accounts.js +3 -3
  49. package/dist/services/accounts/accounts.js.map +1 -1
  50. package/dist/services/accounts/accounts.schemas.d.ts +13 -13
  51. package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
  52. package/dist/services/accounts/accounts.schemas.js +11 -11
  53. package/dist/services/accounts/accounts.schemas.js.map +1 -1
  54. package/dist/services/address-book/address-book.js +28 -28
  55. package/dist/services/address-book/address-book.js.map +1 -1
  56. package/dist/services/address-book/address-book.schemas.d.ts +751 -751
  57. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
  58. package/dist/services/address-book/address-book.schemas.js +160 -160
  59. package/dist/services/address-book/address-book.schemas.js.map +1 -1
  60. package/dist/services/api-keys/api-keys.d.ts +6 -6
  61. package/dist/services/api-keys/api-keys.d.ts.map +1 -1
  62. package/dist/services/api-keys/api-keys.js +12 -12
  63. package/dist/services/api-keys/api-keys.js.map +1 -1
  64. package/dist/services/api-keys/api-keys.schemas.d.ts +62 -62
  65. package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -1
  66. package/dist/services/api-keys/api-keys.schemas.js +34 -34
  67. package/dist/services/api-keys/api-keys.schemas.js.map +1 -1
  68. package/dist/services/auth/auth.d.ts +46 -40
  69. package/dist/services/auth/auth.d.ts.map +1 -1
  70. package/dist/services/auth/auth.js +28 -25
  71. package/dist/services/auth/auth.js.map +1 -1
  72. package/dist/services/auth/profile/profile.d.ts +2 -2
  73. package/dist/services/auth/profile/profile.d.ts.map +1 -1
  74. package/dist/services/auth/profile/profile.js +7 -7
  75. package/dist/services/auth/profile/profile.js.map +1 -1
  76. package/dist/services/auth/profile/profile.schemas.d.ts +41 -41
  77. package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -1
  78. package/dist/services/auth/profile/profile.schemas.js +27 -27
  79. package/dist/services/auth/profile/profile.schemas.js.map +1 -1
  80. package/dist/services/auth/session.d.ts +1 -1
  81. package/dist/services/auth/session.d.ts.map +1 -1
  82. package/dist/services/auth/session.js +6 -2
  83. package/dist/services/auth/session.js.map +1 -1
  84. package/dist/services/auth/session.schemas.js +17 -17
  85. package/dist/services/auth/session.schemas.js.map +1 -1
  86. package/dist/services/auth/session.types.d.ts +3 -2
  87. package/dist/services/auth/session.types.d.ts.map +1 -1
  88. package/dist/services/balances/balances.d.ts +1 -1
  89. package/dist/services/balances/balances.js +9 -9
  90. package/dist/services/balances/balances.js.map +1 -1
  91. package/dist/services/balances/balances.schemas.d.ts +95 -95
  92. package/dist/services/balances/balances.schemas.d.ts.map +1 -1
  93. package/dist/services/balances/balances.schemas.js +61 -61
  94. package/dist/services/balances/balances.schemas.js.map +1 -1
  95. package/dist/services/candles/candles.js +12 -12
  96. package/dist/services/candles/candles.js.map +1 -1
  97. package/dist/services/candles/candles.schemas.d.ts +64 -64
  98. package/dist/services/candles/candles.schemas.d.ts.map +1 -1
  99. package/dist/services/candles/candles.schemas.js +47 -48
  100. package/dist/services/candles/candles.schemas.js.map +1 -1
  101. package/dist/services/chain-analytics/chain-analytics.js +7 -7
  102. package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
  103. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +68 -68
  104. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
  105. package/dist/services/chain-analytics/chain-analytics.schemas.js +29 -29
  106. package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
  107. package/dist/services/deposit/deposit.js +5 -5
  108. package/dist/services/deposit/deposit.js.map +1 -1
  109. package/dist/services/deposit/deposit.schemas.d.ts +17 -17
  110. package/dist/services/deposit/deposit.schemas.d.ts.map +1 -1
  111. package/dist/services/deposit/deposit.schemas.js +11 -11
  112. package/dist/services/deposit/deposit.schemas.js.map +1 -1
  113. package/dist/services/guard-signer/guard-signer.js +13 -13
  114. package/dist/services/guard-signer/guard-signer.js.map +1 -1
  115. package/dist/services/guard-signer/guard-signer.schemas.d.ts +75 -75
  116. package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -1
  117. package/dist/services/guard-signer/guard-signer.schemas.js +42 -42
  118. package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -1
  119. package/dist/services/heatmap/heatmap.js +9 -9
  120. package/dist/services/heatmap/heatmap.js.map +1 -1
  121. package/dist/services/heatmap/heatmap.schemas.d.ts +141 -141
  122. package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
  123. package/dist/services/heatmap/heatmap.schemas.js +47 -47
  124. package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
  125. package/dist/services/internal-transfers/internal-transfers.js +3 -3
  126. package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
  127. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +53 -53
  128. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
  129. package/dist/services/internal-transfers/internal-transfers.schemas.js +27 -27
  130. package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
  131. package/dist/services/lifecycle/lifecycle.js +10 -10
  132. package/dist/services/lifecycle/lifecycle.js.map +1 -1
  133. package/dist/services/lifecycle/lifecycle.schemas.d.ts +614 -614
  134. package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -1
  135. package/dist/services/lifecycle/lifecycle.schemas.js +146 -146
  136. package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -1
  137. package/dist/services/market-data/market-data.js +6 -6
  138. package/dist/services/market-data/market-data.js.map +1 -1
  139. package/dist/services/market-data/market-data.schemas.d.ts +20 -20
  140. package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
  141. package/dist/services/market-data/market-data.schemas.js +51 -55
  142. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  143. package/dist/services/market-overview/market-overview.d.ts +1 -1
  144. package/dist/services/market-overview/market-overview.js +5 -5
  145. package/dist/services/market-overview/market-overview.js.map +1 -1
  146. package/dist/services/market-overview/market-overview.schemas.d.ts +39 -36
  147. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  148. package/dist/services/market-overview/market-overview.schemas.js +34 -32
  149. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  150. package/dist/services/mfa/mfa.js +27 -27
  151. package/dist/services/mfa/mfa.js.map +1 -1
  152. package/dist/services/mfa/mfa.schemas.d.ts +206 -206
  153. package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
  154. package/dist/services/mfa/mfa.schemas.js +83 -83
  155. package/dist/services/mfa/mfa.schemas.js.map +1 -1
  156. package/dist/services/orderbook/orderbook.d.ts +2 -2
  157. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  158. package/dist/services/orderbook/orderbook.js +5 -5
  159. package/dist/services/orderbook/orderbook.js.map +1 -1
  160. package/dist/services/orderbook/orderbook.schemas.d.ts +23 -23
  161. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
  162. package/dist/services/orderbook/orderbook.schemas.js +15 -15
  163. package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
  164. package/dist/services/orders/order-errors.schemas.d.ts +18 -18
  165. package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
  166. package/dist/services/orders/order-errors.schemas.js +8 -8
  167. package/dist/services/orders/order-errors.schemas.js.map +1 -1
  168. package/dist/services/orders/orders-batch.schemas.d.ts +492 -492
  169. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  170. package/dist/services/orders/orders-batch.schemas.js +118 -118
  171. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  172. package/dist/services/orders/orders-identifiers.schemas.js +5 -5
  173. package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
  174. package/dist/services/orders/orders-input.schemas.d.ts +657 -648
  175. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  176. package/dist/services/orders/orders-input.schemas.js +100 -96
  177. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  178. package/dist/services/orders/orders-modify.schemas.d.ts +370 -351
  179. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  180. package/dist/services/orders/orders-modify.schemas.js +48 -44
  181. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  182. package/dist/services/orders/orders-output.schemas.d.ts +179 -179
  183. package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
  184. package/dist/services/orders/orders-output.schemas.js +49 -49
  185. package/dist/services/orders/orders-output.schemas.js.map +1 -1
  186. package/dist/services/orders/orders-risk.schemas.d.ts +226 -226
  187. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  188. package/dist/services/orders/orders-risk.schemas.js +69 -69
  189. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  190. package/dist/services/orders/orders.d.ts +8 -8
  191. package/dist/services/orders/orders.d.ts.map +1 -1
  192. package/dist/services/orders/orders.js +44 -32
  193. package/dist/services/orders/orders.js.map +1 -1
  194. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +6 -6
  195. package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
  196. package/dist/services/policies/api-key-policies/api-key-policies.js +11 -11
  197. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  198. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +105 -105
  199. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
  200. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +49 -49
  201. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
  202. package/dist/services/policies/shared.d.ts +5 -5
  203. package/dist/services/policies/shared.d.ts.map +1 -1
  204. package/dist/services/policies/shared.js +10 -10
  205. package/dist/services/policies/shared.js.map +1 -1
  206. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +6 -6
  207. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
  208. package/dist/services/policies/subaccount-policies/subaccount-policies.js +13 -13
  209. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  210. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +124 -124
  211. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
  212. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +75 -75
  213. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
  214. package/dist/services/shared.js +11 -11
  215. package/dist/services/shared.js.map +1 -1
  216. package/dist/services/social-verification/social-verification.d.ts +3 -3
  217. package/dist/services/social-verification/social-verification.d.ts.map +1 -1
  218. package/dist/services/social-verification/social-verification.js +7 -7
  219. package/dist/services/social-verification/social-verification.js.map +1 -1
  220. package/dist/services/social-verification/social-verification.schemas.d.ts +54 -54
  221. package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
  222. package/dist/services/social-verification/social-verification.schemas.js +28 -28
  223. package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
  224. package/dist/services/subaccount-resolver.js +5 -3
  225. package/dist/services/subaccount-resolver.js.map +1 -1
  226. package/dist/services/subaccounts/subaccounts.d.ts +15 -15
  227. package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
  228. package/dist/services/subaccounts/subaccounts.js +35 -35
  229. package/dist/services/subaccounts/subaccounts.js.map +1 -1
  230. package/dist/services/subaccounts/subaccounts.schemas.d.ts +137 -137
  231. package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
  232. package/dist/services/subaccounts/subaccounts.schemas.js +72 -72
  233. package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
  234. package/dist/services/trades/trades.d.ts +2 -2
  235. package/dist/services/trades/trades.d.ts.map +1 -1
  236. package/dist/services/trades/trades.js +5 -5
  237. package/dist/services/trades/trades.js.map +1 -1
  238. package/dist/services/trades/trades.schemas.d.ts +31 -31
  239. package/dist/services/trades/trades.schemas.d.ts.map +1 -1
  240. package/dist/services/trades/trades.schemas.js +24 -24
  241. package/dist/services/trades/trades.schemas.js.map +1 -1
  242. package/dist/services/trading-withdraws/trading-withdraws.js +8 -8
  243. package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
  244. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +45 -45
  245. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -1
  246. package/dist/services/trading-withdraws/trading-withdraws.schemas.js +36 -36
  247. package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -1
  248. package/dist/services/transfers/transfers.d.ts +1 -1
  249. package/dist/services/transfers/transfers.d.ts.map +1 -1
  250. package/dist/services/transfers/transfers.js +5 -5
  251. package/dist/services/transfers/transfers.js.map +1 -1
  252. package/dist/services/transfers/transfers.schemas.d.ts +42 -42
  253. package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
  254. package/dist/services/transfers/transfers.schemas.js +30 -30
  255. package/dist/services/transfers/transfers.schemas.js.map +1 -1
  256. package/dist/services/triggers/trigger-child-order.schemas.js +23 -23
  257. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
  258. package/dist/services/triggers/trigger-input.schemas.d.ts +226 -226
  259. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  260. package/dist/services/triggers/trigger-input.schemas.js +53 -53
  261. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  262. package/dist/services/triggers/triggers-output.schemas.d.ts +218 -218
  263. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  264. package/dist/services/triggers/triggers-output.schemas.js +152 -152
  265. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  266. package/dist/services/triggers/triggers.js +21 -21
  267. package/dist/services/triggers/triggers.js.map +1 -1
  268. package/dist/services/whiteboard/whiteboard.js +15 -15
  269. package/dist/services/whiteboard/whiteboard.js.map +1 -1
  270. package/dist/services/whiteboard/whiteboard.schemas.d.ts +379 -379
  271. package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -1
  272. package/dist/services/whiteboard/whiteboard.schemas.js +71 -71
  273. package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -1
  274. package/dist/services/zipper/zipper.js +3 -3
  275. package/dist/services/zipper/zipper.js.map +1 -1
  276. package/dist/services/zipper/zipper.schemas.d.ts +1 -1
  277. package/dist/services/zipper/zipper.schemas.js +54 -54
  278. package/dist/services/zipper/zipper.schemas.js.map +1 -1
  279. package/dist/shared/account-scope.d.ts +6 -6
  280. package/dist/shared/account-scope.d.ts.map +1 -1
  281. package/dist/shared/account-scope.js +3 -3
  282. package/dist/shared/account-scope.js.map +1 -1
  283. package/dist/shared/connect-error-mapping.d.ts +1 -1
  284. package/dist/shared/connect-error-mapping.js +29 -3
  285. package/dist/shared/connect-error-mapping.js.map +1 -1
  286. package/dist/shared/rate-limit.schemas.d.ts +12 -12
  287. package/dist/shared/rate-limit.schemas.d.ts.map +1 -1
  288. package/dist/shared/rate-limit.schemas.js +7 -7
  289. package/dist/shared/rate-limit.schemas.js.map +1 -1
  290. package/dist/shared/schemas.js +26 -26
  291. package/dist/shared/schemas.js.map +1 -1
  292. package/dist/shared/transports.js +7 -12
  293. package/dist/shared/transports.js.map +1 -1
  294. package/dist/shared/types.d.ts +12 -0
  295. package/dist/shared/types.d.ts.map +1 -1
  296. package/dist/shared/validation.d.ts +14 -0
  297. package/dist/shared/validation.d.ts.map +1 -0
  298. package/dist/shared/validation.js +24 -0
  299. package/dist/shared/validation.js.map +1 -0
  300. package/dist/utils/connect-order-errors.js +2 -2
  301. package/dist/utils/connect-order-errors.js.map +1 -1
  302. package/dist/utils/cookies.d.ts +8 -3
  303. package/dist/utils/cookies.d.ts.map +1 -1
  304. package/dist/utils/cookies.js +7 -1
  305. package/dist/utils/cookies.js.map +1 -1
  306. package/dist/utils/event-emitter.d.ts +1 -1
  307. package/dist/utils/event-emitter.d.ts.map +1 -1
  308. package/dist/utils/event-emitter.js +4 -2
  309. package/dist/utils/event-emitter.js.map +1 -1
  310. package/dist/utils/evm.js +2 -2
  311. package/dist/utils/evm.js.map +1 -1
  312. package/dist/utils/jwt.d.ts +2 -2
  313. package/dist/utils/jwt.d.ts.map +1 -1
  314. package/dist/utils/jwt.js +2 -2
  315. package/dist/utils/jwt.js.map +1 -1
  316. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
+ import { validation_exports } from "../../shared/validation.js";
1
2
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
2
3
  import { tsObjToMs, tsObjToNsString } from "../../utils/time.js";
3
4
  import { BigIntStringSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampSchema, idInputSchema, positiveBigintStringInputSchema } from "../../shared/schemas.js";
4
5
  import { buildProtoPatch, defineProtoPatchFields } from "../../utils/proto-patch.js";
5
6
  import { ActivityEntityKind, ActivityEventAction, ActivityEventSource, SubaccountInviteStatus, SubaccountRole } from "../../gen/auth/v1/subaccounts_pb.js";
6
7
  import { ActivityEntityKindCodec, ActivityEventActionCodec, ActivityEventSourceCodec, InviteActionCodec, InviteStatusCodec, SUBACCOUNT_STATUS_VALUES, SubaccountRoleCodec, SubaccountStatusCodec } from "./subaccounts.codecs.js";
7
- import * as v from "valibot";
8
- const SubaccountRoleSchema = v.picklist([
8
+ const SubaccountRoleSchema = validation_exports.picklist([
9
9
  "owner",
10
10
  "admin",
11
11
  "treasury",
@@ -13,25 +13,25 @@ const SubaccountRoleSchema = v.picklist([
13
13
  "trader",
14
14
  "viewer"
15
15
  ]);
16
- const ProtoSubaccountRoleSchema = v.pipe(v.enum(SubaccountRole), v.transform((role) => requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, "SubaccountRoleSchema", "role")));
17
- const CreateSubaccountInputSchema = v.strictObject({
18
- label: v.optional(v.string(), ""),
19
- icon: v.optional(v.string(), ""),
20
- color: v.optional(v.string(), ""),
21
- smartAccountAddress: v.string(),
22
- nonce: v.string(),
23
- signature: v.string(),
24
- primaryWalletAddress: v.optional(v.string(), ""),
25
- walletProvider: v.optional(v.string(), "")
16
+ const ProtoSubaccountRoleSchema = validation_exports.pipe(validation_exports.enum(SubaccountRole), validation_exports.transform((role) => requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, "SubaccountRoleSchema", "role")));
17
+ const CreateSubaccountInputSchema = validation_exports.strictObject({
18
+ label: validation_exports.optional(validation_exports.string(), ""),
19
+ icon: validation_exports.optional(validation_exports.string(), ""),
20
+ color: validation_exports.optional(validation_exports.string(), ""),
21
+ smartAccountAddress: validation_exports.string(),
22
+ nonce: validation_exports.string(),
23
+ signature: validation_exports.string(),
24
+ primaryWalletAddress: validation_exports.optional(validation_exports.string(), ""),
25
+ walletProvider: validation_exports.optional(validation_exports.string(), "")
26
26
  });
27
- const SubaccountIdInputSchema = v.strictObject({ subaccountId: idInputSchema("subaccountId") });
28
- const CreateSubaccountResultSchema = v.object({
27
+ const SubaccountIdInputSchema = validation_exports.strictObject({ subaccountId: idInputSchema("subaccountId") });
28
+ const CreateSubaccountResultSchema = validation_exports.object({
29
29
  subaccountId: PublicIdSchema,
30
- totalCreated: v.number(),
31
- smartAccountSaltNonce: v.number(),
30
+ totalCreated: validation_exports.number(),
31
+ smartAccountSaltNonce: validation_exports.number(),
32
32
  revision: BigIntStringSchema
33
33
  });
34
- const SubaccountMutationResultSchema = v.object({});
34
+ const SubaccountMutationResultSchema = validation_exports.object({});
35
35
  const SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields()({
36
36
  label: {
37
37
  path: "label",
@@ -50,14 +50,14 @@ const SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields()({
50
50
  encode: (status) => ({ status: SubaccountStatusCodec.inputToProto[status] })
51
51
  }
52
52
  });
53
- const UpdateSubaccountInputSchema = v.pipe(v.strictObject({
53
+ const UpdateSubaccountInputSchema = validation_exports.pipe(validation_exports.strictObject({
54
54
  subaccountId: idInputSchema("subaccountId"),
55
55
  expectedRevision: positiveBigintStringInputSchema("expectedRevision"),
56
- label: v.optional(v.string()),
57
- icon: v.optional(v.string()),
58
- color: v.optional(v.string()),
59
- status: v.optional(v.picklist(SUBACCOUNT_STATUS_VALUES))
60
- }), v.check(({ label, icon, color, status }) => label !== void 0 || icon !== void 0 || color !== void 0 || status !== void 0, "At least one subaccount field must be provided"), v.transform(({ subaccountId, expectedRevision, ...input }) => {
56
+ label: validation_exports.optional(validation_exports.string()),
57
+ icon: validation_exports.optional(validation_exports.string()),
58
+ color: validation_exports.optional(validation_exports.string()),
59
+ status: validation_exports.optional(validation_exports.picklist(SUBACCOUNT_STATUS_VALUES))
60
+ }), validation_exports.check(({ label, icon, color, status }) => label !== void 0 || icon !== void 0 || color !== void 0 || status !== void 0, "At least one subaccount field must be provided"), validation_exports.transform(({ subaccountId, expectedRevision, ...input }) => {
61
61
  const { patch: subaccount, updateMask } = buildProtoPatch(input, SUBACCOUNT_PATCH_FIELDS);
62
62
  return {
63
63
  subaccountId,
@@ -66,111 +66,111 @@ const UpdateSubaccountInputSchema = v.pipe(v.strictObject({
66
66
  expectedRevision
67
67
  };
68
68
  }));
69
- const DeleteSubaccountInputSchema = v.strictObject({
69
+ const DeleteSubaccountInputSchema = validation_exports.strictObject({
70
70
  subaccountId: idInputSchema("subaccountId"),
71
71
  expectedRevision: positiveBigintStringInputSchema("expectedRevision")
72
72
  });
73
- const InviteSubaccountMemberInputSchema = v.strictObject({
73
+ const InviteSubaccountMemberInputSchema = validation_exports.strictObject({
74
74
  subaccountId: idInputSchema("subaccountId"),
75
75
  granteeAccountId: idInputSchema("granteeAccountId"),
76
- role: v.pipe(SubaccountRoleSchema, v.transform((role) => SubaccountRoleCodec.inputToProto[role]))
76
+ role: validation_exports.pipe(SubaccountRoleSchema, validation_exports.transform((role) => SubaccountRoleCodec.inputToProto[role]))
77
77
  });
78
- const RemoveSubaccountMemberInputSchema = v.strictObject({
78
+ const RemoveSubaccountMemberInputSchema = validation_exports.strictObject({
79
79
  subaccountId: idInputSchema("subaccountId"),
80
80
  granteeAccountId: idInputSchema("granteeAccountId")
81
81
  });
82
82
  const UpdateSubaccountMemberRoleInputSchema = InviteSubaccountMemberInputSchema;
83
- const SetSubaccountMemberMfaRequirementInputSchema = v.strictObject({
83
+ const SetSubaccountMemberMfaRequirementInputSchema = validation_exports.strictObject({
84
84
  subaccountId: idInputSchema("subaccountId"),
85
- requireMemberMfa: v.boolean()
85
+ requireMemberMfa: validation_exports.boolean()
86
86
  });
87
- const ListSubaccountInvitesInputSchema = v.strictObject({ direction: v.optional(v.picklist([
87
+ const ListSubaccountInvitesInputSchema = validation_exports.strictObject({ direction: validation_exports.optional(validation_exports.picklist([
88
88
  "incoming",
89
89
  "outgoing",
90
90
  ""
91
91
  ]), "") });
92
- const InviteActionSchema = v.picklist([
92
+ const InviteActionSchema = validation_exports.picklist([
93
93
  "accept",
94
94
  "decline",
95
95
  "cancel"
96
96
  ]);
97
- v.picklist([
97
+ validation_exports.picklist([
98
98
  "pending",
99
99
  "accepted",
100
100
  "declined",
101
101
  "cancelled"
102
102
  ]);
103
- const ProtoInviteStatusSchema = v.enum(SubaccountInviteStatus);
104
- const RespondSubaccountInviteInputSchema = v.strictObject({
103
+ const ProtoInviteStatusSchema = validation_exports.enum(SubaccountInviteStatus);
104
+ const RespondSubaccountInviteInputSchema = validation_exports.strictObject({
105
105
  inviteId: idInputSchema("inviteId"),
106
- action: v.pipe(InviteActionSchema, v.transform((v) => InviteActionCodec.inputToProto[v]))
106
+ action: validation_exports.pipe(InviteActionSchema, validation_exports.transform((v) => InviteActionCodec.inputToProto[v]))
107
107
  });
108
- const ProtoSubaccountStatusSchema = v.pipe(v.picklist(SUBACCOUNT_STATUS_VALUES), v.transform((status) => SubaccountStatusCodec.protoToOutput[status]));
109
- const SubaccountSchema = v.pipe(v.object({
108
+ const ProtoSubaccountStatusSchema = validation_exports.pipe(validation_exports.picklist(SUBACCOUNT_STATUS_VALUES), validation_exports.transform((status) => SubaccountStatusCodec.protoToOutput[status]));
109
+ const SubaccountSchema = validation_exports.pipe(validation_exports.object({
110
110
  id: PublicIdSchema,
111
111
  role: ProtoSubaccountRoleSchema,
112
- label: v.optional(v.string(), ""),
113
- icon: v.optional(v.string(), ""),
114
- color: v.optional(v.string(), ""),
112
+ label: validation_exports.optional(validation_exports.string(), ""),
113
+ icon: validation_exports.optional(validation_exports.string(), ""),
114
+ color: validation_exports.optional(validation_exports.string(), ""),
115
115
  status: ProtoSubaccountStatusSchema,
116
- smartAccountAddress: v.string(),
117
- smartAccountSaltNonce: v.optional(v.number()),
118
- ownerUsername: v.optional(v.string(), ""),
119
- ownerAvatarUrl: v.optional(v.string(), ""),
120
- ownerRootSmartAccountAddress: v.string(),
116
+ smartAccountAddress: validation_exports.string(),
117
+ smartAccountSaltNonce: validation_exports.optional(validation_exports.number()),
118
+ ownerUsername: validation_exports.optional(validation_exports.string(), ""),
119
+ ownerAvatarUrl: validation_exports.optional(validation_exports.string(), ""),
120
+ ownerRootSmartAccountAddress: validation_exports.string(),
121
121
  subaccountPolicyId: PublicIdSchema,
122
- requireMemberMfa: v.optional(v.boolean(), false),
123
- updatedAt: v.optional(TimestampSchema),
122
+ requireMemberMfa: validation_exports.optional(validation_exports.boolean(), false),
123
+ updatedAt: validation_exports.optional(TimestampSchema),
124
124
  revision: BigIntStringSchema
125
- }), v.transform(({ updatedAt, ...subaccount }) => ({
125
+ }), validation_exports.transform(({ updatedAt, ...subaccount }) => ({
126
126
  ...subaccount,
127
127
  updatedAt: tsObjToMs(updatedAt),
128
128
  updatedAtNs: tsObjToNsString(updatedAt)
129
129
  })));
130
- const SubaccountMemberSchema = v.object({
130
+ const SubaccountMemberSchema = validation_exports.object({
131
131
  accountId: PublicIdSchema,
132
132
  role: ProtoSubaccountRoleSchema,
133
- username: v.optional(v.string(), ""),
134
- smartAccountAddress: v.string(),
135
- avatarUrl: v.optional(v.string(), ""),
136
- mfaEnrolled: v.optional(v.boolean(), false)
133
+ username: validation_exports.optional(validation_exports.string(), ""),
134
+ smartAccountAddress: validation_exports.string(),
135
+ avatarUrl: validation_exports.optional(validation_exports.string(), ""),
136
+ mfaEnrolled: validation_exports.optional(validation_exports.boolean(), false)
137
137
  });
138
- const SubaccountInviteSchema = v.pipe(v.object({
138
+ const SubaccountInviteSchema = validation_exports.pipe(validation_exports.object({
139
139
  id: PublicIdSchema,
140
140
  subaccountId: PublicIdSchema,
141
141
  granteeAccountId: PublicIdSchema,
142
142
  inviterAccountId: PublicIdSchema,
143
143
  role: ProtoSubaccountRoleSchema,
144
- status: v.pipe(ProtoInviteStatusSchema, v.transform((v) => requiredEnumLabel(InviteStatusCodec.protoToOutput, v, "SubaccountInviteSchema", "status"))),
144
+ status: validation_exports.pipe(ProtoInviteStatusSchema, validation_exports.transform((v) => requiredEnumLabel(InviteStatusCodec.protoToOutput, v, "SubaccountInviteSchema", "status"))),
145
145
  createdAt: OptionalTimestampMsSchema,
146
146
  respondedAt: OptionalTimestampMsSchema,
147
- granteeUsername: v.optional(v.string(), ""),
148
- inviterUsername: v.optional(v.string(), ""),
149
- subaccountLabel: v.optional(v.string(), ""),
150
- inviterRootSmartAccountAddress: v.string(),
151
- granteeRootSmartAccountAddress: v.string(),
152
- requireMemberMfa: v.boolean()
153
- }), v.transform(({ subaccountLabel, subaccountId, inviterRootSmartAccountAddress, granteeRootSmartAccountAddress, ...rest }) => ({
147
+ granteeUsername: validation_exports.optional(validation_exports.string(), ""),
148
+ inviterUsername: validation_exports.optional(validation_exports.string(), ""),
149
+ subaccountLabel: validation_exports.optional(validation_exports.string(), ""),
150
+ inviterRootSmartAccountAddress: validation_exports.string(),
151
+ granteeRootSmartAccountAddress: validation_exports.string(),
152
+ requireMemberMfa: validation_exports.boolean()
153
+ }), validation_exports.transform(({ subaccountLabel, subaccountId, inviterRootSmartAccountAddress, granteeRootSmartAccountAddress, ...rest }) => ({
154
154
  ...rest,
155
155
  subaccountId,
156
156
  subaccountLabel,
157
157
  inviterSmartAccountAddress: inviterRootSmartAccountAddress,
158
158
  granteeSmartAccountAddress: granteeRootSmartAccountAddress
159
159
  })));
160
- const SubaccountActivityInputSchema = v.strictObject({
160
+ const SubaccountActivityInputSchema = validation_exports.strictObject({
161
161
  subaccountId: idInputSchema("subaccountId"),
162
- limit: v.optional(v.pipe(v.number(), v.maxValue(200)), 50),
163
- pageToken: v.optional(v.pipe(v.string(), v.trim()), "")
162
+ limit: validation_exports.optional(validation_exports.pipe(validation_exports.number(), validation_exports.integer(), validation_exports.minValue(0), validation_exports.maxValue(200)), 50),
163
+ pageToken: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim()), "")
164
164
  });
165
- const SubaccountActivityEventSchema = v.object({
165
+ const SubaccountActivityEventSchema = validation_exports.object({
166
166
  createdAt: OptionalTimestampMsSchema,
167
- entityKind: v.pipe(v.enum(ActivityEntityKind), v.transform((value) => requiredEnumLabel(ActivityEntityKindCodec.protoToOutput, value, "SubaccountActivityEventSchema", "entity kind"))),
168
- eventAction: v.pipe(v.enum(ActivityEventAction), v.transform((value) => requiredEnumLabel(ActivityEventActionCodec.protoToOutput, value, "SubaccountActivityEventSchema", "event action"))),
169
- source: v.pipe(v.enum(ActivityEventSource), v.transform((value) => requiredEnumLabel(ActivityEventSourceCodec.protoToOutput, value, "SubaccountActivityEventSchema", "source"))),
170
- ip: v.optional(v.string()),
171
- userAgent: v.optional(v.string()),
167
+ entityKind: validation_exports.pipe(validation_exports.enum(ActivityEntityKind), validation_exports.transform((value) => requiredEnumLabel(ActivityEntityKindCodec.protoToOutput, value, "SubaccountActivityEventSchema", "entity kind"))),
168
+ eventAction: validation_exports.pipe(validation_exports.enum(ActivityEventAction), validation_exports.transform((value) => requiredEnumLabel(ActivityEventActionCodec.protoToOutput, value, "SubaccountActivityEventSchema", "event action"))),
169
+ source: validation_exports.pipe(validation_exports.enum(ActivityEventSource), validation_exports.transform((value) => requiredEnumLabel(ActivityEventSourceCodec.protoToOutput, value, "SubaccountActivityEventSchema", "source"))),
170
+ ip: validation_exports.optional(validation_exports.string()),
171
+ userAgent: validation_exports.optional(validation_exports.string()),
172
172
  actorAccountId: PublicIdSchema,
173
- payloadJson: v.pipe(v.string(), v.transform((v) => JSON.parse(v)))
173
+ payloadJson: validation_exports.pipe(validation_exports.string(), validation_exports.transform((v) => JSON.parse(v)))
174
174
  });
175
175
  //#endregion
176
176
  export { CreateSubaccountInputSchema, CreateSubaccountResultSchema, DeleteSubaccountInputSchema, InviteSubaccountMemberInputSchema, ListSubaccountInvitesInputSchema, RemoveSubaccountMemberInputSchema, RespondSubaccountInviteInputSchema, SetSubaccountMemberMfaRequirementInputSchema, SubaccountActivityEventSchema, SubaccountActivityInputSchema, SubaccountIdInputSchema, SubaccountInviteSchema, SubaccountMemberSchema, SubaccountMutationResultSchema, SubaccountRoleSchema, SubaccountSchema, UpdateSubaccountInputSchema, UpdateSubaccountMemberRoleInputSchema };
@@ -1 +1 @@
1
- {"version":3,"file":"subaccounts.schemas.js","names":["Proto.SubaccountRole","Proto.SubaccountInviteStatus","Proto.ActivityEntityKind","Proto.ActivityEventAction","Proto.ActivityEventSource"],"sources":["../../../src/services/subaccounts/subaccounts.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/auth/v1/subaccounts_pb.js\";\nimport * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampSchema,\n idInputSchema,\n positiveBigintStringInputSchema,\n} from \"../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../utils/time.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n SubaccountRoleCodec,\n InviteActionCodec,\n InviteStatusCodec,\n SubaccountStatusCodec,\n SUBACCOUNT_STATUS_VALUES,\n ActivityEntityKindCodec,\n ActivityEventActionCodec,\n ActivityEventSourceCodec,\n} from \"./subaccounts.codecs.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../utils/proto-patch.js\";\n\nconst SUBACCOUNT_ROLE_VALUES = [\n \"owner\",\n \"admin\",\n \"treasury\",\n \"leveraged_trader\",\n \"trader\",\n \"viewer\",\n] as const;\n\nexport const SubaccountRoleSchema = v.picklist(SUBACCOUNT_ROLE_VALUES);\n\nexport type SubaccountRole = v.InferOutput<typeof SubaccountRoleSchema>;\n\nconst ProtoSubaccountRoleSchema = v.pipe(\n v.enum(Proto.SubaccountRole),\n v.transform((role) =>\n requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, \"SubaccountRoleSchema\", \"role\"),\n ),\n);\n\nexport const CreateSubaccountInputSchema = v.strictObject({\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n nonce: v.string(),\n signature: v.string(),\n primaryWalletAddress: v.optional(v.string(), \"\"),\n walletProvider: v.optional(v.string(), \"\"),\n});\n\nexport type CreateSubaccountInput = v.InferInput<typeof CreateSubaccountInputSchema>;\n\nexport const SubaccountIdInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n});\n\nexport type SubaccountIdInput = v.InferInput<typeof SubaccountIdInputSchema>;\n\nexport const CreateSubaccountResultSchema = v.object({\n subaccountId: PublicIdSchema,\n totalCreated: v.number(),\n smartAccountSaltNonce: v.number(),\n revision: BigIntStringSchema,\n});\n\nexport type CreateSubaccountResult = v.InferOutput<typeof CreateSubaccountResultSchema>;\n\nexport const SubaccountMutationResultSchema = v.object({});\n\nexport type SubaccountMutationResult = v.InferOutput<typeof SubaccountMutationResultSchema>;\n\ntype SubaccountPatch = {\n label?: string;\n icon?: string;\n color?: string;\n status?: (typeof SUBACCOUNT_STATUS_VALUES)[number];\n};\n\nconst SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields<SubaccountPatch>()({\n label: { path: \"label\", encode: (label) => ({ label }) },\n icon: { path: \"icon\", encode: (icon) => ({ icon }) },\n color: { path: \"color\", encode: (color) => ({ color }) },\n status: {\n path: \"status\",\n encode: (status) => ({ status: SubaccountStatusCodec.inputToProto[status] }),\n },\n});\n\nexport const UpdateSubaccountInputSchema = v.pipe(\n v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n label: v.optional(v.string()),\n icon: v.optional(v.string()),\n color: v.optional(v.string()),\n status: v.optional(v.picklist(SUBACCOUNT_STATUS_VALUES)),\n }),\n v.check(\n ({ label, icon, color, status }) =>\n label !== undefined ||\n icon !== undefined ||\n color !== undefined ||\n status !== undefined,\n \"At least one subaccount field must be provided\",\n ),\n v.transform(({ subaccountId, expectedRevision, ...input }) => {\n const { patch: subaccount, updateMask } = buildProtoPatch(input, SUBACCOUNT_PATCH_FIELDS);\n return {\n subaccountId,\n subaccount,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type UpdateSubaccountInput = v.InferInput<typeof UpdateSubaccountInputSchema>;\n\nexport const DeleteSubaccountInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n});\n\nexport type DeleteSubaccountInput = v.InferInput<typeof DeleteSubaccountInputSchema>;\n\nexport const InviteSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n role: v.pipe(\n SubaccountRoleSchema,\n v.transform((role) => SubaccountRoleCodec.inputToProto[role]),\n ),\n});\n\nexport type InviteSubaccountMemberInput = v.InferInput<typeof InviteSubaccountMemberInputSchema>;\n\nexport const RemoveSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n});\n\nexport type RemoveSubaccountMemberInput = v.InferInput<typeof RemoveSubaccountMemberInputSchema>;\n\nexport const UpdateSubaccountMemberRoleInputSchema = InviteSubaccountMemberInputSchema;\n\nexport type UpdateSubaccountMemberRoleInput = v.InferInput<\n typeof UpdateSubaccountMemberRoleInputSchema\n>;\n\nexport const SetSubaccountMemberMfaRequirementInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n requireMemberMfa: v.boolean(),\n});\n\nexport type SetSubaccountMemberMfaRequirementInput = v.InferInput<\n typeof SetSubaccountMemberMfaRequirementInputSchema\n>;\n\nexport const ListSubaccountInvitesInputSchema = v.strictObject({\n direction: v.optional(v.picklist([\"incoming\", \"outgoing\", \"\"]), \"\"),\n});\n\nexport type ListSubaccountInvitesInput = v.InferInput<typeof ListSubaccountInvitesInputSchema>;\n\nconst InviteActionSchema = v.picklist([\"accept\", \"decline\", \"cancel\"]);\n\nconst InviteStatusSchema = v.picklist([\"pending\", \"accepted\", \"declined\", \"cancelled\"]);\n\nexport type SubaccountInviteStatus = v.InferOutput<typeof InviteStatusSchema>;\n\nconst ProtoInviteStatusSchema = v.enum(Proto.SubaccountInviteStatus);\n\nexport const RespondSubaccountInviteInputSchema = v.strictObject({\n inviteId: idInputSchema(\"inviteId\"),\n action: v.pipe(\n InviteActionSchema,\n v.transform((v) => InviteActionCodec.inputToProto[v]),\n ),\n});\n\nexport type RespondSubaccountInviteInput = v.InferInput<typeof RespondSubaccountInviteInputSchema>;\n\nconst ProtoSubaccountStatusSchema = v.pipe(\n v.picklist(SUBACCOUNT_STATUS_VALUES),\n v.transform((status) => SubaccountStatusCodec.protoToOutput[status]),\n);\n\nexport type SubaccountStatus = v.InferOutput<typeof ProtoSubaccountStatusSchema>;\n\nexport const SubaccountSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n status: ProtoSubaccountStatusSchema,\n smartAccountAddress: v.string(),\n smartAccountSaltNonce: v.optional(v.number()),\n ownerUsername: v.optional(v.string(), \"\"),\n ownerAvatarUrl: v.optional(v.string(), \"\"),\n ownerRootSmartAccountAddress: v.string(),\n subaccountPolicyId: PublicIdSchema,\n requireMemberMfa: v.optional(v.boolean(), false),\n updatedAt: v.optional(TimestampSchema),\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...subaccount }) => ({\n ...subaccount,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type Subaccount = v.InferOutput<typeof SubaccountSchema>;\n\nexport const SubaccountMemberSchema = v.object({\n accountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n username: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n avatarUrl: v.optional(v.string(), \"\"),\n mfaEnrolled: v.optional(v.boolean(), false),\n});\n\nexport type SubaccountMember = v.InferOutput<typeof SubaccountMemberSchema>;\n\nexport const SubaccountInviteSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n subaccountId: PublicIdSchema,\n granteeAccountId: PublicIdSchema,\n inviterAccountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n status: v.pipe(\n ProtoInviteStatusSchema,\n v.transform((v) =>\n requiredEnumLabel(\n InviteStatusCodec.protoToOutput,\n v,\n \"SubaccountInviteSchema\",\n \"status\",\n ),\n ),\n ),\n createdAt: OptionalTimestampMsSchema,\n respondedAt: OptionalTimestampMsSchema,\n granteeUsername: v.optional(v.string(), \"\"),\n inviterUsername: v.optional(v.string(), \"\"),\n subaccountLabel: v.optional(v.string(), \"\"),\n inviterRootSmartAccountAddress: v.string(),\n granteeRootSmartAccountAddress: v.string(),\n requireMemberMfa: v.boolean(),\n }),\n v.transform(\n ({\n subaccountLabel,\n subaccountId,\n inviterRootSmartAccountAddress,\n granteeRootSmartAccountAddress,\n ...rest\n }) => ({\n ...rest,\n subaccountId,\n subaccountLabel,\n inviterSmartAccountAddress: inviterRootSmartAccountAddress,\n granteeSmartAccountAddress: granteeRootSmartAccountAddress,\n }),\n ),\n);\n\nexport type SubaccountInvite = v.InferOutput<typeof SubaccountInviteSchema>;\n\nexport const SubaccountActivityInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n limit: v.optional(v.pipe(v.number(), v.maxValue(200)), 50),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n});\n\nexport type SubaccountActivityInput = v.InferInput<typeof SubaccountActivityInputSchema>;\n\nexport const SubaccountActivityEventSchema = v.object({\n createdAt: OptionalTimestampMsSchema,\n entityKind: v.pipe(\n v.enum(Proto.ActivityEntityKind),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEntityKindCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"entity kind\",\n ),\n ),\n ),\n eventAction: v.pipe(\n v.enum(Proto.ActivityEventAction),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventActionCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"event action\",\n ),\n ),\n ),\n source: v.pipe(\n v.enum(Proto.ActivityEventSource),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventSourceCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"source\",\n ),\n ),\n ),\n ip: v.optional(v.string()),\n userAgent: v.optional(v.string()),\n actorAccountId: PublicIdSchema,\n payloadJson: v.pipe(\n v.string(),\n v.transform((v) => JSON.parse(v)),\n ),\n});\n\nexport type SubaccountEvent = v.InferOutput<typeof SubaccountActivityEventSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"subaccounts.schemas.js","names":["v","Proto.SubaccountRole","Proto.SubaccountInviteStatus","Proto.ActivityEntityKind","Proto.ActivityEventAction","Proto.ActivityEventSource"],"sources":["../../../src/services/subaccounts/subaccounts.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/auth/v1/subaccounts_pb.js\";\nimport * as v from \"../../shared/validation.js\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n TimestampSchema,\n idInputSchema,\n positiveBigintStringInputSchema,\n} from \"../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../utils/time.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n SubaccountRoleCodec,\n InviteActionCodec,\n InviteStatusCodec,\n SubaccountStatusCodec,\n SUBACCOUNT_STATUS_VALUES,\n ActivityEntityKindCodec,\n ActivityEventActionCodec,\n ActivityEventSourceCodec,\n} from \"./subaccounts.codecs.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../utils/proto-patch.js\";\n\nconst SUBACCOUNT_ROLE_VALUES = [\n \"owner\",\n \"admin\",\n \"treasury\",\n \"leveraged_trader\",\n \"trader\",\n \"viewer\",\n] as const;\n\nexport const SubaccountRoleSchema = v.picklist(SUBACCOUNT_ROLE_VALUES);\n\nexport type SubaccountRole = v.InferOutput<typeof SubaccountRoleSchema>;\n\nconst ProtoSubaccountRoleSchema = v.pipe(\n v.enum(Proto.SubaccountRole),\n v.transform((role) =>\n requiredEnumLabel(SubaccountRoleCodec.protoToOutput, role, \"SubaccountRoleSchema\", \"role\"),\n ),\n);\n\nexport const CreateSubaccountInputSchema = v.strictObject({\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n nonce: v.string(),\n signature: v.string(),\n primaryWalletAddress: v.optional(v.string(), \"\"),\n walletProvider: v.optional(v.string(), \"\"),\n});\n\nexport type CreateSubaccountInput = v.InferInput<typeof CreateSubaccountInputSchema>;\n\nexport const SubaccountIdInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n});\n\nexport type SubaccountIdInput = v.InferInput<typeof SubaccountIdInputSchema>;\n\nexport const CreateSubaccountResultSchema = v.object({\n subaccountId: PublicIdSchema,\n totalCreated: v.number(),\n smartAccountSaltNonce: v.number(),\n revision: BigIntStringSchema,\n});\n\nexport type CreateSubaccountResult = v.InferOutput<typeof CreateSubaccountResultSchema>;\n\nexport const SubaccountMutationResultSchema = v.object({});\n\nexport type SubaccountMutationResult = v.InferOutput<typeof SubaccountMutationResultSchema>;\n\ntype SubaccountPatch = {\n label?: string;\n icon?: string;\n color?: string;\n status?: (typeof SUBACCOUNT_STATUS_VALUES)[number];\n};\n\nconst SUBACCOUNT_PATCH_FIELDS = defineProtoPatchFields<SubaccountPatch>()({\n label: { path: \"label\", encode: (label) => ({ label }) },\n icon: { path: \"icon\", encode: (icon) => ({ icon }) },\n color: { path: \"color\", encode: (color) => ({ color }) },\n status: {\n path: \"status\",\n encode: (status) => ({ status: SubaccountStatusCodec.inputToProto[status] }),\n },\n});\n\nexport const UpdateSubaccountInputSchema = v.pipe(\n v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n label: v.optional(v.string()),\n icon: v.optional(v.string()),\n color: v.optional(v.string()),\n status: v.optional(v.picklist(SUBACCOUNT_STATUS_VALUES)),\n }),\n v.check(\n ({ label, icon, color, status }) =>\n label !== undefined ||\n icon !== undefined ||\n color !== undefined ||\n status !== undefined,\n \"At least one subaccount field must be provided\",\n ),\n v.transform(({ subaccountId, expectedRevision, ...input }) => {\n const { patch: subaccount, updateMask } = buildProtoPatch(input, SUBACCOUNT_PATCH_FIELDS);\n return {\n subaccountId,\n subaccount,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type UpdateSubaccountInput = v.InferInput<typeof UpdateSubaccountInputSchema>;\n\nexport const DeleteSubaccountInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n});\n\nexport type DeleteSubaccountInput = v.InferInput<typeof DeleteSubaccountInputSchema>;\n\nexport const InviteSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n role: v.pipe(\n SubaccountRoleSchema,\n v.transform((role) => SubaccountRoleCodec.inputToProto[role]),\n ),\n});\n\nexport type InviteSubaccountMemberInput = v.InferInput<typeof InviteSubaccountMemberInputSchema>;\n\nexport const RemoveSubaccountMemberInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n granteeAccountId: idInputSchema(\"granteeAccountId\"),\n});\n\nexport type RemoveSubaccountMemberInput = v.InferInput<typeof RemoveSubaccountMemberInputSchema>;\n\nexport const UpdateSubaccountMemberRoleInputSchema = InviteSubaccountMemberInputSchema;\n\nexport type UpdateSubaccountMemberRoleInput = v.InferInput<\n typeof UpdateSubaccountMemberRoleInputSchema\n>;\n\nexport const SetSubaccountMemberMfaRequirementInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n requireMemberMfa: v.boolean(),\n});\n\nexport type SetSubaccountMemberMfaRequirementInput = v.InferInput<\n typeof SetSubaccountMemberMfaRequirementInputSchema\n>;\n\nexport const ListSubaccountInvitesInputSchema = v.strictObject({\n direction: v.optional(v.picklist([\"incoming\", \"outgoing\", \"\"]), \"\"),\n});\n\nexport type ListSubaccountInvitesInput = v.InferInput<typeof ListSubaccountInvitesInputSchema>;\n\nconst InviteActionSchema = v.picklist([\"accept\", \"decline\", \"cancel\"]);\n\nconst InviteStatusSchema = v.picklist([\"pending\", \"accepted\", \"declined\", \"cancelled\"]);\n\nexport type SubaccountInviteStatus = v.InferOutput<typeof InviteStatusSchema>;\n\nconst ProtoInviteStatusSchema = v.enum(Proto.SubaccountInviteStatus);\n\nexport const RespondSubaccountInviteInputSchema = v.strictObject({\n inviteId: idInputSchema(\"inviteId\"),\n action: v.pipe(\n InviteActionSchema,\n v.transform((v) => InviteActionCodec.inputToProto[v]),\n ),\n});\n\nexport type RespondSubaccountInviteInput = v.InferInput<typeof RespondSubaccountInviteInputSchema>;\n\nconst ProtoSubaccountStatusSchema = v.pipe(\n v.picklist(SUBACCOUNT_STATUS_VALUES),\n v.transform((status) => SubaccountStatusCodec.protoToOutput[status]),\n);\n\nexport type SubaccountStatus = v.InferOutput<typeof ProtoSubaccountStatusSchema>;\n\nexport const SubaccountSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n label: v.optional(v.string(), \"\"),\n icon: v.optional(v.string(), \"\"),\n color: v.optional(v.string(), \"\"),\n status: ProtoSubaccountStatusSchema,\n smartAccountAddress: v.string(),\n smartAccountSaltNonce: v.optional(v.number()),\n ownerUsername: v.optional(v.string(), \"\"),\n ownerAvatarUrl: v.optional(v.string(), \"\"),\n ownerRootSmartAccountAddress: v.string(),\n subaccountPolicyId: PublicIdSchema,\n requireMemberMfa: v.optional(v.boolean(), false),\n updatedAt: v.optional(TimestampSchema),\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...subaccount }) => ({\n ...subaccount,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type Subaccount = v.InferOutput<typeof SubaccountSchema>;\n\nexport const SubaccountMemberSchema = v.object({\n accountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n username: v.optional(v.string(), \"\"),\n smartAccountAddress: v.string(),\n avatarUrl: v.optional(v.string(), \"\"),\n mfaEnrolled: v.optional(v.boolean(), false),\n});\n\nexport type SubaccountMember = v.InferOutput<typeof SubaccountMemberSchema>;\n\nexport const SubaccountInviteSchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n subaccountId: PublicIdSchema,\n granteeAccountId: PublicIdSchema,\n inviterAccountId: PublicIdSchema,\n role: ProtoSubaccountRoleSchema,\n status: v.pipe(\n ProtoInviteStatusSchema,\n v.transform((v) =>\n requiredEnumLabel(\n InviteStatusCodec.protoToOutput,\n v,\n \"SubaccountInviteSchema\",\n \"status\",\n ),\n ),\n ),\n createdAt: OptionalTimestampMsSchema,\n respondedAt: OptionalTimestampMsSchema,\n granteeUsername: v.optional(v.string(), \"\"),\n inviterUsername: v.optional(v.string(), \"\"),\n subaccountLabel: v.optional(v.string(), \"\"),\n inviterRootSmartAccountAddress: v.string(),\n granteeRootSmartAccountAddress: v.string(),\n requireMemberMfa: v.boolean(),\n }),\n v.transform(\n ({\n subaccountLabel,\n subaccountId,\n inviterRootSmartAccountAddress,\n granteeRootSmartAccountAddress,\n ...rest\n }) => ({\n ...rest,\n subaccountId,\n subaccountLabel,\n inviterSmartAccountAddress: inviterRootSmartAccountAddress,\n granteeSmartAccountAddress: granteeRootSmartAccountAddress,\n }),\n ),\n);\n\nexport type SubaccountInvite = v.InferOutput<typeof SubaccountInviteSchema>;\n\nexport const SubaccountActivityInputSchema = v.strictObject({\n subaccountId: idInputSchema(\"subaccountId\"),\n limit: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(200)), 50),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n});\n\nexport type SubaccountActivityInput = v.InferInput<typeof SubaccountActivityInputSchema>;\n\nexport const SubaccountActivityEventSchema = v.object({\n createdAt: OptionalTimestampMsSchema,\n entityKind: v.pipe(\n v.enum(Proto.ActivityEntityKind),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEntityKindCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"entity kind\",\n ),\n ),\n ),\n eventAction: v.pipe(\n v.enum(Proto.ActivityEventAction),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventActionCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"event action\",\n ),\n ),\n ),\n source: v.pipe(\n v.enum(Proto.ActivityEventSource),\n v.transform((value) =>\n requiredEnumLabel(\n ActivityEventSourceCodec.protoToOutput,\n value,\n \"SubaccountActivityEventSchema\",\n \"source\",\n ),\n ),\n ),\n ip: v.optional(v.string()),\n userAgent: v.optional(v.string()),\n actorAccountId: PublicIdSchema,\n payloadJson: v.pipe(\n v.string(),\n v.transform((v) => JSON.parse(v)),\n ),\n});\n\nexport type SubaccountEvent = v.InferOutput<typeof SubaccountActivityEventSchema>;\n"],"mappings":";;;;;;;AAiCA,MAAa,uBAAuBA,mBAAE,SAAS;CAR3C;CACA;CACA;CACA;CACA;CACA;AAG2C,CAAsB;AAIrE,MAAM,4BAA4BA,mBAAE,KAChCA,mBAAE,KAAKC,cAAoB,GAC3BD,mBAAE,WAAW,SACT,kBAAkB,oBAAoB,eAAe,MAAM,wBAAwB,MAAM,CAC7F,CACJ;AAEA,MAAa,8BAA8BA,mBAAE,aAAa;CACtD,OAAOA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAChC,MAAMA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAC/B,OAAOA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAChC,qBAAqBA,mBAAE,OAAO;CAC9B,OAAOA,mBAAE,OAAO;CAChB,WAAWA,mBAAE,OAAO;CACpB,sBAAsBA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAC/C,gBAAgBA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;AAC7C,CAAC;AAID,MAAa,0BAA0BA,mBAAE,aAAa,EAClD,cAAc,cAAc,cAAc,EAC9C,CAAC;AAID,MAAa,+BAA+BA,mBAAE,OAAO;CACjD,cAAc;CACd,cAAcA,mBAAE,OAAO;CACvB,uBAAuBA,mBAAE,OAAO;CAChC,UAAU;AACd,CAAC;AAID,MAAa,iCAAiCA,mBAAE,OAAO,CAAC,CAAC;AAWzD,MAAM,0BAA0B,uBAAwC,CAAC,CAAC;CACtE,OAAO;EAAE,MAAM;EAAS,SAAS,WAAW,EAAE,MAAM;CAAG;CACvD,MAAM;EAAE,MAAM;EAAQ,SAAS,UAAU,EAAE,KAAK;CAAG;CACnD,OAAO;EAAE,MAAM;EAAS,SAAS,WAAW,EAAE,MAAM;CAAG;CACvD,QAAQ;EACJ,MAAM;EACN,SAAS,YAAY,EAAE,QAAQ,sBAAsB,aAAa,QAAQ;CAC9E;AACJ,CAAC;AAED,MAAa,8BAA8BA,mBAAE,KACzCA,mBAAE,aAAa;CACX,cAAc,cAAc,cAAc;CAC1C,kBAAkB,gCAAgC,kBAAkB;CACpE,OAAOA,mBAAE,SAASA,mBAAE,OAAO,CAAC;CAC5B,MAAMA,mBAAE,SAASA,mBAAE,OAAO,CAAC;CAC3B,OAAOA,mBAAE,SAASA,mBAAE,OAAO,CAAC;CAC5B,QAAQA,mBAAE,SAASA,mBAAE,SAAS,wBAAwB,CAAC;AAC3D,CAAC,GACDA,mBAAE,OACG,EAAE,OAAO,MAAM,OAAO,aACnB,UAAU,KAAA,KACV,SAAS,KAAA,KACT,UAAU,KAAA,KACV,WAAW,KAAA,GACf,gDACJ,GACAA,mBAAE,WAAW,EAAE,cAAc,kBAAkB,GAAG,YAAY;CAC1D,MAAM,EAAE,OAAO,YAAY,eAAe,gBAAgB,OAAO,uBAAuB;CACxF,OAAO;EACH;EACA;EACA;EACA;CACJ;AACJ,CAAC,CACL;AAIA,MAAa,8BAA8BA,mBAAE,aAAa;CACtD,cAAc,cAAc,cAAc;CAC1C,kBAAkB,gCAAgC,kBAAkB;AACxE,CAAC;AAID,MAAa,oCAAoCA,mBAAE,aAAa;CAC5D,cAAc,cAAc,cAAc;CAC1C,kBAAkB,cAAc,kBAAkB;CAClD,MAAMA,mBAAE,KACJ,sBACAA,mBAAE,WAAW,SAAS,oBAAoB,aAAa,KAAK,CAChE;AACJ,CAAC;AAID,MAAa,oCAAoCA,mBAAE,aAAa;CAC5D,cAAc,cAAc,cAAc;CAC1C,kBAAkB,cAAc,kBAAkB;AACtD,CAAC;AAID,MAAa,wCAAwC;AAMrD,MAAa,+CAA+CA,mBAAE,aAAa;CACvE,cAAc,cAAc,cAAc;CAC1C,kBAAkBA,mBAAE,QAAQ;AAChC,CAAC;AAMD,MAAa,mCAAmCA,mBAAE,aAAa,EAC3D,WAAWA,mBAAE,SAASA,mBAAE,SAAS;CAAC;CAAY;CAAY;AAAE,CAAC,GAAG,EAAE,EACtE,CAAC;AAID,MAAM,qBAAqBA,mBAAE,SAAS;CAAC;CAAU;CAAW;AAAQ,CAAC;AAE1CA,mBAAE,SAAS;CAAC;CAAW;CAAY;CAAY;AAAW,CAAC;AAItF,MAAM,0BAA0BA,mBAAE,KAAKE,sBAA4B;AAEnE,MAAa,qCAAqCF,mBAAE,aAAa;CAC7D,UAAU,cAAc,UAAU;CAClC,QAAQA,mBAAE,KACN,oBACAA,mBAAE,WAAW,MAAM,kBAAkB,aAAa,EAAE,CACxD;AACJ,CAAC;AAID,MAAM,8BAA8BA,mBAAE,KAClCA,mBAAE,SAAS,wBAAwB,GACnCA,mBAAE,WAAW,WAAW,sBAAsB,cAAc,OAAO,CACvE;AAIA,MAAa,mBAAmBA,mBAAE,KAC9BA,mBAAE,OAAO;CACL,IAAI;CACJ,MAAM;CACN,OAAOA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAChC,MAAMA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAC/B,OAAOA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAChC,QAAQ;CACR,qBAAqBA,mBAAE,OAAO;CAC9B,uBAAuBA,mBAAE,SAASA,mBAAE,OAAO,CAAC;CAC5C,eAAeA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CACxC,gBAAgBA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CACzC,8BAA8BA,mBAAE,OAAO;CACvC,oBAAoB;CACpB,kBAAkBA,mBAAE,SAASA,mBAAE,QAAQ,GAAG,KAAK;CAC/C,WAAWA,mBAAE,SAAS,eAAe;CACrC,UAAU;AACd,CAAC,GACDA,mBAAE,WAAW,EAAE,WAAW,GAAG,kBAAkB;CAC3C,GAAG;CACH,WAAW,UAAU,SAAS;CAC9B,aAAa,gBAAgB,SAAS;AAC1C,EAAE,CACN;AAIA,MAAa,yBAAyBA,mBAAE,OAAO;CAC3C,WAAW;CACX,MAAM;CACN,UAAUA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CACnC,qBAAqBA,mBAAE,OAAO;CAC9B,WAAWA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CACpC,aAAaA,mBAAE,SAASA,mBAAE,QAAQ,GAAG,KAAK;AAC9C,CAAC;AAID,MAAa,yBAAyBA,mBAAE,KACpCA,mBAAE,OAAO;CACL,IAAI;CACJ,cAAc;CACd,kBAAkB;CAClB,kBAAkB;CAClB,MAAM;CACN,QAAQA,mBAAE,KACN,yBACAA,mBAAE,WAAW,MACT,kBACI,kBAAkB,eAClB,GACA,0BACA,QACJ,CACJ,CACJ;CACA,WAAW;CACX,aAAa;CACb,iBAAiBA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAC1C,iBAAiBA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAC1C,iBAAiBA,mBAAE,SAASA,mBAAE,OAAO,GAAG,EAAE;CAC1C,gCAAgCA,mBAAE,OAAO;CACzC,gCAAgCA,mBAAE,OAAO;CACzC,kBAAkBA,mBAAE,QAAQ;AAChC,CAAC,GACDA,mBAAE,WACG,EACG,iBACA,cACA,gCACA,gCACA,GAAG,YACA;CACH,GAAG;CACH;CACA;CACA,4BAA4B;CAC5B,4BAA4B;AAChC,EACJ,CACJ;AAIA,MAAa,gCAAgCA,mBAAE,aAAa;CACxD,cAAc,cAAc,cAAc;CAC1C,OAAOA,mBAAE,SAASA,mBAAE,KAAKA,mBAAE,OAAO,GAAGA,mBAAE,QAAQ,GAAGA,mBAAE,SAAS,CAAC,GAAGA,mBAAE,SAAS,GAAG,CAAC,GAAG,EAAE;CACrF,WAAWA,mBAAE,SAASA,mBAAE,KAAKA,mBAAE,OAAO,GAAGA,mBAAE,KAAK,CAAC,GAAG,EAAE;AAC1D,CAAC;AAID,MAAa,gCAAgCA,mBAAE,OAAO;CAClD,WAAW;CACX,YAAYA,mBAAE,KACVA,mBAAE,KAAKG,kBAAwB,GAC/BH,mBAAE,WAAW,UACT,kBACI,wBAAwB,eACxB,OACA,iCACA,aACJ,CACJ,CACJ;CACA,aAAaA,mBAAE,KACXA,mBAAE,KAAKI,mBAAyB,GAChCJ,mBAAE,WAAW,UACT,kBACI,yBAAyB,eACzB,OACA,iCACA,cACJ,CACJ,CACJ;CACA,QAAQA,mBAAE,KACNA,mBAAE,KAAKK,mBAAyB,GAChCL,mBAAE,WAAW,UACT,kBACI,yBAAyB,eACzB,OACA,iCACA,QACJ,CACJ,CACJ;CACA,IAAIA,mBAAE,SAASA,mBAAE,OAAO,CAAC;CACzB,WAAWA,mBAAE,SAASA,mBAAE,OAAO,CAAC;CAChC,gBAAgB;CAChB,aAAaA,mBAAE,KACXA,mBAAE,OAAO,GACTA,mBAAE,WAAW,MAAM,KAAK,MAAM,CAAC,CAAC,CACpC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { validation_d_exports } from "../../shared/validation.js";
1
2
  import { PolyesterRequestOptions } from "../../shared/request-options.js";
2
3
  import { SubaccountResolver } from "../subaccount-resolver.js";
3
4
  import { PolyesterRealtime } from "../../realtime/types.js";
@@ -5,7 +6,6 @@ import { BaseSubscribeInput } from "../../shared/types.js";
5
6
  import { SdkScales } from "../../shared/decimal-surface.js";
6
7
  import { GetUserTradesInputSchema, Trade } from "./trades.schemas.js";
7
8
  import { Transport } from "@connectrpc/connect";
8
- import * as v from "valibot";
9
9
  //#region src/services/trades/trades.d.ts
10
10
  interface SubscribeTradesInput extends BaseSubscribeInput<Trade> {
11
11
  accountId: string;
@@ -19,7 +19,7 @@ declare class TradesService {
19
19
  /**
20
20
  * Returns user trades for the resolved root account or subaccount, supporting symbol, side, time range, limit, and page token filters. Results include the next page token from GetUserTrades.
21
21
  */
22
- list(input?: v.InferInput<typeof GetUserTradesInputSchema>, options?: PolyesterRequestOptions): Promise<{
22
+ list(input?: validation_d_exports.InferInput<typeof GetUserTradesInputSchema>, options?: PolyesterRequestOptions): Promise<{
23
23
  trades: Trade[];
24
24
  nextPageToken: string;
25
25
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"trades.d.ts","names":[],"sources":["../../../src/services/trades/trades.ts"],"mappings":";;;;;;;;;UAeU,6BAA6B,mBAAmB;EACtD;;;;;cAMS;;EAQL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAYN,KACF,QAAO,EAAE,kBAAkB,2BAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAiB9B,UAAU,OAAO"}
1
+ {"version":3,"file":"trades.d.ts","names":[],"sources":["../../../src/services/trades/trades.ts"],"mappings":";;;;;;;;;UAeU,6BAA6B,mBAAmB;EACtD;;;;;cAMS;;EAQL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAYN,KACF,QAAO,qBAAE,kBAAkB,2BAC3B,UAAU,0BACX;IAAU,QAAQ;IAAS;;;;;EAiB9B,UAAU,OAAO"}
@@ -1,3 +1,4 @@
1
+ import { parse, validation_exports } from "../../shared/validation.js";
1
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
2
3
  import { removeUndefined } from "../../utils/remove-undefined.js";
3
4
  import { resolveAccountScopedInput } from "../subaccount-resolver.js";
@@ -6,7 +7,6 @@ import { createReadyGate } from "../../shared/decimal-surface.js";
6
7
  import { OrdersReadService, UserTradeSchema } from "../../gen/orders/v1/orders_read_pb.js";
7
8
  import { GetUserTradesInputSchema, createUserTradeSchema } from "./trades.schemas.js";
8
9
  import { createClient } from "@connectrpc/connect";
9
- import * as v from "valibot";
10
10
  //#region src/services/trades/trades.ts
11
11
  /**
12
12
  * Reads and streams authenticated user trade fills.
@@ -30,10 +30,10 @@ var TradesService = class {
30
30
  async list(input = {}, options) {
31
31
  await this.#scales.ready();
32
32
  const resolved = resolveAccountScopedInput(input, this.#resolver);
33
- const validatedInput = v.parse(GetUserTradesInputSchema, resolved);
33
+ const validatedInput = parse(GetUserTradesInputSchema, resolved);
34
34
  const res = await this.#client.getUserTrades(removeUndefined(validatedInput), toConnectCallOptions(options));
35
35
  return {
36
- trades: v.parse(v.array(this.#userTradeSchema), res.trades),
36
+ trades: parse(validation_exports.array(this.#userTradeSchema), res.trades),
37
37
  nextPageToken: res.nextPageToken
38
38
  };
39
39
  }
@@ -48,13 +48,13 @@ var TradesService = class {
48
48
  schema: UserTradeSchema,
49
49
  onPublication: (data) => {
50
50
  gate.run(() => {
51
- const trade = v.parse(this.#userTradeSchema, data);
51
+ const trade = parse(this.#userTradeSchema, data);
52
52
  input.onEvent(trade);
53
53
  });
54
54
  },
55
55
  onConnected: () => input.onOpen?.(),
56
56
  onDisconnected: () => input.onClose?.(),
57
- onError: (ctx) => input.onError?.(ctx)
57
+ onError: input.onError
58
58
  });
59
59
  }
60
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"trades.js","names":["#client","Proto.OrdersReadService","#realtime","#resolver","#scales","#userTradeSchema","Proto.UserTradeSchema"],"sources":["../../../src/services/trades/trades.ts"],"sourcesContent":["import * as Proto from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"valibot\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { GetUserTradesInputSchema, createUserTradeSchema, type Trade } from \"./trades.schemas.js\";\n\ninterface SubscribeTradesInput extends BaseSubscribeInput<Trade> {\n accountId: string;\n}\n\n/**\n * Reads and streams authenticated user trade fills.\n */\nexport class TradesService {\n #client: Client<typeof Proto.OrdersReadService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #userTradeSchema: ReturnType<typeof createUserTradeSchema>;\n\n constructor(\n transport: Transport,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.OrdersReadService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#userTradeSchema = createUserTradeSchema(scales);\n }\n\n /**\n * Returns user trades for the resolved root account or subaccount, supporting symbol, side, time range, limit, and page token filters. Results include the next page token from GetUserTrades.\n */\n async list(\n input: v.InferInput<typeof GetUserTradesInputSchema> = {},\n options?: PolyesterRequestOptions,\n ): Promise<{ trades: Trade[]; nextPageToken: string }> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = v.parse(GetUserTradesInputSchema, resolved);\n const res = await this.#client.getUserTrades(\n removeUndefined(validatedInput),\n toConnectCallOptions(options),\n );\n return {\n trades: v.parse(v.array(this.#userTradeSchema), res.trades),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Subscribes to private user trade updates on private:spot:trades:{accountId}:proto and emits parsed fills.\n */\n subscribe(input: SubscribeTradesInput) {\n const channel = `private:spot:trades:${input.accountId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.UserTradeSchema,\n onPublication: (data) => {\n gate.run(() => {\n const trade = v.parse(this.#userTradeSchema, data);\n input.onEvent(trade);\n });\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: (ctx) => input.onError?.(ctx),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CACA;CACA;CAEA,YACI,WACA,UACA,UACA,QACF;EACE,KAAKA,UAAU,aAAaC,mBAAyB,SAAS;EAC9D,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,mBAAmB,sBAAsB,MAAM;CACxD;;;;CAKA,MAAM,KACF,QAAuD,CAAC,GACxD,SACmD;EACnD,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,iBAAiB,EAAE,MAAM,0BAA0B,QAAQ;EACjE,MAAM,MAAM,MAAM,KAAKH,QAAQ,cAC3B,gBAAgB,cAAc,GAC9B,qBAAqB,OAAO,CAChC;EACA,OAAO;GACH,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAKK,gBAAgB,GAAG,IAAI,MAAM;GAC1D,eAAe,IAAI;EACvB;CACJ;;;;CAKA,UAAU,OAA6B;EACnC,MAAM,UAAU,uBAAuB,MAAM,UAAU;EACvD,MAAM,OAAO,sBACH,KAAKD,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKF,UAAU,oBAAoB;GACtC;GACA,QAAQI;GACR,gBAAgB,SAAS;IACrB,KAAK,UAAU;KACX,MAAM,QAAQ,EAAE,MAAM,KAAKD,kBAAkB,IAAI;KACjD,MAAM,QAAQ,KAAK;IACvB,CAAC;GACL;GACA,mBAAmB,MAAM,SAAS;GAClC,sBAAsB,MAAM,UAAU;GACtC,UAAU,QAAQ,MAAM,UAAU,GAAG;EACzC,CAAC;CACL;AACJ"}
1
+ {"version":3,"file":"trades.js","names":["#client","Proto.OrdersReadService","#realtime","#resolver","#scales","#userTradeSchema","v.parse","v","Proto.UserTradeSchema"],"sources":["../../../src/services/trades/trades.ts"],"sourcesContent":["import * as Proto from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"../../shared/validation.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { GetUserTradesInputSchema, createUserTradeSchema, type Trade } from \"./trades.schemas.js\";\n\ninterface SubscribeTradesInput extends BaseSubscribeInput<Trade> {\n accountId: string;\n}\n\n/**\n * Reads and streams authenticated user trade fills.\n */\nexport class TradesService {\n #client: Client<typeof Proto.OrdersReadService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #userTradeSchema: ReturnType<typeof createUserTradeSchema>;\n\n constructor(\n transport: Transport,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.OrdersReadService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#userTradeSchema = createUserTradeSchema(scales);\n }\n\n /**\n * Returns user trades for the resolved root account or subaccount, supporting symbol, side, time range, limit, and page token filters. Results include the next page token from GetUserTrades.\n */\n async list(\n input: v.InferInput<typeof GetUserTradesInputSchema> = {},\n options?: PolyesterRequestOptions,\n ): Promise<{ trades: Trade[]; nextPageToken: string }> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = v.parse(GetUserTradesInputSchema, resolved);\n const res = await this.#client.getUserTrades(\n removeUndefined(validatedInput),\n toConnectCallOptions(options),\n );\n return {\n trades: v.parse(v.array(this.#userTradeSchema), res.trades),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Subscribes to private user trade updates on private:spot:trades:{accountId}:proto and emits parsed fills.\n */\n subscribe(input: SubscribeTradesInput) {\n const channel = `private:spot:trades:${input.accountId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.UserTradeSchema,\n onPublication: (data) => {\n gate.run(() => {\n const trade = v.parse(this.#userTradeSchema, data);\n input.onEvent(trade);\n });\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAsBA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CACA;CACA;CAEA,YACI,WACA,UACA,UACA,QACF;EACE,KAAKA,UAAU,aAAaC,mBAAyB,SAAS;EAC9D,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,mBAAmB,sBAAsB,MAAM;CACxD;;;;CAKA,MAAM,KACF,QAAuD,CAAC,GACxD,SACmD;EACnD,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,iBAAiBG,MAAQ,0BAA0B,QAAQ;EACjE,MAAM,MAAM,MAAM,KAAKN,QAAQ,cAC3B,gBAAgB,cAAc,GAC9B,qBAAqB,OAAO,CAChC;EACA,OAAO;GACH,QAAQM,MAAQC,mBAAE,MAAM,KAAKF,gBAAgB,GAAG,IAAI,MAAM;GAC1D,eAAe,IAAI;EACvB;CACJ;;;;CAKA,UAAU,OAA6B;EACnC,MAAM,UAAU,uBAAuB,MAAM,UAAU;EACvD,MAAM,OAAO,sBACH,KAAKD,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKF,UAAU,oBAAoB;GACtC;GACA,QAAQM;GACR,gBAAgB,SAAS;IACrB,KAAK,UAAU;KACX,MAAM,QAAQF,MAAQ,KAAKD,kBAAkB,IAAI;KACjD,MAAM,QAAQ,KAAK;IACvB,CAAC;GACL;GACA,mBAAmB,MAAM,SAAS;GAClC,sBAAsB,MAAM,UAAU;GACtC,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
@@ -1,28 +1,28 @@
1
+ import { validation_d_exports } from "../../shared/validation.js";
1
2
  import { Side } from "../../gen/orders/v1/orders_pb.js";
2
3
  import { SdkScales } from "../../shared/decimal-surface.js";
3
- import * as v from "valibot";
4
4
  //#region src/services/trades/trades.schemas.d.ts
5
5
  /** Parses a generated user-trade fill into the SDK's JSON-safe public shape. */
6
- declare function createUserTradeSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
7
- readonly orderId: v.BigintSchema<undefined>;
8
- readonly symbolId: v.NumberSchema<undefined>;
9
- readonly side: v.NumberSchema<undefined>;
10
- readonly isMaker: v.BooleanSchema<undefined>;
11
- readonly feeAsset: v.NumberSchema<undefined>;
12
- readonly qtyScaled: v.BigintSchema<undefined>;
13
- readonly priceTicks: v.BigintSchema<undefined>;
14
- readonly feeAmountE18: v.OptionalSchema<v.ObjectSchema<{
15
- readonly hi: v.BigintSchema<undefined>;
16
- readonly lo: v.BigintSchema<undefined>;
6
+ declare function createUserTradeSchema(scales: SdkScales): validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ObjectSchema<{
7
+ readonly orderId: validation_d_exports.BigintSchema<undefined>;
8
+ readonly symbolId: validation_d_exports.NumberSchema<undefined>;
9
+ readonly side: validation_d_exports.NumberSchema<undefined>;
10
+ readonly isMaker: validation_d_exports.BooleanSchema<undefined>;
11
+ readonly feeAsset: validation_d_exports.NumberSchema<undefined>;
12
+ readonly qtyScaled: validation_d_exports.BigintSchema<undefined>;
13
+ readonly priceTicks: validation_d_exports.BigintSchema<undefined>;
14
+ readonly feeAmountE18: validation_d_exports.OptionalSchema<validation_d_exports.ObjectSchema<{
15
+ readonly hi: validation_d_exports.BigintSchema<undefined>;
16
+ readonly lo: validation_d_exports.BigintSchema<undefined>;
17
17
  }, undefined>, undefined>;
18
- readonly referralShareAmountE18: v.OptionalSchema<v.ObjectSchema<{
19
- readonly hi: v.BigintSchema<undefined>;
20
- readonly lo: v.BigintSchema<undefined>;
18
+ readonly referralShareAmountE18: validation_d_exports.OptionalSchema<validation_d_exports.ObjectSchema<{
19
+ readonly hi: validation_d_exports.BigintSchema<undefined>;
20
+ readonly lo: validation_d_exports.BigintSchema<undefined>;
21
21
  }, undefined>, undefined>;
22
- readonly feeIsRebate: v.BooleanSchema<undefined>;
23
- readonly tsNs: v.BigintSchema<undefined>;
24
- readonly matchId: v.BigintSchema<undefined>;
25
- }, undefined>, v.TransformAction<{
22
+ readonly feeIsRebate: validation_d_exports.BooleanSchema<undefined>;
23
+ readonly tsNs: validation_d_exports.BigintSchema<undefined>;
24
+ readonly matchId: validation_d_exports.BigintSchema<undefined>;
25
+ }, undefined>, validation_d_exports.TransformAction<{
26
26
  orderId: bigint;
27
27
  symbolId: number;
28
28
  side: number;
@@ -58,19 +58,19 @@ declare function createUserTradeSchema(scales: SdkScales): v.SchemaWithPipe<read
58
58
  fee: string;
59
59
  }>]>;
60
60
  /** A JSON-safe authenticated trade fill returned by the SDK. */
61
- type Trade = v.InferOutput<ReturnType<typeof createUserTradeSchema>>;
61
+ type Trade = validation_d_exports.InferOutput<ReturnType<typeof createUserTradeSchema>>;
62
62
  /** Validates filters accepted by {@link TradesService.list}. */
63
- declare const GetUserTradesInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
64
- readonly symbolId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, number | undefined>]>;
65
- readonly side: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<["buy", "sell"], undefined>, undefined>, v.TransformAction<"buy" | "sell" | undefined, Side.BUY | Side.SELL | undefined>]>;
66
- readonly startTsNs: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
67
- readonly endTsNs: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
68
- readonly limit: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
69
- readonly pageToken: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>;
70
- readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
71
- readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
63
+ declare const GetUserTradesInputSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StrictObjectSchema<{
64
+ readonly symbolId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>, validation_d_exports.TransformAction<string | undefined, number | undefined>]>;
65
+ readonly side: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.PicklistSchema<["buy", "sell"], undefined>, undefined>, validation_d_exports.TransformAction<"buy" | "sell" | undefined, Side.BUY | Side.SELL | undefined>]>;
66
+ readonly startTsNs: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>, validation_d_exports.TransformAction<string | undefined, bigint | undefined>]>;
67
+ readonly endTsNs: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>, validation_d_exports.TransformAction<string | undefined, bigint | undefined>]>;
68
+ readonly limit: validation_d_exports.OptionalSchema<validation_d_exports.NumberSchema<undefined>, undefined>;
69
+ readonly pageToken: validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction]>, undefined>;
70
+ readonly account: validation_d_exports.OptionalSchema<validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
71
+ readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
72
72
  }, undefined>], undefined>, undefined>;
73
- }, undefined>, v.TransformAction<{
73
+ }, undefined>, validation_d_exports.TransformAction<{
74
74
  symbolId?: number | undefined;
75
75
  side?: Side.BUY | Side.SELL | undefined;
76
76
  startTsNs?: bigint | undefined;
@@ -90,7 +90,7 @@ declare const GetUserTradesInputSchema: v.SchemaWithPipe<readonly [v.StrictObjec
90
90
  pageToken?: string | undefined;
91
91
  }>]>;
92
92
  /** Filters accepted by {@link TradesService.list}. */
93
- type GetUserTradesInput = v.InferInput<typeof GetUserTradesInputSchema>;
93
+ type GetUserTradesInput = validation_d_exports.InferInput<typeof GetUserTradesInputSchema>;
94
94
  //#endregion
95
95
  export { GetUserTradesInput, GetUserTradesInputSchema, Trade, createUserTradeSchema };
96
96
  //# sourceMappingURL=trades.schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trades.schemas.d.ts","names":[],"sources":["../../../src/services/trades/trades.schemas.ts"],"mappings":";;;;;iBAqBgB,sBAAsB,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwD3C,QAAQ,EAAE,YAAY,kBAAkB;;cAGvC,0BAAwB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BzB,qBAAqB,EAAE,kBAAkB"}
1
+ {"version":3,"file":"trades.schemas.d.ts","names":[],"sources":["../../../src/services/trades/trades.schemas.ts"],"mappings":";;;;;iBAqBgB,sBAAsB,QAAQ,YAAS,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwD3C,QAAQ,qBAAE,YAAY,kBAAkB;;cAGvC,0BAAwB,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BzB,qBAAqB,qBAAE,kBAAkB"}
@@ -1,3 +1,4 @@
1
+ import { validation_exports } from "../../shared/validation.js";
1
2
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
2
3
  import { formatId } from "../../utils/base58-id.js";
3
4
  import { tsNsToISO, tsNsToMs } from "../../utils/time.js";
@@ -8,28 +9,27 @@ import { SideSchema } from "../shared.js";
8
9
  import { fromU128 } from "../../utils/u128.js";
9
10
  import { FeeAssetCodec, OrderSideCodec } from "../orders/order-enums.codecs.js";
10
11
  import { TradeSideCodec } from "./trades.codecs.js";
11
- import * as v from "valibot";
12
12
  //#region src/services/trades/trades.schemas.ts
13
- const U128Schema = v.object({
14
- hi: v.bigint(),
15
- lo: v.bigint()
13
+ const U128Schema = validation_exports.object({
14
+ hi: validation_exports.bigint(),
15
+ lo: validation_exports.bigint()
16
16
  });
17
17
  /** Parses a generated user-trade fill into the SDK's JSON-safe public shape. */
18
18
  function createUserTradeSchema(scales) {
19
- return v.pipe(v.object({
20
- orderId: v.bigint(),
21
- symbolId: v.number(),
22
- side: v.number(),
23
- isMaker: v.boolean(),
24
- feeAsset: v.number(),
25
- qtyScaled: v.bigint(),
26
- priceTicks: v.bigint(),
27
- feeAmountE18: v.optional(U128Schema),
28
- referralShareAmountE18: v.optional(U128Schema),
29
- feeIsRebate: v.boolean(),
30
- tsNs: v.bigint(),
31
- matchId: v.bigint()
32
- }), v.transform((t) => {
19
+ return validation_exports.pipe(validation_exports.object({
20
+ orderId: validation_exports.bigint(),
21
+ symbolId: validation_exports.number(),
22
+ side: validation_exports.number(),
23
+ isMaker: validation_exports.boolean(),
24
+ feeAsset: validation_exports.number(),
25
+ qtyScaled: validation_exports.bigint(),
26
+ priceTicks: validation_exports.bigint(),
27
+ feeAmountE18: validation_exports.optional(U128Schema),
28
+ referralShareAmountE18: validation_exports.optional(U128Schema),
29
+ feeIsRebate: validation_exports.boolean(),
30
+ tsNs: validation_exports.bigint(),
31
+ matchId: validation_exports.bigint()
32
+ }), validation_exports.transform((t) => {
33
33
  const feeAsset = requiredEnumLabel(FeeAssetCodec.protoToOutput, t.feeAsset, "UserTradeSchema", "fee asset");
34
34
  return {
35
35
  orderId: formatId(t.orderId),
@@ -50,19 +50,19 @@ function createUserTradeSchema(scales) {
50
50
  }));
51
51
  }
52
52
  /** Validates filters accepted by {@link TradesService.list}. */
53
- const GetUserTradesInputSchema = v.pipe(v.strictObject({
53
+ const GetUserTradesInputSchema = validation_exports.pipe(validation_exports.strictObject({
54
54
  ...AccountScopeInputEntries,
55
- symbolId: v.pipe(v.optional(v.pipe(v.string(), v.trim())), v.transform((v) => {
55
+ symbolId: validation_exports.pipe(validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim())), validation_exports.transform((v) => {
56
56
  if (!v) return void 0;
57
57
  const sid = Number(v);
58
58
  return Number.isFinite(sid) && sid > 0 ? sid : void 0;
59
59
  })),
60
- side: v.pipe(v.optional(SideSchema), v.transform((v) => v ? TradeSideCodec.inputToProto[v] : void 0)),
60
+ side: validation_exports.pipe(validation_exports.optional(SideSchema), validation_exports.transform((v) => v ? TradeSideCodec.inputToProto[v] : void 0)),
61
61
  startTsNs: optionalUint64DecimalFilterSchema("startTsNs"),
62
62
  endTsNs: optionalUint64DecimalFilterSchema("endTsNs"),
63
- limit: v.optional(v.number()),
64
- pageToken: v.optional(v.pipe(v.string(), v.trim()))
65
- }), v.transform(({ account, ...input }) => ({
63
+ limit: validation_exports.optional(validation_exports.number()),
64
+ pageToken: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim()))
65
+ }), validation_exports.transform(({ account, ...input }) => ({
66
66
  ...input,
67
67
  subaccountId: accountScopeToSubaccountId(account)
68
68
  })));