tapimo 0.19.0 → 0.20.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/README.md +13 -5
- package/dist/ApiKey.d.ts +2 -2
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +2 -2
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +85 -11
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +218 -56
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +12543 -13912
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +4 -5
- package/dist/App.js.map +1 -1
- package/dist/Scope.d.ts +12 -20
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +20 -36
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +871 -828
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +14 -26
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +93 -186
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +3 -5
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/audit-logs.d.ts +18 -18
- package/dist/admin/apps/audit-logs.js +1 -1
- package/dist/admin/apps/audit-logs.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +27 -27
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
- package/dist/admin/apps/earn-vaults.js +11 -5
- package/dist/admin/apps/earn-vaults.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +17 -17
- package/dist/admin/apps/prop-amms.d.ts +4 -4
- package/dist/admin/apps/routes-support.js +1 -38
- package/dist/admin/apps/routes-support.js.map +1 -1
- package/dist/admin/apps/routes.d.ts +153 -153
- package/dist/admin/apps/sentinel.d.ts +4 -4
- package/dist/admin/apps/verified-tokens.d.ts +24 -24
- package/dist/admin/apps/zone-delegation-requests.d.ts +332 -0
- package/dist/admin/apps/zone-delegation-requests.d.ts.map +1 -0
- package/dist/admin/apps/zone-delegation-requests.js +200 -0
- package/dist/admin/apps/zone-delegation-requests.js.map +1 -0
- package/dist/admin/apps/zone-delegations.d.ts +512 -52
- package/dist/admin/apps/zone-delegations.d.ts.map +1 -1
- package/dist/admin/apps/zone-delegations.js +134 -44
- package/dist/admin/apps/zone-delegations.js.map +1 -1
- package/dist/admin/index.d.ts +1 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +341 -397
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +4 -2
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/data/App.d.ts +11932 -13214
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +32 -13
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/ZoneSelection.d.ts +1 -1
- package/dist/apps/data/ZoneSelection.d.ts.map +1 -1
- package/dist/apps/data/ZoneSelection.js +2 -2
- package/dist/apps/data/ZoneSelection.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +60 -27
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +91 -16
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +893 -875
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +36 -36
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +3 -1
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +40 -40
- package/dist/apps/data/routes/blocks.d.ts.map +1 -1
- package/dist/apps/data/routes/blocks.js +3 -7
- package/dist/apps/data/routes/blocks.js.map +1 -1
- package/dist/apps/data/routes/coingecko.d.ts +236 -236
- package/dist/apps/data/routes/earn-transactions.d.ts +14 -14
- package/dist/apps/data/routes/earn.d.ts +261 -1445
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +64 -490
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +144 -144
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +5 -15
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +3 -9
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +13 -13
- package/dist/apps/data/routes/receipts.d.ts +53 -53
- package/dist/apps/data/routes/receipts.js +1 -1
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +52 -0
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +19 -18
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +14 -14
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +1 -3
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +7 -5
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +281 -281
- package/dist/apps/data/routes/transactions.js +3 -3
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +12 -12
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +1 -3
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +30 -30
- package/dist/apps/data/routes/valuation.d.ts.map +1 -1
- package/dist/apps/data/routes/valuation.js +1 -3
- package/dist/apps/data/routes/valuation.js.map +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +86 -86
- package/dist/apps/data/routes/webhooks.d.ts +102 -102
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +9 -23
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zone-deposits.d.ts +16 -16
- package/dist/apps/data/routes/zone-withdrawals.d.ts +31 -31
- package/dist/apps/data/routes/zones.d.ts +28 -28
- package/dist/apps/management/App.d.ts +18 -102
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +1 -1
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +253 -339
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +25 -11
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +92 -92
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +5 -13
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/cli.d.ts.map +1 -1
- package/dist/apps/management/routes/cli.js +3 -9
- package/dist/apps/management/routes/cli.js.map +1 -1
- package/dist/apps/management/routes/faucet.d.ts +16 -16
- package/dist/apps/management/routes/fee-payer-usage.d.ts +38 -38
- package/dist/apps/management/routes/fee-payer-usage.d.ts.map +1 -1
- package/dist/apps/management/routes/fee-payer-usage.js +2 -4
- package/dist/apps/management/routes/fee-payer-usage.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +52 -52
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +4 -12
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts.map +1 -1
- package/dist/apps/management/routes/invite-links.js +6 -14
- package/dist/apps/management/routes/invite-links.js.map +1 -1
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/me.d.ts.map +1 -1
- package/dist/apps/management/routes/me.js +3 -7
- package/dist/apps/management/routes/me.js.map +1 -1
- package/dist/apps/management/routes/members.d.ts +84 -84
- package/dist/apps/management/routes/members.d.ts.map +1 -1
- package/dist/apps/management/routes/members.js +2 -4
- package/dist/apps/management/routes/members.js.map +1 -1
- package/dist/apps/management/routes/orgs.d.ts +44 -44
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +2 -6
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js +2 -6
- package/dist/apps/management/routes/projects.js.map +1 -1
- package/dist/apps/management/routes/route-usage.d.ts +34 -34
- package/dist/apps/management/routes/route-usage.d.ts.map +1 -1
- package/dist/apps/management/routes/route-usage.js +2 -4
- package/dist/apps/management/routes/route-usage.js.map +1 -1
- package/dist/apps/management/routes/routes-access-requests.d.ts +120 -91
- package/dist/apps/management/routes/routes-access-requests.d.ts.map +1 -1
- package/dist/apps/management/routes/routes-access-requests.js +49 -9
- package/dist/apps/management/routes/routes-access-requests.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts.map +1 -1
- package/dist/apps/management/routes/usage.js +8 -16
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.d.ts +39 -39
- package/dist/apps/management/routes/verified-token-requests.d.ts.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.js +3 -7
- package/dist/apps/management/routes/verified-token-requests.js.map +1 -1
- package/dist/apps/management/routes/webhooks.d.ts +2089 -2089
- package/dist/apps/management/routes/zone-delegations.d.ts +14 -17
- package/dist/apps/management/routes/zone-delegations.d.ts.map +1 -1
- package/dist/apps/management/routes/zone-delegations.js +1 -6
- package/dist/apps/management/routes/zone-delegations.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +44 -44
- package/dist/apps/mpp/App.js +3 -3
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +1 -1
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/apps/mpp/internal/Error.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Error.js +1 -0
- package/dist/apps/mpp/internal/Error.js.map +1 -1
- package/dist/apps/mpp/internal/Policy.d.ts +5 -1
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Policy.js +35 -13
- package/dist/apps/mpp/internal/Policy.js.map +1 -1
- package/dist/apps/relay/App.d.ts +2 -2
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +25 -16
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/routes/App.d.ts +311 -311
- package/dist/apps/routes/routes/deposit-addresses.d.ts +1099 -1099
- package/dist/apps/routes/routes/list.d.ts +74 -74
- package/dist/apps/routes/routes/transfers.d.ts +94 -94
- package/dist/cli/ApiKeys.d.ts +19 -26
- package/dist/cli/ApiKeys.d.ts.map +1 -1
- package/dist/db/Db.d.ts +3 -3
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +27 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +28 -62
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +18 -18
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/rewardRuns.d.ts +21 -0
- package/dist/db/tables/rewardRuns.d.ts.map +1 -1
- package/dist/db/tables/rewardRuns.js +19 -0
- package/dist/db/tables/rewardRuns.js.map +1 -1
- package/dist/db/tables/routesAccessRequests.d.ts +13 -0
- package/dist/db/tables/routesAccessRequests.d.ts.map +1 -1
- package/dist/db/tables/routesAccessRequests.js +12 -0
- package/dist/db/tables/routesAccessRequests.js.map +1 -1
- package/dist/db/tables/zoneDelegationRequests.d.ts +165 -0
- package/dist/db/tables/zoneDelegationRequests.d.ts.map +1 -0
- package/dist/db/tables/{zoneKeyRequests.js → zoneDelegationRequests.js} +43 -42
- package/dist/db/tables/zoneDelegationRequests.js.map +1 -0
- package/dist/db/tables/zoneDelegations.d.ts +11 -5
- package/dist/db/tables/zoneDelegations.d.ts.map +1 -1
- package/dist/db/tables/zoneDelegations.js +21 -3
- package/dist/db/tables/zoneDelegations.js.map +1 -1
- package/dist/handlers/internal/accounts.d.ts +7 -0
- package/dist/handlers/internal/accounts.d.ts.map +1 -0
- package/dist/handlers/internal/{multisig.js → accounts.js} +10 -10
- package/dist/handlers/internal/{multisig.js.map → accounts.js.map} +1 -1
- package/dist/handlers/internal/sponsorship.js +17 -17
- package/dist/handlers/internal/sponsorship.js.map +1 -1
- package/dist/handlers/relay.d.ts +6 -6
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +15 -15
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +4 -8
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/EarnRates.d.ts.map +1 -1
- package/dist/internal/EarnRates.js +1 -3
- package/dist/internal/EarnRates.js.map +1 -1
- package/dist/internal/EarnVaults.js +2 -2
- package/dist/internal/Log.d.ts +2 -4
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +0 -3
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/Response.d.ts +1 -1
- package/dist/internal/Response.d.ts.map +1 -1
- package/dist/internal/Response.js +0 -3
- package/dist/internal/Response.js.map +1 -1
- package/dist/internal/Schema.d.ts +11 -0
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +24 -1
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/ZoneAccess.d.ts +70 -35
- package/dist/internal/ZoneAccess.d.ts.map +1 -1
- package/dist/internal/ZoneAccess.js +312 -131
- package/dist/internal/ZoneAccess.js.map +1 -1
- package/dist/internal/ZoneDelegation.d.ts +7 -19
- package/dist/internal/ZoneDelegation.d.ts.map +1 -1
- package/dist/internal/ZoneDelegation.js +8 -29
- package/dist/internal/ZoneDelegation.js.map +1 -1
- package/dist/internal/{ZoneKeyApproval.d.ts → ZoneDelegationApproval.d.ts} +3 -5
- package/dist/internal/ZoneDelegationApproval.d.ts.map +1 -0
- package/dist/internal/ZoneDelegationApproval.js +16 -0
- package/dist/internal/ZoneDelegationApproval.js.map +1 -0
- package/dist/internal/ZoneKeyRewrite.d.ts +98 -0
- package/dist/internal/ZoneKeyRewrite.d.ts.map +1 -0
- package/dist/internal/ZoneKeyRewrite.js +151 -0
- package/dist/internal/ZoneKeyRewrite.js.map +1 -0
- package/dist/internal/rewards/Campaigns.d.ts +2 -0
- package/dist/internal/rewards/Campaigns.d.ts.map +1 -1
- package/dist/internal/rewards/Campaigns.js.map +1 -1
- package/dist/internal/rewards/Distributions.d.ts.map +1 -1
- package/dist/internal/rewards/Distributions.js +2 -6
- package/dist/internal/rewards/Distributions.js.map +1 -1
- package/dist/internal/rewards/Monitor.d.ts +4 -1
- package/dist/internal/rewards/Monitor.d.ts.map +1 -1
- package/dist/internal/rewards/Monitor.js +19 -2
- package/dist/internal/rewards/Monitor.js.map +1 -1
- package/dist/internal/rewards/Runner.d.ts.map +1 -1
- package/dist/internal/rewards/Runner.js +9 -1
- package/dist/internal/rewards/Runner.js.map +1 -1
- package/dist/internal/routes/Action.d.ts.map +1 -1
- package/dist/internal/routes/Action.js +2 -3
- package/dist/internal/routes/Action.js.map +1 -1
- package/dist/internal/routes/Deposit.d.ts.map +1 -1
- package/dist/internal/routes/Deposit.js +2 -6
- package/dist/internal/routes/Deposit.js.map +1 -1
- package/dist/internal/routes/DepositAddress.d.ts.map +1 -1
- package/dist/internal/routes/DepositAddress.js +4 -10
- package/dist/internal/routes/DepositAddress.js.map +1 -1
- package/dist/internal/routes/Policy.d.ts.map +1 -1
- package/dist/internal/routes/Policy.js +2 -1
- package/dist/internal/routes/Policy.js.map +1 -1
- package/dist/internal/routes/Provider.js +8 -8
- package/dist/internal/routes/Provider.js.map +1 -1
- package/dist/internal/routes/Reconciliation.d.ts.map +1 -1
- package/dist/internal/routes/Reconciliation.js +3 -2
- package/dist/internal/routes/Reconciliation.js.map +1 -1
- package/dist/internal/routes/Transfer.d.ts.map +1 -1
- package/dist/internal/routes/Transfer.js +4 -12
- package/dist/internal/routes/Transfer.js.map +1 -1
- package/dist/internal/routes/UniversalDepositAddress.d.ts.map +1 -1
- package/dist/internal/routes/UniversalDepositAddress.js +3 -6
- package/dist/internal/routes/UniversalDepositAddress.js.map +1 -1
- package/dist/internal/routes/providers/SquidOrder.d.ts.map +1 -1
- package/dist/internal/routes/providers/SquidOrder.js +3 -2
- package/dist/internal/routes/providers/SquidOrder.js.map +1 -1
- package/dist/internal/routes/providers/relay.d.ts.map +1 -1
- package/dist/internal/routes/providers/relay.js +4 -3
- package/dist/internal/routes/providers/relay.js.map +1 -1
- package/package.json +20 -5
- package/src/ApiKey.ts +2 -2
- package/src/ApiKeys.test.ts +284 -51
- package/src/ApiKeys.ts +297 -64
- package/src/App.ts +4 -5
- package/src/Client.test-d.ts +33 -126
- package/src/Scope.test.ts +26 -45
- package/src/Scope.ts +24 -37
- package/src/admin/App.test.ts +51 -4
- package/src/admin/App.ts +25 -33
- package/src/admin/Mcp.test.ts +2 -1
- package/src/admin/apps/api-keys.test.ts +90 -20
- package/src/admin/apps/api-keys.ts +5 -8
- package/src/admin/apps/audit-logs.ts +1 -1
- package/src/admin/apps/earn-vaults.test.ts +19 -19
- package/src/admin/apps/earn-vaults.ts +11 -5
- package/src/admin/apps/routes-support.test.ts +254 -3
- package/src/admin/apps/routes-support.ts +1 -44
- package/src/admin/apps/scopes.test.ts +3 -3
- package/src/admin/apps/zone-delegation-requests.test.ts +246 -0
- package/src/admin/apps/zone-delegation-requests.ts +240 -0
- package/src/admin/apps/zone-delegations.test.ts +218 -58
- package/src/admin/apps/zone-delegations.ts +146 -46
- package/src/admin/index.ts +1 -1
- package/src/admin/ui/src/components/ApiKeyForm.tsx +4 -3
- package/src/admin/ui/src/lib/config.ts +3 -3
- package/src/admin/ui/src/lib/query-client.ts +1 -1
- package/src/admin/ui/src/lib/review-queues.ts +10 -10
- package/src/admin/ui/src/lib/routes-setup.test.ts +1 -2
- package/src/admin/ui/src/lib/routes-setup.ts +3 -5
- package/src/admin/ui/src/lib/scopes.test.ts +3 -6
- package/src/admin/ui/src/lib/scopes.ts +2 -9
- package/src/admin/ui/src/lib/{zone-key-requests.ts → zone-delegation-requests.ts} +27 -31
- package/src/admin/ui/src/routeTree.gen.ts +17 -17
- package/src/admin/ui/src/routes/__root.tsx +1 -1
- package/src/admin/ui/src/routes/api-keys.tsx +2 -15
- package/src/admin/ui/src/routes/audit-logs.tsx +2 -2
- package/src/admin/ui/src/routes/index.tsx +11 -11
- package/src/admin/ui/src/routes/organizations.tsx +3 -1
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +3 -1
- package/src/admin/ui/src/routes/organizations_.$orgId_.setup.tsx +1 -3
- package/src/admin/ui/src/routes/{zone-key-requests.tsx → zone-delegation-requests.tsx} +228 -172
- package/src/admin/ui/vite.config.ts +14 -1
- package/src/admin/ui.generated.ts +412 -583
- package/src/analytics/tables/requestEvents.test.ts +13 -3
- package/src/analytics/tables/requestEvents.ts +4 -3
- package/src/apps/data/App.test.ts +72 -35
- package/src/apps/data/App.ts +29 -13
- package/src/apps/data/ZoneSelection.test.ts +53 -70
- package/src/apps/data/ZoneSelection.ts +2 -2
- package/src/apps/data/routes/activities.test.ts +140 -6
- package/src/apps/data/routes/activities.ts +124 -18
- package/src/apps/data/routes/balances.ts +5 -1
- package/src/apps/data/routes/blocks.ts +9 -13
- package/src/apps/data/routes/earn-transactions.local.test.ts +6 -1
- package/src/apps/data/routes/earn-transactions.test.ts +7 -3
- package/src/apps/data/routes/earn.bench.ts +0 -14
- package/src/apps/data/routes/earn.discovery.test.ts +4 -39
- package/src/apps/data/routes/earn.local.test.ts +27 -34
- package/src/apps/data/routes/earn.test.ts +172 -490
- package/src/apps/data/routes/earn.ts +103 -652
- package/src/apps/data/routes/exchanges.ts +20 -30
- package/src/apps/data/routes/fee-amm.ts +12 -18
- package/src/apps/data/routes/indexer.test.ts +14 -12
- package/src/apps/data/routes/receipts.ts +1 -1
- package/src/apps/data/routes/rpc.test.ts +23 -18
- package/src/apps/data/routes/rpc.ts +21 -21
- package/src/apps/data/routes/rpc.zone.test.ts +60 -6
- package/src/apps/data/routes/tokenlist.ts +4 -6
- package/src/apps/data/routes/tokens.test.ts +20 -0
- package/src/apps/data/routes/tokens.ts +10 -5
- package/src/apps/data/routes/transactions.ts +3 -3
- package/src/apps/data/routes/transfers.ts +4 -6
- package/src/apps/data/routes/valuation.test.ts +2 -4
- package/src/apps/data/routes/valuation.ts +4 -6
- package/src/apps/data/routes/webhooks.test.ts +1 -5
- package/src/apps/data/routes/webhooks.ts +30 -44
- package/src/apps/data/routes/zones.test.ts +35 -19
- package/src/apps/management/App.ts +3 -1
- package/src/apps/management/routes/api-keys.test.ts +112 -22
- package/src/apps/management/routes/api-keys.ts +30 -15
- package/src/apps/management/routes/billing.ts +17 -25
- package/src/apps/management/routes/cli.ts +12 -18
- package/src/apps/management/routes/fee-payer-usage.ts +5 -4
- package/src/apps/management/routes/invitations.ts +16 -21
- package/src/apps/management/routes/invite-links.ts +18 -26
- package/src/apps/management/routes/me.ts +9 -13
- package/src/apps/management/routes/members.ts +5 -7
- package/src/apps/management/routes/orgs.ts +8 -12
- package/src/apps/management/routes/projects.ts +8 -12
- package/src/apps/management/routes/route-usage.ts +5 -4
- package/src/apps/management/routes/routes-access-requests.test.ts +64 -2
- package/src/apps/management/routes/routes-access-requests.ts +99 -15
- package/src/apps/management/routes/scopes.test.ts +3 -3
- package/src/apps/management/routes/usage.ts +20 -28
- package/src/apps/management/routes/verified-token-requests.ts +9 -13
- package/src/apps/management/routes/zone-delegations.test.ts +3 -5
- package/src/apps/management/routes/zone-delegations.ts +4 -9
- package/src/apps/mpp/App.ts +3 -3
- package/src/apps/mpp/Mpp.zone.test.ts +49 -18
- package/src/apps/mpp/internal/Adapter.ts +1 -1
- package/src/apps/mpp/internal/Error.test.ts +3 -0
- package/src/apps/mpp/internal/Error.ts +1 -0
- package/src/apps/mpp/internal/Policy.test.ts +9 -8
- package/src/apps/mpp/internal/Policy.ts +37 -14
- package/src/apps/relay/App.sandbox.test.ts +15 -14
- package/src/apps/relay/App.test.ts +120 -61
- package/src/apps/relay/App.ts +28 -18
- package/src/apps/relay/App.zone-billing.test.ts +9 -4
- package/src/apps/routes/App.test.ts +21 -22
- package/src/db/Db.ts +34 -3
- package/src/db/Schema.ts +26 -26
- package/src/db/tables/rewardRuns.ts +39 -0
- package/src/db/tables/routesAccessRequests.test.ts +65 -0
- package/src/db/tables/routesAccessRequests.ts +25 -0
- package/src/db/tables/{zoneKeyRequests.test.ts → zoneDelegationRequests.test.ts} +36 -77
- package/src/db/tables/{zoneKeyRequests.ts → zoneDelegationRequests.ts} +69 -52
- package/src/db/tables/zoneDelegations.test.ts +5 -6
- package/src/db/tables/zoneDelegations.ts +25 -8
- package/src/handlers/internal/{multisig.store.test.ts → accounts.store.test.ts} +16 -16
- package/src/handlers/internal/{multisig.test.ts → accounts.test.ts} +85 -82
- package/src/handlers/internal/{multisig.ts → accounts.ts} +9 -9
- package/src/handlers/internal/sponsorship.ts +20 -20
- package/src/handlers/relay.test.ts +48 -46
- package/src/handlers/relay.ts +26 -26
- package/src/internal/Auth.test.ts +6 -2
- package/src/internal/Auth.ts +4 -10
- package/src/internal/EarnRates.ts +4 -6
- package/src/internal/EarnVaults.ts +2 -2
- package/src/internal/Log.test-d.ts +1 -0
- package/src/internal/Log.test.ts +4 -6
- package/src/internal/Log.ts +2 -6
- package/src/internal/Response.ts +0 -3
- package/src/internal/Schema.test.ts +42 -0
- package/src/internal/Schema.ts +36 -1
- package/src/internal/ZoneAccess.test.ts +515 -312
- package/src/internal/ZoneAccess.ts +410 -158
- package/src/internal/ZoneDelegation.test.ts +1 -41
- package/src/internal/ZoneDelegation.ts +10 -48
- package/src/internal/ZoneDelegationApproval.test.ts +22 -0
- package/src/internal/{ZoneKeyApproval.ts → ZoneDelegationApproval.ts} +4 -11
- package/src/internal/ZoneKeyRewrite.ts +231 -0
- package/src/internal/rewards/Campaigns.ts +2 -0
- package/src/internal/rewards/Distributions.ts +8 -12
- package/src/internal/rewards/Monitor.test.ts +64 -0
- package/src/internal/rewards/Monitor.ts +27 -4
- package/src/internal/rewards/Runner.ts +9 -1
- package/src/internal/routes/Action.ts +5 -6
- package/src/internal/routes/Deposit.ts +8 -12
- package/src/internal/routes/DepositAddress.ts +13 -19
- package/src/internal/routes/Policy.ts +2 -1
- package/src/internal/routes/Provider.ts +8 -8
- package/src/internal/routes/Reconciliation.ts +3 -2
- package/src/internal/routes/Transfer.ts +16 -24
- package/src/internal/routes/UniversalDepositAddress.ts +9 -12
- package/src/internal/routes/providers/SquidOrder.ts +3 -2
- package/src/internal/routes/providers/relay.ts +4 -3
- package/dist/admin/apps/zone-key-requests.d.ts +0 -406
- package/dist/admin/apps/zone-key-requests.d.ts.map +0 -1
- package/dist/admin/apps/zone-key-requests.js +0 -183
- package/dist/admin/apps/zone-key-requests.js.map +0 -1
- package/dist/db/tables/zoneKeyRequests.d.ts +0 -289
- package/dist/db/tables/zoneKeyRequests.d.ts.map +0 -1
- package/dist/db/tables/zoneKeyRequests.js.map +0 -1
- package/dist/handlers/internal/multisig.d.ts +0 -7
- package/dist/handlers/internal/multisig.d.ts.map +0 -1
- package/dist/internal/ZoneKeyApproval.d.ts.map +0 -1
- package/dist/internal/ZoneKeyApproval.js +0 -21
- package/dist/internal/ZoneKeyApproval.js.map +0 -1
- package/src/admin/apps/zone-key-requests.test.ts +0 -272
- package/src/admin/apps/zone-key-requests.ts +0 -231
- package/src/internal/ZoneKeyApproval.test.ts +0 -46
|
@@ -1,69 +1,129 @@
|
|
|
1
|
+
import { HTTPException } from 'hono/http-exception';
|
|
1
2
|
import * as Db from '../db/Db.js';
|
|
2
3
|
import * as ZoneDelegations from '../db/tables/zoneDelegations.js';
|
|
3
|
-
import * as Scope from '../Scope.js';
|
|
4
4
|
import * as Auth from './Auth.js';
|
|
5
5
|
import * as ExecutionContext from './ExecutionContext.js';
|
|
6
|
+
import * as Response from './Response.js';
|
|
6
7
|
import * as Store from './Store.js';
|
|
7
8
|
import * as Timeout from './Timeout.js';
|
|
9
|
+
import * as Timing from './Timing.js';
|
|
8
10
|
import * as ZoneDelegation from './ZoneDelegation.js';
|
|
9
|
-
/** Bounded counter of Zone decisions by Zone,
|
|
11
|
+
/** Bounded counter of Zone decisions by Zone, outcome, and grant. */
|
|
10
12
|
export const decisionMetric = 'zone_access_decision_count';
|
|
11
|
-
/** Counter of delegation reads
|
|
13
|
+
/** Counter of failed delegation reads: `phase="request"` refused a request with a `503`, `phase="refresh"` was a background refresh that left the cached copy serving. */
|
|
12
14
|
export const lookupFailureMetric = 'zone_delegation_lookup_failure_count';
|
|
13
|
-
/**
|
|
15
|
+
/** Age after which a cached delegation read is refreshed in the background while still answering. */
|
|
14
16
|
export const delegationTtl = 30_000;
|
|
15
|
-
/**
|
|
16
|
-
export const
|
|
17
|
-
/** Longest
|
|
18
|
-
export const
|
|
17
|
+
/** Oldest cached delegation read that may answer; beyond it the request reads Postgres. Bounds revocation latency per colo. */
|
|
18
|
+
export const delegationMaxAge = 60_000;
|
|
19
|
+
/** Longest a delegation read (cache and Postgres together) may run before it fails. */
|
|
20
|
+
export const delegationTimeout = 5_000;
|
|
21
|
+
/**
|
|
22
|
+
* Loads the caller organization's active delegations on first demand and
|
|
23
|
+
* shares the read across the request, for API keys that can read or broadcast
|
|
24
|
+
* to a Zone at all. Call it before {@link check} or {@link eligible} decide;
|
|
25
|
+
* requests never touching a Zone pay nothing. Client cache directives are
|
|
26
|
+
* ignored. A read Postgres cannot answer refuses delegated Zone access with a
|
|
27
|
+
* retriable `503`.
|
|
28
|
+
*/
|
|
29
|
+
export function ensure(c) {
|
|
30
|
+
const pending = c.get('zoneDelegationsPending');
|
|
31
|
+
if (pending)
|
|
32
|
+
return pending;
|
|
33
|
+
const principal = Auth.getPrincipal(c);
|
|
34
|
+
if (principal?.type !== 'api_key' || !zoneCapable(principal))
|
|
35
|
+
return Promise.resolve(undefined);
|
|
36
|
+
const zones = c.get('zones');
|
|
37
|
+
if (!zones?.size)
|
|
38
|
+
return Promise.resolve(undefined);
|
|
39
|
+
const owner = { environment: principal.environment, orgId: principal.orgId };
|
|
40
|
+
const started = Timing.time(c, 'zone_delegations', () => Cached.read(c, owner)).then((records) => ({ records }), () => {
|
|
41
|
+
metrics(c)?.count(lookupFailureMetric, 1, { phase: 'request' });
|
|
42
|
+
return { failed: true };
|
|
43
|
+
});
|
|
44
|
+
void started.then((delegations) => c.set('zoneDelegations', delegations));
|
|
45
|
+
c.set('zoneDelegationsPending', started);
|
|
46
|
+
return started;
|
|
47
|
+
}
|
|
19
48
|
/**
|
|
20
49
|
* Decides whether the caller may access one Zone without recording anything.
|
|
21
|
-
* Filters narrowing a Zone list use this
|
|
22
|
-
* about uses {@link authorize}.
|
|
50
|
+
* Filters narrowing a Zone list use this after awaiting {@link ensure}; the gate
|
|
51
|
+
* for the Zone a request is about uses {@link authorize}. Without the request's
|
|
52
|
+
* addresses, only a delegation covering every account and token admits a read.
|
|
23
53
|
*/
|
|
24
54
|
export function check(c, options) {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
const gated = gate(c, options);
|
|
56
|
+
if (!('eligible' in gated))
|
|
57
|
+
return gated;
|
|
58
|
+
const delegation = ZoneDelegation.decide({
|
|
59
|
+
accounts: [],
|
|
60
|
+
delegation: coverage(gated.record, { accounts: [], tokens: [] }),
|
|
61
|
+
tokens: [],
|
|
62
|
+
});
|
|
63
|
+
return conclude(options, delegation);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Whether the caller could read one Zone given a covering request: the key is
|
|
67
|
+
* tagged and scoped for it and its organization holds an active delegation.
|
|
68
|
+
* Selection filters use this before {@link authorize} decides each Zone with
|
|
69
|
+
* the request's addresses; an unreadable delegation counts, so `authorize` answers `503`.
|
|
70
|
+
*/
|
|
71
|
+
export function eligible(c, options) {
|
|
72
|
+
const gated = gate(c, { chainId: options.chainId, verb: 'read' });
|
|
73
|
+
return 'eligible' in gated || gated.allowed || gated.error.status === 503;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Whether a listing may include one Zone the caller reads, after awaiting
|
|
77
|
+
* {@link ensure}. Throws a `503` when the delegations could not be read, so a
|
|
78
|
+
* listing never silently omits Zones it could not verify.
|
|
79
|
+
*/
|
|
80
|
+
export function visible(c, options) {
|
|
81
|
+
const result = check(c, { chainId: options.chainId, verb: 'read' });
|
|
82
|
+
if (!result.allowed && result.error.status === 503)
|
|
83
|
+
throw new HTTPException(503, { res: Response.error(c, result.error) });
|
|
84
|
+
return result.allowed;
|
|
44
85
|
}
|
|
45
86
|
/**
|
|
46
87
|
* Decides whether the caller may access the Zone the request is about and
|
|
47
|
-
* records the decision on the context for the request log.
|
|
48
|
-
*
|
|
49
|
-
*
|
|
88
|
+
* records the decision on the context for the request log. A read loads the
|
|
89
|
+
* delegations, then checks the requested accounts and tokens against the
|
|
90
|
+
* delegation's members; a failed read refuses the request with a retriable `503`.
|
|
50
91
|
*/
|
|
51
|
-
export function authorize(c, options) {
|
|
52
|
-
const
|
|
92
|
+
export async function authorize(c, options) {
|
|
93
|
+
const addresses = { accounts: normalize(options.accounts), tokens: normalize(options.tokens) };
|
|
94
|
+
// A disconnect while the delegation or member reads are pending logs after the decision, so denials stay unbilled.
|
|
95
|
+
const { delegation, result } = await Auth.check(c, {
|
|
96
|
+
allows: (decided) => decided.result.allowed,
|
|
97
|
+
fn: async () => {
|
|
98
|
+
// Generic writes need the delegation too; a forwarded Zone token never does.
|
|
99
|
+
if (!options.zoneToken)
|
|
100
|
+
await ensure(c);
|
|
101
|
+
const gated = gate(c, options);
|
|
102
|
+
if (!('eligible' in gated))
|
|
103
|
+
return { delegation: undefined, result: gated };
|
|
104
|
+
const delegation = await evaluate(c, gated, addresses);
|
|
105
|
+
if (delegation)
|
|
106
|
+
return { delegation, result: conclude(options, delegation) };
|
|
107
|
+
const denied = { decision: 'deny', id: gated.record.id };
|
|
108
|
+
return { delegation: denied, result: unavailable(options) };
|
|
109
|
+
},
|
|
110
|
+
});
|
|
53
111
|
const access = {
|
|
54
|
-
|
|
112
|
+
...addresses,
|
|
55
113
|
chainId: options.chainId,
|
|
56
|
-
...(
|
|
57
|
-
|
|
114
|
+
...(delegation === undefined ? {} : { delegation }),
|
|
115
|
+
...(result.allowed ? { grant: result.grant } : {}),
|
|
58
116
|
verb: options.verb,
|
|
59
117
|
};
|
|
60
118
|
c.set('zoneAccess', access);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
119
|
+
// A later decision for the same Zone (raw RPC per method, relay per item) supersedes the earlier one.
|
|
120
|
+
const decisions = c.get('zoneAccessDecisions') ?? [];
|
|
121
|
+
const index = decisions.findIndex((decision) => decision.chainId === access.chainId);
|
|
122
|
+
if (index === -1)
|
|
123
|
+
decisions.push(access);
|
|
124
|
+
else
|
|
125
|
+
decisions[index] = access;
|
|
126
|
+
c.set('zoneAccessDecisions', decisions);
|
|
67
127
|
return result;
|
|
68
128
|
}
|
|
69
129
|
/** Removes the recorded grant after a later check (method allowlist, sandbox) refused the request. */
|
|
@@ -73,102 +133,147 @@ export function deny(c) {
|
|
|
73
133
|
return;
|
|
74
134
|
const { grant: _grant, ...denied } = access;
|
|
75
135
|
c.set('zoneAccess', denied);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
* (quota, method allowlist, sandbox, workload identity) stay in place when
|
|
82
|
-
* delegations replace scopes, so they are not disagreements. Admission is
|
|
83
|
-
* already decided; a failed delegation read only leaves the comparison out.
|
|
84
|
-
*/
|
|
85
|
-
export async function settle(c) {
|
|
86
|
-
const access = c.get('zoneAccess');
|
|
87
|
-
if (!access)
|
|
88
|
-
return;
|
|
89
|
-
// A disconnected client already emitted its log entry without these fields.
|
|
90
|
-
if (c.req.raw.signal.aborted)
|
|
91
|
-
return;
|
|
92
|
-
const metrics = c.get('metrics');
|
|
93
|
-
const tags = { chain_id: access.chainId, grant: access.grant ?? 'none', outcome: access.grant === undefined ? 'deny' : 'allow' }; // prettier-ignore
|
|
94
|
-
const decision = c.get('zoneDelegationDecision');
|
|
95
|
-
if (!decision) {
|
|
96
|
-
metrics?.count(decisionMetric, 1, { ...tags, agreement: 'skipped' });
|
|
97
|
-
return;
|
|
136
|
+
const decisions = c.get('zoneAccessDecisions');
|
|
137
|
+
if (decisions) {
|
|
138
|
+
const index = decisions.indexOf(access);
|
|
139
|
+
if (index !== -1)
|
|
140
|
+
decisions[index] = denied;
|
|
98
141
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (value === undefined)
|
|
106
|
-
metrics?.count(lookupFailureMetric, 1);
|
|
107
|
-
}));
|
|
108
|
-
metrics?.count(decisionMetric, 1, { ...tags, agreement: 'pending' });
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
const delegation = outcome.value;
|
|
112
|
-
if (!delegation) {
|
|
113
|
-
metrics?.count(lookupFailureMetric, 1);
|
|
114
|
-
metrics?.count(decisionMetric, 1, { ...tags, agreement: 'unavailable' });
|
|
142
|
+
}
|
|
143
|
+
/** Meters every Zone decision recorded for the request once the handler finished, after later refusals applied. */
|
|
144
|
+
export function settle(c) {
|
|
145
|
+
const decisions = c.get('zoneAccessDecisions');
|
|
146
|
+
// A disconnected client already emitted its log entry; its decisions were never final.
|
|
147
|
+
if (!decisions?.length || c.req.raw.signal.aborted)
|
|
115
148
|
return;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
149
|
+
for (const access of decisions)
|
|
150
|
+
metrics(c)?.count(decisionMetric, 1, {
|
|
151
|
+
chain_id: access.chainId,
|
|
152
|
+
grant: access.grant ?? 'none',
|
|
153
|
+
outcome: access.grant === undefined ? 'deny' : 'allow',
|
|
154
|
+
});
|
|
120
155
|
}
|
|
121
156
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
157
|
+
* Applies the credential checks that need no addresses: a forwarded Zone token
|
|
158
|
+
* outranks everything, writes stay on `zone:<chainId>:write`, and a read needs
|
|
159
|
+
* `zone:read`, a tag naming the Zone, and an active delegation. `*` grants no Zone.
|
|
125
160
|
*/
|
|
126
|
-
function
|
|
161
|
+
function gate(c, options) {
|
|
162
|
+
const { chainId, verb, zoneToken = false } = options;
|
|
127
163
|
const principal = Auth.getPrincipal(c);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
164
|
+
if (zoneToken)
|
|
165
|
+
return { allowed: true, grant: 'zone_token' };
|
|
166
|
+
const refuse = () => ({
|
|
167
|
+
allowed: false,
|
|
168
|
+
error: { code: 'api_key_forbidden', message: denialMessage(options), status: 403 },
|
|
169
|
+
});
|
|
170
|
+
if (principal?.type !== 'api_key')
|
|
171
|
+
return refuse();
|
|
172
|
+
const { scopes } = principal.apiKey;
|
|
173
|
+
// Absent tags mean no Zone, so a later delegation never widens an existing key.
|
|
174
|
+
const tagged = principal.zoneTags?.includes(chainId) ?? false;
|
|
175
|
+
if (verb === 'write') {
|
|
176
|
+
// A stored per-Zone write scope keeps admitting its own Zone this release, exactly as before,
|
|
177
|
+
// until the write rewrite has run and the cleanup release strips it.
|
|
178
|
+
if (scopes.includes(`zone:${chainId}:write`))
|
|
179
|
+
return { allowed: true, grant: 'scope' };
|
|
180
|
+
// Broadcasts are account-signed, so the delegation's existence is the whole bound: revoking it
|
|
181
|
+
// stops the key, accounts and tokens are never checked, and the wildcard grants no Zone.
|
|
182
|
+
if (!scopes.includes('zone:write') || !tagged)
|
|
183
|
+
return refuse();
|
|
184
|
+
if (lookupFailed(c))
|
|
185
|
+
return unavailable(options);
|
|
186
|
+
if (!delegationFor(c, chainId))
|
|
187
|
+
return refuse();
|
|
188
|
+
return { allowed: true, grant: 'scope' };
|
|
189
|
+
}
|
|
190
|
+
if (!readable(principal) || !tagged)
|
|
191
|
+
return refuse();
|
|
192
|
+
// Only keys a delegation could admit learn the read failed; others keep their 403.
|
|
193
|
+
if (lookupFailed(c))
|
|
194
|
+
return unavailable(options);
|
|
195
|
+
const record = delegationFor(c, chainId);
|
|
196
|
+
if (!record)
|
|
197
|
+
return refuse();
|
|
198
|
+
return { eligible: true, record };
|
|
199
|
+
}
|
|
200
|
+
/** The organization's active delegation for one Zone; undefined when none, or when `ensure` never ran or failed, so callers fail closed. */
|
|
201
|
+
function delegationFor(c, chainId) {
|
|
202
|
+
const delegations = c.get('zoneDelegations');
|
|
203
|
+
if (!delegations || 'failed' in delegations)
|
|
132
204
|
return undefined;
|
|
133
|
-
return
|
|
205
|
+
return delegations.records.find((candidate) => candidate.chainId === chainId);
|
|
206
|
+
}
|
|
207
|
+
/** Whether {@link ensure} ran and its delegation read failed with no recent copy to answer from. */
|
|
208
|
+
function lookupFailed(c) {
|
|
209
|
+
const delegations = c.get('zoneDelegations');
|
|
210
|
+
return delegations !== undefined && 'failed' in delegations;
|
|
211
|
+
}
|
|
212
|
+
/** Refusal for a key a delegation might admit when the delegations could not be read. */
|
|
213
|
+
function unavailable(options) {
|
|
214
|
+
return {
|
|
215
|
+
allowed: false,
|
|
216
|
+
error: {
|
|
217
|
+
code: 'zone_access_unavailable',
|
|
218
|
+
message: `Zone ${options.chainId} access could not be verified. Retry the request.`,
|
|
219
|
+
status: 503,
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/** Whether the key's scopes and tags let it read any Zone at all: `zone:read` plus at least one tag. */
|
|
224
|
+
function readable(principal) {
|
|
225
|
+
return principal.apiKey.scopes.includes('zone:read') && (principal.zoneTags?.length ?? 0) > 0;
|
|
226
|
+
}
|
|
227
|
+
/** Whether the key's scopes and tags let it use any Zone at all, reading or broadcasting. */
|
|
228
|
+
function zoneCapable(principal) {
|
|
229
|
+
const { scopes } = principal.apiKey;
|
|
230
|
+
return ((scopes.includes('zone:read') || scopes.includes('zone:write')) &&
|
|
231
|
+
(principal.zoneTags?.length ?? 0) > 0);
|
|
232
|
+
}
|
|
233
|
+
/** Maps a delegation decision onto the gate result for the requested Zone. */
|
|
234
|
+
function conclude(options, delegation) {
|
|
235
|
+
if (delegation.decision === 'allow')
|
|
236
|
+
return { allowed: true, grant: 'delegation' };
|
|
237
|
+
return {
|
|
238
|
+
allowed: false,
|
|
239
|
+
error: { code: 'api_key_forbidden', message: denialMessage(options), status: 403 },
|
|
240
|
+
};
|
|
134
241
|
}
|
|
135
242
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
* Client cache directives are ignored throughout. Rejections surface in {@link settle}.
|
|
243
|
+
* Decides an eligible read against the delegation's members: the requested
|
|
244
|
+
* accounts and tokens are checked for membership in one statement each, cached
|
|
245
|
+
* per address, so a request never loads a whole member set. Returns undefined
|
|
246
|
+
* when the member read failed, which the caller refuses as unavailable.
|
|
141
247
|
*/
|
|
142
|
-
async function evaluate(c,
|
|
143
|
-
const
|
|
248
|
+
async function evaluate(c, eligible, addresses) {
|
|
249
|
+
const { record } = eligible;
|
|
250
|
+
const decide = (delegation) => ZoneDelegation.decide({ ...addresses, delegation });
|
|
251
|
+
const listed = { accounts: !record.accountsAll, tokens: !record.tokensAll };
|
|
252
|
+
if ((!listed.accounts || !addresses.accounts.length) &&
|
|
253
|
+
(!listed.tokens || !addresses.tokens.length))
|
|
254
|
+
return decide(coverage(record, { accounts: [], tokens: [] }));
|
|
144
255
|
const db = Db.get(c.get('db'));
|
|
145
256
|
const store = Store.authoritative(c.get('store'));
|
|
146
|
-
const records = await Store.memoize(() => ZoneDelegations.listActive(db, scope), {
|
|
147
|
-
flightTimeout: delegationTimeout,
|
|
148
|
-
key: `zone_delegations:v1:${scope.orgId}:${scope.environment}`,
|
|
149
|
-
store,
|
|
150
|
-
ttl: delegationTtl,
|
|
151
|
-
});
|
|
152
|
-
const record = records.find((candidate) => candidate.chainId === access.chainId);
|
|
153
|
-
const grant = access.scopeGrant;
|
|
154
|
-
const decide = (delegation) => ZoneDelegation.decide({
|
|
155
|
-
accounts: access.accounts,
|
|
156
|
-
delegation,
|
|
157
|
-
grant,
|
|
158
|
-
projectId: principal?.type === 'api_key' ? principal.projectId : undefined,
|
|
159
|
-
tokens: access.tokens,
|
|
160
|
-
});
|
|
161
|
-
// A key without its own grant is denied before coverage matters, so its members are never read.
|
|
162
|
-
if (!record || grant === undefined)
|
|
163
|
-
return decide(record && { accounts: [], id: record.id, projects: record.projects, tokens: [] });
|
|
164
257
|
const wiring = { c, db, id: record.id, store };
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
? '
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
258
|
+
try {
|
|
259
|
+
const [accounts, tokens] = await Promise.all([
|
|
260
|
+
listed.accounts ? covered({ ...wiring, addresses: addresses.accounts, kind: 'account' }) : [],
|
|
261
|
+
listed.tokens ? covered({ ...wiring, addresses: addresses.tokens, kind: 'token' }) : [],
|
|
262
|
+
]);
|
|
263
|
+
return decide(coverage(record, { accounts, tokens }));
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
metrics(c)?.count(lookupFailureMetric, 1, { phase: 'request' });
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/** Builds the gate's view of a delegation from its row and the members already resolved. */
|
|
271
|
+
function coverage(record, members) {
|
|
272
|
+
return {
|
|
273
|
+
accounts: record.accountsAll ? 'all' : members.accounts,
|
|
274
|
+
id: record.id,
|
|
275
|
+
tokens: record.tokensAll ? 'all' : members.tokens,
|
|
276
|
+
};
|
|
172
277
|
}
|
|
173
278
|
/**
|
|
174
279
|
* Which of the requested addresses a delegation lists. Memberships are cached
|
|
@@ -192,6 +297,79 @@ async function covered(options) {
|
|
|
192
297
|
}
|
|
193
298
|
return addresses.filter((address) => hits.get(address) === '1' || found.has(address));
|
|
194
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Per-colo delegation cache with stale-while-revalidate: entries younger than
|
|
302
|
+
* {@link delegationTtl} answer directly, older ones up to {@link delegationMaxAge}
|
|
303
|
+
* answer while a background read refreshes them, and anything older reads Postgres.
|
|
304
|
+
*/
|
|
305
|
+
var Cached;
|
|
306
|
+
(function (Cached) {
|
|
307
|
+
/** Keys whose background refresh this isolate started, by start time, so concurrent requests start one. */
|
|
308
|
+
const refreshing = new Map();
|
|
309
|
+
async function read(c, owner) {
|
|
310
|
+
const deadline = performance.now() + delegationTimeout;
|
|
311
|
+
const db = Db.get(c.get('db'));
|
|
312
|
+
// Client cache directives never bypass or refresh authorization data.
|
|
313
|
+
const store = Store.authoritative(c.get('store'));
|
|
314
|
+
// v2 entries carry their read time; v1 entries were bare records.
|
|
315
|
+
const key = `zone_delegations:v2:${owner.orgId}:${owner.environment}`;
|
|
316
|
+
const entry = await Timing.time(c, 'zone_delegations_cache', () => Timeout.run(() => store.get(key), { timeout: delegationTimeout }).then(decode, () => undefined));
|
|
317
|
+
const age = entry ? Date.now() - entry.at : Infinity;
|
|
318
|
+
const wiring = { db, key, owner, store, waitUntil: ExecutionContext.waitUntil(c) };
|
|
319
|
+
if (entry && age <= delegationMaxAge) {
|
|
320
|
+
if (age > delegationTtl)
|
|
321
|
+
refresh(c, wiring);
|
|
322
|
+
return entry.records;
|
|
323
|
+
}
|
|
324
|
+
// A cache read that spent the budget never starts a query the caller no longer awaits.
|
|
325
|
+
const remaining = deadline - performance.now();
|
|
326
|
+
if (remaining <= 0)
|
|
327
|
+
throw new Error('Zone delegation read exceeded its budget.');
|
|
328
|
+
// Present on a failed request, this stage shows how long Postgres (through Hyperdrive) took.
|
|
329
|
+
return Timing.time(c, 'zone_delegations_query', () => load({ ...wiring, timeout: remaining }));
|
|
330
|
+
}
|
|
331
|
+
Cached.read = read;
|
|
332
|
+
/** Reads Postgres within the timeout and caches the result; cache writes are best-effort and never delay it. */
|
|
333
|
+
async function load(options) {
|
|
334
|
+
const { db, key, owner, store, timeout, waitUntil } = options;
|
|
335
|
+
const records = await Timeout.run(() => ZoneDelegations.listActive(db, owner), { timeout });
|
|
336
|
+
const entry = { at: Date.now(), records };
|
|
337
|
+
const persist = store
|
|
338
|
+
.put(key, JSON.stringify(entry), { ttl: delegationMaxAge })
|
|
339
|
+
.catch(() => undefined);
|
|
340
|
+
waitUntil?.(persist);
|
|
341
|
+
return records;
|
|
342
|
+
}
|
|
343
|
+
/** Refreshes an aging entry after the response; a failure leaves the entry answering until it is too old. */
|
|
344
|
+
function refresh(c, options) {
|
|
345
|
+
const started = refreshing.get(options.key);
|
|
346
|
+
if (started !== undefined && Date.now() - started < delegationTimeout)
|
|
347
|
+
return;
|
|
348
|
+
refreshing.set(options.key, Date.now());
|
|
349
|
+
const work = load({ ...options, timeout: delegationTimeout })
|
|
350
|
+
.catch(() => {
|
|
351
|
+
// The request's metrics already flushed, so a late count flushes itself.
|
|
352
|
+
metrics(c)?.count(lookupFailureMetric, 1, { phase: 'refresh' });
|
|
353
|
+
metrics(c)?.flush();
|
|
354
|
+
})
|
|
355
|
+
.finally(() => refreshing.delete(options.key));
|
|
356
|
+
options.waitUntil?.(work);
|
|
357
|
+
}
|
|
358
|
+
function decode(raw) {
|
|
359
|
+
if (raw === null)
|
|
360
|
+
return undefined;
|
|
361
|
+
try {
|
|
362
|
+
const entry = JSON.parse(raw);
|
|
363
|
+
return typeof entry.at === 'number' && Array.isArray(entry.records) ? entry : undefined;
|
|
364
|
+
}
|
|
365
|
+
catch {
|
|
366
|
+
return undefined;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
})(Cached || (Cached = {}));
|
|
370
|
+
function metrics(c) {
|
|
371
|
+
return c.get('metrics');
|
|
372
|
+
}
|
|
195
373
|
/** Lowercases addresses so logged accounts and tokens compare exactly. */
|
|
196
374
|
function normalize(addresses) {
|
|
197
375
|
return addresses?.map((address) => address.toLowerCase()) ?? [];
|
|
@@ -199,12 +377,15 @@ function normalize(addresses) {
|
|
|
199
377
|
/** Denial guidance per verb, keeping each route's published wording. */
|
|
200
378
|
function denialMessage(options) {
|
|
201
379
|
const { chainId, suggestZoneToken = false, verb } = options;
|
|
202
|
-
if (verb === 'write')
|
|
380
|
+
if (verb === 'write') {
|
|
381
|
+
const grant = `Broadcasting to zone ${chainId} requires \`zone:write\` with a tag for Zone ${chainId}, issued to an organization delegated that Zone`;
|
|
203
382
|
return suggestZoneToken
|
|
204
|
-
?
|
|
205
|
-
:
|
|
383
|
+
? `${grant}, or a Zone token via \`X-Authorization-Token\`.`
|
|
384
|
+
: `${grant}.`;
|
|
385
|
+
}
|
|
386
|
+
const grant = `Use an API key granting \`zone:read\` and tagged for Zone ${chainId}, issued to an organization delegated that Zone`;
|
|
206
387
|
return suggestZoneToken
|
|
207
|
-
? `Chain
|
|
208
|
-
: `Chain ID ${chainId} is a Zone.
|
|
388
|
+
? `Chain ID ${chainId} is a Zone. ${grant}, or pass a Zone token via \`X-Authorization-Token\`.`
|
|
389
|
+
: `Chain ID ${chainId} is a Zone. ${grant}.`;
|
|
209
390
|
}
|
|
210
391
|
//# sourceMappingURL=ZoneAccess.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZoneAccess.js","sourceRoot":"","sources":["../../src/internal/ZoneAccess.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ZoneAccess.js","sourceRoot":"","sources":["../../src/internal/ZoneAccess.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAA;AAElE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AA8BrD,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,4BAA4B,CAAA;AAE1D,0KAA0K;AAC1K,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAA;AAEzE,qGAAqG;AACrG,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAA;AAEnC,+HAA+H;AAC/H,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC,uFAAuF;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAmCtC;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CACpB,CAAuB;IAEvB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,wBAAiC,CAAqC,CAAA;IAC5F,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/F,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAgB,CAA6C,CAAA;IACjF,IAAI,CAAC,KAAK,EAAE,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAA;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAClF,CAAC,OAAO,EAAe,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EACvC,GAAgB,EAAE;QAChB,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC,CACF,CAAA;IACD,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,iBAA0B,EAAE,WAAoB,CAAC,CAAC,CAAA;IAC3F,CAAC,CAAC,GAAG,CAAC,wBAAiC,EAAE,OAAgB,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CACnB,CAAuB,EACvB,OAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;QACvC,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,EAAE;KACX,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACtB,CAAuB,EACvB,OAAuC;IAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACjE,OAAO,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAA;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CACrB,CAAuB,EACvB,OAAuC;IAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACnE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG;QAChD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACxE,OAAO,MAAM,CAAC,OAAO,CAAA;AACvB,CAAC;AAkDD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,CAAuB,EACvB,OAA0B;IAE1B,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IAC9F,mHAAmH;IACnH,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QACjD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO;QAC3C,EAAE,EAAE,KAAK,IAAI,EAAE;YACb,6EAA6E;YAC7E,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAC9B,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YAC3E,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;YACtD,IAAI,UAAU;gBAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAA;YAC5E,MAAM,MAAM,GAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;YAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAA;QAC7D,CAAC;KACF,CAAC,CAAA;IACF,MAAM,MAAM,GAAW;QACrB,GAAG,SAAS;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAA;IACD,CAAC,CAAC,GAAG,CAAC,YAAqB,EAAE,MAAe,CAAC,CAAA;IAC7C,sGAAsG;IACtG,MAAM,SAAS,GAAI,CAAC,CAAC,GAAG,CAAC,qBAA8B,CAA0B,IAAI,EAAE,CAAA;IACvF,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAA;IACpF,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;;QACnC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;IAC9B,CAAC,CAAC,GAAG,CAAC,qBAA8B,EAAE,SAAkB,CAAC,CAAA;IACzD,OAAO,MAAM,CAAA;AACf,CAAC;AAeD,sGAAsG;AACtG,MAAM,UAAU,IAAI,CAAkC,CAAuB;IAC3E,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,YAAqB,CAAuB,CAAA;IACjE,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;QAAE,OAAM;IACvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;IAC3C,CAAC,CAAC,GAAG,CAAC,YAAqB,EAAE,MAAe,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,qBAA8B,CAAyB,CAAA;IAC/E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,MAAM,CAAkC,CAAuB;IAC7E,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,qBAA8B,CAAyB,CAAA;IAC/E,uFAAuF;IACvF,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QAAE,OAAM;IAC1D,KAAK,MAAM,MAAM,IAAI,SAAS;QAC5B,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE;YACnC,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM;YAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;SACvD,CAAC,CAAA;AACN,CAAC;AAUD;;;;GAIG;AACH,SAAS,IAAI,CACX,CAAuB,EACvB,OAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;IAC5D,MAAM,MAAM,GAAG,GAAiB,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;KACnF,CAAC,CAAA;IACF,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,EAAE,CAAA;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAA;IACnC,gFAAgF;IAChF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAA;IAC7D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,8FAA8F;QAC9F,qEAAqE;QACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,OAAO,QAAQ,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;QACtF,+FAA+F;QAC/F,yFAAyF;QACzF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,EAAE,CAAA;QAC9D,IAAI,YAAY,CAAC,CAAC,CAAC;YAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC;YAAE,OAAO,MAAM,EAAE,CAAA;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IAC1C,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,EAAE,CAAA;IACpD,mFAAmF;IACnF,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,EAAE,CAAA;IAC5B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;AACnC,CAAC;AAED,4IAA4I;AAC5I,SAAS,aAAa,CACpB,CAAuB,EACvB,OAAe;IAEf,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,iBAA0B,CAA4B,CAAA;IAChF,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,WAAW;QAAE,OAAO,SAAS,CAAA;IAC7D,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;AAC/E,CAAC;AAED,oGAAoG;AACpG,SAAS,YAAY,CAAkC,CAAuB;IAC5E,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,iBAA0B,CAA4B,CAAA;IAChF,OAAO,WAAW,KAAK,SAAS,IAAI,QAAQ,IAAI,WAAW,CAAA;AAC7D,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,OAAsB;IACzC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,QAAQ,OAAO,CAAC,OAAO,mDAAmD;YACnF,MAAM,EAAE,GAAG;SACZ;KACF,CAAA;AACH,CAAC;AAED,wGAAwG;AACxG,SAAS,QAAQ,CAAC,SAAuD;IACvE,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;AAC/F,CAAC;AAED,6FAA6F;AAC7F,SAAS,WAAW,CAAC,SAAuD;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAA;IACnC,OAAO,CACL,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CACtC,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,OAAsB,EAAE,UAAiC;IACzE,IAAI,UAAU,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;IAClF,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;KACnF,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,QAAQ,CACrB,CAAuB,EACvB,QAAkB,EAClB,SAAoB;IAEpB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAC3B,MAAM,MAAM,GAAG,CAAC,UAAqC,EAAE,EAAE,CACvD,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;IACrD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IAC3E,IACE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChD,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAE5C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/D,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAa,CAAc,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAgB,CAAgB,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA;IAC9C,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7F,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SACxF,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/D,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,QAAQ,CAAC,MAA8B,EAAE,OAAkB;IAClE,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;QACvD,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;KAClD,CAAA;AACH,CAAC;AAUD;;;GAGG;AACH,KAAK,UAAU,OAAO,CACpB,OAIC;IAED,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACrC,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,6BAA6B,IAAI,IAAI,EAAE,IAAI,OAAO,EAAE,CAAA;IACrF,+EAA+E;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAU,CAAC,CACpF,CACF,CAAA;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAChG,CAAA;IACD,6DAA6D;IAC7D,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK;aAClB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;aACzE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACzB,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;AACvF,CAAC;AAED;;;;GAIG;AACH,IAAU,MAAM,CAyFf;AAzFD,WAAU,MAAM;IAQd,2GAA2G;IAC3G,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAErC,KAAK,UAAU,IAAI,CACxB,CAAuB,EACvB,KAA4B;QAE5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAA;QACtD,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAa,CAAc,CAAC,CAAA;QACpD,sEAAsE;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAgB,CAAgB,CAAC,CAAA;QACzE,kEAAkE;QAClE,MAAM,GAAG,GAAG,uBAAuB,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAA;QACrE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,wBAAwB,EAAE,GAAG,EAAE,CAChE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC,IAAI,CACpE,MAAM,EACN,GAAG,EAAE,CAAC,SAAS,CAChB,CACF,CAAA;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;QACpD,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;QAClF,IAAI,KAAK,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACrC,IAAI,GAAG,GAAG,aAAa;gBAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAC3C,OAAO,KAAK,CAAC,OAAO,CAAA;QACtB,CAAC;QACD,uFAAuF;QACvF,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC9C,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAChF,6FAA6F;QAC7F,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,wBAAwB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC;IA3BqB,OAAA,IAAI,OA2BzB,CAAA;IAeD,gHAAgH;IAChH,KAAK,UAAU,IAAI,CAAC,OAAsC;QACxD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;QAC7D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3F,MAAM,KAAK,GAAU,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAA;QAChD,MAAM,OAAO,GAAG,KAAK;aAClB,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;aAC1D,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACzB,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;QACpB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,6GAA6G;IAC7G,SAAS,OAAO,CAAkC,CAAuB,EAAE,OAAgB;QACzF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,iBAAiB;YAAE,OAAM;QAC7E,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;aAC1D,KAAK,CAAC,GAAG,EAAE;YACV,yEAAyE;YACzE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAC/D,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAA;QACrB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QAChD,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,SAAS,MAAM,CAAC,GAAkB;QAChC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,SAAS,CAAA;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,CAAA;YACtC,OAAO,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;AACH,CAAC,EAzFS,MAAM,KAAN,MAAM,QAyFf;AAED,SAAS,OAAO,CAAkC,CAAuB;IACvE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAkB,CAAgC,CAAA;AACjE,CAAC;AAED,0EAA0E;AAC1E,SAAS,SAAS,CAAC,SAAwC;IACzD,OAAO,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;AACjE,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CAAC,OAAsB;IAC3C,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC3D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,wBAAwB,OAAO,gDAAgD,OAAO,iDAAiD,CAAA;QACrJ,OAAO,gBAAgB;YACrB,CAAC,CAAC,GAAG,KAAK,kDAAkD;YAC5D,CAAC,CAAC,GAAG,KAAK,GAAG,CAAA;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,6DAA6D,OAAO,iDAAiD,CAAA;IACnI,OAAO,gBAAgB;QACrB,CAAC,CAAC,YAAY,OAAO,eAAe,KAAK,uDAAuD;QAChG,CAAC,CAAC,YAAY,OAAO,eAAe,KAAK,GAAG,CAAA;AAChD,CAAC"}
|