@polyester/sdk 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +63 -17
- package/dist/_virtual/_rolldown/runtime.js +15 -1
- package/dist/account-signer/types.d.ts.map +1 -1
- package/dist/account-signer/types.js +6 -3
- package/dist/account-signer/types.js.map +1 -1
- package/dist/browser-client.d.ts +4 -2
- package/dist/browser-client.d.ts.map +1 -1
- package/dist/browser-client.js +3 -4
- package/dist/browser-client.js.map +1 -1
- package/dist/catalogs/client-catalog.d.ts.map +1 -1
- package/dist/catalogs/client-catalog.js +11 -4
- package/dist/catalogs/client-catalog.js.map +1 -1
- package/dist/catalogs/index.js +1 -1
- package/dist/catalogs/readers.d.ts.map +1 -1
- package/dist/catalogs/readers.js +3 -1
- package/dist/catalogs/readers.js.map +1 -1
- package/dist/catalogs/snapshot-validation.js +132 -0
- package/dist/catalogs/snapshot-validation.js.map +1 -0
- package/dist/catalogs/snapshot.d.ts.map +1 -1
- package/dist/catalogs/snapshot.js +16 -7
- package/dist/catalogs/snapshot.js.map +1 -1
- package/dist/catalogs/zipper-supply.d.ts.map +1 -1
- package/dist/catalogs/zipper-supply.js +10 -7
- package/dist/catalogs/zipper-supply.js.map +1 -1
- package/dist/core-client.d.ts +24 -17
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +21 -3
- package/dist/core-client.js.map +1 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +32 -1
- package/dist/environment.js.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts +7 -0
- package/dist/gen/marketoverview/v1/marketoverview_pb.d.ts.map +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js +1 -1
- package/dist/gen/marketoverview/v1/marketoverview_pb.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/realtime/client.js +13 -2
- package/dist/realtime/client.js.map +1 -1
- package/dist/realtime/snapshot-then-stream.js +1 -1
- package/dist/realtime/snapshot-then-stream.js.map +1 -1
- package/dist/realtime/types.d.ts +2 -0
- package/dist/realtime/types.d.ts.map +1 -1
- package/dist/server-client.d.ts +17 -8
- package/dist/server-client.d.ts.map +1 -1
- package/dist/server-client.js +8 -11
- package/dist/server-client.js.map +1 -1
- package/dist/services/accounts/accounts.js +3 -3
- 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 +28 -28
- 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 -160
- 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 +12 -12
- 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 +46 -40
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +28 -25
- 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 +7 -7
- 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.d.ts +1 -1
- package/dist/services/auth/session.d.ts.map +1 -1
- package/dist/services/auth/session.js +6 -2
- package/dist/services/auth/session.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/auth/session.types.d.ts +3 -2
- package/dist/services/auth/session.types.d.ts.map +1 -1
- package/dist/services/balances/balances.d.ts +1 -1
- package/dist/services/balances/balances.js +9 -9
- 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.js +12 -12
- 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 -48
- package/dist/services/candles/candles.schemas.js.map +1 -1
- package/dist/services/chain-analytics/chain-analytics.js +7 -7
- 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 +5 -5
- 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/guard-signer/guard-signer.js +13 -13
- 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.js +9 -9
- package/dist/services/heatmap/heatmap.js.map +1 -1
- package/dist/services/heatmap/heatmap.schemas.d.ts +141 -141
- 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 +3 -3
- 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.js +10 -10
- 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.js +6 -6
- package/dist/services/market-data/market-data.js.map +1 -1
- package/dist/services/market-data/market-data.schemas.d.ts +20 -20
- package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
- package/dist/services/market-data/market-data.schemas.js +51 -55
- package/dist/services/market-data/market-data.schemas.js.map +1 -1
- package/dist/services/market-overview/market-overview.d.ts +1 -1
- package/dist/services/market-overview/market-overview.js +5 -5
- package/dist/services/market-overview/market-overview.js.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.d.ts +39 -36
- package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
- package/dist/services/market-overview/market-overview.schemas.js +34 -32
- package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
- package/dist/services/mfa/mfa.js +27 -27
- 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 +5 -5
- 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 +118 -118
- 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 +657 -648
- package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-input.schemas.js +100 -96
- package/dist/services/orders/orders-input.schemas.js.map +1 -1
- package/dist/services/orders/orders-modify.schemas.d.ts +370 -351
- package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
- package/dist/services/orders/orders-modify.schemas.js +48 -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 +8 -8
- package/dist/services/orders/orders.d.ts.map +1 -1
- package/dist/services/orders/orders.js +44 -32
- 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 +11 -11
- 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 +13 -13
- 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/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 +7 -7
- 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/subaccount-resolver.js +5 -3
- package/dist/services/subaccount-resolver.js.map +1 -1
- package/dist/services/subaccounts/subaccounts.d.ts +15 -15
- package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
- package/dist/services/subaccounts/subaccounts.js +35 -35
- 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 +5 -5
- 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 +8 -8
- 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 +1 -1
- package/dist/services/transfers/transfers.d.ts.map +1 -1
- package/dist/services/transfers/transfers.js +5 -5
- 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.js +21 -21
- package/dist/services/triggers/triggers.js.map +1 -1
- package/dist/services/whiteboard/whiteboard.js +15 -15
- 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 +3 -3
- 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.d.ts +1 -1
- package/dist/shared/connect-error-mapping.js +29 -3
- 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/transports.js +7 -12
- package/dist/shared/transports.js.map +1 -1
- package/dist/shared/types.d.ts +12 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/validation.d.ts +14 -0
- package/dist/shared/validation.d.ts.map +1 -0
- package/dist/shared/validation.js +24 -0
- package/dist/shared/validation.js.map +1 -0
- package/dist/utils/connect-order-errors.js +2 -2
- package/dist/utils/connect-order-errors.js.map +1 -1
- package/dist/utils/cookies.d.ts +8 -3
- package/dist/utils/cookies.d.ts.map +1 -1
- package/dist/utils/cookies.js +7 -1
- package/dist/utils/cookies.js.map +1 -1
- package/dist/utils/event-emitter.d.ts +1 -1
- package/dist/utils/event-emitter.d.ts.map +1 -1
- package/dist/utils/event-emitter.js +4 -2
- package/dist/utils/event-emitter.js.map +1 -1
- package/dist/utils/evm.js +2 -2
- package/dist/utils/evm.js.map +1 -1
- package/dist/utils/jwt.d.ts +2 -2
- package/dist/utils/jwt.d.ts.map +1 -1
- package/dist/utils/jwt.js +2 -2
- package/dist/utils/jwt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-policies.schemas.d.ts","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"mappings":";;;;cAiCa,+BAA6B,
|
|
1
|
+
{"version":3,"file":"api-key-policies.schemas.d.ts","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"mappings":";;;;cAiCa,+BAA6B,qBAAA;;;cAM7B,4BAA0B,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;cAiB1B,oBAAkB,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CnB,eAAe,qBAAE,mBAAmB;cAEnC,kCAAgC,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAOjC,6BAA6B,qBAAE,mBAAmB;cAkCjD,+BAA6B,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAQ9B,0BAA0B,qBAAE,kBAAkB;cAoD7C,+BAA6B,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyB9B,0BAA0B,qBAAE,kBAAkB;cAE7C,8BAA4B,qBAAA;;;;KAQ7B,yBAAyB,qBAAE,kBAAkB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validation_exports } from "../../../shared/validation.js";
|
|
1
2
|
import { idToBigInt } from "../../../utils/base58-id.js";
|
|
2
3
|
import { toBigIntOrZero } from "../../../utils/numbers.js";
|
|
3
4
|
import { tsObjToMs, tsObjToNsString } from "../../../utils/time.js";
|
|
@@ -5,14 +6,13 @@ import { BigIntStringSchema, OptionalNumberToBigIntOrZeroSchema, OptionalPublicI
|
|
|
5
6
|
import { PerpMarketRuleSchema, PolicyActionEnumSchema, PolicyMarketScopeEnumSchema, ProtoPolicyActionEnumSchema, ProtoPolicyMarketScopeEnumSchema, SpotMarketRuleSchema } from "../shared.js";
|
|
6
7
|
import { PolicyActionCodec, PolicyMarketScopeCodec, policyActionLabelFor, policyMarketScopeLabelFor } from "../shared.codecs.js";
|
|
7
8
|
import { buildProtoPatch, defineProtoPatchFields } from "../../../utils/proto-patch.js";
|
|
8
|
-
import * as v from "valibot";
|
|
9
9
|
//#region src/services/policies/api-key-policies/api-key-policies.schemas.ts
|
|
10
|
-
const OptionalApiKeyContextSchema =
|
|
11
|
-
const ListApiKeyPoliciesInputSchema =
|
|
12
|
-
const GetApiKeyPolicyInputSchema =
|
|
13
|
-
policyId:
|
|
10
|
+
const OptionalApiKeyContextSchema = validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1, "keyId is required")));
|
|
11
|
+
const ListApiKeyPoliciesInputSchema = validation_exports.strictObject({ keyId: OptionalApiKeyContextSchema });
|
|
12
|
+
const GetApiKeyPolicyInputSchema = validation_exports.pipe(validation_exports.strictObject({
|
|
13
|
+
policyId: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1))),
|
|
14
14
|
keyId: OptionalApiKeyContextSchema
|
|
15
|
-
}),
|
|
15
|
+
}), validation_exports.transform(({ policyId, keyId }) => ({
|
|
16
16
|
policyId: policyId ? idToBigInt(policyId, "policyId") : void 0,
|
|
17
17
|
keyId
|
|
18
18
|
})));
|
|
@@ -20,42 +20,42 @@ const GetApiKeyPolicyInputSchema = v.pipe(v.strictObject({
|
|
|
20
20
|
* From the backend format to a usable frontend/UI format, so big ints to numbers, etc.
|
|
21
21
|
* Shape matches auth.v1.ApiPolicyView.
|
|
22
22
|
*/
|
|
23
|
-
const ApiKeyPolicySchema =
|
|
23
|
+
const ApiKeyPolicySchema = validation_exports.pipe(validation_exports.object({
|
|
24
24
|
id: PublicIdSchema,
|
|
25
|
-
name:
|
|
26
|
-
description:
|
|
27
|
-
spotMarkets:
|
|
28
|
-
spotMarketScope:
|
|
29
|
-
perpMarketScope:
|
|
30
|
-
perpMarkets:
|
|
31
|
-
actions:
|
|
32
|
-
isTemplate:
|
|
25
|
+
name: validation_exports.string(),
|
|
26
|
+
description: validation_exports.string(),
|
|
27
|
+
spotMarkets: validation_exports.optional(validation_exports.array(SpotMarketRuleSchema), []),
|
|
28
|
+
spotMarketScope: validation_exports.pipe(ProtoPolicyMarketScopeEnumSchema, validation_exports.transform((v) => policyMarketScopeLabelFor(v))),
|
|
29
|
+
perpMarketScope: validation_exports.pipe(ProtoPolicyMarketScopeEnumSchema, validation_exports.transform((v) => policyMarketScopeLabelFor(v))),
|
|
30
|
+
perpMarkets: validation_exports.optional(validation_exports.array(PerpMarketRuleSchema), []),
|
|
31
|
+
actions: validation_exports.pipe(validation_exports.optional(validation_exports.array(ProtoPolicyActionEnumSchema), []), validation_exports.transform((v) => v.map((action) => policyActionLabelFor(action)))),
|
|
32
|
+
isTemplate: validation_exports.optional(validation_exports.boolean(), false),
|
|
33
33
|
sourceTemplateId: OptionalPublicIdSchema,
|
|
34
|
-
maxOrderNotional:
|
|
35
|
-
dailyInternalTransferOutLimit:
|
|
36
|
-
dailyWithdrawLimit:
|
|
34
|
+
maxOrderNotional: validation_exports.pipe(validation_exports.optional(validation_exports.bigint()), validation_exports.transform((v) => v === void 0 ? void 0 : Number(v))),
|
|
35
|
+
dailyInternalTransferOutLimit: validation_exports.pipe(validation_exports.bigint(), validation_exports.transform((v) => Number(v))),
|
|
36
|
+
dailyWithdrawLimit: validation_exports.pipe(validation_exports.bigint(), validation_exports.transform((v) => Number(v))),
|
|
37
37
|
createdAt: TimestampMsSchema,
|
|
38
38
|
updatedAt: TimestampSchema,
|
|
39
39
|
revision: BigIntStringSchema
|
|
40
|
-
}),
|
|
40
|
+
}), validation_exports.transform(({ updatedAt, ...policy }) => ({
|
|
41
41
|
...policy,
|
|
42
42
|
updatedAt: tsObjToMs(updatedAt),
|
|
43
43
|
updatedAtNs: tsObjToNsString(updatedAt)
|
|
44
44
|
})));
|
|
45
|
-
const ListApiKeyPoliciesResponseSchema =
|
|
46
|
-
const ApiKeyPolicyInputBaseSchema =
|
|
47
|
-
name:
|
|
48
|
-
description:
|
|
49
|
-
spotMarkets:
|
|
50
|
-
perpMarkets:
|
|
51
|
-
spotMarketScope:
|
|
52
|
-
perpMarketScope:
|
|
53
|
-
actions:
|
|
45
|
+
const ListApiKeyPoliciesResponseSchema = validation_exports.pipe(validation_exports.object({ policies: validation_exports.optional(validation_exports.array(ApiKeyPolicySchema), []) }), validation_exports.transform((value) => value.policies));
|
|
46
|
+
const ApiKeyPolicyInputBaseSchema = validation_exports.strictObject({
|
|
47
|
+
name: validation_exports.string(),
|
|
48
|
+
description: validation_exports.optional(validation_exports.string(), ""),
|
|
49
|
+
spotMarkets: validation_exports.optional(validation_exports.array(SpotMarketRuleSchema), []),
|
|
50
|
+
perpMarkets: validation_exports.optional(validation_exports.array(PerpMarketRuleSchema), []),
|
|
51
|
+
spotMarketScope: validation_exports.pipe(PolicyMarketScopeEnumSchema, validation_exports.transform((v) => PolicyMarketScopeCodec.inputToProto[v])),
|
|
52
|
+
perpMarketScope: validation_exports.pipe(PolicyMarketScopeEnumSchema, validation_exports.transform((v) => PolicyMarketScopeCodec.inputToProto[v])),
|
|
53
|
+
actions: validation_exports.pipe(validation_exports.optional(validation_exports.array(PolicyActionEnumSchema), []), validation_exports.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action]))),
|
|
54
54
|
maxOrderNotional: OptionalNumberToBigIntOrZeroSchema,
|
|
55
55
|
dailyInternalTransferLimit: OptionalNumberToBigIntOrZeroSchema,
|
|
56
56
|
dailyWithdrawLimit: OptionalNumberToBigIntOrZeroSchema,
|
|
57
|
-
isTemplate:
|
|
58
|
-
assignToKeyId:
|
|
57
|
+
isTemplate: validation_exports.optional(validation_exports.boolean(), false),
|
|
58
|
+
assignToKeyId: validation_exports.optional(validation_exports.pipe(validation_exports.string(), validation_exports.trim()))
|
|
59
59
|
});
|
|
60
60
|
function createApiKeyPolicyBaseTransform(input) {
|
|
61
61
|
const { dailyInternalTransferLimit, assignToKeyId: _assignToKeyId, ...rest } = input;
|
|
@@ -64,22 +64,22 @@ function createApiKeyPolicyBaseTransform(input) {
|
|
|
64
64
|
dailyInternalTransferOutLimit: dailyInternalTransferLimit
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
const CreateApiKeyPolicyInputSchema =
|
|
67
|
+
const CreateApiKeyPolicyInputSchema = validation_exports.pipe(ApiKeyPolicyInputBaseSchema, validation_exports.transform((input) => ({
|
|
68
68
|
policy: createApiKeyPolicyBaseTransform(input),
|
|
69
69
|
assignToKeyId: input.assignToKeyId
|
|
70
70
|
})));
|
|
71
|
-
const ApiKeyPolicyPatchSchema =
|
|
72
|
-
name:
|
|
73
|
-
description:
|
|
74
|
-
spotMarkets:
|
|
75
|
-
perpMarkets:
|
|
76
|
-
spotMarketScope:
|
|
77
|
-
perpMarketScope:
|
|
78
|
-
actions:
|
|
79
|
-
maxOrderNotional:
|
|
80
|
-
dailyInternalTransferLimit:
|
|
81
|
-
dailyWithdrawLimit:
|
|
82
|
-
isTemplate:
|
|
71
|
+
const ApiKeyPolicyPatchSchema = validation_exports.strictObject({
|
|
72
|
+
name: validation_exports.optional(validation_exports.string()),
|
|
73
|
+
description: validation_exports.optional(validation_exports.string()),
|
|
74
|
+
spotMarkets: validation_exports.optional(validation_exports.array(SpotMarketRuleSchema)),
|
|
75
|
+
perpMarkets: validation_exports.optional(validation_exports.array(PerpMarketRuleSchema)),
|
|
76
|
+
spotMarketScope: validation_exports.optional(PolicyMarketScopeEnumSchema),
|
|
77
|
+
perpMarketScope: validation_exports.optional(PolicyMarketScopeEnumSchema),
|
|
78
|
+
actions: validation_exports.optional(validation_exports.array(PolicyActionEnumSchema)),
|
|
79
|
+
maxOrderNotional: validation_exports.optional(validation_exports.nullable(validation_exports.number())),
|
|
80
|
+
dailyInternalTransferLimit: validation_exports.optional(validation_exports.nullable(validation_exports.number())),
|
|
81
|
+
dailyWithdrawLimit: validation_exports.optional(validation_exports.nullable(validation_exports.number())),
|
|
82
|
+
isTemplate: validation_exports.optional(validation_exports.boolean())
|
|
83
83
|
});
|
|
84
84
|
const API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
|
|
85
85
|
name: {
|
|
@@ -127,11 +127,11 @@ const API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields()({
|
|
|
127
127
|
encode: (isTemplate) => ({ isTemplate })
|
|
128
128
|
}
|
|
129
129
|
});
|
|
130
|
-
const UpdateApiKeyPolicyInputSchema =
|
|
130
|
+
const UpdateApiKeyPolicyInputSchema = validation_exports.pipe(validation_exports.strictObject({
|
|
131
131
|
...ApiKeyPolicyPatchSchema.entries,
|
|
132
|
-
policyId:
|
|
132
|
+
policyId: validation_exports.pipe(validation_exports.string(), validation_exports.transform((v) => idToBigInt(v, "policyId"))),
|
|
133
133
|
expectedRevision: positiveBigintStringInputSchema("expectedRevision")
|
|
134
|
-
}),
|
|
134
|
+
}), validation_exports.check(({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) => Object.values(patch).some((value) => value !== void 0), "At least one API key policy field must be provided"), validation_exports.transform(({ policyId, expectedRevision, ...patch }) => {
|
|
135
135
|
const { patch: policy, updateMask } = buildProtoPatch(patch, API_KEY_POLICY_PATCH_FIELDS);
|
|
136
136
|
return {
|
|
137
137
|
policyId,
|
|
@@ -140,9 +140,9 @@ const UpdateApiKeyPolicyInputSchema = v.pipe(v.strictObject({
|
|
|
140
140
|
expectedRevision
|
|
141
141
|
};
|
|
142
142
|
}));
|
|
143
|
-
const ApplyApiKeyPolicyInputSchema =
|
|
144
|
-
keyId:
|
|
145
|
-
policyId:
|
|
143
|
+
const ApplyApiKeyPolicyInputSchema = validation_exports.strictObject({
|
|
144
|
+
keyId: validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1)),
|
|
145
|
+
policyId: validation_exports.pipe(validation_exports.nullable(validation_exports.pipe(validation_exports.string(), validation_exports.trim())), validation_exports.transform((value) => value ? idToBigInt(value, "policyId") : void 0))
|
|
146
146
|
});
|
|
147
147
|
const DEFAULT_API_KEY_POLICY = {
|
|
148
148
|
id: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key-policies.schemas.js","names":[],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport {\n PerpMarketRuleSchema,\n PolicyActionEnumSchema,\n PolicyMarketScopeEnumSchema,\n ProtoPolicyActionEnumSchema,\n ProtoPolicyMarketScopeEnumSchema,\n SpotMarketRuleSchema,\n} from \"../shared.js\";\nimport {\n PolicyMarketScopeCodec,\n PolicyActionCodec,\n policyMarketScopeLabelFor,\n policyActionLabelFor,\n} from \"../shared.codecs.js\";\nimport { idToBigInt } from \"../../../utils/base58-id.js\";\nimport {\n OptionalNumberToBigIntOrZeroSchema,\n OptionalPublicIdSchema,\n BigIntStringSchema,\n PublicIdSchema,\n TimestampMsSchema,\n TimestampSchema,\n positiveBigintStringInputSchema,\n} from \"../../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../../utils/time.js\";\nimport { toBigIntOrZero } from \"../../../utils/numbers.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../../utils/proto-patch.js\";\n\nconst OptionalApiKeyContextSchema = v.optional(\n v.pipe(v.string(), v.trim(), v.minLength(1, \"keyId is required\")),\n);\n\nexport const ListApiKeyPoliciesInputSchema = v.strictObject({\n keyId: OptionalApiKeyContextSchema,\n});\n\nexport type ListApiKeyPoliciesInput = v.InferInput<typeof ListApiKeyPoliciesInputSchema>;\n\nexport const GetApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n policyId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),\n keyId: OptionalApiKeyContextSchema,\n }),\n v.transform(({ policyId, keyId }) => ({\n policyId: policyId ? idToBigInt(policyId, \"policyId\") : undefined,\n keyId,\n })),\n);\n\nexport type GetApiKeyPolicyInput = v.InferInput<typeof GetApiKeyPolicyInputSchema>;\n\n/**\n * From the backend format to a usable frontend/UI format, so big ints to numbers, etc.\n * Shape matches auth.v1.ApiPolicyView.\n */\nexport const ApiKeyPolicySchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n name: v.string(),\n description: v.string(),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n perpMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),\n actions: v.pipe(\n v.optional(v.array(ProtoPolicyActionEnumSchema), []),\n v.transform((v) => v.map((action) => policyActionLabelFor(action))),\n ),\n isTemplate: v.optional(v.boolean(), false),\n sourceTemplateId: OptionalPublicIdSchema,\n maxOrderNotional: v.pipe(\n v.optional(v.bigint()),\n v.transform((v) => (v === undefined ? undefined : Number(v))),\n ),\n dailyInternalTransferOutLimit: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n dailyWithdrawLimit: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampSchema,\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...policy }) => ({\n ...policy,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type ApiKeyPolicy = v.InferOutput<typeof ApiKeyPolicySchema>;\n\nexport const ListApiKeyPoliciesResponseSchema = v.pipe(\n v.object({\n policies: v.optional(v.array(ApiKeyPolicySchema), []),\n }),\n v.transform((value) => value.policies),\n);\n\nexport type ListApiKeyPoliciesResponse = v.InferOutput<typeof ListApiKeyPoliciesResponseSchema>;\n\nconst ApiKeyPolicyInputBaseSchema = v.strictObject({\n name: v.string(),\n description: v.optional(v.string(), \"\"),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n perpMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n actions: v.pipe(\n v.optional(v.array(PolicyActionEnumSchema), []),\n v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action])),\n ),\n maxOrderNotional: OptionalNumberToBigIntOrZeroSchema,\n dailyInternalTransferLimit: OptionalNumberToBigIntOrZeroSchema,\n dailyWithdrawLimit: OptionalNumberToBigIntOrZeroSchema,\n isTemplate: v.optional(v.boolean(), false),\n assignToKeyId: v.optional(v.pipe(v.string(), v.trim())),\n});\n\nfunction createApiKeyPolicyBaseTransform(input: v.InferOutput<typeof ApiKeyPolicyInputBaseSchema>) {\n const { dailyInternalTransferLimit, assignToKeyId: _assignToKeyId, ...rest } = input;\n return {\n ...rest,\n dailyInternalTransferOutLimit: dailyInternalTransferLimit,\n };\n}\n\nexport const CreateApiKeyPolicyInputSchema = v.pipe(\n ApiKeyPolicyInputBaseSchema,\n v.transform((input) => ({\n policy: createApiKeyPolicyBaseTransform(input),\n assignToKeyId: input.assignToKeyId,\n })),\n);\n\nexport type ApiKeyPolicyCreateInput = v.InferInput<typeof CreateApiKeyPolicyInputSchema>;\n\nconst ApiKeyPolicyPatchSchema = v.strictObject({\n name: v.optional(v.string()),\n description: v.optional(v.string()),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema)),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema)),\n spotMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n perpMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n actions: v.optional(v.array(PolicyActionEnumSchema)),\n maxOrderNotional: v.optional(v.nullable(v.number())),\n dailyInternalTransferLimit: v.optional(v.nullable(v.number())),\n dailyWithdrawLimit: v.optional(v.nullable(v.number())),\n isTemplate: v.optional(v.boolean()),\n});\n\ntype ApiKeyPolicyPatch = v.InferOutput<typeof ApiKeyPolicyPatchSchema>;\n\nconst API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields<ApiKeyPolicyPatch>()({\n name: { path: \"name\", encode: (name) => ({ name }) },\n description: { path: \"description\", encode: (description) => ({ description }) },\n spotMarkets: { path: \"spot_markets\", encode: (spotMarkets) => ({ spotMarkets }) },\n perpMarkets: { path: \"perp_markets\", encode: (perpMarkets) => ({ perpMarkets }) },\n spotMarketScope: {\n path: \"spot_market_scope\",\n encode: (scope) => ({ spotMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n perpMarketScope: {\n path: \"perp_market_scope\",\n encode: (scope) => ({ perpMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n actions: {\n path: \"actions\",\n encode: (actions) => ({\n actions: actions.map((action) => PolicyActionCodec.inputToProto[action]),\n }),\n },\n maxOrderNotional: {\n path: \"max_order_notional\",\n encode: (value) => ({ maxOrderNotional: toBigIntOrZero(value) }),\n },\n dailyInternalTransferLimit: {\n path: \"daily_internal_transfer_out_limit\",\n encode: (value) => ({ dailyInternalTransferOutLimit: toBigIntOrZero(value) }),\n },\n dailyWithdrawLimit: {\n path: \"daily_withdraw_limit\",\n encode: (value) => ({ dailyWithdrawLimit: toBigIntOrZero(value) }),\n },\n isTemplate: { path: \"is_template\", encode: (isTemplate) => ({ isTemplate }) },\n});\n\nexport const UpdateApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n ...ApiKeyPolicyPatchSchema.entries,\n policyId: v.pipe(\n v.string(),\n v.transform((v) => idToBigInt(v, \"policyId\")),\n ),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n }),\n v.check(\n ({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) =>\n Object.values(patch).some((value) => value !== undefined),\n \"At least one API key policy field must be provided\",\n ),\n v.transform(({ policyId, expectedRevision, ...patch }) => {\n const { patch: policy, updateMask } = buildProtoPatch(patch, API_KEY_POLICY_PATCH_FIELDS);\n return {\n policyId,\n policy,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type ApiKeyPolicyUpdateInput = v.InferInput<typeof UpdateApiKeyPolicyInputSchema>;\n\nexport const ApplyApiKeyPolicyInputSchema = v.strictObject({\n keyId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n policyId: v.pipe(\n v.nullable(v.pipe(v.string(), v.trim())),\n v.transform((value) => (value ? idToBigInt(value, \"policyId\") : undefined)),\n ),\n});\n\nexport type ApiKeyPolicyApplyInput = v.InferInput<typeof ApplyApiKeyPolicyInputSchema>;\n\nexport const DEFAULT_API_KEY_POLICY: ApiKeyPolicy = {\n id: \"\",\n name: \"API Key Policy\",\n description: \"Default API key policy with no permissions\",\n spotMarkets: [],\n spotMarketScope: \"all\",\n perpMarketScope: \"all\",\n perpMarkets: [],\n actions: [],\n maxOrderNotional: 0,\n dailyInternalTransferOutLimit: 0,\n dailyWithdrawLimit: 0,\n isTemplate: false,\n sourceTemplateId: \"\",\n createdAt: 0,\n updatedAt: 0,\n updatedAtNs: \"0\",\n revision: \"0\",\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-key-policies.schemas.js","names":["v"],"sources":["../../../../src/services/policies/api-key-policies/api-key-policies.schemas.ts"],"sourcesContent":["import * as v from \"../../../shared/validation.js\";\nimport {\n PerpMarketRuleSchema,\n PolicyActionEnumSchema,\n PolicyMarketScopeEnumSchema,\n ProtoPolicyActionEnumSchema,\n ProtoPolicyMarketScopeEnumSchema,\n SpotMarketRuleSchema,\n} from \"../shared.js\";\nimport {\n PolicyMarketScopeCodec,\n PolicyActionCodec,\n policyMarketScopeLabelFor,\n policyActionLabelFor,\n} from \"../shared.codecs.js\";\nimport { idToBigInt } from \"../../../utils/base58-id.js\";\nimport {\n OptionalNumberToBigIntOrZeroSchema,\n OptionalPublicIdSchema,\n BigIntStringSchema,\n PublicIdSchema,\n TimestampMsSchema,\n TimestampSchema,\n positiveBigintStringInputSchema,\n} from \"../../../shared/schemas.js\";\nimport { tsObjToMs, tsObjToNsString } from \"../../../utils/time.js\";\nimport { toBigIntOrZero } from \"../../../utils/numbers.js\";\nimport { buildProtoPatch, defineProtoPatchFields } from \"../../../utils/proto-patch.js\";\n\nconst OptionalApiKeyContextSchema = v.optional(\n v.pipe(v.string(), v.trim(), v.minLength(1, \"keyId is required\")),\n);\n\nexport const ListApiKeyPoliciesInputSchema = v.strictObject({\n keyId: OptionalApiKeyContextSchema,\n});\n\nexport type ListApiKeyPoliciesInput = v.InferInput<typeof ListApiKeyPoliciesInputSchema>;\n\nexport const GetApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n policyId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),\n keyId: OptionalApiKeyContextSchema,\n }),\n v.transform(({ policyId, keyId }) => ({\n policyId: policyId ? idToBigInt(policyId, \"policyId\") : undefined,\n keyId,\n })),\n);\n\nexport type GetApiKeyPolicyInput = v.InferInput<typeof GetApiKeyPolicyInputSchema>;\n\n/**\n * From the backend format to a usable frontend/UI format, so big ints to numbers, etc.\n * Shape matches auth.v1.ApiPolicyView.\n */\nexport const ApiKeyPolicySchema = v.pipe(\n v.object({\n id: PublicIdSchema,\n name: v.string(),\n description: v.string(),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n perpMarketScope: v.pipe(\n ProtoPolicyMarketScopeEnumSchema,\n v.transform((v) => policyMarketScopeLabelFor(v)),\n ),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),\n actions: v.pipe(\n v.optional(v.array(ProtoPolicyActionEnumSchema), []),\n v.transform((v) => v.map((action) => policyActionLabelFor(action))),\n ),\n isTemplate: v.optional(v.boolean(), false),\n sourceTemplateId: OptionalPublicIdSchema,\n maxOrderNotional: v.pipe(\n v.optional(v.bigint()),\n v.transform((v) => (v === undefined ? undefined : Number(v))),\n ),\n dailyInternalTransferOutLimit: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n dailyWithdrawLimit: v.pipe(\n v.bigint(),\n v.transform((v) => Number(v)),\n ),\n createdAt: TimestampMsSchema,\n updatedAt: TimestampSchema,\n revision: BigIntStringSchema,\n }),\n v.transform(({ updatedAt, ...policy }) => ({\n ...policy,\n updatedAt: tsObjToMs(updatedAt),\n updatedAtNs: tsObjToNsString(updatedAt),\n })),\n);\n\nexport type ApiKeyPolicy = v.InferOutput<typeof ApiKeyPolicySchema>;\n\nexport const ListApiKeyPoliciesResponseSchema = v.pipe(\n v.object({\n policies: v.optional(v.array(ApiKeyPolicySchema), []),\n }),\n v.transform((value) => value.policies),\n);\n\nexport type ListApiKeyPoliciesResponse = v.InferOutput<typeof ListApiKeyPoliciesResponseSchema>;\n\nconst ApiKeyPolicyInputBaseSchema = v.strictObject({\n name: v.string(),\n description: v.optional(v.string(), \"\"),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema), []),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema), []),\n spotMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n perpMarketScope: v.pipe(\n PolicyMarketScopeEnumSchema,\n v.transform((v) => PolicyMarketScopeCodec.inputToProto[v]),\n ),\n actions: v.pipe(\n v.optional(v.array(PolicyActionEnumSchema), []),\n v.transform((v) => (v ?? []).map((action) => PolicyActionCodec.inputToProto[action])),\n ),\n maxOrderNotional: OptionalNumberToBigIntOrZeroSchema,\n dailyInternalTransferLimit: OptionalNumberToBigIntOrZeroSchema,\n dailyWithdrawLimit: OptionalNumberToBigIntOrZeroSchema,\n isTemplate: v.optional(v.boolean(), false),\n assignToKeyId: v.optional(v.pipe(v.string(), v.trim())),\n});\n\nfunction createApiKeyPolicyBaseTransform(input: v.InferOutput<typeof ApiKeyPolicyInputBaseSchema>) {\n const { dailyInternalTransferLimit, assignToKeyId: _assignToKeyId, ...rest } = input;\n return {\n ...rest,\n dailyInternalTransferOutLimit: dailyInternalTransferLimit,\n };\n}\n\nexport const CreateApiKeyPolicyInputSchema = v.pipe(\n ApiKeyPolicyInputBaseSchema,\n v.transform((input) => ({\n policy: createApiKeyPolicyBaseTransform(input),\n assignToKeyId: input.assignToKeyId,\n })),\n);\n\nexport type ApiKeyPolicyCreateInput = v.InferInput<typeof CreateApiKeyPolicyInputSchema>;\n\nconst ApiKeyPolicyPatchSchema = v.strictObject({\n name: v.optional(v.string()),\n description: v.optional(v.string()),\n spotMarkets: v.optional(v.array(SpotMarketRuleSchema)),\n perpMarkets: v.optional(v.array(PerpMarketRuleSchema)),\n spotMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n perpMarketScope: v.optional(PolicyMarketScopeEnumSchema),\n actions: v.optional(v.array(PolicyActionEnumSchema)),\n maxOrderNotional: v.optional(v.nullable(v.number())),\n dailyInternalTransferLimit: v.optional(v.nullable(v.number())),\n dailyWithdrawLimit: v.optional(v.nullable(v.number())),\n isTemplate: v.optional(v.boolean()),\n});\n\ntype ApiKeyPolicyPatch = v.InferOutput<typeof ApiKeyPolicyPatchSchema>;\n\nconst API_KEY_POLICY_PATCH_FIELDS = defineProtoPatchFields<ApiKeyPolicyPatch>()({\n name: { path: \"name\", encode: (name) => ({ name }) },\n description: { path: \"description\", encode: (description) => ({ description }) },\n spotMarkets: { path: \"spot_markets\", encode: (spotMarkets) => ({ spotMarkets }) },\n perpMarkets: { path: \"perp_markets\", encode: (perpMarkets) => ({ perpMarkets }) },\n spotMarketScope: {\n path: \"spot_market_scope\",\n encode: (scope) => ({ spotMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n perpMarketScope: {\n path: \"perp_market_scope\",\n encode: (scope) => ({ perpMarketScope: PolicyMarketScopeCodec.inputToProto[scope] }),\n },\n actions: {\n path: \"actions\",\n encode: (actions) => ({\n actions: actions.map((action) => PolicyActionCodec.inputToProto[action]),\n }),\n },\n maxOrderNotional: {\n path: \"max_order_notional\",\n encode: (value) => ({ maxOrderNotional: toBigIntOrZero(value) }),\n },\n dailyInternalTransferLimit: {\n path: \"daily_internal_transfer_out_limit\",\n encode: (value) => ({ dailyInternalTransferOutLimit: toBigIntOrZero(value) }),\n },\n dailyWithdrawLimit: {\n path: \"daily_withdraw_limit\",\n encode: (value) => ({ dailyWithdrawLimit: toBigIntOrZero(value) }),\n },\n isTemplate: { path: \"is_template\", encode: (isTemplate) => ({ isTemplate }) },\n});\n\nexport const UpdateApiKeyPolicyInputSchema = v.pipe(\n v.strictObject({\n ...ApiKeyPolicyPatchSchema.entries,\n policyId: v.pipe(\n v.string(),\n v.transform((v) => idToBigInt(v, \"policyId\")),\n ),\n expectedRevision: positiveBigintStringInputSchema(\"expectedRevision\"),\n }),\n v.check(\n ({ policyId: _policyId, expectedRevision: _expectedRevision, ...patch }) =>\n Object.values(patch).some((value) => value !== undefined),\n \"At least one API key policy field must be provided\",\n ),\n v.transform(({ policyId, expectedRevision, ...patch }) => {\n const { patch: policy, updateMask } = buildProtoPatch(patch, API_KEY_POLICY_PATCH_FIELDS);\n return {\n policyId,\n policy,\n updateMask,\n expectedRevision,\n };\n }),\n);\n\nexport type ApiKeyPolicyUpdateInput = v.InferInput<typeof UpdateApiKeyPolicyInputSchema>;\n\nexport const ApplyApiKeyPolicyInputSchema = v.strictObject({\n keyId: v.pipe(v.string(), v.trim(), v.minLength(1)),\n policyId: v.pipe(\n v.nullable(v.pipe(v.string(), v.trim())),\n v.transform((value) => (value ? idToBigInt(value, \"policyId\") : undefined)),\n ),\n});\n\nexport type ApiKeyPolicyApplyInput = v.InferInput<typeof ApplyApiKeyPolicyInputSchema>;\n\nexport const DEFAULT_API_KEY_POLICY: ApiKeyPolicy = {\n id: \"\",\n name: \"API Key Policy\",\n description: \"Default API key policy with no permissions\",\n spotMarkets: [],\n spotMarketScope: \"all\",\n perpMarketScope: \"all\",\n perpMarkets: [],\n actions: [],\n maxOrderNotional: 0,\n dailyInternalTransferOutLimit: 0,\n dailyWithdrawLimit: 0,\n isTemplate: false,\n sourceTemplateId: \"\",\n createdAt: 0,\n updatedAt: 0,\n updatedAtNs: \"0\",\n revision: \"0\",\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { validation_d_exports } from "../../shared/validation.js";
|
|
1
2
|
import "../../gen/auth/v1/policies_pb.js";
|
|
2
|
-
import * as v from "valibot";
|
|
3
3
|
//#region src/services/policies/shared.d.ts
|
|
4
|
-
declare const PolicyActionEnumSchema:
|
|
5
|
-
declare const PolicyMarketScopeEnumSchema:
|
|
6
|
-
type PolicyMarketScope =
|
|
7
|
-
type PolicyAction =
|
|
4
|
+
declare const PolicyActionEnumSchema: validation_d_exports.PicklistSchema<readonly ["trade-spot", "trade-perp", "internal-transfer", "external-withdraw", "read-balances", "read-spot", "read-perp", "read-internal-transfers", "read-external-withdrawals", "read-transfer-controls", "manage-address-book", "manage-transfer-whitelists"], undefined>;
|
|
5
|
+
declare const PolicyMarketScopeEnumSchema: validation_d_exports.PicklistSchema<readonly ["all", "allowlist"], undefined>;
|
|
6
|
+
type PolicyMarketScope = validation_d_exports.InferOutput<typeof PolicyMarketScopeEnumSchema>;
|
|
7
|
+
type PolicyAction = validation_d_exports.InferOutput<typeof PolicyActionEnumSchema>;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { PolicyAction, PolicyActionEnumSchema, PolicyMarketScope, PolicyMarketScopeEnumSchema };
|
|
10
10
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","names":[],"sources":["../../../src/services/policies/shared.ts"],"mappings":";;;cA+Ba,wBAAsB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","names":[],"sources":["../../../src/services/policies/shared.ts"],"mappings":";;;cA+Ba,wBAAsB,qBAAA;cAEtB,6BAA2B,qBAAA;KAC5B,oBAAoB,qBAAE,mBAAmB;KAEzC,eAAe,qBAAE,mBAAmB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { validation_exports } from "../../shared/validation.js";
|
|
1
2
|
import { idToBigInt } from "../../utils/base58-id.js";
|
|
2
3
|
import { MarketScope_Value, PolicyAction } from "../../gen/auth/v1/policies_pb.js";
|
|
3
|
-
import * as v from "valibot";
|
|
4
4
|
//#region src/services/policies/shared.ts
|
|
5
|
-
const SpotMarketRuleSchema =
|
|
6
|
-
const PerpMarketRuleSchema =
|
|
7
|
-
symbol:
|
|
8
|
-
maxLeverageX:
|
|
5
|
+
const SpotMarketRuleSchema = validation_exports.object({ symbol: validation_exports.string() });
|
|
6
|
+
const PerpMarketRuleSchema = validation_exports.object({
|
|
7
|
+
symbol: validation_exports.string(),
|
|
8
|
+
maxLeverageX: validation_exports.number()
|
|
9
9
|
});
|
|
10
10
|
const POLICY_ACTIONS = [
|
|
11
11
|
"trade-spot",
|
|
@@ -22,11 +22,11 @@ const POLICY_ACTIONS = [
|
|
|
22
22
|
"manage-transfer-whitelists"
|
|
23
23
|
];
|
|
24
24
|
const POLICY_MARKET_SCOPES = ["all", "allowlist"];
|
|
25
|
-
const ProtoPolicyActionEnumSchema =
|
|
26
|
-
const PolicyActionEnumSchema =
|
|
27
|
-
const ProtoPolicyMarketScopeEnumSchema =
|
|
28
|
-
const PolicyMarketScopeEnumSchema =
|
|
29
|
-
const PolicyIdSchema =
|
|
25
|
+
const ProtoPolicyActionEnumSchema = validation_exports.enum(PolicyAction);
|
|
26
|
+
const PolicyActionEnumSchema = validation_exports.picklist(POLICY_ACTIONS);
|
|
27
|
+
const ProtoPolicyMarketScopeEnumSchema = validation_exports.enum(MarketScope_Value);
|
|
28
|
+
const PolicyMarketScopeEnumSchema = validation_exports.picklist(POLICY_MARKET_SCOPES);
|
|
29
|
+
const PolicyIdSchema = validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1), validation_exports.transform((v) => idToBigInt(v, "policyId")));
|
|
30
30
|
//#endregion
|
|
31
31
|
export { POLICY_ACTIONS, POLICY_MARKET_SCOPES, PerpMarketRuleSchema, PolicyActionEnumSchema, PolicyIdSchema, PolicyMarketScopeEnumSchema, ProtoPolicyActionEnumSchema, ProtoPolicyMarketScopeEnumSchema, SpotMarketRuleSchema };
|
|
32
32
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","names":["Proto.PolicyAction","Proto.MarketScope_Value"],"sources":["../../../src/services/policies/shared.ts"],"sourcesContent":["import * as v from \"
|
|
1
|
+
{"version":3,"file":"shared.js","names":["v","Proto.PolicyAction","Proto.MarketScope_Value"],"sources":["../../../src/services/policies/shared.ts"],"sourcesContent":["import * as v from \"../../shared/validation.js\";\nimport * as Proto from \"../../gen/auth/v1/policies_pb.js\";\nimport { idToBigInt } from \"../../utils/base58-id.js\";\n\nexport const SpotMarketRuleSchema = v.object({\n symbol: v.string(),\n});\n\nexport const PerpMarketRuleSchema = v.object({\n symbol: v.string(),\n maxLeverageX: v.number(),\n});\n\nexport const POLICY_ACTIONS = [\n \"trade-spot\",\n \"trade-perp\",\n \"internal-transfer\",\n \"external-withdraw\",\n \"read-balances\",\n \"read-spot\",\n \"read-perp\",\n \"read-internal-transfers\",\n \"read-external-withdrawals\",\n \"read-transfer-controls\",\n \"manage-address-book\",\n \"manage-transfer-whitelists\",\n] as const;\n\nexport const POLICY_MARKET_SCOPES = [\"all\", \"allowlist\"] as const;\n\nexport const ProtoPolicyActionEnumSchema = v.enum(Proto.PolicyAction);\nexport const PolicyActionEnumSchema = v.picklist(POLICY_ACTIONS);\nexport const ProtoPolicyMarketScopeEnumSchema = v.enum(Proto.MarketScope_Value);\nexport const PolicyMarketScopeEnumSchema = v.picklist(POLICY_MARKET_SCOPES);\nexport type PolicyMarketScope = v.InferOutput<typeof PolicyMarketScopeEnumSchema>;\n\nexport type PolicyAction = v.InferOutput<typeof PolicyActionEnumSchema>;\n\nexport const PolicyIdSchema = v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((v) => idToBigInt(v, \"policyId\")),\n);\n"],"mappings":";;;;AAIA,MAAa,uBAAuBA,mBAAE,OAAO,EACzC,QAAQA,mBAAE,OAAO,EACrB,CAAC;AAED,MAAa,uBAAuBA,mBAAE,OAAO;CACzC,QAAQA,mBAAE,OAAO;CACjB,cAAcA,mBAAE,OAAO;AAC3B,CAAC;AAED,MAAa,iBAAiB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAEA,MAAa,uBAAuB,CAAC,OAAO,WAAW;AAEvD,MAAa,8BAA8BA,mBAAE,KAAKC,YAAkB;AACpE,MAAa,yBAAyBD,mBAAE,SAAS,cAAc;AAC/D,MAAa,mCAAmCA,mBAAE,KAAKE,iBAAuB;AAC9E,MAAa,8BAA8BF,mBAAE,SAAS,oBAAoB;AAK1E,MAAa,iBAAiBA,mBAAE,KAC5BA,mBAAE,OAAO,GACTA,mBAAE,KAAK,GACPA,mBAAE,UAAU,CAAC,GACbA,mBAAE,WAAW,MAAM,WAAW,GAAG,UAAU,CAAC,CAChD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validation_d_exports } from "../../../shared/validation.js";
|
|
1
2
|
import { PolyesterMutationOptions, PolyesterRequestOptions } from "../../../shared/request-options.js";
|
|
2
3
|
import { SubaccountResolver } from "../../subaccount-resolver.js";
|
|
3
4
|
import { PolyesterRealtime } from "../../../realtime/types.js";
|
|
@@ -5,7 +6,6 @@ import "../../../realtime/index.js";
|
|
|
5
6
|
import { BaseSubscribeInput } from "../../../shared/types.js";
|
|
6
7
|
import { ApplySubaccountPolicyInputSchema, CreateSubaccountPolicyInputSchema, GetSubaccountPolicyInputSchema, ListSubaccountPoliciesInputSchema, SubaccountPolicy, UpdateSubaccountPolicyInputSchema } from "./subaccount-policies.schemas.js";
|
|
7
8
|
import { Transport } from "@connectrpc/connect";
|
|
8
|
-
import * as v from "valibot";
|
|
9
9
|
//#region src/services/policies/subaccount-policies/subaccount-policies.d.ts
|
|
10
10
|
interface SubscribePoliciesInput extends BaseSubscribeInput<SubaccountPolicy> {
|
|
11
11
|
accountId: string;
|
|
@@ -19,19 +19,19 @@ declare class SubaccountPoliciesService {
|
|
|
19
19
|
/**
|
|
20
20
|
* Returns subaccount policy templates visible to the caller, sorted by ascending policy ID.
|
|
21
21
|
*/
|
|
22
|
-
list(input?:
|
|
22
|
+
list(input?: validation_d_exports.InferInput<typeof ListSubaccountPoliciesInputSchema>, options?: PolyesterRequestOptions): Promise<SubaccountPolicy[]>;
|
|
23
23
|
/**
|
|
24
24
|
* Fetches one subaccount policy template by base58 policy ID and returns null when no policy is returned.
|
|
25
25
|
*/
|
|
26
|
-
get(input:
|
|
26
|
+
get(input: validation_d_exports.InferInput<typeof GetSubaccountPolicyInputSchema>, options?: PolyesterRequestOptions): Promise<SubaccountPolicy | null>;
|
|
27
27
|
/**
|
|
28
28
|
* Creates a subaccount policy template, optionally attaching it to a target subaccount in the same request.
|
|
29
29
|
*/
|
|
30
|
-
create(input:
|
|
30
|
+
create(input: validation_d_exports.InferInput<typeof CreateSubaccountPolicyInputSchema>, options?: PolyesterMutationOptions): Promise<SubaccountPolicy>;
|
|
31
31
|
/**
|
|
32
32
|
* Updates selected subaccount policy fields using optimistic concurrency.
|
|
33
33
|
*/
|
|
34
|
-
update(input:
|
|
34
|
+
update(input: validation_d_exports.InferInput<typeof UpdateSubaccountPolicyInputSchema>, options?: PolyesterMutationOptions): Promise<SubaccountPolicy>;
|
|
35
35
|
/**
|
|
36
36
|
* Deletes a subaccount policy template when it is not in use.
|
|
37
37
|
*/
|
|
@@ -39,7 +39,7 @@ declare class SubaccountPoliciesService {
|
|
|
39
39
|
/**
|
|
40
40
|
* Attaches a policy to a subaccount, or clears the subaccount-specific policy when policyId is null.
|
|
41
41
|
*/
|
|
42
|
-
apply(input:
|
|
42
|
+
apply(input: validation_d_exports.InferInput<typeof ApplySubaccountPolicyInputSchema>, options?: PolyesterMutationOptions): Promise<void>;
|
|
43
43
|
/**
|
|
44
44
|
* Subscribes to private subaccount policy updates for an account and emits normalized policy views.
|
|
45
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subaccount-policies.d.ts","names":[],"sources":["../../../../src/services/policies/subaccount-policies/subaccount-policies.ts"],"mappings":";;;;;;;;;UAuBU,+BAA+B,mBAAmB;EACxD;;;;;cAMS;;EAKG,YAAA,WAAW,WAAW,UAAU,mBAAmB,WAAW;;;;EASpE,KACF,QAAO,
|
|
1
|
+
{"version":3,"file":"subaccount-policies.d.ts","names":[],"sources":["../../../../src/services/policies/subaccount-policies/subaccount-policies.ts"],"mappings":";;;;;;;;;UAuBU,+BAA+B,mBAAmB;EACxD;;;;;cAMS;;EAKG,YAAA,WAAW,WAAW,UAAU,mBAAmB,WAAW;;;;EASpE,KACF,QAAO,qBAAE,kBAAkB,oCAC3B,UAAU,0BACX,QAAQ;;;;EAaL,IACF,OAAO,qBAAE,kBAAkB,iCAC3B,UAAU,0BACX,QAAQ;;;;EAcL,OACF,OAAO,qBAAE,kBAAkB,oCAC3B,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,qBAAE,kBAAkB,oCAC3B,UAAU,2BACX,QAAQ;;;;EAaL,OAAO,kBAAkB,UAAU,2BAA2B;;;;EAW9D,MACF,OAAO,qBAAE,kBAAkB,mCAC3B,UAAU,2BACX;;;;EAWH,kBAAkB,OAAO"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { parse, validation_exports } from "../../../shared/validation.js";
|
|
1
2
|
import { toConnectCallOptions } from "../../../shared/request-options.js";
|
|
2
3
|
import { removeUndefined } from "../../../utils/remove-undefined.js";
|
|
3
4
|
import { resolveAccountScopedInput } from "../../subaccount-resolver.js";
|
|
4
5
|
import { PolicyService, SubaccountPolicyViewSchema } from "../../../gen/auth/v1/policies_pb.js";
|
|
5
6
|
import { ApplySubaccountPolicyInputSchema, CreateSubaccountPolicyInputSchema, GetSubaccountPolicyInputSchema, ListSubaccountPoliciesInputSchema, PolicyIdSchema, SubaccountPolicySchema, UpdateSubaccountPolicyInputSchema } from "./subaccount-policies.schemas.js";
|
|
6
7
|
import { createClient } from "@connectrpc/connect";
|
|
7
|
-
import * as v from "valibot";
|
|
8
8
|
//#region src/services/policies/subaccount-policies/subaccount-policies.ts
|
|
9
9
|
/**
|
|
10
10
|
* Manages reusable subaccount policy templates, assignments, and realtime policy updates.
|
|
@@ -23,50 +23,50 @@ var SubaccountPoliciesService = class {
|
|
|
23
23
|
*/
|
|
24
24
|
async list(input = {}, options) {
|
|
25
25
|
const resolved = resolveAccountScopedInput(input, this.#resolver);
|
|
26
|
-
const request =
|
|
26
|
+
const request = parse(ListSubaccountPoliciesInputSchema, resolved);
|
|
27
27
|
const result = await this.#client.listSubaccountPolicies(removeUndefined(request), toConnectCallOptions(options));
|
|
28
|
-
return
|
|
28
|
+
return parse(validation_exports.array(SubaccountPolicySchema), result.policies);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Fetches one subaccount policy template by base58 policy ID and returns null when no policy is returned.
|
|
32
32
|
*/
|
|
33
33
|
async get(input, options) {
|
|
34
34
|
const resolved = resolveAccountScopedInput(input, this.#resolver);
|
|
35
|
-
const request =
|
|
35
|
+
const request = parse(GetSubaccountPolicyInputSchema, resolved);
|
|
36
36
|
const result = await this.#client.getSubaccountPolicy(removeUndefined(request), toConnectCallOptions(options));
|
|
37
37
|
if (!result.policy) return null;
|
|
38
|
-
return
|
|
38
|
+
return parse(SubaccountPolicySchema, result.policy);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Creates a subaccount policy template, optionally attaching it to a target subaccount in the same request.
|
|
42
42
|
*/
|
|
43
43
|
async create(input, options) {
|
|
44
|
-
const validatedInput =
|
|
44
|
+
const validatedInput = parse(CreateSubaccountPolicyInputSchema, input);
|
|
45
45
|
const result = await this.#client.createSubaccountPolicy(removeUndefined(validatedInput), toConnectCallOptions(options));
|
|
46
46
|
if (!result.policy) throw new Error("Failed to create subaccount policy");
|
|
47
|
-
return
|
|
47
|
+
return parse(SubaccountPolicySchema, result.policy);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Updates selected subaccount policy fields using optimistic concurrency.
|
|
51
51
|
*/
|
|
52
52
|
async update(input, options) {
|
|
53
|
-
const validatedInput =
|
|
53
|
+
const validatedInput = parse(UpdateSubaccountPolicyInputSchema, input);
|
|
54
54
|
const result = await this.#client.updateSubaccountPolicy(removeUndefined(validatedInput), toConnectCallOptions(options));
|
|
55
55
|
if (!result.policy) throw new Error("Failed to update subaccount policy");
|
|
56
|
-
return
|
|
56
|
+
return parse(SubaccountPolicySchema, result.policy);
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Deletes a subaccount policy template when it is not in use.
|
|
60
60
|
*/
|
|
61
61
|
async delete(policyId, options) {
|
|
62
|
-
const validatedPolicyId =
|
|
62
|
+
const validatedPolicyId = parse(PolicyIdSchema, policyId);
|
|
63
63
|
await this.#client.deleteSubaccountPolicy({ policyId: validatedPolicyId }, toConnectCallOptions(options));
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Attaches a policy to a subaccount, or clears the subaccount-specific policy when policyId is null.
|
|
67
67
|
*/
|
|
68
68
|
async apply(input, options) {
|
|
69
|
-
const validatedInput =
|
|
69
|
+
const validatedInput = parse(ApplySubaccountPolicyInputSchema, input);
|
|
70
70
|
await this.#client.setSubaccountPolicy(removeUndefined(validatedInput), toConnectCallOptions(options));
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
@@ -78,12 +78,12 @@ var SubaccountPoliciesService = class {
|
|
|
78
78
|
channel,
|
|
79
79
|
schema: SubaccountPolicyViewSchema,
|
|
80
80
|
onPublication: (data) => {
|
|
81
|
-
const policy =
|
|
81
|
+
const policy = parse(SubaccountPolicySchema, data);
|
|
82
82
|
input.onEvent(policy);
|
|
83
83
|
},
|
|
84
84
|
onConnected: () => input.onOpen?.(),
|
|
85
85
|
onDisconnected: () => input.onClose?.(),
|
|
86
|
-
onError:
|
|
86
|
+
onError: input.onError
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subaccount-policies.js","names":["#client","Proto.PolicyService","#realtime","#resolver","Proto.SubaccountPolicyViewSchema"],"sources":["../../../../src/services/policies/subaccount-policies/subaccount-policies.ts"],"sourcesContent":["import * as Proto from \"../../../gen/auth/v1/policies_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as v from \"
|
|
1
|
+
{"version":3,"file":"subaccount-policies.js","names":["#client","Proto.PolicyService","#realtime","#resolver","v.parse","v","Proto.SubaccountPolicyViewSchema"],"sources":["../../../../src/services/policies/subaccount-policies/subaccount-policies.ts"],"sourcesContent":["import * as Proto from \"../../../gen/auth/v1/policies_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as v from \"../../../shared/validation.js\";\nimport { removeUndefined } from \"../../../utils/remove-undefined.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../../shared/request-options.js\";\nimport type { BaseSubscribeInput } from \"../../../shared/types.js\";\nimport type { PolyesterRealtime } from \"../../../realtime/index.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../../subaccount-resolver.js\";\nimport {\n SubaccountPolicySchema,\n CreateSubaccountPolicyInputSchema,\n UpdateSubaccountPolicyInputSchema,\n PolicyIdSchema,\n ApplySubaccountPolicyInputSchema,\n type SubaccountPolicy,\n ListSubaccountPoliciesInputSchema,\n GetSubaccountPolicyInputSchema,\n} from \"./subaccount-policies.schemas.js\";\n\ninterface SubscribePoliciesInput extends BaseSubscribeInput<SubaccountPolicy> {\n accountId: string;\n}\n\n/**\n * Manages reusable subaccount policy templates, assignments, and realtime policy updates.\n */\nexport class SubaccountPoliciesService {\n #client: Client<typeof Proto.PolicyService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n\n constructor(transport: Transport, realtime: PolyesterRealtime, resolver?: SubaccountResolver) {\n this.#client = createClient(Proto.PolicyService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n }\n\n /**\n * Returns subaccount policy templates visible to the caller, sorted by ascending policy ID.\n */\n async list(\n input: v.InferInput<typeof ListSubaccountPoliciesInputSchema> = {},\n options?: PolyesterRequestOptions,\n ): Promise<SubaccountPolicy[]> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const request = v.parse(ListSubaccountPoliciesInputSchema, resolved);\n const result = await this.#client.listSubaccountPolicies(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return v.parse(v.array(SubaccountPolicySchema), result.policies);\n }\n\n /**\n * Fetches one subaccount policy template by base58 policy ID and returns null when no policy is returned.\n */\n async get(\n input: v.InferInput<typeof GetSubaccountPolicyInputSchema>,\n options?: PolyesterRequestOptions,\n ): Promise<SubaccountPolicy | null> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const request = v.parse(GetSubaccountPolicyInputSchema, resolved);\n const result = await this.#client.getSubaccountPolicy(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n if (!result.policy) return null;\n return v.parse(SubaccountPolicySchema, result.policy);\n }\n\n /**\n * Creates a subaccount policy template, optionally attaching it to a target subaccount in the same request.\n */\n async create(\n input: v.InferInput<typeof CreateSubaccountPolicyInputSchema>,\n options?: PolyesterMutationOptions,\n ): Promise<SubaccountPolicy> {\n const validatedInput = v.parse(CreateSubaccountPolicyInputSchema, input);\n const result = await this.#client.createSubaccountPolicy(\n removeUndefined(validatedInput),\n toConnectCallOptions(options),\n );\n if (!result.policy) throw new Error(\"Failed to create subaccount policy\");\n return v.parse(SubaccountPolicySchema, result.policy);\n }\n\n /**\n * Updates selected subaccount policy fields using optimistic concurrency.\n */\n async update(\n input: v.InferInput<typeof UpdateSubaccountPolicyInputSchema>,\n options?: PolyesterMutationOptions,\n ): Promise<SubaccountPolicy> {\n const validatedInput = v.parse(UpdateSubaccountPolicyInputSchema, input);\n const result = await this.#client.updateSubaccountPolicy(\n removeUndefined(validatedInput),\n toConnectCallOptions(options),\n );\n if (!result.policy) throw new Error(\"Failed to update subaccount policy\");\n return v.parse(SubaccountPolicySchema, result.policy);\n }\n\n /**\n * Deletes a subaccount policy template when it is not in use.\n */\n async delete(policyId: string, options?: PolyesterMutationOptions): Promise<void> {\n const validatedPolicyId = v.parse(PolicyIdSchema, policyId);\n await this.#client.deleteSubaccountPolicy(\n { policyId: validatedPolicyId },\n toConnectCallOptions(options),\n );\n }\n\n /**\n * Attaches a policy to a subaccount, or clears the subaccount-specific policy when policyId is null.\n */\n async apply(\n input: v.InferInput<typeof ApplySubaccountPolicyInputSchema>,\n options?: PolyesterMutationOptions,\n ): Promise<void> {\n const validatedInput = v.parse(ApplySubaccountPolicyInputSchema, input);\n await this.#client.setSubaccountPolicy(\n removeUndefined(validatedInput),\n toConnectCallOptions(options),\n );\n }\n\n /**\n * Subscribes to private subaccount policy updates for an account and emits normalized policy views.\n */\n subscribePolicies(input: SubscribePoliciesInput) {\n const channel = `private:auth:subaccount-policies:${input.accountId}:proto`;\n\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.SubaccountPolicyViewSchema,\n onPublication: (data) => {\n const policy = v.parse(SubaccountPolicySchema, data);\n input.onEvent(policy);\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AA8BA,IAAa,4BAAb,MAAuC;CACnC;CACA;CACA;CAEA,YAAY,WAAsB,UAA6B,UAA+B;EAC1F,KAAKA,UAAU,aAAaC,eAAqB,SAAS;EAC1D,KAAKC,YAAY;EACjB,KAAKC,YAAY;CACrB;;;;CAKA,MAAM,KACF,QAAgE,CAAC,GACjE,SAC2B;EAC3B,MAAM,WAAW,0BAA0B,OAAO,KAAKA,SAAS;EAChE,MAAM,UAAUC,MAAQ,mCAAmC,QAAQ;EACnE,MAAM,SAAS,MAAM,KAAKJ,QAAQ,uBAC9B,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAOI,MAAQC,mBAAE,MAAM,sBAAsB,GAAG,OAAO,QAAQ;CACnE;;;;CAKA,MAAM,IACF,OACA,SACgC;EAChC,MAAM,WAAW,0BAA0B,OAAO,KAAKF,SAAS;EAChE,MAAM,UAAUC,MAAQ,gCAAgC,QAAQ;EAChE,MAAM,SAAS,MAAM,KAAKJ,QAAQ,oBAC9B,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,IAAI,CAAC,OAAO,QAAQ,OAAO;EAC3B,OAAOI,MAAQ,wBAAwB,OAAO,MAAM;CACxD;;;;CAKA,MAAM,OACF,OACA,SACyB;EACzB,MAAM,iBAAiBA,MAAQ,mCAAmC,KAAK;EACvE,MAAM,SAAS,MAAM,KAAKJ,QAAQ,uBAC9B,gBAAgB,cAAc,GAC9B,qBAAqB,OAAO,CAChC;EACA,IAAI,CAAC,OAAO,QAAQ,MAAM,IAAI,MAAM,oCAAoC;EACxE,OAAOI,MAAQ,wBAAwB,OAAO,MAAM;CACxD;;;;CAKA,MAAM,OACF,OACA,SACyB;EACzB,MAAM,iBAAiBA,MAAQ,mCAAmC,KAAK;EACvE,MAAM,SAAS,MAAM,KAAKJ,QAAQ,uBAC9B,gBAAgB,cAAc,GAC9B,qBAAqB,OAAO,CAChC;EACA,IAAI,CAAC,OAAO,QAAQ,MAAM,IAAI,MAAM,oCAAoC;EACxE,OAAOI,MAAQ,wBAAwB,OAAO,MAAM;CACxD;;;;CAKA,MAAM,OAAO,UAAkB,SAAmD;EAC9E,MAAM,oBAAoBA,MAAQ,gBAAgB,QAAQ;EAC1D,MAAM,KAAKJ,QAAQ,uBACf,EAAE,UAAU,kBAAkB,GAC9B,qBAAqB,OAAO,CAChC;CACJ;;;;CAKA,MAAM,MACF,OACA,SACa;EACb,MAAM,iBAAiBI,MAAQ,kCAAkC,KAAK;EACtE,MAAM,KAAKJ,QAAQ,oBACf,gBAAgB,cAAc,GAC9B,qBAAqB,OAAO,CAChC;CACJ;;;;CAKA,kBAAkB,OAA+B;EAC7C,MAAM,UAAU,oCAAoC,MAAM,UAAU;EAEpE,OAAO,KAAKE,UAAU,oBAAoB;GACtC;GACA,QAAQI;GACR,gBAAgB,SAAS;IACrB,MAAM,SAASF,MAAQ,wBAAwB,IAAI;IACnD,MAAM,QAAQ,MAAM;GACxB;GACA,mBAAmB,MAAM,SAAS;GAClC,sBAAsB,MAAM,UAAU;GACtC,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
|