@polyester/sdk 0.4.0 → 0.4.2

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 (296) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/_virtual/_rolldown/runtime.js +1 -15
  3. package/dist/catalogs/snapshot-validation.js +63 -63
  4. package/dist/catalogs/snapshot-validation.js.map +1 -1
  5. package/dist/core-client.d.ts +9 -0
  6. package/dist/core-client.d.ts.map +1 -1
  7. package/dist/core-client.js +21 -0
  8. package/dist/core-client.js.map +1 -1
  9. package/dist/gen/fees/v1/fees_pb.d.ts +124 -0
  10. package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -0
  11. package/dist/gen/fees/v1/fees_pb.js +39 -0
  12. package/dist/gen/fees/v1/fees_pb.js.map +1 -0
  13. package/dist/gen/index.d.ts +4 -1
  14. package/dist/gen/index.js +4 -1
  15. package/dist/gen/ratelimit/v1/ratelimit_pb.d.ts +223 -0
  16. package/dist/gen/ratelimit/v1/ratelimit_pb.d.ts.map +1 -0
  17. package/dist/gen/ratelimit/v1/ratelimit_pb.js +86 -0
  18. package/dist/gen/ratelimit/v1/ratelimit_pb.js.map +1 -0
  19. package/dist/gen/vip/v1/vip_pb.d.ts +277 -0
  20. package/dist/gen/vip/v1/vip_pb.d.ts.map +1 -0
  21. package/dist/gen/vip/v1/vip_pb.js +60 -0
  22. package/dist/gen/vip/v1/vip_pb.js.map +1 -0
  23. package/dist/index.d.ts +8 -1
  24. package/dist/services/accounts/accounts.js +1 -1
  25. package/dist/services/accounts/accounts.js.map +1 -1
  26. package/dist/services/accounts/accounts.schemas.d.ts +13 -13
  27. package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
  28. package/dist/services/accounts/accounts.schemas.js +11 -11
  29. package/dist/services/accounts/accounts.schemas.js.map +1 -1
  30. package/dist/services/address-book/address-book.js.map +1 -1
  31. package/dist/services/address-book/address-book.schemas.d.ts +751 -751
  32. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
  33. package/dist/services/address-book/address-book.schemas.js +160 -159
  34. package/dist/services/address-book/address-book.schemas.js.map +1 -1
  35. package/dist/services/api-keys/api-keys.d.ts +6 -6
  36. package/dist/services/api-keys/api-keys.d.ts.map +1 -1
  37. package/dist/services/api-keys/api-keys.js.map +1 -1
  38. package/dist/services/api-keys/api-keys.schemas.d.ts +62 -62
  39. package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -1
  40. package/dist/services/api-keys/api-keys.schemas.js +34 -34
  41. package/dist/services/api-keys/api-keys.schemas.js.map +1 -1
  42. package/dist/services/auth/auth.d.ts +39 -39
  43. package/dist/services/auth/auth.d.ts.map +1 -1
  44. package/dist/services/auth/auth.js +19 -18
  45. package/dist/services/auth/auth.js.map +1 -1
  46. package/dist/services/auth/profile/profile.d.ts +2 -2
  47. package/dist/services/auth/profile/profile.d.ts.map +1 -1
  48. package/dist/services/auth/profile/profile.js +3 -2
  49. package/dist/services/auth/profile/profile.js.map +1 -1
  50. package/dist/services/auth/profile/profile.schemas.d.ts +41 -41
  51. package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -1
  52. package/dist/services/auth/profile/profile.schemas.js +27 -27
  53. package/dist/services/auth/profile/profile.schemas.js.map +1 -1
  54. package/dist/services/auth/session.schemas.js +17 -17
  55. package/dist/services/auth/session.schemas.js.map +1 -1
  56. package/dist/services/balances/balances.d.ts.map +1 -1
  57. package/dist/services/balances/balances.js +3 -2
  58. package/dist/services/balances/balances.js.map +1 -1
  59. package/dist/services/balances/balances.schemas.d.ts +95 -95
  60. package/dist/services/balances/balances.schemas.d.ts.map +1 -1
  61. package/dist/services/balances/balances.schemas.js +61 -61
  62. package/dist/services/balances/balances.schemas.js.map +1 -1
  63. package/dist/services/candles/candles.d.ts.map +1 -1
  64. package/dist/services/candles/candles.js +5 -4
  65. package/dist/services/candles/candles.js.map +1 -1
  66. package/dist/services/candles/candles.schemas.d.ts +64 -64
  67. package/dist/services/candles/candles.schemas.d.ts.map +1 -1
  68. package/dist/services/candles/candles.schemas.js +47 -47
  69. package/dist/services/candles/candles.schemas.js.map +1 -1
  70. package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
  71. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +68 -68
  72. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
  73. package/dist/services/chain-analytics/chain-analytics.schemas.js +29 -29
  74. package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
  75. package/dist/services/deposit/deposit.js.map +1 -1
  76. package/dist/services/deposit/deposit.schemas.d.ts +17 -17
  77. package/dist/services/deposit/deposit.schemas.d.ts.map +1 -1
  78. package/dist/services/deposit/deposit.schemas.js +11 -11
  79. package/dist/services/deposit/deposit.schemas.js.map +1 -1
  80. package/dist/services/fees/fees.d.ts +19 -0
  81. package/dist/services/fees/fees.d.ts.map +1 -0
  82. package/dist/services/fees/fees.js +32 -0
  83. package/dist/services/fees/fees.js.map +1 -0
  84. package/dist/services/fees/fees.schemas.d.ts +28 -0
  85. package/dist/services/fees/fees.schemas.d.ts.map +1 -0
  86. package/dist/services/fees/fees.schemas.js +25 -0
  87. package/dist/services/fees/fees.schemas.js.map +1 -0
  88. package/dist/services/fees/fees.types.d.ts +2 -0
  89. package/dist/services/fees/index.d.ts +3 -0
  90. package/dist/services/guard-signer/guard-signer.js.map +1 -1
  91. package/dist/services/guard-signer/guard-signer.schemas.d.ts +75 -75
  92. package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -1
  93. package/dist/services/guard-signer/guard-signer.schemas.js +42 -42
  94. package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -1
  95. package/dist/services/heatmap/heatmap.d.ts.map +1 -1
  96. package/dist/services/heatmap/heatmap.js +5 -4
  97. package/dist/services/heatmap/heatmap.js.map +1 -1
  98. package/dist/services/heatmap/heatmap.schemas.d.ts +138 -138
  99. package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
  100. package/dist/services/heatmap/heatmap.schemas.js +47 -47
  101. package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
  102. package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
  103. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +53 -53
  104. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
  105. package/dist/services/internal-transfers/internal-transfers.schemas.js +27 -27
  106. package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
  107. package/dist/services/lifecycle/lifecycle.d.ts.map +1 -1
  108. package/dist/services/lifecycle/lifecycle.js +3 -2
  109. package/dist/services/lifecycle/lifecycle.js.map +1 -1
  110. package/dist/services/lifecycle/lifecycle.schemas.d.ts +614 -614
  111. package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -1
  112. package/dist/services/lifecycle/lifecycle.schemas.js +146 -146
  113. package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -1
  114. package/dist/services/market-data/market-data.d.ts.map +1 -1
  115. package/dist/services/market-data/market-data.js +4 -3
  116. package/dist/services/market-data/market-data.js.map +1 -1
  117. package/dist/services/market-data/market-data.schemas.d.ts +19 -19
  118. package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
  119. package/dist/services/market-data/market-data.schemas.js +50 -50
  120. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  121. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  122. package/dist/services/market-overview/market-overview.js +3 -2
  123. package/dist/services/market-overview/market-overview.js.map +1 -1
  124. package/dist/services/market-overview/market-overview.schemas.d.ts +37 -37
  125. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  126. package/dist/services/market-overview/market-overview.schemas.js +33 -33
  127. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  128. package/dist/services/mfa/mfa.js +1 -1
  129. package/dist/services/mfa/mfa.js.map +1 -1
  130. package/dist/services/mfa/mfa.schemas.d.ts +206 -206
  131. package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
  132. package/dist/services/mfa/mfa.schemas.js +83 -83
  133. package/dist/services/mfa/mfa.schemas.js.map +1 -1
  134. package/dist/services/orderbook/orderbook.d.ts +2 -2
  135. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  136. package/dist/services/orderbook/orderbook.js +3 -2
  137. package/dist/services/orderbook/orderbook.js.map +1 -1
  138. package/dist/services/orderbook/orderbook.schemas.d.ts +23 -23
  139. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
  140. package/dist/services/orderbook/orderbook.schemas.js +15 -15
  141. package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
  142. package/dist/services/orders/order-errors.schemas.d.ts +18 -18
  143. package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
  144. package/dist/services/orders/order-errors.schemas.js +8 -8
  145. package/dist/services/orders/order-errors.schemas.js.map +1 -1
  146. package/dist/services/orders/orders-batch.schemas.d.ts +492 -492
  147. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  148. package/dist/services/orders/orders-batch.schemas.js +117 -117
  149. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  150. package/dist/services/orders/orders-identifiers.schemas.js +5 -5
  151. package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
  152. package/dist/services/orders/orders-input.schemas.d.ts +648 -648
  153. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  154. package/dist/services/orders/orders-input.schemas.js +95 -95
  155. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  156. package/dist/services/orders/orders-modify.schemas.d.ts +351 -351
  157. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  158. package/dist/services/orders/orders-modify.schemas.js +44 -44
  159. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  160. package/dist/services/orders/orders-output.schemas.d.ts +179 -179
  161. package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
  162. package/dist/services/orders/orders-output.schemas.js +49 -49
  163. package/dist/services/orders/orders-output.schemas.js.map +1 -1
  164. package/dist/services/orders/orders-risk.schemas.d.ts +226 -226
  165. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  166. package/dist/services/orders/orders-risk.schemas.js +69 -69
  167. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  168. package/dist/services/orders/orders.d.ts +6 -6
  169. package/dist/services/orders/orders.d.ts.map +1 -1
  170. package/dist/services/orders/orders.js +4 -3
  171. package/dist/services/orders/orders.js.map +1 -1
  172. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +6 -6
  173. package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
  174. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  175. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +105 -105
  176. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
  177. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +49 -49
  178. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
  179. package/dist/services/policies/shared.d.ts +5 -5
  180. package/dist/services/policies/shared.d.ts.map +1 -1
  181. package/dist/services/policies/shared.js +10 -10
  182. package/dist/services/policies/shared.js.map +1 -1
  183. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +6 -6
  184. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
  185. package/dist/services/policies/subaccount-policies/subaccount-policies.js +3 -2
  186. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  187. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +124 -124
  188. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
  189. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +75 -75
  190. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
  191. package/dist/services/rate-limits/index.d.ts +4 -0
  192. package/dist/services/rate-limits/rate-limits.codecs.d.ts +6 -0
  193. package/dist/services/rate-limits/rate-limits.codecs.d.ts.map +1 -0
  194. package/dist/services/rate-limits/rate-limits.codecs.js +11 -0
  195. package/dist/services/rate-limits/rate-limits.codecs.js.map +1 -0
  196. package/dist/services/rate-limits/rate-limits.d.ts +24 -0
  197. package/dist/services/rate-limits/rate-limits.d.ts.map +1 -0
  198. package/dist/services/rate-limits/rate-limits.js +40 -0
  199. package/dist/services/rate-limits/rate-limits.js.map +1 -0
  200. package/dist/services/rate-limits/rate-limits.schemas.d.ts +58 -0
  201. package/dist/services/rate-limits/rate-limits.schemas.d.ts.map +1 -0
  202. package/dist/services/rate-limits/rate-limits.schemas.js +30 -0
  203. package/dist/services/rate-limits/rate-limits.schemas.js.map +1 -0
  204. package/dist/services/rate-limits/rate-limits.types.d.ts +3 -0
  205. package/dist/services/shared.js +11 -11
  206. package/dist/services/shared.js.map +1 -1
  207. package/dist/services/social-verification/social-verification.d.ts +3 -3
  208. package/dist/services/social-verification/social-verification.d.ts.map +1 -1
  209. package/dist/services/social-verification/social-verification.js.map +1 -1
  210. package/dist/services/social-verification/social-verification.schemas.d.ts +54 -54
  211. package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
  212. package/dist/services/social-verification/social-verification.schemas.js +28 -28
  213. package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
  214. package/dist/services/subaccounts/subaccounts.d.ts +14 -14
  215. package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
  216. package/dist/services/subaccounts/subaccounts.js +9 -8
  217. package/dist/services/subaccounts/subaccounts.js.map +1 -1
  218. package/dist/services/subaccounts/subaccounts.schemas.d.ts +137 -137
  219. package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
  220. package/dist/services/subaccounts/subaccounts.schemas.js +72 -72
  221. package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
  222. package/dist/services/trades/trades.d.ts +2 -2
  223. package/dist/services/trades/trades.d.ts.map +1 -1
  224. package/dist/services/trades/trades.js +3 -2
  225. package/dist/services/trades/trades.js.map +1 -1
  226. package/dist/services/trades/trades.schemas.d.ts +31 -31
  227. package/dist/services/trades/trades.schemas.d.ts.map +1 -1
  228. package/dist/services/trades/trades.schemas.js +24 -24
  229. package/dist/services/trades/trades.schemas.js.map +1 -1
  230. package/dist/services/trading-withdraws/trading-withdraws.js +1 -1
  231. package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
  232. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +45 -45
  233. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -1
  234. package/dist/services/trading-withdraws/trading-withdraws.schemas.js +36 -36
  235. package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -1
  236. package/dist/services/transfers/transfers.d.ts.map +1 -1
  237. package/dist/services/transfers/transfers.js +3 -2
  238. package/dist/services/transfers/transfers.js.map +1 -1
  239. package/dist/services/transfers/transfers.schemas.d.ts +42 -42
  240. package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
  241. package/dist/services/transfers/transfers.schemas.js +30 -30
  242. package/dist/services/transfers/transfers.schemas.js.map +1 -1
  243. package/dist/services/triggers/trigger-child-order.schemas.js +23 -23
  244. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
  245. package/dist/services/triggers/trigger-input.schemas.d.ts +226 -226
  246. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  247. package/dist/services/triggers/trigger-input.schemas.js +53 -53
  248. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  249. package/dist/services/triggers/triggers-output.schemas.d.ts +218 -218
  250. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  251. package/dist/services/triggers/triggers-output.schemas.js +152 -152
  252. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  253. package/dist/services/triggers/triggers.d.ts.map +1 -1
  254. package/dist/services/triggers/triggers.js +4 -3
  255. package/dist/services/triggers/triggers.js.map +1 -1
  256. package/dist/services/vip/index.d.ts +3 -0
  257. package/dist/services/vip/vip.d.ts +22 -0
  258. package/dist/services/vip/vip.d.ts.map +1 -0
  259. package/dist/services/vip/vip.js +35 -0
  260. package/dist/services/vip/vip.js.map +1 -0
  261. package/dist/services/vip/vip.schemas.d.ts +90 -0
  262. package/dist/services/vip/vip.schemas.d.ts.map +1 -0
  263. package/dist/services/vip/vip.schemas.js +47 -0
  264. package/dist/services/vip/vip.schemas.js.map +1 -0
  265. package/dist/services/vip/vip.types.d.ts +2 -0
  266. package/dist/services/whiteboard/whiteboard.js.map +1 -1
  267. package/dist/services/whiteboard/whiteboard.schemas.d.ts +379 -379
  268. package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -1
  269. package/dist/services/whiteboard/whiteboard.schemas.js +71 -71
  270. package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -1
  271. package/dist/services/zipper/zipper.js.map +1 -1
  272. package/dist/services/zipper/zipper.schemas.d.ts +1 -1
  273. package/dist/services/zipper/zipper.schemas.js +54 -54
  274. package/dist/services/zipper/zipper.schemas.js.map +1 -1
  275. package/dist/shared/account-scope.d.ts +6 -6
  276. package/dist/shared/account-scope.d.ts.map +1 -1
  277. package/dist/shared/account-scope.js +3 -3
  278. package/dist/shared/account-scope.js.map +1 -1
  279. package/dist/shared/connect-error-mapping.js +2 -2
  280. package/dist/shared/connect-error-mapping.js.map +1 -1
  281. package/dist/shared/rate-limit.schemas.d.ts +12 -12
  282. package/dist/shared/rate-limit.schemas.d.ts.map +1 -1
  283. package/dist/shared/rate-limit.schemas.js +7 -7
  284. package/dist/shared/rate-limit.schemas.js.map +1 -1
  285. package/dist/shared/schemas.js +26 -26
  286. package/dist/shared/schemas.js.map +1 -1
  287. package/dist/shared/validation.js +1 -6
  288. package/dist/shared/validation.js.map +1 -1
  289. package/dist/utils/connect-order-errors.js +2 -2
  290. package/dist/utils/connect-order-errors.js.map +1 -1
  291. package/dist/wired-services.d.ts.map +1 -1
  292. package/dist/wired-services.js +6 -0
  293. package/dist/wired-services.js.map +1 -1
  294. package/package.json +3 -3
  295. package/dist/shared/validation.d.ts +0 -14
  296. package/dist/shared/validation.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"whiteboard.schemas.d.ts","names":[],"sources":["../../../src/services/whiteboard/whiteboard.schemas.ts"],"mappings":";;;cAmCa,0BAAwB,qBAAA;KACzB,qBAAqB,qBAAE,mBAAmB;cAEzC,8BAA4B,qBAAA;KAC7B,yBAAyB,qBAAE,mBAAmB;cAE7C,8BAA4B,qBAAA;KAC7B,yBAAyB,qBAAE,mBAAmB;cAE7C,gCAA8B,qBAAA;KAC/B,2BAA2B,qBAAE,mBAAmB;cAE/C,0BAAwB,qBAAA,0CAAA;KACzB,qBAAqB,qBAAE,mBAAmB;cAiBzC,+BAA6B,qBAAA;;;;;KAW9B,0BAA0B,qBAAE,kBAAkB;cAW7C,kCAAgC,qBAAA;;;;;;;;;;;;;;;;;;;KAQjC,6BAA6B,qBAAE,kBAAkB;cAEhD,+BAA6B,qBAAA;;;KAI9B,0BAA0B,qBAAE,kBAAkB;cAE7C,iCAA+B,qBAAA;;;;;KAMhC,4BAA4B,qBAAE,kBAAkB;cAE/C,kCAAgC,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;KAkBjC,6BAA6B,qBAAE,kBAAkB;cAEhD,qCAAmC,qBAAA;;;;;;;;;;;;;;;;KAKpC,gCAAgC,qBAAE,kBACnC;cAGE,mCAAiC,qBAAA;;;;KAKlC,8BAA8B,qBAAE,kBAAkB;cAEjD,oCAAkC,qBAAA;;;KAInC,+BAA+B,qBAAE,kBAAkB;cAElD,6BAA2B,qBAAA;;;;;KAM5B,wBAAwB,qBAAE,mBAAmB;cAE5C,wBAAsB,qBAAA;;;;;;;;KAKvB,mBAAmB,qBAAE,mBAAmB;cAEvC,0BAAwB,qBAAA;;;;;KAgBzB,qBAAqB,qBAAE,mBAAmB;cAEzC,uBAAqB,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BtB,kBAAkB,qBAAE,mBAAmB;cAEtC,+BAA6B,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAK9B,0BAA0B,qBAAE,mBAAmB;cAE9C,8BAA4B,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM7B,yBAAyB,qBAAE,mBAAmB;cAE7C,mCAAiC,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAClC,8BAA8B,qBAAE,mBAAmB;cAElD,gCAA8B,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAC/B,2BAA2B,qBAAE,mBAAmB;cAE/C,mCAAiC,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAClC,8BAA8B,qBAAE,mBAAmB;cAElD,sCAAoC,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KACrC,iCAAiC,qBAAE,mBACpC;cAGE,kCAAgC,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKjC,6BAA6B,qBAAE,mBAAmB;cAEjD,oCAAkC,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKnC,+BAA+B,qBAAE,mBAAmB;cAEnD,iCAA+B,qBAAA;;;;KAKhC,4BAA4B,qBAAE,mBAAmB;cAEhD,iCAA+B,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkBhC,4BAA4B,qBAAE,mBAAmB"}
1
+ {"version":3,"file":"whiteboard.schemas.d.ts","names":[],"sources":["../../../src/services/whiteboard/whiteboard.schemas.ts"],"mappings":";;;cAmCa,0BAAwB,EAAA;KACzB,qBAAqB,EAAE,mBAAmB;cAEzC,8BAA4B,EAAA;KAC7B,yBAAyB,EAAE,mBAAmB;cAE7C,8BAA4B,EAAA;KAC7B,yBAAyB,EAAE,mBAAmB;cAE7C,gCAA8B,EAAA;KAC/B,2BAA2B,EAAE,mBAAmB;cAE/C,0BAAwB,EAAA,0CAAA;KACzB,qBAAqB,EAAE,mBAAmB;cAiBzC,+BAA6B,EAAA;;;;;KAW9B,0BAA0B,EAAE,kBAAkB;cAW7C,kCAAgC,EAAA;;;;;;;;;;;;;;;;;;;KAQjC,6BAA6B,EAAE,kBAAkB;cAEhD,+BAA6B,EAAA;;;KAI9B,0BAA0B,EAAE,kBAAkB;cAE7C,iCAA+B,EAAA;;;;;KAMhC,4BAA4B,EAAE,kBAAkB;cAE/C,kCAAgC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;KAkBjC,6BAA6B,EAAE,kBAAkB;cAEhD,qCAAmC,EAAA;;;;;;;;;;;;;;;;KAKpC,gCAAgC,EAAE,kBACnC;cAGE,mCAAiC,EAAA;;;;KAKlC,8BAA8B,EAAE,kBAAkB;cAEjD,oCAAkC,EAAA;;;KAInC,+BAA+B,EAAE,kBAAkB;cAElD,6BAA2B,EAAA;;;;;KAM5B,wBAAwB,EAAE,mBAAmB;cAE5C,wBAAsB,EAAA;;;;;;;;KAKvB,mBAAmB,EAAE,mBAAmB;cAEvC,0BAAwB,EAAA;;;;;KAgBzB,qBAAqB,EAAE,mBAAmB;cAEzC,uBAAqB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BtB,kBAAkB,EAAE,mBAAmB;cAEtC,+BAA6B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAK9B,0BAA0B,EAAE,mBAAmB;cAE9C,8BAA4B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM7B,yBAAyB,EAAE,mBAAmB;cAE7C,mCAAiC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAClC,8BAA8B,EAAE,mBAAmB;cAElD,gCAA8B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAC/B,2BAA2B,EAAE,mBAAmB;cAE/C,mCAAiC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAClC,8BAA8B,EAAE,mBAAmB;cAElD,sCAAoC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KACrC,iCAAiC,EAAE,mBACpC;cAGE,kCAAgC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKjC,6BAA6B,EAAE,mBAAmB;cAEjD,oCAAkC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKnC,+BAA+B,EAAE,mBAAmB;cAEnD,iCAA+B,EAAA;;;;KAKhC,4BAA4B,EAAE,mBAAmB;cAEhD,iCAA+B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkBhC,4BAA4B,EAAE,mBAAmB"}
@@ -1,129 +1,129 @@
1
- import { validation_exports } from "../../shared/validation.js";
2
1
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
3
2
  import { idToBigInt } from "../../utils/base58-id.js";
4
3
  import { JsonObjectSchema, OptionalTimestampMsSchema, PublicIdSchema } from "../../shared/schemas.js";
5
4
  import { BoardAclSubjectType, BoardAudience, BoardRole } from "../../gen/collab/v1/whiteboard_pb.js";
6
5
  import { WHITEBOARD_ACL_SUBJECT_TYPE_VALUES, WHITEBOARD_AUDIENCE_VALUES, WHITEBOARD_RESOLVED_ROLE_VALUES, WHITEBOARD_WRITABLE_ROLE_VALUES, WhiteboardAclSubjectTypeCodec, WhiteboardAudienceCodec, WhiteboardRoleCodec } from "./whiteboard.codecs.js";
6
+ import * as v from "valibot";
7
7
  //#region src/services/whiteboard/whiteboard.schemas.ts
8
8
  function requiredRoleLabelFor(value) {
9
9
  return requiredEnumLabel(WhiteboardRoleCodec.protoToOutput, value, "WhiteboardRoleSchema", "role");
10
10
  }
11
- const WhiteboardIdSchema = validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1));
12
- const WhiteboardTitleSchema = validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1), validation_exports.maxLength(200));
13
- const Uint64StringSchema = validation_exports.pipe(validation_exports.bigint(), validation_exports.transform((value) => value.toString()));
14
- const WhiteboardAudienceSchema = validation_exports.picklist(WHITEBOARD_AUDIENCE_VALUES);
15
- const WhiteboardWritableRoleSchema = validation_exports.picklist(WHITEBOARD_WRITABLE_ROLE_VALUES);
16
- validation_exports.picklist(WHITEBOARD_RESOLVED_ROLE_VALUES);
17
- const WhiteboardAclSubjectTypeSchema = validation_exports.picklist(WHITEBOARD_ACL_SUBJECT_TYPE_VALUES);
11
+ const WhiteboardIdSchema = v.pipe(v.string(), v.trim(), v.minLength(1));
12
+ const WhiteboardTitleSchema = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200));
13
+ const Uint64StringSchema = v.pipe(v.bigint(), v.transform((value) => value.toString()));
14
+ const WhiteboardAudienceSchema = v.picklist(WHITEBOARD_AUDIENCE_VALUES);
15
+ const WhiteboardWritableRoleSchema = v.picklist(WHITEBOARD_WRITABLE_ROLE_VALUES);
16
+ v.picklist(WHITEBOARD_RESOLVED_ROLE_VALUES);
17
+ const WhiteboardAclSubjectTypeSchema = v.picklist(WHITEBOARD_ACL_SUBJECT_TYPE_VALUES);
18
18
  const WhiteboardSnapshotSchema = JsonObjectSchema;
19
- const WhiteboardAudienceInputSchema = validation_exports.pipe(WhiteboardAudienceSchema, validation_exports.transform((value) => WhiteboardAudienceCodec.inputToProto[value]));
20
- const WhiteboardRoleInputSchema = validation_exports.pipe(WhiteboardWritableRoleSchema, validation_exports.transform((value) => WhiteboardRoleCodec.inputToProto[value]));
21
- const WhiteboardAclSubjectTypeInputSchema = validation_exports.pipe(WhiteboardAclSubjectTypeSchema, validation_exports.transform((value) => WhiteboardAclSubjectTypeCodec.inputToProto[value]));
22
- const WhiteboardAclEntryInputSchema = validation_exports.strictObject({
19
+ const WhiteboardAudienceInputSchema = v.pipe(WhiteboardAudienceSchema, v.transform((value) => WhiteboardAudienceCodec.inputToProto[value]));
20
+ const WhiteboardRoleInputSchema = v.pipe(WhiteboardWritableRoleSchema, v.transform((value) => WhiteboardRoleCodec.inputToProto[value]));
21
+ const WhiteboardAclSubjectTypeInputSchema = v.pipe(WhiteboardAclSubjectTypeSchema, v.transform((value) => WhiteboardAclSubjectTypeCodec.inputToProto[value]));
22
+ const WhiteboardAclEntryInputSchema = v.strictObject({
23
23
  subjectType: WhiteboardAclSubjectTypeInputSchema,
24
- subjectId: validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1), validation_exports.transform((value) => idToBigInt(value, "subjectId"))),
24
+ subjectId: v.pipe(v.string(), v.trim(), v.minLength(1), v.transform((value) => idToBigInt(value, "subjectId"))),
25
25
  role: WhiteboardRoleInputSchema
26
26
  });
27
- const WhiteboardAclEntriesInputSchema = validation_exports.pipe(validation_exports.array(WhiteboardAclEntryInputSchema), validation_exports.maxLength(256), validation_exports.check((entries) => {
27
+ const WhiteboardAclEntriesInputSchema = v.pipe(v.array(WhiteboardAclEntryInputSchema), v.maxLength(256), v.check((entries) => {
28
28
  const keys = entries.map((entry) => `${entry.subjectType}:${entry.subjectId.toString()}`);
29
29
  return new Set(keys).size === keys.length;
30
30
  }, "aclEntries must not contain duplicate subjects"));
31
- const CreateWhiteboardBoardInputSchema = validation_exports.strictObject({
31
+ const CreateWhiteboardBoardInputSchema = v.strictObject({
32
32
  title: WhiteboardTitleSchema,
33
33
  audience: WhiteboardAudienceInputSchema,
34
34
  defaultRole: WhiteboardRoleInputSchema,
35
- aclEntries: validation_exports.optional(WhiteboardAclEntriesInputSchema, []),
36
- initialSnapshot: validation_exports.optional(WhiteboardSnapshotSchema)
35
+ aclEntries: v.optional(WhiteboardAclEntriesInputSchema, []),
36
+ initialSnapshot: v.optional(WhiteboardSnapshotSchema)
37
37
  });
38
- const GetWhiteboardBoardInputSchema = validation_exports.object({ boardId: WhiteboardIdSchema });
39
- const ListWhiteboardBoardsInputSchema = validation_exports.object({
40
- includeArchived: validation_exports.optional(validation_exports.boolean(), false),
41
- limit: validation_exports.optional(validation_exports.pipe(validation_exports.number(), validation_exports.integer(), validation_exports.gtValue(0), validation_exports.maxValue(500))),
42
- pageToken: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim()), "")
38
+ const GetWhiteboardBoardInputSchema = v.object({ boardId: WhiteboardIdSchema });
39
+ const ListWhiteboardBoardsInputSchema = v.object({
40
+ includeArchived: v.optional(v.boolean(), false),
41
+ limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(500))),
42
+ pageToken: v.optional(v.pipe(v.string(), v.trim()), "")
43
43
  });
44
- const UpdateWhiteboardBoardInputSchema = validation_exports.pipe(validation_exports.strictObject({
44
+ const UpdateWhiteboardBoardInputSchema = v.pipe(v.strictObject({
45
45
  boardId: WhiteboardIdSchema,
46
- title: validation_exports.optional(WhiteboardTitleSchema),
47
- audience: validation_exports.optional(WhiteboardAudienceInputSchema),
48
- defaultRole: validation_exports.optional(WhiteboardRoleInputSchema),
49
- initialSnapshot: validation_exports.optional(WhiteboardSnapshotSchema)
50
- }), validation_exports.check((input) => input.title !== void 0 || input.audience !== void 0 || input.defaultRole !== void 0 || input.initialSnapshot !== void 0, "At least one mutable board field is required"));
51
- const UpdateWhiteboardBoardAclInputSchema = validation_exports.strictObject({
46
+ title: v.optional(WhiteboardTitleSchema),
47
+ audience: v.optional(WhiteboardAudienceInputSchema),
48
+ defaultRole: v.optional(WhiteboardRoleInputSchema),
49
+ initialSnapshot: v.optional(WhiteboardSnapshotSchema)
50
+ }), v.check((input) => input.title !== void 0 || input.audience !== void 0 || input.defaultRole !== void 0 || input.initialSnapshot !== void 0, "At least one mutable board field is required"));
51
+ const UpdateWhiteboardBoardAclInputSchema = v.strictObject({
52
52
  boardId: WhiteboardIdSchema,
53
53
  aclEntries: WhiteboardAclEntriesInputSchema
54
54
  });
55
- const ArchiveWhiteboardBoardInputSchema = validation_exports.strictObject({
55
+ const ArchiveWhiteboardBoardInputSchema = v.strictObject({
56
56
  boardId: WhiteboardIdSchema,
57
- archived: validation_exports.boolean()
57
+ archived: v.boolean()
58
58
  });
59
- const MintWhiteboardJoinTokenInputSchema = validation_exports.strictObject({ boardId: WhiteboardIdSchema });
60
- const WhiteboardPermissionsSchema = validation_exports.object({
61
- canView: validation_exports.boolean(),
62
- canEdit: validation_exports.boolean(),
63
- canManage: validation_exports.boolean()
59
+ const MintWhiteboardJoinTokenInputSchema = v.strictObject({ boardId: WhiteboardIdSchema });
60
+ const WhiteboardPermissionsSchema = v.object({
61
+ canView: v.boolean(),
62
+ canEdit: v.boolean(),
63
+ canManage: v.boolean()
64
64
  });
65
- const WhiteboardAccessSchema = validation_exports.object({
66
- role: validation_exports.pipe(validation_exports.enum(BoardRole), validation_exports.transform(requiredRoleLabelFor)),
67
- permissions: validation_exports.optional(WhiteboardPermissionsSchema)
65
+ const WhiteboardAccessSchema = v.object({
66
+ role: v.pipe(v.enum(BoardRole), v.transform(requiredRoleLabelFor)),
67
+ permissions: v.optional(WhiteboardPermissionsSchema)
68
68
  });
69
- const WhiteboardAclEntrySchema = validation_exports.object({
70
- subjectType: validation_exports.pipe(validation_exports.enum(BoardAclSubjectType), validation_exports.transform((value) => requiredEnumLabel(WhiteboardAclSubjectTypeCodec.protoToOutput, value, "WhiteboardAclSubjectTypeSchema", "subject type"))),
69
+ const WhiteboardAclEntrySchema = v.object({
70
+ subjectType: v.pipe(v.enum(BoardAclSubjectType), v.transform((value) => requiredEnumLabel(WhiteboardAclSubjectTypeCodec.protoToOutput, value, "WhiteboardAclSubjectTypeSchema", "subject type"))),
71
71
  subjectId: PublicIdSchema,
72
- role: validation_exports.pipe(validation_exports.enum(BoardRole), validation_exports.transform(requiredRoleLabelFor))
72
+ role: v.pipe(v.enum(BoardRole), v.transform(requiredRoleLabelFor))
73
73
  });
74
- const WhiteboardBoardSchema = validation_exports.pipe(validation_exports.object({
75
- boardId: validation_exports.string(),
74
+ const WhiteboardBoardSchema = v.pipe(v.object({
75
+ boardId: v.string(),
76
76
  ownerAccountId: PublicIdSchema,
77
- title: validation_exports.string(),
78
- audience: validation_exports.pipe(validation_exports.enum(BoardAudience), validation_exports.transform((value) => requiredEnumLabel(WhiteboardAudienceCodec.protoToOutput, value, "WhiteboardAudienceSchema", "audience"))),
79
- defaultRole: validation_exports.pipe(validation_exports.enum(BoardRole), validation_exports.transform(requiredRoleLabelFor)),
77
+ title: v.string(),
78
+ audience: v.pipe(v.enum(BoardAudience), v.transform((value) => requiredEnumLabel(WhiteboardAudienceCodec.protoToOutput, value, "WhiteboardAudienceSchema", "audience"))),
79
+ defaultRole: v.pipe(v.enum(BoardRole), v.transform(requiredRoleLabelFor)),
80
80
  accessVersion: Uint64StringSchema,
81
- initialSnapshot: validation_exports.optional(WhiteboardSnapshotSchema),
81
+ initialSnapshot: v.optional(WhiteboardSnapshotSchema),
82
82
  createdAt: OptionalTimestampMsSchema,
83
83
  updatedAt: OptionalTimestampMsSchema,
84
84
  archivedAt: OptionalTimestampMsSchema
85
- }), validation_exports.transform(({ createdAt, updatedAt, archivedAt, ...board }) => ({
85
+ }), v.transform(({ createdAt, updatedAt, archivedAt, ...board }) => ({
86
86
  ...board,
87
87
  createdAtMs: createdAt,
88
88
  updatedAtMs: updatedAt,
89
89
  archivedAtMs: archivedAt
90
90
  })));
91
- const WhiteboardBoardListItemSchema = validation_exports.object({
91
+ const WhiteboardBoardListItemSchema = v.object({
92
92
  board: WhiteboardBoardSchema,
93
- access: validation_exports.optional(WhiteboardAccessSchema)
93
+ access: v.optional(WhiteboardAccessSchema)
94
94
  });
95
- const WhiteboardBoardDetailsSchema = validation_exports.object({
95
+ const WhiteboardBoardDetailsSchema = v.object({
96
96
  board: WhiteboardBoardSchema,
97
- aclEntries: validation_exports.optional(validation_exports.array(WhiteboardAclEntrySchema), []),
98
- access: validation_exports.optional(WhiteboardAccessSchema)
97
+ aclEntries: v.optional(v.array(WhiteboardAclEntrySchema), []),
98
+ access: v.optional(WhiteboardAccessSchema)
99
99
  });
100
100
  const CreateWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;
101
101
  const GetWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;
102
102
  const UpdateWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;
103
103
  const UpdateWhiteboardBoardAclResultSchema = WhiteboardBoardDetailsSchema;
104
- const ListWhiteboardBoardsResultSchema = validation_exports.object({
105
- boards: validation_exports.optional(validation_exports.array(WhiteboardBoardListItemSchema), []),
106
- nextPageToken: validation_exports.optional(validation_exports.string(), "")
104
+ const ListWhiteboardBoardsResultSchema = v.object({
105
+ boards: v.optional(v.array(WhiteboardBoardListItemSchema), []),
106
+ nextPageToken: v.optional(v.string(), "")
107
107
  });
108
- const ArchiveWhiteboardBoardResultSchema = validation_exports.object({
109
- board: validation_exports.optional(WhiteboardBoardSchema),
110
- access: validation_exports.optional(WhiteboardAccessSchema)
108
+ const ArchiveWhiteboardBoardResultSchema = v.object({
109
+ board: v.optional(WhiteboardBoardSchema),
110
+ access: v.optional(WhiteboardAccessSchema)
111
111
  });
112
- const WhiteboardPresencePayloadSchema = validation_exports.object({
112
+ const WhiteboardPresencePayloadSchema = v.object({
113
113
  accountId: PublicIdSchema,
114
- role: validation_exports.pipe(validation_exports.enum(BoardRole), validation_exports.transform(requiredRoleLabelFor))
114
+ role: v.pipe(v.enum(BoardRole), v.transform(requiredRoleLabelFor))
115
115
  });
116
- const WhiteboardJoinTokenResultSchema = validation_exports.pipe(validation_exports.object({
117
- boardId: validation_exports.string(),
118
- access: validation_exports.optional(WhiteboardAccessSchema),
116
+ const WhiteboardJoinTokenResultSchema = v.pipe(v.object({
117
+ boardId: v.string(),
118
+ access: v.optional(WhiteboardAccessSchema),
119
119
  expiresAt: OptionalTimestampMsSchema,
120
- token: validation_exports.string(),
121
- roomId: validation_exports.string(),
122
- connectionId: validation_exports.string(),
123
- socketPath: validation_exports.string(),
124
- presence: validation_exports.optional(WhiteboardPresencePayloadSchema),
120
+ token: v.string(),
121
+ roomId: v.string(),
122
+ connectionId: v.string(),
123
+ socketPath: v.string(),
124
+ presence: v.optional(WhiteboardPresencePayloadSchema),
125
125
  accessVersion: Uint64StringSchema
126
- }), validation_exports.transform(({ expiresAt, ...rest }) => ({
126
+ }), v.transform(({ expiresAt, ...rest }) => ({
127
127
  ...rest,
128
128
  expiresAtMs: expiresAt
129
129
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"whiteboard.schemas.js","names":["v","Proto.BoardRole","Proto.BoardAclSubjectType","Proto.BoardAudience"],"sources":["../../../src/services/whiteboard/whiteboard.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/collab/v1/whiteboard_pb.js\";\nimport * as v from \"../../shared/validation.js\";\nimport {\n JsonObjectSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n WHITEBOARD_ACL_SUBJECT_TYPE_VALUES,\n WHITEBOARD_AUDIENCE_VALUES,\n WHITEBOARD_RESOLVED_ROLE_VALUES,\n WHITEBOARD_WRITABLE_ROLE_VALUES,\n WhiteboardAclSubjectTypeCodec,\n WhiteboardAudienceCodec,\n WhiteboardRoleCodec,\n} from \"./whiteboard.codecs.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\n\nfunction requiredRoleLabelFor(value: Proto.BoardRole) {\n return requiredEnumLabel(\n WhiteboardRoleCodec.protoToOutput,\n value,\n \"WhiteboardRoleSchema\",\n \"role\",\n );\n}\n\nconst WhiteboardIdSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\nconst WhiteboardTitleSchema = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200));\nconst Uint64StringSchema = v.pipe(\n v.bigint(),\n v.transform((value) => value.toString()),\n);\n\nexport const WhiteboardAudienceSchema = v.picklist(WHITEBOARD_AUDIENCE_VALUES);\nexport type WhiteboardAudience = v.InferOutput<typeof WhiteboardAudienceSchema>;\n\nexport const WhiteboardWritableRoleSchema = v.picklist(WHITEBOARD_WRITABLE_ROLE_VALUES);\nexport type WhiteboardWritableRole = v.InferOutput<typeof WhiteboardWritableRoleSchema>;\n\nexport const WhiteboardResolvedRoleSchema = v.picklist(WHITEBOARD_RESOLVED_ROLE_VALUES);\nexport type WhiteboardResolvedRole = v.InferOutput<typeof WhiteboardResolvedRoleSchema>;\n\nexport const WhiteboardAclSubjectTypeSchema = v.picklist(WHITEBOARD_ACL_SUBJECT_TYPE_VALUES);\nexport type WhiteboardAclSubjectType = v.InferOutput<typeof WhiteboardAclSubjectTypeSchema>;\n\nexport const WhiteboardSnapshotSchema = JsonObjectSchema;\nexport type WhiteboardSnapshot = v.InferOutput<typeof WhiteboardSnapshotSchema>;\n\nconst WhiteboardAudienceInputSchema = v.pipe(\n WhiteboardAudienceSchema,\n v.transform((value) => WhiteboardAudienceCodec.inputToProto[value]),\n);\n\nconst WhiteboardRoleInputSchema = v.pipe(\n WhiteboardWritableRoleSchema,\n v.transform((value) => WhiteboardRoleCodec.inputToProto[value]),\n);\n\nconst WhiteboardAclSubjectTypeInputSchema = v.pipe(\n WhiteboardAclSubjectTypeSchema,\n v.transform((value) => WhiteboardAclSubjectTypeCodec.inputToProto[value]),\n);\n\nexport const WhiteboardAclEntryInputSchema = v.strictObject({\n subjectType: WhiteboardAclSubjectTypeInputSchema,\n subjectId: v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((value) => idToBigInt(value, \"subjectId\")),\n ),\n role: WhiteboardRoleInputSchema,\n});\n\nexport type WhiteboardAclEntryInput = v.InferInput<typeof WhiteboardAclEntryInputSchema>;\n\nconst WhiteboardAclEntriesInputSchema = v.pipe(\n v.array(WhiteboardAclEntryInputSchema),\n v.maxLength(256),\n v.check((entries) => {\n const keys = entries.map((entry) => `${entry.subjectType}:${entry.subjectId.toString()}`);\n return new Set(keys).size === keys.length;\n }, \"aclEntries must not contain duplicate subjects\"),\n);\n\nexport const CreateWhiteboardBoardInputSchema = v.strictObject({\n title: WhiteboardTitleSchema,\n audience: WhiteboardAudienceInputSchema,\n defaultRole: WhiteboardRoleInputSchema,\n aclEntries: v.optional(WhiteboardAclEntriesInputSchema, []),\n initialSnapshot: v.optional(WhiteboardSnapshotSchema),\n});\n\nexport type CreateWhiteboardBoardInput = v.InferInput<typeof CreateWhiteboardBoardInputSchema>;\n\nexport const GetWhiteboardBoardInputSchema = v.object({\n boardId: WhiteboardIdSchema,\n});\n\nexport type GetWhiteboardBoardInput = v.InferInput<typeof GetWhiteboardBoardInputSchema>;\n\nexport const ListWhiteboardBoardsInputSchema = v.object({\n includeArchived: v.optional(v.boolean(), false),\n limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(500))),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n});\n\nexport type ListWhiteboardBoardsInput = v.InferInput<typeof ListWhiteboardBoardsInputSchema>;\n\nexport const UpdateWhiteboardBoardInputSchema = v.pipe(\n v.strictObject({\n boardId: WhiteboardIdSchema,\n title: v.optional(WhiteboardTitleSchema),\n audience: v.optional(WhiteboardAudienceInputSchema),\n defaultRole: v.optional(WhiteboardRoleInputSchema),\n initialSnapshot: v.optional(WhiteboardSnapshotSchema),\n }),\n v.check(\n (input) =>\n input.title !== undefined ||\n input.audience !== undefined ||\n input.defaultRole !== undefined ||\n input.initialSnapshot !== undefined,\n \"At least one mutable board field is required\",\n ),\n);\n\nexport type UpdateWhiteboardBoardInput = v.InferInput<typeof UpdateWhiteboardBoardInputSchema>;\n\nexport const UpdateWhiteboardBoardAclInputSchema = v.strictObject({\n boardId: WhiteboardIdSchema,\n aclEntries: WhiteboardAclEntriesInputSchema,\n});\n\nexport type UpdateWhiteboardBoardAclInput = v.InferInput<\n typeof UpdateWhiteboardBoardAclInputSchema\n>;\n\nexport const ArchiveWhiteboardBoardInputSchema = v.strictObject({\n boardId: WhiteboardIdSchema,\n archived: v.boolean(),\n});\n\nexport type ArchiveWhiteboardBoardInput = v.InferInput<typeof ArchiveWhiteboardBoardInputSchema>;\n\nexport const MintWhiteboardJoinTokenInputSchema = v.strictObject({\n boardId: WhiteboardIdSchema,\n});\n\nexport type MintWhiteboardJoinTokenInput = v.InferInput<typeof MintWhiteboardJoinTokenInputSchema>;\n\nexport const WhiteboardPermissionsSchema = v.object({\n canView: v.boolean(),\n canEdit: v.boolean(),\n canManage: v.boolean(),\n});\n\nexport type WhiteboardPermissions = v.InferOutput<typeof WhiteboardPermissionsSchema>;\n\nexport const WhiteboardAccessSchema = v.object({\n role: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n permissions: v.optional(WhiteboardPermissionsSchema),\n});\n\nexport type WhiteboardAccess = v.InferOutput<typeof WhiteboardAccessSchema>;\n\nexport const WhiteboardAclEntrySchema = v.object({\n subjectType: v.pipe(\n v.enum(Proto.BoardAclSubjectType),\n v.transform((value) =>\n requiredEnumLabel(\n WhiteboardAclSubjectTypeCodec.protoToOutput,\n value,\n \"WhiteboardAclSubjectTypeSchema\",\n \"subject type\",\n ),\n ),\n ),\n subjectId: PublicIdSchema,\n role: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n});\n\nexport type WhiteboardAclEntry = v.InferOutput<typeof WhiteboardAclEntrySchema>;\n\nexport const WhiteboardBoardSchema = v.pipe(\n v.object({\n boardId: v.string(),\n ownerAccountId: PublicIdSchema,\n title: v.string(),\n audience: v.pipe(\n v.enum(Proto.BoardAudience),\n v.transform((value) =>\n requiredEnumLabel(\n WhiteboardAudienceCodec.protoToOutput,\n value,\n \"WhiteboardAudienceSchema\",\n \"audience\",\n ),\n ),\n ),\n defaultRole: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n accessVersion: Uint64StringSchema,\n initialSnapshot: v.optional(WhiteboardSnapshotSchema),\n createdAt: OptionalTimestampMsSchema,\n updatedAt: OptionalTimestampMsSchema,\n archivedAt: OptionalTimestampMsSchema,\n }),\n v.transform(({ createdAt, updatedAt, archivedAt, ...board }) => ({\n ...board,\n createdAtMs: createdAt,\n updatedAtMs: updatedAt,\n archivedAtMs: archivedAt,\n })),\n);\n\nexport type WhiteboardBoard = v.InferOutput<typeof WhiteboardBoardSchema>;\n\nexport const WhiteboardBoardListItemSchema = v.object({\n board: WhiteboardBoardSchema,\n access: v.optional(WhiteboardAccessSchema),\n});\n\nexport type WhiteboardBoardListItem = v.InferOutput<typeof WhiteboardBoardListItemSchema>;\n\nexport const WhiteboardBoardDetailsSchema = v.object({\n board: WhiteboardBoardSchema,\n aclEntries: v.optional(v.array(WhiteboardAclEntrySchema), []),\n access: v.optional(WhiteboardAccessSchema),\n});\n\nexport type WhiteboardBoardDetails = v.InferOutput<typeof WhiteboardBoardDetailsSchema>;\n\nexport const CreateWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;\nexport type CreateWhiteboardBoardResult = v.InferOutput<typeof CreateWhiteboardBoardResultSchema>;\n\nexport const GetWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;\nexport type GetWhiteboardBoardResult = v.InferOutput<typeof GetWhiteboardBoardResultSchema>;\n\nexport const UpdateWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;\nexport type UpdateWhiteboardBoardResult = v.InferOutput<typeof UpdateWhiteboardBoardResultSchema>;\n\nexport const UpdateWhiteboardBoardAclResultSchema = WhiteboardBoardDetailsSchema;\nexport type UpdateWhiteboardBoardAclResult = v.InferOutput<\n typeof UpdateWhiteboardBoardAclResultSchema\n>;\n\nexport const ListWhiteboardBoardsResultSchema = v.object({\n boards: v.optional(v.array(WhiteboardBoardListItemSchema), []),\n nextPageToken: v.optional(v.string(), \"\"),\n});\n\nexport type ListWhiteboardBoardsResult = v.InferOutput<typeof ListWhiteboardBoardsResultSchema>;\n\nexport const ArchiveWhiteboardBoardResultSchema = v.object({\n board: v.optional(WhiteboardBoardSchema),\n access: v.optional(WhiteboardAccessSchema),\n});\n\nexport type ArchiveWhiteboardBoardResult = v.InferOutput<typeof ArchiveWhiteboardBoardResultSchema>;\n\nexport const WhiteboardPresencePayloadSchema = v.object({\n accountId: PublicIdSchema,\n role: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n});\n\nexport type WhiteboardPresencePayload = v.InferOutput<typeof WhiteboardPresencePayloadSchema>;\n\nexport const WhiteboardJoinTokenResultSchema = v.pipe(\n v.object({\n boardId: v.string(),\n access: v.optional(WhiteboardAccessSchema),\n expiresAt: OptionalTimestampMsSchema,\n token: v.string(),\n roomId: v.string(),\n connectionId: v.string(),\n socketPath: v.string(),\n presence: v.optional(WhiteboardPresencePayloadSchema),\n accessVersion: Uint64StringSchema,\n }),\n v.transform(({ expiresAt, ...rest }) => ({\n ...rest,\n expiresAtMs: expiresAt,\n })),\n);\n\nexport type WhiteboardJoinTokenResult = v.InferOutput<typeof WhiteboardJoinTokenResultSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"whiteboard.schemas.js","names":["Proto.BoardRole","Proto.BoardAclSubjectType","Proto.BoardAudience"],"sources":["../../../src/services/whiteboard/whiteboard.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/collab/v1/whiteboard_pb.js\";\nimport * as v from \"valibot\";\nimport {\n JsonObjectSchema,\n OptionalTimestampMsSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport {\n WHITEBOARD_ACL_SUBJECT_TYPE_VALUES,\n WHITEBOARD_AUDIENCE_VALUES,\n WHITEBOARD_RESOLVED_ROLE_VALUES,\n WHITEBOARD_WRITABLE_ROLE_VALUES,\n WhiteboardAclSubjectTypeCodec,\n WhiteboardAudienceCodec,\n WhiteboardRoleCodec,\n} from \"./whiteboard.codecs.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\n\nfunction requiredRoleLabelFor(value: Proto.BoardRole) {\n return requiredEnumLabel(\n WhiteboardRoleCodec.protoToOutput,\n value,\n \"WhiteboardRoleSchema\",\n \"role\",\n );\n}\n\nconst WhiteboardIdSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\nconst WhiteboardTitleSchema = v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(200));\nconst Uint64StringSchema = v.pipe(\n v.bigint(),\n v.transform((value) => value.toString()),\n);\n\nexport const WhiteboardAudienceSchema = v.picklist(WHITEBOARD_AUDIENCE_VALUES);\nexport type WhiteboardAudience = v.InferOutput<typeof WhiteboardAudienceSchema>;\n\nexport const WhiteboardWritableRoleSchema = v.picklist(WHITEBOARD_WRITABLE_ROLE_VALUES);\nexport type WhiteboardWritableRole = v.InferOutput<typeof WhiteboardWritableRoleSchema>;\n\nexport const WhiteboardResolvedRoleSchema = v.picklist(WHITEBOARD_RESOLVED_ROLE_VALUES);\nexport type WhiteboardResolvedRole = v.InferOutput<typeof WhiteboardResolvedRoleSchema>;\n\nexport const WhiteboardAclSubjectTypeSchema = v.picklist(WHITEBOARD_ACL_SUBJECT_TYPE_VALUES);\nexport type WhiteboardAclSubjectType = v.InferOutput<typeof WhiteboardAclSubjectTypeSchema>;\n\nexport const WhiteboardSnapshotSchema = JsonObjectSchema;\nexport type WhiteboardSnapshot = v.InferOutput<typeof WhiteboardSnapshotSchema>;\n\nconst WhiteboardAudienceInputSchema = v.pipe(\n WhiteboardAudienceSchema,\n v.transform((value) => WhiteboardAudienceCodec.inputToProto[value]),\n);\n\nconst WhiteboardRoleInputSchema = v.pipe(\n WhiteboardWritableRoleSchema,\n v.transform((value) => WhiteboardRoleCodec.inputToProto[value]),\n);\n\nconst WhiteboardAclSubjectTypeInputSchema = v.pipe(\n WhiteboardAclSubjectTypeSchema,\n v.transform((value) => WhiteboardAclSubjectTypeCodec.inputToProto[value]),\n);\n\nexport const WhiteboardAclEntryInputSchema = v.strictObject({\n subjectType: WhiteboardAclSubjectTypeInputSchema,\n subjectId: v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((value) => idToBigInt(value, \"subjectId\")),\n ),\n role: WhiteboardRoleInputSchema,\n});\n\nexport type WhiteboardAclEntryInput = v.InferInput<typeof WhiteboardAclEntryInputSchema>;\n\nconst WhiteboardAclEntriesInputSchema = v.pipe(\n v.array(WhiteboardAclEntryInputSchema),\n v.maxLength(256),\n v.check((entries) => {\n const keys = entries.map((entry) => `${entry.subjectType}:${entry.subjectId.toString()}`);\n return new Set(keys).size === keys.length;\n }, \"aclEntries must not contain duplicate subjects\"),\n);\n\nexport const CreateWhiteboardBoardInputSchema = v.strictObject({\n title: WhiteboardTitleSchema,\n audience: WhiteboardAudienceInputSchema,\n defaultRole: WhiteboardRoleInputSchema,\n aclEntries: v.optional(WhiteboardAclEntriesInputSchema, []),\n initialSnapshot: v.optional(WhiteboardSnapshotSchema),\n});\n\nexport type CreateWhiteboardBoardInput = v.InferInput<typeof CreateWhiteboardBoardInputSchema>;\n\nexport const GetWhiteboardBoardInputSchema = v.object({\n boardId: WhiteboardIdSchema,\n});\n\nexport type GetWhiteboardBoardInput = v.InferInput<typeof GetWhiteboardBoardInputSchema>;\n\nexport const ListWhiteboardBoardsInputSchema = v.object({\n includeArchived: v.optional(v.boolean(), false),\n limit: v.optional(v.pipe(v.number(), v.integer(), v.gtValue(0), v.maxValue(500))),\n pageToken: v.optional(v.pipe(v.string(), v.trim()), \"\"),\n});\n\nexport type ListWhiteboardBoardsInput = v.InferInput<typeof ListWhiteboardBoardsInputSchema>;\n\nexport const UpdateWhiteboardBoardInputSchema = v.pipe(\n v.strictObject({\n boardId: WhiteboardIdSchema,\n title: v.optional(WhiteboardTitleSchema),\n audience: v.optional(WhiteboardAudienceInputSchema),\n defaultRole: v.optional(WhiteboardRoleInputSchema),\n initialSnapshot: v.optional(WhiteboardSnapshotSchema),\n }),\n v.check(\n (input) =>\n input.title !== undefined ||\n input.audience !== undefined ||\n input.defaultRole !== undefined ||\n input.initialSnapshot !== undefined,\n \"At least one mutable board field is required\",\n ),\n);\n\nexport type UpdateWhiteboardBoardInput = v.InferInput<typeof UpdateWhiteboardBoardInputSchema>;\n\nexport const UpdateWhiteboardBoardAclInputSchema = v.strictObject({\n boardId: WhiteboardIdSchema,\n aclEntries: WhiteboardAclEntriesInputSchema,\n});\n\nexport type UpdateWhiteboardBoardAclInput = v.InferInput<\n typeof UpdateWhiteboardBoardAclInputSchema\n>;\n\nexport const ArchiveWhiteboardBoardInputSchema = v.strictObject({\n boardId: WhiteboardIdSchema,\n archived: v.boolean(),\n});\n\nexport type ArchiveWhiteboardBoardInput = v.InferInput<typeof ArchiveWhiteboardBoardInputSchema>;\n\nexport const MintWhiteboardJoinTokenInputSchema = v.strictObject({\n boardId: WhiteboardIdSchema,\n});\n\nexport type MintWhiteboardJoinTokenInput = v.InferInput<typeof MintWhiteboardJoinTokenInputSchema>;\n\nexport const WhiteboardPermissionsSchema = v.object({\n canView: v.boolean(),\n canEdit: v.boolean(),\n canManage: v.boolean(),\n});\n\nexport type WhiteboardPermissions = v.InferOutput<typeof WhiteboardPermissionsSchema>;\n\nexport const WhiteboardAccessSchema = v.object({\n role: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n permissions: v.optional(WhiteboardPermissionsSchema),\n});\n\nexport type WhiteboardAccess = v.InferOutput<typeof WhiteboardAccessSchema>;\n\nexport const WhiteboardAclEntrySchema = v.object({\n subjectType: v.pipe(\n v.enum(Proto.BoardAclSubjectType),\n v.transform((value) =>\n requiredEnumLabel(\n WhiteboardAclSubjectTypeCodec.protoToOutput,\n value,\n \"WhiteboardAclSubjectTypeSchema\",\n \"subject type\",\n ),\n ),\n ),\n subjectId: PublicIdSchema,\n role: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n});\n\nexport type WhiteboardAclEntry = v.InferOutput<typeof WhiteboardAclEntrySchema>;\n\nexport const WhiteboardBoardSchema = v.pipe(\n v.object({\n boardId: v.string(),\n ownerAccountId: PublicIdSchema,\n title: v.string(),\n audience: v.pipe(\n v.enum(Proto.BoardAudience),\n v.transform((value) =>\n requiredEnumLabel(\n WhiteboardAudienceCodec.protoToOutput,\n value,\n \"WhiteboardAudienceSchema\",\n \"audience\",\n ),\n ),\n ),\n defaultRole: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n accessVersion: Uint64StringSchema,\n initialSnapshot: v.optional(WhiteboardSnapshotSchema),\n createdAt: OptionalTimestampMsSchema,\n updatedAt: OptionalTimestampMsSchema,\n archivedAt: OptionalTimestampMsSchema,\n }),\n v.transform(({ createdAt, updatedAt, archivedAt, ...board }) => ({\n ...board,\n createdAtMs: createdAt,\n updatedAtMs: updatedAt,\n archivedAtMs: archivedAt,\n })),\n);\n\nexport type WhiteboardBoard = v.InferOutput<typeof WhiteboardBoardSchema>;\n\nexport const WhiteboardBoardListItemSchema = v.object({\n board: WhiteboardBoardSchema,\n access: v.optional(WhiteboardAccessSchema),\n});\n\nexport type WhiteboardBoardListItem = v.InferOutput<typeof WhiteboardBoardListItemSchema>;\n\nexport const WhiteboardBoardDetailsSchema = v.object({\n board: WhiteboardBoardSchema,\n aclEntries: v.optional(v.array(WhiteboardAclEntrySchema), []),\n access: v.optional(WhiteboardAccessSchema),\n});\n\nexport type WhiteboardBoardDetails = v.InferOutput<typeof WhiteboardBoardDetailsSchema>;\n\nexport const CreateWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;\nexport type CreateWhiteboardBoardResult = v.InferOutput<typeof CreateWhiteboardBoardResultSchema>;\n\nexport const GetWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;\nexport type GetWhiteboardBoardResult = v.InferOutput<typeof GetWhiteboardBoardResultSchema>;\n\nexport const UpdateWhiteboardBoardResultSchema = WhiteboardBoardDetailsSchema;\nexport type UpdateWhiteboardBoardResult = v.InferOutput<typeof UpdateWhiteboardBoardResultSchema>;\n\nexport const UpdateWhiteboardBoardAclResultSchema = WhiteboardBoardDetailsSchema;\nexport type UpdateWhiteboardBoardAclResult = v.InferOutput<\n typeof UpdateWhiteboardBoardAclResultSchema\n>;\n\nexport const ListWhiteboardBoardsResultSchema = v.object({\n boards: v.optional(v.array(WhiteboardBoardListItemSchema), []),\n nextPageToken: v.optional(v.string(), \"\"),\n});\n\nexport type ListWhiteboardBoardsResult = v.InferOutput<typeof ListWhiteboardBoardsResultSchema>;\n\nexport const ArchiveWhiteboardBoardResultSchema = v.object({\n board: v.optional(WhiteboardBoardSchema),\n access: v.optional(WhiteboardAccessSchema),\n});\n\nexport type ArchiveWhiteboardBoardResult = v.InferOutput<typeof ArchiveWhiteboardBoardResultSchema>;\n\nexport const WhiteboardPresencePayloadSchema = v.object({\n accountId: PublicIdSchema,\n role: v.pipe(v.enum(Proto.BoardRole), v.transform(requiredRoleLabelFor)),\n});\n\nexport type WhiteboardPresencePayload = v.InferOutput<typeof WhiteboardPresencePayloadSchema>;\n\nexport const WhiteboardJoinTokenResultSchema = v.pipe(\n v.object({\n boardId: v.string(),\n access: v.optional(WhiteboardAccessSchema),\n expiresAt: OptionalTimestampMsSchema,\n token: v.string(),\n roomId: v.string(),\n connectionId: v.string(),\n socketPath: v.string(),\n presence: v.optional(WhiteboardPresencePayloadSchema),\n accessVersion: Uint64StringSchema,\n }),\n v.transform(({ expiresAt, ...rest }) => ({\n ...rest,\n expiresAtMs: expiresAt,\n })),\n);\n\nexport type WhiteboardJoinTokenResult = v.InferOutput<typeof WhiteboardJoinTokenResultSchema>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zipper.js","names":["#client","Proto.ZipperService","#realtime","#scales","v.parse","Proto.ZippedAssetSupplyBatchSchema"],"sources":["../../../src/services/zipper/zipper.ts"],"sourcesContent":["import { create } from \"@bufbuild/protobuf\";\nimport * as Proto from \"../../gen/chain/zipper/v1/zipper_pb.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport {\n DepositWithdrawConfigSchema,\n createZippedAssetSupplyBatchSchema,\n type DepositWithdrawConfig,\n type ZippedAssetSupplyBatch,\n} from \"./zipper.schemas.js\";\nimport {\n publicationHandlerErrorContext,\n type SdkSubscriptionErrorContext,\n} from \"../../shared/subscription-errors.js\";\nimport * as v from \"../../shared/validation.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { ConfigurationError } from \"../../shared/errors.js\";\nimport { snapshotThenStream } from \"../../realtime/snapshot-then-stream.js\";\n\nexport interface SubscribeZippedAssetSupplyInput extends BaseSubscribeInput<ZippedAssetSupplyBatch> {}\n\n/**\n * Reads public Zipper deposit/withdraw chain and asset configuration.\n */\nexport class ZipperService {\n #client: Client<typeof Proto.ZipperService>;\n #realtime: PolyesterRealtime | undefined;\n #scales: SdkScales | undefined;\n\n constructor(transport: Transport, realtime?: PolyesterRealtime, scales?: SdkScales) {\n this.#client = createClient(Proto.ZipperService, transport);\n this.#realtime = realtime;\n this.#scales = scales;\n }\n\n /**\n * Returns supported external chains, unified assets, chain-specific asset variants, network fees, min deposit/withdraw amounts, and contract metadata for Zipper-powered deposit and withdraw flows.\n */\n async getDepositWithdrawConfig(\n options?: PolyesterRequestOptions,\n ): Promise<DepositWithdrawConfig> {\n const res = await this.#client.getDepositWithdrawConfig({}, toConnectCallOptions(options));\n return v.parse(DepositWithdrawConfigSchema, res);\n }\n\n /**\n * Attaches to the public supply stream before capturing a route-supply snapshot,\n * then resnapshots whenever the channel establishes a new subscription epoch.\n */\n subscribeZippedAssetSupply(input: SubscribeZippedAssetSupplyInput): () => void {\n const realtime = this.#realtime;\n const scales = this.#scales;\n if (!realtime || !scales) {\n throw new ConfigurationError(\n \"Zipper supply subscriptions require a client-owned realtime connection and catalog scales.\",\n );\n }\n\n const channel = \"public:chain:zipped-asset:supply:proto\";\n const schema = createZippedAssetSupplyBatchSchema(scales);\n const onError = (error: SdkSubscriptionErrorContext) => input.onError?.(error);\n const gate = createReadyGate(\n () => scales.ready(),\n (error) => onError(publicationHandlerErrorContext(channel, error)),\n );\n\n const parseBatch = (batch: Proto.ZippedAssetSupplyBatch): ZippedAssetSupplyBatch =>\n v.parse(schema, batch);\n const parseUpdates = (\n updates: readonly Proto.ZippedAssetSupplyUpdate[],\n ): ZippedAssetSupplyBatch[\"updates\"] =>\n parseBatch(create(Proto.ZippedAssetSupplyBatchSchema, { updates: [...updates] }))\n .updates;\n const stream = snapshotThenStream({\n realtime,\n channel,\n schema: Proto.ZippedAssetSupplyBatchSchema,\n snapshotErrorLog: \"Failed to fetch zipped asset supply\",\n snapshotRetry: { maxAttempts: 3, delayMs: 1_000 },\n snapshotFailureMode: \"live\",\n fetchSnapshot: () => this.getDepositWithdrawConfig(),\n readPublication: (batch) => batch.updates,\n bufferPublicationKey: (update) => update.zippedAssetId,\n applySnapshot: (snapshot, bufferedUpdates) => {\n gate.run(() => {\n const latestByZippedAssetId = new Map<number, string>();\n for (const asset of snapshot.assets) {\n for (const variant of asset.variants) {\n latestByZippedAssetId.set(variant.zippedAssetId, variant.supply);\n }\n }\n for (const update of parseUpdates(bufferedUpdates)) {\n latestByZippedAssetId.set(update.zippedAssetId, update.supply);\n }\n input.onEvent({\n updates: Array.from(latestByZippedAssetId, ([zippedAssetId, supply]) => ({\n zippedAssetId,\n supply,\n })),\n });\n });\n },\n applyLivePublications: (updates) => {\n gate.run(() => {\n input.onEvent({\n updates: parseUpdates(updates),\n });\n });\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n return () => stream.unsubscribe();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CAEA,YAAY,WAAsB,UAA8B,QAAoB;EAChF,KAAKA,UAAU,aAAaC,iBAAqB,SAAS;EAC1D,KAAKC,YAAY;EACjB,KAAKC,UAAU;CACnB;;;;CAKA,MAAM,yBACF,SAC8B;EAC9B,MAAM,MAAM,MAAM,KAAKH,QAAQ,yBAAyB,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACzF,OAAOI,MAAQ,6BAA6B,GAAG;CACnD;;;;;CAMA,2BAA2B,OAAoD;EAC3E,MAAM,WAAW,KAAKF;EACtB,MAAM,SAAS,KAAKC;EACpB,IAAI,CAAC,YAAY,CAAC,QACd,MAAM,IAAI,mBACN,4FACJ;EAGJ,MAAM,UAAU;EAChB,MAAM,SAAS,mCAAmC,MAAM;EACxD,MAAM,WAAW,UAAuC,MAAM,UAAU,KAAK;EAC7E,MAAM,OAAO,sBACH,OAAO,MAAM,IAClB,UAAU,QAAQ,+BAA+B,SAAS,KAAK,CAAC,CACrE;EAEA,MAAM,cAAc,UAChBC,MAAQ,QAAQ,KAAK;EACzB,MAAM,gBACF,YAEA,WAAW,OAAOC,8BAAoC,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAC5E;EACT,MAAM,SAAS,mBAAmB;GAC9B;GACA;GACA,QAAQA;GACR,kBAAkB;GAClB,eAAe;IAAE,aAAa;IAAG,SAAS;GAAM;GAChD,qBAAqB;GACrB,qBAAqB,KAAK,yBAAyB;GACnD,kBAAkB,UAAU,MAAM;GAClC,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,UAAU,oBAAoB;IAC1C,KAAK,UAAU;KACX,MAAM,wCAAwB,IAAI,IAAoB;KACtD,KAAK,MAAM,SAAS,SAAS,QACzB,KAAK,MAAM,WAAW,MAAM,UACxB,sBAAsB,IAAI,QAAQ,eAAe,QAAQ,MAAM;KAGvE,KAAK,MAAM,UAAU,aAAa,eAAe,GAC7C,sBAAsB,IAAI,OAAO,eAAe,OAAO,MAAM;KAEjE,MAAM,QAAQ,EACV,SAAS,MAAM,KAAK,wBAAwB,CAAC,eAAe,aAAa;MACrE;MACA;KACJ,EAAE,EACN,CAAC;IACL,CAAC;GACL;GACA,wBAAwB,YAAY;IAChC,KAAK,UAAU;KACX,MAAM,QAAQ,EACV,SAAS,aAAa,OAAO,EACjC,CAAC;IACL,CAAC;GACL;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,aAAa,OAAO,YAAY;CACpC;AACJ"}
1
+ {"version":3,"file":"zipper.js","names":["#client","Proto.ZipperService","#realtime","#scales","Proto.ZippedAssetSupplyBatchSchema"],"sources":["../../../src/services/zipper/zipper.ts"],"sourcesContent":["import { create } from \"@bufbuild/protobuf\";\nimport * as Proto from \"../../gen/chain/zipper/v1/zipper_pb.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport {\n DepositWithdrawConfigSchema,\n createZippedAssetSupplyBatchSchema,\n type DepositWithdrawConfig,\n type ZippedAssetSupplyBatch,\n} from \"./zipper.schemas.js\";\nimport {\n publicationHandlerErrorContext,\n type SdkSubscriptionErrorContext,\n} from \"../../shared/subscription-errors.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { ConfigurationError } from \"../../shared/errors.js\";\nimport { snapshotThenStream } from \"../../realtime/snapshot-then-stream.js\";\n\nexport interface SubscribeZippedAssetSupplyInput extends BaseSubscribeInput<ZippedAssetSupplyBatch> {}\n\n/**\n * Reads public Zipper deposit/withdraw chain and asset configuration.\n */\nexport class ZipperService {\n #client: Client<typeof Proto.ZipperService>;\n #realtime: PolyesterRealtime | undefined;\n #scales: SdkScales | undefined;\n\n constructor(transport: Transport, realtime?: PolyesterRealtime, scales?: SdkScales) {\n this.#client = createClient(Proto.ZipperService, transport);\n this.#realtime = realtime;\n this.#scales = scales;\n }\n\n /**\n * Returns supported external chains, unified assets, chain-specific asset variants, network fees, min deposit/withdraw amounts, and contract metadata for Zipper-powered deposit and withdraw flows.\n */\n async getDepositWithdrawConfig(\n options?: PolyesterRequestOptions,\n ): Promise<DepositWithdrawConfig> {\n const res = await this.#client.getDepositWithdrawConfig({}, toConnectCallOptions(options));\n return parse(DepositWithdrawConfigSchema, res);\n }\n\n /**\n * Attaches to the public supply stream before capturing a route-supply snapshot,\n * then resnapshots whenever the channel establishes a new subscription epoch.\n */\n subscribeZippedAssetSupply(input: SubscribeZippedAssetSupplyInput): () => void {\n const realtime = this.#realtime;\n const scales = this.#scales;\n if (!realtime || !scales) {\n throw new ConfigurationError(\n \"Zipper supply subscriptions require a client-owned realtime connection and catalog scales.\",\n );\n }\n\n const channel = \"public:chain:zipped-asset:supply:proto\";\n const schema = createZippedAssetSupplyBatchSchema(scales);\n const onError = (error: SdkSubscriptionErrorContext) => input.onError?.(error);\n const gate = createReadyGate(\n () => scales.ready(),\n (error) => onError(publicationHandlerErrorContext(channel, error)),\n );\n\n const parseBatch = (batch: Proto.ZippedAssetSupplyBatch): ZippedAssetSupplyBatch =>\n parse(schema, batch);\n const parseUpdates = (\n updates: readonly Proto.ZippedAssetSupplyUpdate[],\n ): ZippedAssetSupplyBatch[\"updates\"] =>\n parseBatch(create(Proto.ZippedAssetSupplyBatchSchema, { updates: [...updates] }))\n .updates;\n const stream = snapshotThenStream({\n realtime,\n channel,\n schema: Proto.ZippedAssetSupplyBatchSchema,\n snapshotErrorLog: \"Failed to fetch zipped asset supply\",\n snapshotRetry: { maxAttempts: 3, delayMs: 1_000 },\n snapshotFailureMode: \"live\",\n fetchSnapshot: () => this.getDepositWithdrawConfig(),\n readPublication: (batch) => batch.updates,\n bufferPublicationKey: (update) => update.zippedAssetId,\n applySnapshot: (snapshot, bufferedUpdates) => {\n gate.run(() => {\n const latestByZippedAssetId = new Map<number, string>();\n for (const asset of snapshot.assets) {\n for (const variant of asset.variants) {\n latestByZippedAssetId.set(variant.zippedAssetId, variant.supply);\n }\n }\n for (const update of parseUpdates(bufferedUpdates)) {\n latestByZippedAssetId.set(update.zippedAssetId, update.supply);\n }\n input.onEvent({\n updates: Array.from(latestByZippedAssetId, ([zippedAssetId, supply]) => ({\n zippedAssetId,\n supply,\n })),\n });\n });\n },\n applyLivePublications: (updates) => {\n gate.run(() => {\n input.onEvent({\n updates: parseUpdates(updates),\n });\n });\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n return () => stream.unsubscribe();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CAEA,YAAY,WAAsB,UAA8B,QAAoB;EAChF,KAAKA,UAAU,aAAaC,iBAAqB,SAAS;EAC1D,KAAKC,YAAY;EACjB,KAAKC,UAAU;CACnB;;;;CAKA,MAAM,yBACF,SAC8B;EAC9B,MAAM,MAAM,MAAM,KAAKH,QAAQ,yBAAyB,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACzF,OAAO,MAAM,6BAA6B,GAAG;CACjD;;;;;CAMA,2BAA2B,OAAoD;EAC3E,MAAM,WAAW,KAAKE;EACtB,MAAM,SAAS,KAAKC;EACpB,IAAI,CAAC,YAAY,CAAC,QACd,MAAM,IAAI,mBACN,4FACJ;EAGJ,MAAM,UAAU;EAChB,MAAM,SAAS,mCAAmC,MAAM;EACxD,MAAM,WAAW,UAAuC,MAAM,UAAU,KAAK;EAC7E,MAAM,OAAO,sBACH,OAAO,MAAM,IAClB,UAAU,QAAQ,+BAA+B,SAAS,KAAK,CAAC,CACrE;EAEA,MAAM,cAAc,UAChB,MAAM,QAAQ,KAAK;EACvB,MAAM,gBACF,YAEA,WAAW,OAAOC,8BAAoC,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAC5E;EACT,MAAM,SAAS,mBAAmB;GAC9B;GACA;GACA,QAAQA;GACR,kBAAkB;GAClB,eAAe;IAAE,aAAa;IAAG,SAAS;GAAM;GAChD,qBAAqB;GACrB,qBAAqB,KAAK,yBAAyB;GACnD,kBAAkB,UAAU,MAAM;GAClC,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,UAAU,oBAAoB;IAC1C,KAAK,UAAU;KACX,MAAM,wCAAwB,IAAI,IAAoB;KACtD,KAAK,MAAM,SAAS,SAAS,QACzB,KAAK,MAAM,WAAW,MAAM,UACxB,sBAAsB,IAAI,QAAQ,eAAe,QAAQ,MAAM;KAGvE,KAAK,MAAM,UAAU,aAAa,eAAe,GAC7C,sBAAsB,IAAI,OAAO,eAAe,OAAO,MAAM;KAEjE,MAAM,QAAQ,EACV,SAAS,MAAM,KAAK,wBAAwB,CAAC,eAAe,aAAa;MACrE;MACA;KACJ,EAAE,EACN,CAAC;IACL,CAAC;GACL;GACA,wBAAwB,YAAY;IAChC,KAAK,UAAU;KACX,MAAM,QAAQ,EACV,SAAS,aAAa,OAAO,EACjC,CAAC;IACL,CAAC;GACL;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,aAAa,OAAO,YAAY;CACpC;AACJ"}
@@ -1,6 +1,6 @@
1
1
  import { DepositWithdrawConfig, ZipperAssetChainVariant, ZipperAssetConfig, ZipperChainConfig, ZipperChainContractConfig } from "../../shared/catalog-config.js";
2
- import "../../shared/validation.js";
3
2
  import "../../shared/decimal-surface.js";
3
+ import "valibot";
4
4
  //#region src/services/zipper/zipper.schemas.d.ts
5
5
  type ZippedAssetSupplyUpdate = {
6
6
  zippedAssetId: number;
@@ -1,33 +1,33 @@
1
- import { validation_exports } from "../../shared/validation.js";
2
1
  import { scaledToDecimalOutput } from "../../shared/decimal-surface.js";
2
+ import * as v from "valibot";
3
3
  //#region src/services/zipper/zipper.schemas.ts
4
- const ZipperChainConfigSchema = validation_exports.object({
5
- chainId: validation_exports.number(),
6
- code: validation_exports.string(),
7
- name: validation_exports.string(),
8
- nativeChainId: validation_exports.optional(validation_exports.string(), ""),
9
- nativeCurrencySymbol: validation_exports.string(),
10
- explorerUrl: validation_exports.string(),
11
- icon: validation_exports.string(),
12
- requiredConfirmations: validation_exports.number(),
13
- confirmationTimeSeconds: validation_exports.number(),
14
- isCaseSensitive: validation_exports.optional(validation_exports.boolean(), false),
15
- minAddressLength: validation_exports.number(),
16
- maxAddressLength: validation_exports.number()
4
+ const ZipperChainConfigSchema = v.object({
5
+ chainId: v.number(),
6
+ code: v.string(),
7
+ name: v.string(),
8
+ nativeChainId: v.optional(v.string(), ""),
9
+ nativeCurrencySymbol: v.string(),
10
+ explorerUrl: v.string(),
11
+ icon: v.string(),
12
+ requiredConfirmations: v.number(),
13
+ confirmationTimeSeconds: v.number(),
14
+ isCaseSensitive: v.optional(v.boolean(), false),
15
+ minAddressLength: v.number(),
16
+ maxAddressLength: v.number()
17
17
  });
18
- const ZipperAssetChainVariantWireSchema = validation_exports.object({
19
- zippedAssetId: validation_exports.number(),
20
- chainId: validation_exports.number(),
21
- isNativeAsset: validation_exports.optional(validation_exports.boolean(), false),
22
- networkFee: validation_exports.optional(validation_exports.string(), "0"),
23
- networkFeeTsSec: validation_exports.pipe(validation_exports.optional(validation_exports.bigint(), 0n), validation_exports.transform(Number)),
24
- ztokenAddress: validation_exports.optional(validation_exports.string(), ""),
25
- sourceAddress: validation_exports.optional(validation_exports.string(), ""),
26
- sourceDecimals: validation_exports.optional(validation_exports.number(), 18),
27
- ztokenDecimals: validation_exports.optional(validation_exports.number(), 18),
28
- depositMinAmount: validation_exports.optional(validation_exports.string(), ""),
29
- withdrawMinAmount: validation_exports.optional(validation_exports.string(), ""),
30
- supplyQ: validation_exports.optional(validation_exports.bigint(), 0n)
18
+ const ZipperAssetChainVariantWireSchema = v.object({
19
+ zippedAssetId: v.number(),
20
+ chainId: v.number(),
21
+ isNativeAsset: v.optional(v.boolean(), false),
22
+ networkFee: v.optional(v.string(), "0"),
23
+ networkFeeTsSec: v.pipe(v.optional(v.bigint(), 0n), v.transform(Number)),
24
+ ztokenAddress: v.optional(v.string(), ""),
25
+ sourceAddress: v.optional(v.string(), ""),
26
+ sourceDecimals: v.optional(v.number(), 18),
27
+ ztokenDecimals: v.optional(v.number(), 18),
28
+ depositMinAmount: v.optional(v.string(), ""),
29
+ withdrawMinAmount: v.optional(v.string(), ""),
30
+ supplyQ: v.optional(v.bigint(), 0n)
31
31
  });
32
32
  function normalizeZipperAssetChainVariant(quantityScale, { sourceAddress, sourceDecimals, supplyQ, ztokenAddress, ztokenDecimals, ...variant }) {
33
33
  return {
@@ -43,42 +43,42 @@ function normalizeZipperAssetChainVariant(quantityScale, { sourceAddress, source
43
43
  }
44
44
  };
45
45
  }
46
- const ZipperAssetConfigSchema = validation_exports.pipe(validation_exports.object({
47
- asset: validation_exports.string(),
48
- ledgerId: validation_exports.number(),
49
- name: validation_exports.string(),
50
- icon: validation_exports.string(),
51
- quantityScale: validation_exports.number(),
52
- quantityDisplayDecimals: validation_exports.number(),
53
- variants: validation_exports.array(ZipperAssetChainVariantWireSchema),
54
- uAssetId: validation_exports.optional(validation_exports.string(), "")
55
- }), validation_exports.transform(({ variants, ...asset }) => ({
46
+ const ZipperAssetConfigSchema = v.pipe(v.object({
47
+ asset: v.string(),
48
+ ledgerId: v.number(),
49
+ name: v.string(),
50
+ icon: v.string(),
51
+ quantityScale: v.number(),
52
+ quantityDisplayDecimals: v.number(),
53
+ variants: v.array(ZipperAssetChainVariantWireSchema),
54
+ uAssetId: v.optional(v.string(), "")
55
+ }), v.transform(({ variants, ...asset }) => ({
56
56
  ...asset,
57
57
  variants: variants.map((variant) => normalizeZipperAssetChainVariant(asset.quantityScale, variant))
58
58
  })));
59
- const ZipperChainContractConfigSchema = validation_exports.object({
60
- name: validation_exports.string(),
61
- address: validation_exports.string(),
62
- type: validation_exports.optional(validation_exports.string(), ""),
63
- description: validation_exports.optional(validation_exports.string(), ""),
64
- version: validation_exports.optional(validation_exports.number(), 0)
59
+ const ZipperChainContractConfigSchema = v.object({
60
+ name: v.string(),
61
+ address: v.string(),
62
+ type: v.optional(v.string(), ""),
63
+ description: v.optional(v.string(), ""),
64
+ version: v.optional(v.number(), 0)
65
65
  });
66
- const DepositWithdrawConfigSchema = validation_exports.pipe(validation_exports.object({
67
- chains: validation_exports.array(ZipperChainConfigSchema),
68
- assets: validation_exports.array(ZipperAssetConfigSchema),
69
- tsSec: validation_exports.bigint(),
70
- polyesterChainId: validation_exports.number(),
71
- contracts: validation_exports.optional(validation_exports.array(ZipperChainContractConfigSchema), [])
72
- }), validation_exports.transform(({ tsSec, ...config }) => ({
66
+ const DepositWithdrawConfigSchema = v.pipe(v.object({
67
+ chains: v.array(ZipperChainConfigSchema),
68
+ assets: v.array(ZipperAssetConfigSchema),
69
+ tsSec: v.bigint(),
70
+ polyesterChainId: v.number(),
71
+ contracts: v.optional(v.array(ZipperChainContractConfigSchema), [])
72
+ }), v.transform(({ tsSec, ...config }) => ({
73
73
  ...config,
74
74
  tsMs: Number(tsSec) * 1e3
75
75
  })));
76
- const ZippedAssetSupplyUpdateWireSchema = validation_exports.object({
77
- zippedAssetId: validation_exports.number(),
78
- supplyQ: validation_exports.bigint()
76
+ const ZippedAssetSupplyUpdateWireSchema = v.object({
77
+ zippedAssetId: v.number(),
78
+ supplyQ: v.bigint()
79
79
  });
80
80
  function createZippedAssetSupplyBatchSchema(scales) {
81
- return validation_exports.pipe(validation_exports.object({ updates: validation_exports.array(ZippedAssetSupplyUpdateWireSchema) }), validation_exports.transform((batch) => ({ updates: batch.updates.map((update) => ({
81
+ return v.pipe(v.object({ updates: v.array(ZippedAssetSupplyUpdateWireSchema) }), v.transform((batch) => ({ updates: batch.updates.map((update) => ({
82
82
  zippedAssetId: update.zippedAssetId,
83
83
  supply: scaledToDecimalOutput(update.supplyQ, scales.zippedAssetAmount(update.zippedAssetId))
84
84
  })) })));
@@ -1 +1 @@
1
- {"version":3,"file":"zipper.schemas.js","names":["v"],"sources":["../../../src/services/zipper/zipper.schemas.ts"],"sourcesContent":["import * as v from \"../../shared/validation.js\";\nimport type {\n DepositWithdrawConfig,\n ZipperAssetChainVariant,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n} from \"../../shared/catalog-config.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\n\nexport type {\n DepositWithdrawConfig,\n ZipperAssetChainVariant,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n};\n\nexport const ZipperChainConfigSchema = v.object({\n chainId: v.number(),\n code: v.string(),\n name: v.string(),\n nativeChainId: v.optional(v.string(), \"\"),\n nativeCurrencySymbol: v.string(),\n explorerUrl: v.string(),\n icon: v.string(),\n requiredConfirmations: v.number(),\n confirmationTimeSeconds: v.number(),\n isCaseSensitive: v.optional(v.boolean(), false),\n minAddressLength: v.number(),\n maxAddressLength: v.number(),\n});\n\nconst ZipperAssetChainVariantWireSchema = v.object({\n zippedAssetId: v.number(),\n chainId: v.number(),\n isNativeAsset: v.optional(v.boolean(), false),\n networkFee: v.optional(v.string(), \"0\"),\n networkFeeTsSec: v.pipe(v.optional(v.bigint(), 0n), v.transform(Number)),\n ztokenAddress: v.optional(v.string(), \"\"),\n sourceAddress: v.optional(v.string(), \"\"),\n sourceDecimals: v.optional(v.number(), 18),\n ztokenDecimals: v.optional(v.number(), 18),\n depositMinAmount: v.optional(v.string(), \"\"),\n withdrawMinAmount: v.optional(v.string(), \"\"),\n supplyQ: v.optional(v.bigint(), 0n),\n});\n\nfunction normalizeZipperAssetChainVariant(\n quantityScale: number,\n {\n sourceAddress,\n sourceDecimals,\n supplyQ,\n ztokenAddress,\n ztokenDecimals,\n ...variant\n }: v.InferOutput<typeof ZipperAssetChainVariantWireSchema>,\n): ZipperAssetChainVariant {\n return {\n ...variant,\n supply: scaledToDecimalOutput(supplyQ, quantityScale),\n sourceToken: {\n address: sourceAddress,\n decimals: sourceDecimals,\n },\n zToken: {\n address: ztokenAddress,\n decimals: ztokenDecimals,\n },\n };\n}\n\nexport const ZipperAssetConfigSchema = v.pipe(\n v.object({\n asset: v.string(),\n ledgerId: v.number(),\n name: v.string(),\n icon: v.string(),\n quantityScale: v.number(),\n quantityDisplayDecimals: v.number(),\n variants: v.array(ZipperAssetChainVariantWireSchema),\n uAssetId: v.optional(v.string(), \"\"),\n }),\n v.transform(({ variants, ...asset }) => ({\n ...asset,\n variants: variants.map((variant) =>\n normalizeZipperAssetChainVariant(asset.quantityScale, variant),\n ),\n })),\n);\n\nexport const ZipperChainContractConfigSchema = v.object({\n name: v.string(),\n address: v.string(),\n type: v.optional(v.string(), \"\"),\n description: v.optional(v.string(), \"\"),\n version: v.optional(v.number(), 0),\n});\n\nexport const DepositWithdrawConfigSchema = v.pipe(\n v.object({\n chains: v.array(ZipperChainConfigSchema),\n assets: v.array(ZipperAssetConfigSchema),\n tsSec: v.bigint(),\n polyesterChainId: v.number(),\n contracts: v.optional(v.array(ZipperChainContractConfigSchema), []),\n }),\n v.transform(({ tsSec, ...config }) => ({\n ...config,\n tsMs: Number(tsSec) * 1000,\n })),\n);\n\nconst ZippedAssetSupplyUpdateWireSchema = v.object({\n zippedAssetId: v.number(),\n supplyQ: v.bigint(),\n});\n\nexport type ZippedAssetSupplyUpdate = {\n zippedAssetId: number;\n supply: string;\n};\n\nexport type ZippedAssetSupplyBatch = {\n updates: ZippedAssetSupplyUpdate[];\n};\n\nexport function createZippedAssetSupplyBatchSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n updates: v.array(ZippedAssetSupplyUpdateWireSchema),\n }),\n v.transform(\n (batch): ZippedAssetSupplyBatch => ({\n updates: batch.updates.map((update) => ({\n zippedAssetId: update.zippedAssetId,\n supply: scaledToDecimalOutput(\n update.supplyQ,\n scales.zippedAssetAmount(update.zippedAssetId),\n ),\n })),\n }),\n ),\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"zipper.schemas.js","names":[],"sources":["../../../src/services/zipper/zipper.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport type {\n DepositWithdrawConfig,\n ZipperAssetChainVariant,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n} from \"../../shared/catalog-config.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\n\nexport type {\n DepositWithdrawConfig,\n ZipperAssetChainVariant,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n};\n\nexport const ZipperChainConfigSchema = v.object({\n chainId: v.number(),\n code: v.string(),\n name: v.string(),\n nativeChainId: v.optional(v.string(), \"\"),\n nativeCurrencySymbol: v.string(),\n explorerUrl: v.string(),\n icon: v.string(),\n requiredConfirmations: v.number(),\n confirmationTimeSeconds: v.number(),\n isCaseSensitive: v.optional(v.boolean(), false),\n minAddressLength: v.number(),\n maxAddressLength: v.number(),\n});\n\nconst ZipperAssetChainVariantWireSchema = v.object({\n zippedAssetId: v.number(),\n chainId: v.number(),\n isNativeAsset: v.optional(v.boolean(), false),\n networkFee: v.optional(v.string(), \"0\"),\n networkFeeTsSec: v.pipe(v.optional(v.bigint(), 0n), v.transform(Number)),\n ztokenAddress: v.optional(v.string(), \"\"),\n sourceAddress: v.optional(v.string(), \"\"),\n sourceDecimals: v.optional(v.number(), 18),\n ztokenDecimals: v.optional(v.number(), 18),\n depositMinAmount: v.optional(v.string(), \"\"),\n withdrawMinAmount: v.optional(v.string(), \"\"),\n supplyQ: v.optional(v.bigint(), 0n),\n});\n\nfunction normalizeZipperAssetChainVariant(\n quantityScale: number,\n {\n sourceAddress,\n sourceDecimals,\n supplyQ,\n ztokenAddress,\n ztokenDecimals,\n ...variant\n }: v.InferOutput<typeof ZipperAssetChainVariantWireSchema>,\n): ZipperAssetChainVariant {\n return {\n ...variant,\n supply: scaledToDecimalOutput(supplyQ, quantityScale),\n sourceToken: {\n address: sourceAddress,\n decimals: sourceDecimals,\n },\n zToken: {\n address: ztokenAddress,\n decimals: ztokenDecimals,\n },\n };\n}\n\nexport const ZipperAssetConfigSchema = v.pipe(\n v.object({\n asset: v.string(),\n ledgerId: v.number(),\n name: v.string(),\n icon: v.string(),\n quantityScale: v.number(),\n quantityDisplayDecimals: v.number(),\n variants: v.array(ZipperAssetChainVariantWireSchema),\n uAssetId: v.optional(v.string(), \"\"),\n }),\n v.transform(({ variants, ...asset }) => ({\n ...asset,\n variants: variants.map((variant) =>\n normalizeZipperAssetChainVariant(asset.quantityScale, variant),\n ),\n })),\n);\n\nexport const ZipperChainContractConfigSchema = v.object({\n name: v.string(),\n address: v.string(),\n type: v.optional(v.string(), \"\"),\n description: v.optional(v.string(), \"\"),\n version: v.optional(v.number(), 0),\n});\n\nexport const DepositWithdrawConfigSchema = v.pipe(\n v.object({\n chains: v.array(ZipperChainConfigSchema),\n assets: v.array(ZipperAssetConfigSchema),\n tsSec: v.bigint(),\n polyesterChainId: v.number(),\n contracts: v.optional(v.array(ZipperChainContractConfigSchema), []),\n }),\n v.transform(({ tsSec, ...config }) => ({\n ...config,\n tsMs: Number(tsSec) * 1000,\n })),\n);\n\nconst ZippedAssetSupplyUpdateWireSchema = v.object({\n zippedAssetId: v.number(),\n supplyQ: v.bigint(),\n});\n\nexport type ZippedAssetSupplyUpdate = {\n zippedAssetId: number;\n supply: string;\n};\n\nexport type ZippedAssetSupplyBatch = {\n updates: ZippedAssetSupplyUpdate[];\n};\n\nexport function createZippedAssetSupplyBatchSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n updates: v.array(ZippedAssetSupplyUpdateWireSchema),\n }),\n v.transform(\n (batch): ZippedAssetSupplyBatch => ({\n updates: batch.updates.map((update) => ({\n zippedAssetId: update.zippedAssetId,\n supply: scaledToDecimalOutput(\n update.supplyQ,\n scales.zippedAssetAmount(update.zippedAssetId),\n ),\n })),\n }),\n ),\n );\n}\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { validation_d_exports } from "./validation.js";
1
+ import * as v from "valibot";
2
2
  //#region src/shared/account-scope.d.ts
3
- declare const AccountScopeSchema: validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
4
- readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
3
+ declare const AccountScopeSchema: v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
4
+ readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
5
5
  }, undefined>], undefined>;
6
- type AccountScope = validation_d_exports.InferInput<typeof AccountScopeSchema>;
6
+ type AccountScope = v.InferInput<typeof AccountScopeSchema>;
7
7
  type AccountScopedInput = {
8
8
  account?: AccountScope;
9
9
  };
10
10
  declare const AccountScopeInputEntries: {
11
- account: validation_d_exports.OptionalSchema<validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
12
- readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
11
+ account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
12
+ readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
13
13
  }, undefined>], undefined>, undefined>;
14
14
  };
15
15
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"account-scope.d.ts","names":[],"sources":["../../src/shared/account-scope.ts"],"mappings":";;cAGa,oBAAkB,qBAAA,aAAA,qBAAA,+CAAA,qBAAA;;;KAOnB,eAAe,qBAAE,kBAAkB;KAEnC;EACR,UAAU;;cAKD"}
1
+ {"version":3,"file":"account-scope.d.ts","names":[],"sources":["../../src/shared/account-scope.ts"],"mappings":";;cAGa,oBAAkB,EAAA,aAAA,EAAA,+CAAA,EAAA;;;KAOnB,eAAe,EAAE,kBAAkB;KAEnC;EACR,UAAU;;cAKD"}
@@ -1,8 +1,8 @@
1
- import { validation_exports } from "./validation.js";
2
1
  import { idToBigInt } from "../utils/base58-id.js";
2
+ import * as v from "valibot";
3
3
  //#region src/shared/account-scope.ts
4
- const AccountScopeSchema = validation_exports.union([validation_exports.picklist(["active", "main"]), validation_exports.strictObject({ subaccountId: validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1)) })]);
5
- const OptionalAccountScopeSchema = validation_exports.optional(AccountScopeSchema);
4
+ const AccountScopeSchema = v.union([v.picklist(["active", "main"]), v.strictObject({ subaccountId: v.pipe(v.string(), v.trim(), v.minLength(1)) })]);
5
+ const OptionalAccountScopeSchema = v.optional(AccountScopeSchema);
6
6
  const AccountScopeInputEntries = { account: OptionalAccountScopeSchema };
7
7
  function accountScopeToSubaccountId(account) {
8
8
  if (account === void 0 || account === "active" || account === "main") return void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"account-scope.js","names":["v"],"sources":["../../src/shared/account-scope.ts"],"sourcesContent":["import * as v from \"./validation.js\";\nimport { idToBigInt } from \"../utils/base58-id.js\";\n\nexport const AccountScopeSchema = v.union([\n v.picklist([\"active\", \"main\"]),\n v.strictObject({\n subaccountId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n]);\n\nexport type AccountScope = v.InferInput<typeof AccountScopeSchema>;\n\nexport type AccountScopedInput = {\n account?: AccountScope;\n};\n\nexport const OptionalAccountScopeSchema = v.optional(AccountScopeSchema);\n\nexport const AccountScopeInputEntries = {\n account: OptionalAccountScopeSchema,\n};\n\nexport function accountScopeToSubaccountId(account: AccountScope | undefined): bigint | undefined {\n if (account === undefined || account === \"active\" || account === \"main\") return undefined;\n return idToBigInt(account.subaccountId, \"subaccountId\");\n}\n\nexport function accountScopeToSubaccountIdOrZero(account: AccountScope | undefined): bigint {\n return accountScopeToSubaccountId(account) ?? 0n;\n}\n"],"mappings":";;;AAGA,MAAa,qBAAqBA,mBAAE,MAAM,CACtCA,mBAAE,SAAS,CAAC,UAAU,MAAM,CAAC,GAC7BA,mBAAE,aAAa,EACX,cAAcA,mBAAE,KAAKA,mBAAE,OAAO,GAAGA,mBAAE,KAAK,GAAGA,mBAAE,UAAU,CAAC,CAAC,EAC7D,CAAC,CACL,CAAC;AAQD,MAAa,6BAA6BA,mBAAE,SAAS,kBAAkB;AAEvE,MAAa,2BAA2B,EACpC,SAAS,2BACb;AAEA,SAAgB,2BAA2B,SAAuD;CAC9F,IAAI,YAAY,KAAA,KAAa,YAAY,YAAY,YAAY,QAAQ,OAAO,KAAA;CAChF,OAAO,WAAW,QAAQ,cAAc,cAAc;AAC1D"}
1
+ {"version":3,"file":"account-scope.js","names":[],"sources":["../../src/shared/account-scope.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { idToBigInt } from \"../utils/base58-id.js\";\n\nexport const AccountScopeSchema = v.union([\n v.picklist([\"active\", \"main\"]),\n v.strictObject({\n subaccountId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n }),\n]);\n\nexport type AccountScope = v.InferInput<typeof AccountScopeSchema>;\n\nexport type AccountScopedInput = {\n account?: AccountScope;\n};\n\nexport const OptionalAccountScopeSchema = v.optional(AccountScopeSchema);\n\nexport const AccountScopeInputEntries = {\n account: OptionalAccountScopeSchema,\n};\n\nexport function accountScopeToSubaccountId(account: AccountScope | undefined): bigint | undefined {\n if (account === undefined || account === \"active\" || account === \"main\") return undefined;\n return idToBigInt(account.subaccountId, \"subaccountId\");\n}\n\nexport function accountScopeToSubaccountIdOrZero(account: AccountScope | undefined): bigint {\n return accountScopeToSubaccountId(account) ?? 0n;\n}\n"],"mappings":";;;AAGA,MAAa,qBAAqB,EAAE,MAAM,CACtC,EAAE,SAAS,CAAC,UAAU,MAAM,CAAC,GAC7B,EAAE,aAAa,EACX,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,CAAC,EAC7D,CAAC,CACL,CAAC;AAQD,MAAa,6BAA6B,EAAE,SAAS,kBAAkB;AAEvE,MAAa,2BAA2B,EACpC,SAAS,2BACb;AAEA,SAAgB,2BAA2B,SAAuD;CAC9F,IAAI,YAAY,KAAA,KAAa,YAAY,YAAY,YAAY,QAAQ,OAAO,KAAA;CAChF,OAAO,WAAW,QAAQ,cAAc,cAAc;AAC1D"}
@@ -1,9 +1,9 @@
1
1
  import { AlreadyExistsError, AuthenticationError, InternalServerError, MfaEnrollmentRequiredError, MfaLastFactorRequiredError, MfaVerificationError, PermissionError, PolicyInUseError, PolicyLockedError, PolicyScopeMismatchError, PolyesterError, PreconditionFailedError, RateLimitError, ResourceNotFoundError, RevisionConflictError, ServiceUnavailableError, SessionElevationRequiredError, StaleQuoteError, StepUpRequiredError, TimeoutError, TransientError, ValidationError, isAbortError, normalizeErrorMessage } from "./errors.js";
2
- import { validation_exports } from "./validation.js";
3
2
  import { AuthErrorDetailSchema } from "../gen/auth/v1/auth_pb.js";
4
3
  import { ErrorDetailSchema } from "../gen/orders/v1/orders_pb.js";
5
4
  import { RateLimitDetailSchema } from "./rate-limit.schemas.js";
6
5
  import { Code, ConnectError } from "@connectrpc/connect";
6
+ import * as v from "valibot";
7
7
  //#region src/shared/connect-error-mapping.ts
8
8
  function getAuthErrorDetails(err) {
9
9
  return ConnectError.from(err).findDetails(AuthErrorDetailSchema);
@@ -20,7 +20,7 @@ function getOrderErrorDetails(err) {
20
20
  function getRateLimitDetail(err) {
21
21
  for (const orderDetail of getOrderErrorDetails(err)) {
22
22
  if (!orderDetail.rateLimit) continue;
23
- const result = validation_exports.safeParse(RateLimitDetailSchema, orderDetail.rateLimit);
23
+ const result = v.safeParse(RateLimitDetailSchema, orderDetail.rateLimit);
24
24
  if (result.success) return result.output;
25
25
  }
26
26
  }