@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.
- package/CHANGELOG.md +16 -0
- package/dist/_virtual/_rolldown/runtime.js +1 -15
- package/dist/catalogs/snapshot-validation.js +63 -63
- package/dist/catalogs/snapshot-validation.js.map +1 -1
- package/dist/core-client.d.ts +9 -0
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +21 -0
- package/dist/core-client.js.map +1 -1
- package/dist/gen/fees/v1/fees_pb.d.ts +124 -0
- package/dist/gen/fees/v1/fees_pb.d.ts.map +1 -0
- package/dist/gen/fees/v1/fees_pb.js +39 -0
- package/dist/gen/fees/v1/fees_pb.js.map +1 -0
- package/dist/gen/index.d.ts +4 -1
- package/dist/gen/index.js +4 -1
- package/dist/gen/ratelimit/v1/ratelimit_pb.d.ts +223 -0
- package/dist/gen/ratelimit/v1/ratelimit_pb.d.ts.map +1 -0
- package/dist/gen/ratelimit/v1/ratelimit_pb.js +86 -0
- package/dist/gen/ratelimit/v1/ratelimit_pb.js.map +1 -0
- package/dist/gen/vip/v1/vip_pb.d.ts +277 -0
- package/dist/gen/vip/v1/vip_pb.d.ts.map +1 -0
- package/dist/gen/vip/v1/vip_pb.js +60 -0
- package/dist/gen/vip/v1/vip_pb.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/services/accounts/accounts.js +1 -1
- package/dist/services/accounts/accounts.js.map +1 -1
- package/dist/services/accounts/accounts.schemas.d.ts +13 -13
- package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
- package/dist/services/accounts/accounts.schemas.js +11 -11
- package/dist/services/accounts/accounts.schemas.js.map +1 -1
- package/dist/services/address-book/address-book.js.map +1 -1
- package/dist/services/address-book/address-book.schemas.d.ts +751 -751
- package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
- package/dist/services/address-book/address-book.schemas.js +160 -159
- package/dist/services/address-book/address-book.schemas.js.map +1 -1
- package/dist/services/api-keys/api-keys.d.ts +6 -6
- package/dist/services/api-keys/api-keys.d.ts.map +1 -1
- package/dist/services/api-keys/api-keys.js.map +1 -1
- package/dist/services/api-keys/api-keys.schemas.d.ts +62 -62
- package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -1
- package/dist/services/api-keys/api-keys.schemas.js +34 -34
- package/dist/services/api-keys/api-keys.schemas.js.map +1 -1
- package/dist/services/auth/auth.d.ts +39 -39
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +19 -18
- package/dist/services/auth/auth.js.map +1 -1
- package/dist/services/auth/profile/profile.d.ts +2 -2
- package/dist/services/auth/profile/profile.d.ts.map +1 -1
- package/dist/services/auth/profile/profile.js +3 -2
- package/dist/services/auth/profile/profile.js.map +1 -1
- package/dist/services/auth/profile/profile.schemas.d.ts +41 -41
- package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -1
- package/dist/services/auth/profile/profile.schemas.js +27 -27
- package/dist/services/auth/profile/profile.schemas.js.map +1 -1
- package/dist/services/auth/session.schemas.js +17 -17
- package/dist/services/auth/session.schemas.js.map +1 -1
- package/dist/services/balances/balances.d.ts.map +1 -1
- package/dist/services/balances/balances.js +3 -2
- package/dist/services/balances/balances.js.map +1 -1
- package/dist/services/balances/balances.schemas.d.ts +95 -95
- package/dist/services/balances/balances.schemas.d.ts.map +1 -1
- package/dist/services/balances/balances.schemas.js +61 -61
- package/dist/services/balances/balances.schemas.js.map +1 -1
- package/dist/services/candles/candles.d.ts.map +1 -1
- package/dist/services/candles/candles.js +5 -4
- package/dist/services/candles/candles.js.map +1 -1
- package/dist/services/candles/candles.schemas.d.ts +64 -64
- package/dist/services/candles/candles.schemas.d.ts.map +1 -1
- package/dist/services/candles/candles.schemas.js +47 -47
- package/dist/services/candles/candles.schemas.js.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +68 -68
- package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.schemas.js +29 -29
- package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
- package/dist/services/deposit/deposit.js.map +1 -1
- package/dist/services/deposit/deposit.schemas.d.ts +17 -17
- package/dist/services/deposit/deposit.schemas.d.ts.map +1 -1
- package/dist/services/deposit/deposit.schemas.js +11 -11
- package/dist/services/deposit/deposit.schemas.js.map +1 -1
- package/dist/services/fees/fees.d.ts +19 -0
- package/dist/services/fees/fees.d.ts.map +1 -0
- package/dist/services/fees/fees.js +32 -0
- package/dist/services/fees/fees.js.map +1 -0
- package/dist/services/fees/fees.schemas.d.ts +28 -0
- package/dist/services/fees/fees.schemas.d.ts.map +1 -0
- package/dist/services/fees/fees.schemas.js +25 -0
- package/dist/services/fees/fees.schemas.js.map +1 -0
- package/dist/services/fees/fees.types.d.ts +2 -0
- package/dist/services/fees/index.d.ts +3 -0
- package/dist/services/guard-signer/guard-signer.js.map +1 -1
- package/dist/services/guard-signer/guard-signer.schemas.d.ts +75 -75
- package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -1
- package/dist/services/guard-signer/guard-signer.schemas.js +42 -42
- package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -1
- package/dist/services/heatmap/heatmap.d.ts.map +1 -1
- package/dist/services/heatmap/heatmap.js +5 -4
- package/dist/services/heatmap/heatmap.js.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.d.ts +138 -138
- package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.js +47 -47
- package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +53 -53
- package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
- package/dist/services/internal-transfers/internal-transfers.schemas.js +27 -27
- package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.d.ts.map +1 -1
- package/dist/services/lifecycle/lifecycle.js +3 -2
- package/dist/services/lifecycle/lifecycle.js.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.d.ts +614 -614
- package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -1
- package/dist/services/lifecycle/lifecycle.schemas.js +146 -146
- package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -1
- package/dist/services/market-data/market-data.d.ts.map +1 -1
- package/dist/services/market-data/market-data.js +4 -3
- package/dist/services/market-data/market-data.js.map +1 -1
- package/dist/services/market-data/market-data.schemas.d.ts +19 -19
- package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
- package/dist/services/market-data/market-data.schemas.js +50 -50
- package/dist/services/market-data/market-data.schemas.js.map +1 -1
- package/dist/services/market-overview/market-overview.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.js +3 -2
- package/dist/services/market-overview/market-overview.js.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts +37 -37
- package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.js +33 -33
- package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
- package/dist/services/mfa/mfa.js +1 -1
- package/dist/services/mfa/mfa.js.map +1 -1
- package/dist/services/mfa/mfa.schemas.d.ts +206 -206
- package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
- package/dist/services/mfa/mfa.schemas.js +83 -83
- package/dist/services/mfa/mfa.schemas.js.map +1 -1
- package/dist/services/orderbook/orderbook.d.ts +2 -2
- package/dist/services/orderbook/orderbook.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.js +3 -2
- package/dist/services/orderbook/orderbook.js.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.d.ts +23 -23
- package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
- package/dist/services/orderbook/orderbook.schemas.js +15 -15
- package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
- package/dist/services/orders/order-errors.schemas.d.ts +18 -18
- package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
- package/dist/services/orders/order-errors.schemas.js +8 -8
- package/dist/services/orders/order-errors.schemas.js.map +1 -1
- package/dist/services/orders/orders-batch.schemas.d.ts +492 -492
- package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-batch.schemas.js +117 -117
- package/dist/services/orders/orders-batch.schemas.js.map +1 -1
- package/dist/services/orders/orders-identifiers.schemas.js +5 -5
- package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
- package/dist/services/orders/orders-input.schemas.d.ts +648 -648
- package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-input.schemas.js +95 -95
- package/dist/services/orders/orders-input.schemas.js.map +1 -1
- package/dist/services/orders/orders-modify.schemas.d.ts +351 -351
- package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-modify.schemas.js +44 -44
- package/dist/services/orders/orders-modify.schemas.js.map +1 -1
- package/dist/services/orders/orders-output.schemas.d.ts +179 -179
- package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-output.schemas.js +49 -49
- package/dist/services/orders/orders-output.schemas.js.map +1 -1
- package/dist/services/orders/orders-risk.schemas.d.ts +226 -226
- package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-risk.schemas.js +69 -69
- package/dist/services/orders/orders-risk.schemas.js.map +1 -1
- package/dist/services/orders/orders.d.ts +6 -6
- package/dist/services/orders/orders.d.ts.map +1 -1
- package/dist/services/orders/orders.js +4 -3
- package/dist/services/orders/orders.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.d.ts +6 -6
- package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +105 -105
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +49 -49
- package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
- package/dist/services/policies/shared.d.ts +5 -5
- package/dist/services/policies/shared.d.ts.map +1 -1
- package/dist/services/policies/shared.js +10 -10
- package/dist/services/policies/shared.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +6 -6
- package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.js +3 -2
- package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +124 -124
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +75 -75
- package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
- package/dist/services/rate-limits/index.d.ts +4 -0
- package/dist/services/rate-limits/rate-limits.codecs.d.ts +6 -0
- package/dist/services/rate-limits/rate-limits.codecs.d.ts.map +1 -0
- package/dist/services/rate-limits/rate-limits.codecs.js +11 -0
- package/dist/services/rate-limits/rate-limits.codecs.js.map +1 -0
- package/dist/services/rate-limits/rate-limits.d.ts +24 -0
- package/dist/services/rate-limits/rate-limits.d.ts.map +1 -0
- package/dist/services/rate-limits/rate-limits.js +40 -0
- package/dist/services/rate-limits/rate-limits.js.map +1 -0
- package/dist/services/rate-limits/rate-limits.schemas.d.ts +58 -0
- package/dist/services/rate-limits/rate-limits.schemas.d.ts.map +1 -0
- package/dist/services/rate-limits/rate-limits.schemas.js +30 -0
- package/dist/services/rate-limits/rate-limits.schemas.js.map +1 -0
- package/dist/services/rate-limits/rate-limits.types.d.ts +3 -0
- package/dist/services/shared.js +11 -11
- package/dist/services/shared.js.map +1 -1
- package/dist/services/social-verification/social-verification.d.ts +3 -3
- package/dist/services/social-verification/social-verification.d.ts.map +1 -1
- package/dist/services/social-verification/social-verification.js.map +1 -1
- package/dist/services/social-verification/social-verification.schemas.d.ts +54 -54
- package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
- package/dist/services/social-verification/social-verification.schemas.js +28 -28
- package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.d.ts +14 -14
- package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
- package/dist/services/subaccounts/subaccounts.js +9 -8
- package/dist/services/subaccounts/subaccounts.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.d.ts +137 -137
- package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
- package/dist/services/subaccounts/subaccounts.schemas.js +72 -72
- package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
- package/dist/services/trades/trades.d.ts +2 -2
- package/dist/services/trades/trades.d.ts.map +1 -1
- package/dist/services/trades/trades.js +3 -2
- package/dist/services/trades/trades.js.map +1 -1
- package/dist/services/trades/trades.schemas.d.ts +31 -31
- package/dist/services/trades/trades.schemas.d.ts.map +1 -1
- package/dist/services/trades/trades.schemas.js +24 -24
- package/dist/services/trades/trades.schemas.js.map +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.js +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +45 -45
- package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -1
- package/dist/services/trading-withdraws/trading-withdraws.schemas.js +36 -36
- package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -1
- package/dist/services/transfers/transfers.d.ts.map +1 -1
- package/dist/services/transfers/transfers.js +3 -2
- package/dist/services/transfers/transfers.js.map +1 -1
- package/dist/services/transfers/transfers.schemas.d.ts +42 -42
- package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
- package/dist/services/transfers/transfers.schemas.js +30 -30
- package/dist/services/transfers/transfers.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-child-order.schemas.js +23 -23
- package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.d.ts +226 -226
- package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
- package/dist/services/triggers/trigger-input.schemas.js +53 -53
- package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.d.ts +218 -218
- package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
- package/dist/services/triggers/triggers-output.schemas.js +152 -152
- package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
- package/dist/services/triggers/triggers.d.ts.map +1 -1
- package/dist/services/triggers/triggers.js +4 -3
- package/dist/services/triggers/triggers.js.map +1 -1
- package/dist/services/vip/index.d.ts +3 -0
- package/dist/services/vip/vip.d.ts +22 -0
- package/dist/services/vip/vip.d.ts.map +1 -0
- package/dist/services/vip/vip.js +35 -0
- package/dist/services/vip/vip.js.map +1 -0
- package/dist/services/vip/vip.schemas.d.ts +90 -0
- package/dist/services/vip/vip.schemas.d.ts.map +1 -0
- package/dist/services/vip/vip.schemas.js +47 -0
- package/dist/services/vip/vip.schemas.js.map +1 -0
- package/dist/services/vip/vip.types.d.ts +2 -0
- package/dist/services/whiteboard/whiteboard.js.map +1 -1
- package/dist/services/whiteboard/whiteboard.schemas.d.ts +379 -379
- package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -1
- package/dist/services/whiteboard/whiteboard.schemas.js +71 -71
- package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -1
- package/dist/services/zipper/zipper.js.map +1 -1
- package/dist/services/zipper/zipper.schemas.d.ts +1 -1
- package/dist/services/zipper/zipper.schemas.js +54 -54
- package/dist/services/zipper/zipper.schemas.js.map +1 -1
- package/dist/shared/account-scope.d.ts +6 -6
- package/dist/shared/account-scope.d.ts.map +1 -1
- package/dist/shared/account-scope.js +3 -3
- package/dist/shared/account-scope.js.map +1 -1
- package/dist/shared/connect-error-mapping.js +2 -2
- package/dist/shared/connect-error-mapping.js.map +1 -1
- package/dist/shared/rate-limit.schemas.d.ts +12 -12
- package/dist/shared/rate-limit.schemas.d.ts.map +1 -1
- package/dist/shared/rate-limit.schemas.js +7 -7
- package/dist/shared/rate-limit.schemas.js.map +1 -1
- package/dist/shared/schemas.js +26 -26
- package/dist/shared/schemas.js.map +1 -1
- package/dist/shared/validation.js +1 -6
- package/dist/shared/validation.js.map +1 -1
- package/dist/utils/connect-order-errors.js +2 -2
- package/dist/utils/connect-order-errors.js.map +1 -1
- package/dist/wired-services.d.ts.map +1 -1
- package/dist/wired-services.js +6 -0
- package/dist/wired-services.js.map +1 -1
- package/package.json +3 -3
- package/dist/shared/validation.d.ts +0 -14
- 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,
|
|
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 =
|
|
12
|
-
const WhiteboardTitleSchema =
|
|
13
|
-
const Uint64StringSchema =
|
|
14
|
-
const WhiteboardAudienceSchema =
|
|
15
|
-
const WhiteboardWritableRoleSchema =
|
|
16
|
-
|
|
17
|
-
const WhiteboardAclSubjectTypeSchema =
|
|
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 =
|
|
20
|
-
const WhiteboardRoleInputSchema =
|
|
21
|
-
const WhiteboardAclSubjectTypeInputSchema =
|
|
22
|
-
const WhiteboardAclEntryInputSchema =
|
|
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:
|
|
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 =
|
|
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 =
|
|
31
|
+
const CreateWhiteboardBoardInputSchema = v.strictObject({
|
|
32
32
|
title: WhiteboardTitleSchema,
|
|
33
33
|
audience: WhiteboardAudienceInputSchema,
|
|
34
34
|
defaultRole: WhiteboardRoleInputSchema,
|
|
35
|
-
aclEntries:
|
|
36
|
-
initialSnapshot:
|
|
35
|
+
aclEntries: v.optional(WhiteboardAclEntriesInputSchema, []),
|
|
36
|
+
initialSnapshot: v.optional(WhiteboardSnapshotSchema)
|
|
37
37
|
});
|
|
38
|
-
const GetWhiteboardBoardInputSchema =
|
|
39
|
-
const ListWhiteboardBoardsInputSchema =
|
|
40
|
-
includeArchived:
|
|
41
|
-
limit:
|
|
42
|
-
pageToken:
|
|
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 =
|
|
44
|
+
const UpdateWhiteboardBoardInputSchema = v.pipe(v.strictObject({
|
|
45
45
|
boardId: WhiteboardIdSchema,
|
|
46
|
-
title:
|
|
47
|
-
audience:
|
|
48
|
-
defaultRole:
|
|
49
|
-
initialSnapshot:
|
|
50
|
-
}),
|
|
51
|
-
const UpdateWhiteboardBoardAclInputSchema =
|
|
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 =
|
|
55
|
+
const ArchiveWhiteboardBoardInputSchema = v.strictObject({
|
|
56
56
|
boardId: WhiteboardIdSchema,
|
|
57
|
-
archived:
|
|
57
|
+
archived: v.boolean()
|
|
58
58
|
});
|
|
59
|
-
const MintWhiteboardJoinTokenInputSchema =
|
|
60
|
-
const WhiteboardPermissionsSchema =
|
|
61
|
-
canView:
|
|
62
|
-
canEdit:
|
|
63
|
-
canManage:
|
|
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 =
|
|
66
|
-
role:
|
|
67
|
-
permissions:
|
|
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 =
|
|
70
|
-
subjectType:
|
|
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:
|
|
72
|
+
role: v.pipe(v.enum(BoardRole), v.transform(requiredRoleLabelFor))
|
|
73
73
|
});
|
|
74
|
-
const WhiteboardBoardSchema =
|
|
75
|
-
boardId:
|
|
74
|
+
const WhiteboardBoardSchema = v.pipe(v.object({
|
|
75
|
+
boardId: v.string(),
|
|
76
76
|
ownerAccountId: PublicIdSchema,
|
|
77
|
-
title:
|
|
78
|
-
audience:
|
|
79
|
-
defaultRole:
|
|
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:
|
|
81
|
+
initialSnapshot: v.optional(WhiteboardSnapshotSchema),
|
|
82
82
|
createdAt: OptionalTimestampMsSchema,
|
|
83
83
|
updatedAt: OptionalTimestampMsSchema,
|
|
84
84
|
archivedAt: OptionalTimestampMsSchema
|
|
85
|
-
}),
|
|
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 =
|
|
91
|
+
const WhiteboardBoardListItemSchema = v.object({
|
|
92
92
|
board: WhiteboardBoardSchema,
|
|
93
|
-
access:
|
|
93
|
+
access: v.optional(WhiteboardAccessSchema)
|
|
94
94
|
});
|
|
95
|
-
const WhiteboardBoardDetailsSchema =
|
|
95
|
+
const WhiteboardBoardDetailsSchema = v.object({
|
|
96
96
|
board: WhiteboardBoardSchema,
|
|
97
|
-
aclEntries:
|
|
98
|
-
access:
|
|
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 =
|
|
105
|
-
boards:
|
|
106
|
-
nextPageToken:
|
|
104
|
+
const ListWhiteboardBoardsResultSchema = v.object({
|
|
105
|
+
boards: v.optional(v.array(WhiteboardBoardListItemSchema), []),
|
|
106
|
+
nextPageToken: v.optional(v.string(), "")
|
|
107
107
|
});
|
|
108
|
-
const ArchiveWhiteboardBoardResultSchema =
|
|
109
|
-
board:
|
|
110
|
-
access:
|
|
108
|
+
const ArchiveWhiteboardBoardResultSchema = v.object({
|
|
109
|
+
board: v.optional(WhiteboardBoardSchema),
|
|
110
|
+
access: v.optional(WhiteboardAccessSchema)
|
|
111
111
|
});
|
|
112
|
-
const WhiteboardPresencePayloadSchema =
|
|
112
|
+
const WhiteboardPresencePayloadSchema = v.object({
|
|
113
113
|
accountId: PublicIdSchema,
|
|
114
|
-
role:
|
|
114
|
+
role: v.pipe(v.enum(BoardRole), v.transform(requiredRoleLabelFor))
|
|
115
115
|
});
|
|
116
|
-
const WhiteboardJoinTokenResultSchema =
|
|
117
|
-
boardId:
|
|
118
|
-
access:
|
|
116
|
+
const WhiteboardJoinTokenResultSchema = v.pipe(v.object({
|
|
117
|
+
boardId: v.string(),
|
|
118
|
+
access: v.optional(WhiteboardAccessSchema),
|
|
119
119
|
expiresAt: OptionalTimestampMsSchema,
|
|
120
|
-
token:
|
|
121
|
-
roomId:
|
|
122
|
-
connectionId:
|
|
123
|
-
socketPath:
|
|
124
|
-
presence:
|
|
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
|
-
}),
|
|
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","
|
|
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 =
|
|
5
|
-
chainId:
|
|
6
|
-
code:
|
|
7
|
-
name:
|
|
8
|
-
nativeChainId:
|
|
9
|
-
nativeCurrencySymbol:
|
|
10
|
-
explorerUrl:
|
|
11
|
-
icon:
|
|
12
|
-
requiredConfirmations:
|
|
13
|
-
confirmationTimeSeconds:
|
|
14
|
-
isCaseSensitive:
|
|
15
|
-
minAddressLength:
|
|
16
|
-
maxAddressLength:
|
|
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 =
|
|
19
|
-
zippedAssetId:
|
|
20
|
-
chainId:
|
|
21
|
-
isNativeAsset:
|
|
22
|
-
networkFee:
|
|
23
|
-
networkFeeTsSec:
|
|
24
|
-
ztokenAddress:
|
|
25
|
-
sourceAddress:
|
|
26
|
-
sourceDecimals:
|
|
27
|
-
ztokenDecimals:
|
|
28
|
-
depositMinAmount:
|
|
29
|
-
withdrawMinAmount:
|
|
30
|
-
supplyQ:
|
|
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 =
|
|
47
|
-
asset:
|
|
48
|
-
ledgerId:
|
|
49
|
-
name:
|
|
50
|
-
icon:
|
|
51
|
-
quantityScale:
|
|
52
|
-
quantityDisplayDecimals:
|
|
53
|
-
variants:
|
|
54
|
-
uAssetId:
|
|
55
|
-
}),
|
|
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 =
|
|
60
|
-
name:
|
|
61
|
-
address:
|
|
62
|
-
type:
|
|
63
|
-
description:
|
|
64
|
-
version:
|
|
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 =
|
|
67
|
-
chains:
|
|
68
|
-
assets:
|
|
69
|
-
tsSec:
|
|
70
|
-
polyesterChainId:
|
|
71
|
-
contracts:
|
|
72
|
-
}),
|
|
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 =
|
|
77
|
-
zippedAssetId:
|
|
78
|
-
supplyQ:
|
|
76
|
+
const ZippedAssetSupplyUpdateWireSchema = v.object({
|
|
77
|
+
zippedAssetId: v.number(),
|
|
78
|
+
supplyQ: v.bigint()
|
|
79
79
|
});
|
|
80
80
|
function createZippedAssetSupplyBatchSchema(scales) {
|
|
81
|
-
return
|
|
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":[
|
|
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
|
|
1
|
+
import * as v from "valibot";
|
|
2
2
|
//#region src/shared/account-scope.d.ts
|
|
3
|
-
declare const AccountScopeSchema:
|
|
4
|
-
readonly subaccountId:
|
|
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 =
|
|
6
|
+
type AccountScope = v.InferInput<typeof AccountScopeSchema>;
|
|
7
7
|
type AccountScopedInput = {
|
|
8
8
|
account?: AccountScope;
|
|
9
9
|
};
|
|
10
10
|
declare const AccountScopeInputEntries: {
|
|
11
|
-
account:
|
|
12
|
-
readonly subaccountId:
|
|
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,
|
|
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 =
|
|
5
|
-
const OptionalAccountScopeSchema =
|
|
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":[
|
|
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 =
|
|
23
|
+
const result = v.safeParse(RateLimitDetailSchema, orderDetail.rateLimit);
|
|
24
24
|
if (result.success) return result.output;
|
|
25
25
|
}
|
|
26
26
|
}
|