tapimo 0.13.0 → 0.15.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 +7 -4
- package/dist/ApiKey.js +1 -1
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +95 -14
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +360 -49
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +21383 -18056
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +301 -22
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +2 -1
- package/dist/Assets.js.map +1 -1
- package/dist/Handler.d.ts +0 -1
- package/dist/Handler.d.ts.map +1 -1
- package/dist/Handler.js +0 -1
- package/dist/Handler.js.map +1 -1
- package/dist/Scope.d.ts +13 -5
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +16 -5
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.js +2 -2
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +3936 -1337
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +26 -5
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +159 -7
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +95 -43
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +1446 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
- package/dist/admin/apps/earn-vaults.js +465 -8
- package/dist/admin/apps/earn-vaults.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +344 -3
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/organizations.js +288 -10
- package/dist/admin/apps/organizations.js.map +1 -1
- package/dist/admin/apps/routes-support.d.ts +95 -0
- package/dist/admin/apps/routes-support.d.ts.map +1 -0
- package/dist/admin/apps/routes-support.js +151 -0
- package/dist/admin/apps/routes-support.js.map +1 -0
- package/dist/admin/apps/routes.d.ts +2764 -0
- package/dist/admin/apps/routes.d.ts.map +1 -0
- package/dist/admin/apps/routes.js +728 -0
- package/dist/admin/apps/routes.js.map +1 -0
- package/dist/admin/apps/subsidies.d.ts +501 -0
- package/dist/admin/apps/subsidies.d.ts.map +1 -0
- package/dist/admin/apps/subsidies.js +384 -0
- package/dist/admin/apps/subsidies.js.map +1 -0
- package/dist/admin/apps/verified-tokens.d.ts +16 -16
- package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.js +3 -3
- package/dist/admin/apps/verified-tokens.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 +129 -69
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +5 -2
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +31 -1
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +2 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +10 -1
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/analytics/tables/routesLifecycleIntervals.d.ts +72 -0
- package/dist/analytics/tables/routesLifecycleIntervals.d.ts.map +1 -0
- package/dist/analytics/tables/routesLifecycleIntervals.js +56 -0
- package/dist/analytics/tables/routesLifecycleIntervals.js.map +1 -0
- package/dist/apps/Zones.d.ts +21 -12526
- package/dist/apps/Zones.d.ts.map +1 -1
- package/dist/apps/Zones.js +40 -8
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +4310 -2548
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +86 -26
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +364 -34
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +495 -190
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +94 -22
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +37 -37
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +47 -21
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/earn.d.ts +1641 -352
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +1561 -120
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +15 -0
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +180 -114
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +5 -0
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +49 -38
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +125 -0
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +83 -27
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +507 -33
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +266 -156
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +47 -15
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +68 -11
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +95 -93
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +26 -14
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +16 -0
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +9 -7
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +4 -4
- package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/verified-tokens.js +64 -20
- package/dist/apps/data/routes/verified-tokens.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +1210 -70
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +301 -163
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts.map +1 -1
- package/dist/apps/data/routes/zones.js +20 -12
- package/dist/apps/data/routes/zones.js.map +1 -1
- package/dist/apps/docs/reference.js +2 -2
- package/dist/apps/docs/reference.js.map +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +1 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +4119 -3297
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +5 -14
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/Billing.d.ts +49 -8
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +221 -26
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +174 -72
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +43 -15
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +364 -78
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +274 -49
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/faucet.d.ts +6 -6
- package/dist/apps/management/routes/faucet.js +1 -1
- package/dist/apps/management/routes/faucet.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +99 -24
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +117 -13
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts +42 -42
- package/dist/apps/management/routes/me.d.ts.map +1 -1
- package/dist/apps/management/routes/me.js +6 -2
- package/dist/apps/management/routes/me.js.map +1 -1
- package/dist/apps/management/routes/members.d.ts +16 -16
- package/dist/apps/management/routes/orgs.d.ts +36 -20
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +52 -12
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +40 -40
- package/dist/apps/management/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js +6 -1
- package/dist/apps/management/routes/projects.js.map +1 -1
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +4 -1
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +8 -8
- package/dist/apps/management/routes/usage.js +21 -4
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.d.ts +16 -16
- package/dist/apps/management/routes/webhooks.d.ts +931 -215
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +71 -25
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/apps/mcp.d.ts +1 -1
- package/dist/apps/mcp.js +7 -7
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/App.js +35 -7
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts +2 -0
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +30 -1
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/apps/mpp/internal/Policy.d.ts +22 -4
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Policy.js +24 -6
- package/dist/apps/mpp/internal/Policy.js.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.d.ts +3 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Sponsorship.js +6 -3
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -1
- package/dist/apps/relay/App.d.ts +2 -0
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +177 -26
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +5 -3
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +232 -25
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/apps/{funding → routes}/Access.d.ts +4 -4
- package/dist/apps/routes/Access.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/Access.js +4 -4
- package/dist/apps/routes/Access.js.map +1 -0
- package/dist/apps/{funding → routes}/App.d.ts +841 -136
- package/dist/apps/{funding → routes}/App.d.ts.map +1 -1
- package/dist/apps/{funding → routes}/App.js +17 -17
- package/dist/apps/routes/App.js.map +1 -0
- package/dist/apps/routes/Inventory.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/Inventory.js +2 -2
- package/dist/apps/routes/Inventory.js.map +1 -0
- package/dist/apps/routes/index.d.ts +2 -0
- package/dist/apps/routes/index.d.ts.map +1 -0
- package/dist/apps/routes/index.js +2 -0
- package/dist/apps/routes/index.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/chains.d.ts +7 -7
- package/dist/apps/routes/routes/chains.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/chains.js +25 -25
- package/dist/apps/routes/routes/chains.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.d.ts +123 -59
- package/dist/apps/routes/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/deposit-addresses.js +498 -223
- package/dist/apps/routes/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/providers.d.ts +8 -8
- package/dist/apps/routes/routes/providers.d.ts.map +1 -0
- package/dist/apps/routes/routes/providers.js +57 -0
- package/dist/apps/routes/routes/providers.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/quotes.d.ts +19 -16
- package/dist/apps/routes/routes/quotes.d.ts.map +1 -0
- package/dist/apps/{funding → routes}/routes/quotes.js +55 -38
- package/dist/apps/routes/routes/quotes.js.map +1 -0
- package/dist/apps/{funding → routes}/routes/transfers.d.ts +957 -71
- package/dist/apps/routes/routes/transfers.d.ts.map +1 -0
- package/dist/apps/routes/routes/transfers.js +1140 -0
- package/dist/apps/routes/routes/transfers.js.map +1 -0
- package/dist/cli/Cli.d.ts +30 -0
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/commands/admin.d.ts +36 -0
- package/dist/cli/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin.js +273 -0
- package/dist/cli/commands/admin.js.map +1 -1
- package/dist/cloudflare.d.ts +16 -14
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +26 -21
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +63 -21
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +1052 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +785 -133
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +590 -162
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/apiKeyAdmissionBootstraps.d.ts +4 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.d.ts.map +1 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.js +2 -0
- package/dist/db/tables/apiKeyAdmissionBootstraps.js.map +1 -0
- package/dist/db/tables/apiKeyAdmissions.d.ts +73 -0
- package/dist/db/tables/apiKeyAdmissions.d.ts.map +1 -0
- package/dist/db/tables/apiKeyAdmissions.js +142 -0
- package/dist/db/tables/apiKeyAdmissions.js.map +1 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.d.ts +4 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.d.ts.map +1 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.js +2 -0
- package/dist/db/tables/apiKeyOwnerAdmissions.js.map +1 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts +20 -0
- package/dist/db/tables/apiKeyOwnerTombstones.d.ts.map +1 -0
- package/dist/db/tables/apiKeyOwnerTombstones.js +57 -0
- package/dist/db/tables/apiKeyOwnerTombstones.js.map +1 -0
- package/dist/db/tables/apiKeyRevocations.d.ts +21 -0
- package/dist/db/tables/apiKeyRevocations.d.ts.map +1 -0
- package/dist/db/tables/apiKeyRevocations.js +98 -0
- package/dist/db/tables/apiKeyRevocations.js.map +1 -0
- package/dist/db/tables/authAccounts.d.ts +47 -0
- package/dist/db/tables/authAccounts.d.ts.map +1 -0
- package/dist/db/tables/authAccounts.js +72 -0
- package/dist/db/tables/authAccounts.js.map +1 -0
- package/dist/db/tables/authSessions.d.ts +12 -0
- package/dist/db/tables/authSessions.d.ts.map +1 -0
- package/dist/db/tables/authSessions.js +2 -0
- package/dist/db/tables/authSessions.js.map +1 -0
- package/dist/db/tables/authVerifications.d.ts +12 -0
- package/dist/db/tables/authVerifications.d.ts.map +1 -0
- package/dist/db/tables/authVerifications.js +2 -0
- package/dist/db/tables/authVerifications.js.map +1 -0
- package/dist/db/tables/invitations.d.ts +17 -1
- package/dist/db/tables/invitations.d.ts.map +1 -1
- package/dist/db/tables/invitations.js +123 -43
- package/dist/db/tables/invitations.js.map +1 -1
- package/dist/db/tables/memberships.d.ts +8 -0
- package/dist/db/tables/memberships.d.ts.map +1 -1
- package/dist/db/tables/memberships.js +51 -2
- package/dist/db/tables/memberships.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +51 -5
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +135 -47
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +27 -1
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +38 -3
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/rewardAccounts.d.ts +86 -0
- package/dist/db/tables/rewardAccounts.d.ts.map +1 -0
- package/dist/db/tables/rewardAccounts.js +88 -0
- package/dist/db/tables/rewardAccounts.js.map +1 -0
- package/dist/db/tables/rewardCampaignDistributors.d.ts +36 -0
- package/dist/db/tables/rewardCampaignDistributors.d.ts.map +1 -0
- package/dist/db/tables/rewardCampaignDistributors.js +30 -0
- package/dist/db/tables/rewardCampaignDistributors.js.map +1 -0
- package/dist/db/tables/rewardCampaigns.d.ts +171 -0
- package/dist/db/tables/rewardCampaigns.d.ts.map +1 -0
- package/dist/db/tables/rewardCampaigns.js +392 -0
- package/dist/db/tables/rewardCampaigns.js.map +1 -0
- package/dist/db/tables/rewardCredits.d.ts +53 -0
- package/dist/db/tables/rewardCredits.d.ts.map +1 -0
- package/dist/db/tables/rewardCredits.js +63 -0
- package/dist/db/tables/rewardCredits.js.map +1 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts +61 -0
- package/dist/db/tables/rewardEligibilityAssociations.d.ts.map +1 -0
- package/dist/db/tables/rewardEligibilityAssociations.js +103 -0
- package/dist/db/tables/rewardEligibilityAssociations.js.map +1 -0
- package/dist/db/tables/rewardRuns.d.ts +188 -0
- package/dist/db/tables/rewardRuns.d.ts.map +1 -0
- package/dist/db/tables/rewardRuns.js +278 -0
- package/dist/db/tables/rewardRuns.js.map +1 -0
- package/dist/db/tables/rewardTransactionAttempts.d.ts +100 -0
- package/dist/db/tables/rewardTransactionAttempts.d.ts.map +1 -0
- package/dist/db/tables/rewardTransactionAttempts.js +163 -0
- package/dist/db/tables/rewardTransactionAttempts.js.map +1 -0
- package/dist/db/tables/routesCatalog.d.ts +58 -0
- package/dist/db/tables/routesCatalog.d.ts.map +1 -0
- package/dist/db/tables/{fundingCatalog.js → routesCatalog.js} +19 -19
- package/dist/db/tables/routesCatalog.js.map +1 -0
- package/dist/db/tables/routesDepositAddresses.d.ts +476 -0
- package/dist/db/tables/routesDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/routesDepositAddresses.js +587 -0
- package/dist/db/tables/routesDepositAddresses.js.map +1 -0
- package/dist/db/tables/{fundingDepositRequestObservations.d.ts → routesDepositRequestObservations.d.ts} +6 -6
- package/dist/db/tables/routesDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/{fundingDepositRequestObservations.js → routesDepositRequestObservations.js} +6 -6
- package/dist/db/tables/routesDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/{fundingDeposits.d.ts → routesDeposits.d.ts} +210 -22
- package/dist/db/tables/routesDeposits.d.ts.map +1 -0
- package/dist/db/tables/routesDeposits.js +576 -0
- package/dist/db/tables/routesDeposits.js.map +1 -0
- package/dist/db/tables/routesIdempotency.d.ts +166 -0
- package/dist/db/tables/routesIdempotency.d.ts.map +1 -0
- package/dist/db/tables/routesIdempotency.js +330 -0
- package/dist/db/tables/routesIdempotency.js.map +1 -0
- package/dist/db/tables/routesSubsidies.d.ts +27 -0
- package/dist/db/tables/routesSubsidies.d.ts.map +1 -0
- package/dist/db/tables/routesSubsidies.js +45 -0
- package/dist/db/tables/routesSubsidies.js.map +1 -0
- package/dist/db/tables/{fundingTransferEvents.d.ts → routesTransferEvents.d.ts} +3 -3
- package/dist/db/tables/routesTransferEvents.d.ts.map +1 -0
- package/dist/db/tables/{fundingTransferEvents.js → routesTransferEvents.js} +3 -3
- package/dist/db/tables/routesTransferEvents.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts +19 -0
- package/dist/db/tables/routesTransferSubsidies.d.ts.map +1 -0
- package/dist/db/tables/routesTransferSubsidies.js +17 -0
- package/dist/db/tables/routesTransferSubsidies.js.map +1 -0
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts +51 -0
- package/dist/db/tables/routesTransferSubsidyNonces.d.ts.map +1 -0
- package/dist/db/tables/routesTransferSubsidyNonces.js +82 -0
- package/dist/db/tables/routesTransferSubsidyNonces.js.map +1 -0
- package/dist/db/tables/routesTransferTransactions.d.ts +77 -0
- package/dist/db/tables/routesTransferTransactions.d.ts.map +1 -0
- package/dist/db/tables/routesTransferTransactions.js +86 -0
- package/dist/db/tables/routesTransferTransactions.js.map +1 -0
- package/dist/db/tables/routesTransfers.d.ts +319 -0
- package/dist/db/tables/routesTransfers.d.ts.map +1 -0
- package/dist/db/tables/routesTransfers.js +372 -0
- package/dist/db/tables/routesTransfers.js.map +1 -0
- package/dist/db/tables/sponsoredTransactions.d.ts +112 -13
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +241 -38
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/sponsorshipAttributions.d.ts +69 -0
- package/dist/db/tables/sponsorshipAttributions.d.ts.map +1 -0
- package/dist/db/tables/sponsorshipAttributions.js +77 -0
- package/dist/db/tables/sponsorshipAttributions.js.map +1 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.d.ts +22 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.d.ts.map +1 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.js +45 -0
- package/dist/db/tables/sponsorshipReconciliationCursors.js.map +1 -0
- package/dist/db/tables/stripeCustomers.d.ts +11 -0
- package/dist/db/tables/stripeCustomers.d.ts.map +1 -1
- package/dist/db/tables/stripeCustomers.js +13 -0
- package/dist/db/tables/stripeCustomers.js.map +1 -1
- package/dist/db/tables/users.d.ts +17 -1
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +47 -2
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -1
- package/dist/db/tables/webhookQueueEvents.js +5 -1
- package/dist/db/tables/webhookQueueEvents.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +22 -10
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +50 -15
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/internal/executionError.d.ts +2 -2
- package/dist/handlers/internal/executionError.d.ts.map +1 -1
- package/dist/handlers/internal/executionError.js +1 -2
- package/dist/handlers/internal/executionError.js.map +1 -1
- package/dist/handlers/internal/multisig.d.ts +4 -232
- package/dist/handlers/internal/multisig.d.ts.map +1 -1
- package/dist/handlers/internal/multisig.js +11 -537
- package/dist/handlers/internal/multisig.js.map +1 -1
- package/dist/handlers/internal/sponsorship.d.ts +19 -8
- package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
- package/dist/handlers/internal/sponsorship.js +13 -9
- package/dist/handlers/internal/sponsorship.js.map +1 -1
- package/dist/handlers/relay.d.ts +9 -12
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +81 -85
- package/dist/handlers/relay.js.map +1 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -17
- package/dist/index.js.map +1 -1
- package/dist/internal/AssetResponse.d.ts +12 -0
- package/dist/internal/AssetResponse.d.ts.map +1 -0
- package/dist/internal/AssetResponse.js +21 -0
- package/dist/internal/AssetResponse.js.map +1 -0
- package/dist/internal/Auth.d.ts +48 -12
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +603 -175
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/BetterAuth.d.ts +1488 -0
- package/dist/internal/BetterAuth.d.ts.map +1 -0
- package/dist/internal/BetterAuth.js +253 -0
- package/dist/internal/BetterAuth.js.map +1 -0
- package/dist/internal/Cache.d.ts +2 -0
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +2 -0
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EarnRates.d.ts +26 -3
- package/dist/internal/EarnRates.d.ts.map +1 -1
- package/dist/internal/EarnRates.js +84 -19
- package/dist/internal/EarnRates.js.map +1 -1
- package/dist/internal/EarnSharePrices.d.ts +120 -0
- package/dist/internal/EarnSharePrices.d.ts.map +1 -0
- package/dist/internal/EarnSharePrices.js +179 -0
- package/dist/internal/EarnSharePrices.js.map +1 -0
- package/dist/internal/EarnVaults.d.ts +4 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -1
- package/dist/internal/EarnVaults.js +31 -14
- package/dist/internal/EarnVaults.js.map +1 -1
- package/dist/internal/Email.d.ts +37 -0
- package/dist/internal/Email.d.ts.map +1 -0
- package/dist/internal/Email.js +16 -0
- package/dist/internal/Email.js.map +1 -0
- package/dist/internal/Log.d.ts +32 -28
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +18 -11
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +3 -0
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +67 -8
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/Mpp.d.ts.map +1 -1
- package/dist/internal/Mpp.js +20 -25
- package/dist/internal/Mpp.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +26 -3
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +25 -10
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Provider.d.ts +1 -1
- package/dist/internal/Provider.d.ts.map +1 -1
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +13 -1
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Store.d.ts +16 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +59 -8
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +9 -2
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +78 -11
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Timing.d.ts +26 -0
- package/dist/internal/Timing.d.ts.map +1 -1
- package/dist/internal/Timing.js +63 -5
- package/dist/internal/Timing.js.map +1 -1
- package/dist/internal/VercelOidc.d.ts +94 -0
- package/dist/internal/VercelOidc.d.ts.map +1 -0
- package/dist/internal/VercelOidc.js +128 -0
- package/dist/internal/VercelOidc.js.map +1 -0
- package/dist/internal/VerifiedTokens.d.ts +2 -8
- package/dist/internal/VerifiedTokens.d.ts.map +1 -1
- package/dist/internal/VerifiedTokens.js +24 -24
- package/dist/internal/VerifiedTokens.js.map +1 -1
- package/dist/internal/Viem.d.ts +46 -2068
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +171 -11
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +12 -4
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +9 -3
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/ZoneRpc.d.ts +7 -0
- package/dist/internal/ZoneRpc.d.ts.map +1 -0
- package/dist/internal/ZoneRpc.js +49 -0
- package/dist/internal/ZoneRpc.js.map +1 -0
- package/dist/internal/index.d.ts +3 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +3 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/rewards/Audit.d.ts +88 -0
- package/dist/internal/rewards/Audit.d.ts.map +1 -0
- package/dist/internal/rewards/Audit.js +134 -0
- package/dist/internal/rewards/Audit.js.map +1 -0
- package/dist/internal/rewards/Campaigns.d.ts +572 -0
- package/dist/internal/rewards/Campaigns.d.ts.map +1 -0
- package/dist/internal/rewards/Campaigns.js +531 -0
- package/dist/internal/rewards/Campaigns.js.map +1 -0
- package/dist/internal/rewards/Credits.d.ts +76 -0
- package/dist/internal/rewards/Credits.d.ts.map +1 -0
- package/dist/internal/rewards/Credits.js +95 -0
- package/dist/internal/rewards/Credits.js.map +1 -0
- package/dist/internal/rewards/Events.d.ts +100 -0
- package/dist/internal/rewards/Events.d.ts.map +1 -0
- package/dist/internal/rewards/Events.js +340 -0
- package/dist/internal/rewards/Events.js.map +1 -0
- package/dist/internal/rewards/Projection.d.ts +237 -0
- package/dist/internal/rewards/Projection.d.ts.map +1 -0
- package/dist/internal/rewards/Projection.js +616 -0
- package/dist/internal/rewards/Projection.js.map +1 -0
- package/dist/internal/rewards/Rates.d.ts +44 -0
- package/dist/internal/rewards/Rates.d.ts.map +1 -0
- package/dist/internal/rewards/Rates.js +60 -0
- package/dist/internal/rewards/Rates.js.map +1 -0
- package/dist/internal/rewards/Read.d.ts +158 -0
- package/dist/internal/rewards/Read.d.ts.map +1 -0
- package/dist/internal/rewards/Read.js +292 -0
- package/dist/internal/rewards/Read.js.map +1 -0
- package/dist/internal/rewards/Runner.d.ts +164 -0
- package/dist/internal/rewards/Runner.d.ts.map +1 -0
- package/dist/internal/rewards/Runner.js +1778 -0
- package/dist/internal/rewards/Runner.js.map +1 -0
- package/dist/internal/rewards/Signer.d.ts +224 -0
- package/dist/internal/rewards/Signer.d.ts.map +1 -0
- package/dist/internal/rewards/Signer.js +135 -0
- package/dist/internal/rewards/Signer.js.map +1 -0
- package/dist/internal/rewards/index.d.ts +15 -0
- package/dist/internal/rewards/index.d.ts.map +1 -0
- package/dist/internal/rewards/index.js +15 -0
- package/dist/internal/rewards/index.js.map +1 -0
- package/dist/internal/{funding → routes}/Action.d.ts +12 -1
- package/dist/internal/routes/Action.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Action.js +17 -9
- package/dist/internal/routes/Action.js.map +1 -0
- package/dist/internal/{funding → routes}/Catalog.d.ts +20 -20
- package/dist/internal/routes/Catalog.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Catalog.js +29 -29
- package/dist/internal/routes/Catalog.js.map +1 -0
- package/dist/internal/{funding → routes}/Chain.d.ts +10 -10
- package/dist/internal/routes/Chain.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Chain.js +3 -3
- package/dist/internal/routes/Chain.js.map +1 -0
- package/dist/internal/{funding → routes}/Deposit.d.ts +45 -23
- package/dist/internal/routes/Deposit.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Deposit.js +60 -27
- package/dist/internal/routes/Deposit.js.map +1 -0
- package/dist/internal/{funding → routes}/DepositAddress.d.ts +56 -27
- package/dist/internal/routes/DepositAddress.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/DepositAddress.js +95 -33
- package/dist/internal/routes/DepositAddress.js.map +1 -0
- package/dist/internal/{funding → routes}/DepositWebhook.d.ts +4 -4
- package/dist/internal/routes/DepositWebhook.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/DepositWebhook.js +4 -3
- package/dist/internal/routes/DepositWebhook.js.map +1 -0
- package/dist/internal/routes/Economics.d.ts +25 -0
- package/dist/internal/routes/Economics.d.ts.map +1 -0
- package/dist/internal/routes/Economics.js +28 -0
- package/dist/internal/routes/Economics.js.map +1 -0
- package/dist/internal/{funding → routes}/Evidence.d.ts +3 -3
- package/dist/internal/routes/Evidence.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Evidence.js +9 -17
- package/dist/internal/routes/Evidence.js.map +1 -0
- package/dist/internal/routes/Observability.d.ts +154 -0
- package/dist/internal/routes/Observability.d.ts.map +1 -0
- package/dist/internal/routes/Observability.js +389 -0
- package/dist/internal/routes/Observability.js.map +1 -0
- package/dist/internal/{funding → routes}/Provider.d.ts +350 -104
- package/dist/internal/routes/Provider.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Provider.js +233 -97
- package/dist/internal/routes/Provider.js.map +1 -0
- package/dist/internal/{funding → routes}/Reconciliation.d.ts +11 -6
- package/dist/internal/routes/Reconciliation.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Reconciliation.js +408 -158
- package/dist/internal/routes/Reconciliation.js.map +1 -0
- package/dist/internal/routes/Route.d.ts +21 -0
- package/dist/internal/routes/Route.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Route.js +1 -1
- package/dist/internal/routes/Route.js.map +1 -0
- package/dist/internal/{funding → routes}/SourceObservation.d.ts +6 -6
- package/dist/internal/routes/SourceObservation.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/SourceObservation.js +13 -15
- package/dist/internal/routes/SourceObservation.js.map +1 -0
- package/dist/internal/{funding → routes}/Subsidy.d.ts +48 -3
- package/dist/internal/routes/Subsidy.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Subsidy.js +43 -3
- package/dist/internal/routes/Subsidy.js.map +1 -0
- package/dist/internal/{funding → routes}/Token.d.ts +4 -4
- package/dist/internal/routes/Token.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/Token.js +3 -3
- package/dist/internal/routes/Token.js.map +1 -0
- package/dist/internal/{funding → routes}/Transfer.d.ts +324 -34
- package/dist/internal/routes/Transfer.d.ts.map +1 -0
- package/dist/internal/routes/Transfer.js +728 -0
- package/dist/internal/routes/Transfer.js.map +1 -0
- package/dist/internal/routes/TransferReconciliation.d.ts +55 -0
- package/dist/internal/routes/TransferReconciliation.d.ts.map +1 -0
- package/dist/internal/routes/TransferReconciliation.js +422 -0
- package/dist/internal/routes/TransferReconciliation.js.map +1 -0
- package/dist/internal/routes/TransferSubsidy.d.ts +201 -0
- package/dist/internal/routes/TransferSubsidy.d.ts.map +1 -0
- package/dist/internal/routes/TransferSubsidy.js +256 -0
- package/dist/internal/routes/TransferSubsidy.js.map +1 -0
- package/dist/internal/routes/TransferWebhook.d.ts +21 -0
- package/dist/internal/routes/TransferWebhook.d.ts.map +1 -0
- package/dist/internal/routes/TransferWebhook.js +43 -0
- package/dist/internal/routes/TransferWebhook.js.map +1 -0
- package/dist/internal/{funding → routes}/index.d.ts +3 -0
- package/dist/internal/routes/index.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/index.js +3 -0
- package/dist/internal/routes/index.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/across.d.ts +4 -4
- package/dist/internal/routes/providers/across.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/across.js +13 -13
- package/dist/internal/routes/providers/across.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/relay.d.ts +21 -12
- package/dist/internal/routes/providers/relay.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/relay.js +197 -122
- package/dist/internal/routes/providers/relay.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/rhino.d.ts +4 -4
- package/dist/internal/routes/providers/rhino.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/rhino.js +10 -10
- package/dist/internal/routes/providers/rhino.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/squid.d.ts +4 -4
- package/dist/internal/routes/providers/squid.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/squid.js +14 -14
- package/dist/internal/routes/providers/squid.js.map +1 -0
- package/dist/internal/routes/providers/stargate.d.ts +165 -0
- package/dist/internal/routes/providers/stargate.d.ts.map +1 -0
- package/dist/internal/routes/providers/stargate.js +898 -0
- package/dist/internal/routes/providers/stargate.js.map +1 -0
- package/dist/internal/{funding → routes}/providers/symbiosis.d.ts +4 -4
- package/dist/internal/routes/providers/symbiosis.d.ts.map +1 -0
- package/dist/internal/{funding → routes}/providers/symbiosis.js +30 -20
- package/dist/internal/routes/providers/symbiosis.js.map +1 -0
- package/dist/internal/webhookDestinations/slack.d.ts.map +1 -1
- package/dist/internal/webhookDestinations/slack.js +22 -6
- package/dist/internal/webhookDestinations/slack.js.map +1 -1
- package/dist/providers/index.d.ts +12 -12
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -12
- package/dist/providers/index.js.map +1 -1
- package/dist/server.d.ts +19 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +19 -0
- package/dist/server.js.map +1 -0
- package/package.json +15 -4
- package/src/ApiKey.ts +1 -1
- package/src/ApiKeys.test.ts +1033 -3
- package/src/ApiKeys.ts +489 -48
- package/src/App.test-d.ts +1 -1
- package/src/App.test.ts +216 -25
- package/src/App.ts +335 -31
- package/src/Assets.test.ts +2 -2
- package/src/Assets.ts +3 -1
- package/src/Auth.test-d.ts +1 -1
- package/src/Client.test-d.ts +611 -101
- package/src/Handler.ts +0 -1
- package/src/OpenApi.contract.test.ts +195 -0
- package/src/Scope.ts +17 -5
- package/src/Webhooks.ts +2 -2
- package/src/admin/App.test.ts +30 -2
- package/src/admin/App.ts +42 -6
- package/src/admin/apps/api-keys.test.ts +267 -5
- package/src/admin/apps/api-keys.ts +100 -50
- package/src/admin/apps/earn-vaults.test.ts +158 -0
- package/src/admin/apps/earn-vaults.ts +681 -7
- package/src/admin/apps/organizations.test.ts +342 -1
- package/src/admin/apps/organizations.ts +368 -8
- package/src/admin/apps/routes-support.test.ts +200 -0
- package/src/admin/apps/routes-support.ts +201 -0
- package/src/admin/apps/routes.test.ts +450 -0
- package/src/admin/apps/routes.ts +896 -0
- package/src/admin/apps/scopes.test.ts +15 -5
- package/src/admin/apps/subsidies.test.ts +306 -0
- package/src/admin/apps/subsidies.ts +457 -0
- package/src/admin/apps/verified-tokens.test.ts +8 -3
- package/src/admin/apps/verified-tokens.ts +3 -3
- package/src/admin/ui/plugin.ts +1 -2
- package/src/admin/ui/src/components/RewardCampaignForm.tsx +1009 -0
- package/src/admin/ui/src/lib/config.ts +11 -2
- package/src/admin/ui/src/lib/earn-vaults.ts +2 -2
- package/src/admin/ui/src/lib/organizations.test.ts +147 -3
- package/src/admin/ui/src/lib/organizations.ts +136 -0
- package/src/admin/ui/src/lib/query-client.ts +1 -1
- package/src/admin/ui/src/lib/reward-campaigns.ts +136 -0
- package/src/admin/ui/src/lib/routes.test.ts +88 -0
- package/src/admin/ui/src/lib/routes.ts +304 -0
- package/src/admin/ui/src/lib/subsidies.ts +75 -0
- package/src/admin/ui/src/routeTree.gen.ts +63 -0
- package/src/admin/ui/src/routes/__root.tsx +12 -1
- package/src/admin/ui/src/routes/api-keys.tsx +196 -84
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +105 -70
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +334 -2
- package/src/admin/ui/src/routes/routes.tsx +1615 -0
- package/src/admin/ui/src/routes/routes_.support.tsx +248 -0
- package/src/admin/ui/src/routes/subsidies.tsx +799 -0
- package/src/admin/ui.generated.ts +144 -69
- package/src/analytics/Analytics.test.ts +108 -18
- package/src/analytics/Analytics.ts +38 -6
- package/src/analytics/tables/requestEvents.test.ts +100 -0
- package/src/analytics/tables/requestEvents.ts +10 -1
- package/src/analytics/tables/routesLifecycleIntervals.ts +140 -0
- package/src/apps/Zones.test.ts +18 -3
- package/src/apps/Zones.ts +55 -8
- package/src/apps/composition.test.ts +68 -59
- package/src/apps/data/App.test.ts +154 -2
- package/src/apps/data/App.ts +102 -33
- package/src/apps/data/routes/activities.test.ts +419 -7
- package/src/apps/data/routes/activities.ts +683 -216
- package/src/apps/data/routes/balances.test.ts +2 -2
- package/src/apps/data/routes/blocks.test.ts +46 -1
- package/src/apps/data/routes/coingecko.test.ts +419 -1
- package/src/apps/data/routes/coingecko.ts +309 -253
- package/src/apps/data/routes/earn.discovery.test.ts +274 -0
- package/src/apps/data/routes/earn.test.ts +1661 -29
- package/src/apps/data/routes/earn.ts +2314 -328
- package/src/apps/data/routes/exchanges.test.ts +752 -30
- package/src/apps/data/routes/exchanges.ts +954 -753
- package/src/apps/data/routes/fee-amm.test.ts +224 -0
- package/src/apps/data/routes/fee-amm.ts +208 -178
- package/src/apps/data/routes/indexer.test.ts +389 -0
- package/src/apps/data/routes/indexer.ts +165 -69
- package/src/apps/data/routes/receipts.test.ts +1 -1
- package/src/apps/data/routes/rpc.test.ts +352 -8
- package/src/apps/data/routes/rpc.ts +407 -219
- package/src/apps/data/routes/rpc.zone.test.ts +340 -0
- package/src/apps/data/routes/tokenlist.test.ts +285 -0
- package/src/apps/data/routes/tokenlist.ts +173 -88
- package/src/apps/data/routes/tokens.test.ts +93 -3
- package/src/apps/data/routes/tokens.ts +39 -23
- package/src/apps/data/routes/transactions.test.ts +1 -1
- package/src/apps/data/routes/transfers.test.ts +56 -24
- package/src/apps/data/routes/transfers.ts +19 -8
- package/src/apps/data/routes/valuation.test.ts +1 -1
- package/src/apps/data/routes/verified-tokens.test.ts +345 -0
- package/src/apps/data/routes/verified-tokens.ts +99 -29
- package/src/apps/data/routes/webhooks.test.ts +659 -81
- package/src/apps/data/routes/webhooks.ts +1104 -817
- package/src/apps/data/routes/zones.test.ts +148 -71
- package/src/apps/data/routes/zones.ts +71 -55
- package/src/apps/docs/reference.ts +2 -2
- package/src/apps/index.ts +1 -1
- package/src/apps/management/App.ts +9 -51
- package/src/apps/management/Billing.test.ts +375 -14
- package/src/apps/management/Billing.ts +283 -34
- package/src/apps/management/routes/api-keys.test.ts +269 -7
- package/src/apps/management/routes/api-keys.ts +61 -20
- package/src/apps/management/routes/billing.test.ts +477 -15
- package/src/apps/management/routes/billing.ts +377 -50
- package/src/apps/management/routes/faucet.test.ts +1 -1
- package/src/apps/management/routes/faucet.ts +1 -1
- package/src/apps/management/routes/invitations.test.ts +270 -3
- package/src/apps/management/routes/invitations.ts +185 -15
- package/src/apps/management/routes/invoicePreview.test.ts +549 -0
- package/src/apps/management/routes/me.test.ts +246 -5
- package/src/apps/management/routes/me.ts +7 -2
- package/src/apps/management/routes/members.test.ts +108 -0
- package/src/apps/management/routes/orgs.test.ts +191 -3
- package/src/apps/management/routes/orgs.ts +58 -11
- package/src/apps/management/routes/projects.test.ts +33 -3
- package/src/apps/management/routes/projects.ts +6 -1
- package/src/apps/management/routes/scopes.test.ts +30 -2
- package/src/apps/management/routes/scopes.ts +4 -1
- package/src/apps/management/routes/usage.test.ts +32 -0
- package/src/apps/management/routes/usage.ts +22 -4
- package/src/apps/management/routes/webhooks.test.ts +49 -26
- package/src/apps/management/routes/webhooks.ts +93 -38
- package/src/apps/mcp.test.ts +6 -6
- package/src/apps/mcp.ts +7 -7
- package/src/apps/mpp/App.ts +37 -7
- package/src/apps/mpp/Mpp.test.ts +49 -8
- package/src/apps/mpp/Mpp.zone.test.ts +219 -0
- package/src/apps/mpp/internal/Adapter.ts +34 -0
- package/src/apps/mpp/internal/Policy.test.ts +86 -31
- package/src/apps/mpp/internal/Policy.ts +49 -7
- package/src/apps/mpp/internal/Sponsorship.test.ts +207 -0
- package/src/apps/mpp/internal/Sponsorship.ts +9 -3
- package/src/apps/relay/App.test.ts +1024 -38
- package/src/apps/relay/App.ts +228 -32
- package/src/apps/relay/App.zone-billing.test.ts +257 -0
- package/src/apps/relay/Sponsorships.test.ts +67 -4
- package/src/apps/relay/Sponsorships.ts +253 -29
- package/src/apps/relay/Sponsorships.zone.test.ts +102 -0
- package/src/apps/{funding → routes}/Access.ts +6 -6
- package/src/apps/routes/App.test.ts +165 -0
- package/src/apps/routes/App.ts +96 -0
- package/src/apps/{funding → routes}/Inventory.ts +2 -2
- package/src/apps/routes/index.ts +1 -0
- package/src/apps/{funding → routes}/routes/chains.test.ts +66 -66
- package/src/apps/{funding → routes}/routes/chains.ts +23 -23
- package/src/apps/{funding → routes}/routes/deposit-addresses.test.ts +1362 -462
- package/src/apps/{funding → routes}/routes/deposit-addresses.ts +568 -248
- package/src/apps/{funding → routes}/routes/providers.test.ts +27 -33
- package/src/apps/{funding → routes}/routes/providers.ts +23 -23
- package/src/apps/{funding → routes}/routes/quotes.test.ts +298 -41
- package/src/apps/{funding → routes}/routes/quotes.ts +57 -40
- package/src/apps/routes/routes/transfers.test.ts +2876 -0
- package/src/apps/routes/routes/transfers.ts +1332 -0
- package/src/cli/Cli.test.ts +1 -1
- package/src/cli/commands/admin.test.ts +748 -1
- package/src/cli/commands/admin.ts +278 -0
- package/src/cloudflare.ts +52 -47
- package/src/db/Db.test.ts +245 -2
- package/src/db/Db.ts +1511 -34
- package/src/db/Schema.ts +744 -228
- package/src/db/tables/apiKeyAdmissionBootstraps.ts +4 -0
- package/src/db/tables/apiKeyAdmissions.ts +218 -0
- package/src/db/tables/apiKeyOwnerAdmissions.ts +4 -0
- package/src/db/tables/apiKeyOwnerTombstones.ts +81 -0
- package/src/db/tables/apiKeyRevocations.test.ts +74 -0
- package/src/db/tables/apiKeyRevocations.ts +121 -0
- package/src/db/tables/authAccounts.ts +105 -0
- package/src/db/tables/authSessions.ts +13 -0
- package/src/db/tables/authVerifications.ts +13 -0
- package/src/db/tables/invitations.ts +142 -45
- package/src/db/tables/memberships.ts +79 -3
- package/src/db/tables/organizations.test.ts +725 -7
- package/src/db/tables/organizations.ts +182 -49
- package/src/db/tables/projects.test.ts +71 -0
- package/src/db/tables/projects.ts +59 -4
- package/src/db/tables/requestUsage.ts +4 -1
- package/src/db/tables/rewardAccounts.ts +178 -0
- package/src/db/tables/rewardCampaignDistributors.ts +68 -0
- package/src/db/tables/rewardCampaigns.test.ts +1388 -0
- package/src/db/tables/rewardCampaigns.ts +647 -0
- package/src/db/tables/rewardCredits.ts +110 -0
- package/src/db/tables/rewardEligibilityAssociations.test.ts +271 -0
- package/src/db/tables/rewardEligibilityAssociations.ts +184 -0
- package/src/db/tables/rewardRuns.ts +514 -0
- package/src/db/tables/rewardTransactionAttempts.ts +272 -0
- package/src/db/tables/routesCatalog.test.ts +185 -0
- package/src/db/tables/routesCatalog.ts +163 -0
- package/src/db/tables/routesDepositAddresses.test.ts +1048 -0
- package/src/db/tables/routesDepositAddresses.ts +1008 -0
- package/src/db/tables/{fundingDepositRequestObservations.test.ts → routesDepositRequestObservations.test.ts} +13 -14
- package/src/db/tables/{fundingDepositRequestObservations.ts → routesDepositRequestObservations.ts} +10 -10
- package/src/db/tables/{fundingDeposits.test.ts → routesDeposits.test.ts} +316 -46
- package/src/db/tables/routesDeposits.ts +1062 -0
- package/src/db/tables/routesIdempotency.test.ts +796 -0
- package/src/db/tables/routesIdempotency.ts +496 -0
- package/src/db/tables/routesSubsidies.test.ts +120 -0
- package/src/db/tables/routesSubsidies.ts +71 -0
- package/src/db/tables/{fundingTransferEvents.ts → routesTransferEvents.ts} +4 -4
- package/src/db/tables/routesTransferSubsidies.ts +38 -0
- package/src/db/tables/routesTransferSubsidyNonces.ts +124 -0
- package/src/db/tables/routesTransferTransactions.test.ts +195 -0
- package/src/db/tables/routesTransferTransactions.ts +158 -0
- package/src/db/tables/routesTransfers.test.ts +338 -0
- package/src/db/tables/routesTransfers.ts +662 -0
- package/src/db/tables/sponsoredTransactions.test.ts +563 -1
- package/src/db/tables/sponsoredTransactions.ts +386 -42
- package/src/db/tables/sponsorshipAttributions.test.ts +160 -0
- package/src/db/tables/sponsorshipAttributions.ts +168 -0
- package/src/db/tables/sponsorshipReconciliationCursors.test.ts +115 -0
- package/src/db/tables/sponsorshipReconciliationCursors.ts +67 -0
- package/src/db/tables/stripeCustomers.test.ts +85 -0
- package/src/db/tables/stripeCustomers.ts +24 -0
- package/src/db/tables/users.test.ts +129 -0
- package/src/db/tables/users.ts +49 -3
- package/src/db/tables/webhookQueueEvents.ts +8 -1
- package/src/db/tables/webhookSubscriptions.ts +103 -21
- package/src/handlers/internal/executionError.ts +3 -4
- package/src/handlers/internal/multisig.ts +13 -816
- package/src/handlers/internal/sponsorship.ts +26 -10
- package/src/handlers/relay.test-d.ts +9 -1
- package/src/handlers/relay.test.ts +823 -3
- package/src/handlers/relay.ts +127 -107
- package/src/index.test-d.ts +7 -0
- package/src/index.ts +0 -17
- package/src/internal/AssetResponse.ts +26 -0
- package/src/internal/Auth.test.ts +1564 -9
- package/src/internal/Auth.ts +833 -239
- package/src/internal/BetterAuth.test.ts +242 -0
- package/src/internal/BetterAuth.ts +349 -0
- package/src/internal/Cache.ts +2 -0
- package/src/internal/EarnRates.test.ts +17 -0
- package/src/internal/EarnRates.ts +124 -31
- package/src/internal/EarnSharePrices.test.ts +182 -0
- package/src/internal/EarnSharePrices.ts +313 -0
- package/src/internal/EarnVaults.test.ts +21 -0
- package/src/internal/EarnVaults.ts +37 -15
- package/src/internal/Email.ts +54 -0
- package/src/internal/Idempotency.test.ts +2 -2
- package/src/internal/Log.test-d.ts +10 -7
- package/src/internal/Log.test.ts +114 -16
- package/src/internal/Log.ts +55 -40
- package/src/internal/MetricSink.test.ts +313 -26
- package/src/internal/MetricSink.ts +73 -8
- package/src/internal/Mpp.test.ts +31 -0
- package/src/internal/Mpp.ts +21 -24
- package/src/internal/OpenApi.ts +45 -12
- package/src/internal/Provider.test.ts +1 -1
- package/src/internal/Provider.ts +1 -1
- package/src/internal/RateLimit.test.ts +21 -3
- package/src/internal/RateLimit.ts +12 -1
- package/src/internal/Store.test-d.ts +1 -1
- package/src/internal/Store.test.ts +151 -8
- package/src/internal/Store.ts +76 -9
- package/src/internal/Tidx.test.ts +59 -8
- package/src/internal/Tidx.ts +86 -14
- package/src/internal/Timing.test.ts +77 -0
- package/src/internal/Timing.ts +83 -6
- package/src/internal/VercelOidc.test.ts +188 -0
- package/src/internal/VercelOidc.ts +193 -0
- package/src/internal/VerifiedTokens.test.ts +60 -6
- package/src/internal/VerifiedTokens.ts +21 -24
- package/src/internal/Viem.batch.test.ts +80 -0
- package/src/internal/Viem.test.ts +201 -2
- package/src/internal/Viem.ts +249 -17
- package/src/internal/Webhooks.test.ts +125 -1
- package/src/internal/Webhooks.ts +22 -4
- package/src/internal/ZoneRpc.ts +50 -0
- package/src/internal/exchange/Provider.test.ts +2 -2
- package/src/internal/index.test.ts +3 -1
- package/src/internal/index.ts +3 -1
- package/src/internal/rewards/Audit.ts +231 -0
- package/src/internal/rewards/Campaigns.test.ts +1234 -0
- package/src/internal/rewards/Campaigns.ts +1205 -0
- package/src/internal/rewards/Credits.ts +165 -0
- package/src/internal/rewards/Events.local.test.ts +113 -0
- package/src/internal/rewards/Events.test.ts +152 -0
- package/src/internal/rewards/Events.ts +468 -0
- package/src/internal/rewards/Projection.test.ts +681 -0
- package/src/internal/rewards/Projection.ts +987 -0
- package/src/internal/rewards/Rates.test.ts +171 -0
- package/src/internal/rewards/Rates.ts +110 -0
- package/src/internal/rewards/Read.test.ts +501 -0
- package/src/internal/rewards/Read.ts +476 -0
- package/src/internal/rewards/Runner.checkpoint.test.ts +80 -0
- package/src/internal/rewards/Runner.states.test.ts +188 -0
- package/src/internal/rewards/Runner.test.ts +90 -0
- package/src/internal/rewards/Runner.ts +2229 -0
- package/src/internal/rewards/Signer.test.ts +79 -0
- package/src/internal/rewards/Signer.ts +180 -0
- package/src/internal/rewards/index.ts +14 -0
- package/src/internal/{funding → routes}/Action.test.ts +63 -14
- package/src/internal/{funding → routes}/Action.ts +35 -8
- package/src/internal/{funding → routes}/Catalog.test.ts +3 -3
- package/src/internal/{funding → routes}/Catalog.ts +39 -39
- package/src/internal/{funding → routes}/Chain.test.ts +1 -1
- package/src/internal/{funding → routes}/Chain.ts +11 -11
- package/src/internal/{funding → routes}/Deposit.test.ts +1 -1
- package/src/internal/{funding → routes}/Deposit.ts +93 -45
- package/src/internal/{funding → routes}/DepositAddress.test.ts +11 -3
- package/src/internal/{funding → routes}/DepositAddress.ts +132 -53
- package/src/internal/{funding → routes}/DepositWebhook.test.ts +61 -18
- package/src/internal/{funding → routes}/DepositWebhook.ts +9 -8
- package/src/internal/routes/Economics.test.ts +42 -0
- package/src/internal/routes/Economics.ts +47 -0
- package/src/internal/{funding → routes}/Evidence.test.ts +6 -6
- package/src/internal/{funding → routes}/Evidence.ts +11 -22
- package/src/internal/routes/Observability.test.ts +636 -0
- package/src/internal/routes/Observability.ts +668 -0
- package/src/internal/{funding → routes}/Provider.test.ts +489 -153
- package/src/internal/{funding → routes}/Provider.ts +531 -185
- package/src/internal/{funding → routes}/Reconciliation.local.test.ts +84 -12
- package/src/internal/{funding → routes}/Reconciliation.test.ts +1213 -279
- package/src/internal/{funding → routes}/Reconciliation.ts +501 -203
- package/src/internal/routes/Reconciliation.unattributed.test.ts +250 -0
- package/src/internal/{funding → routes}/Route.ts +7 -7
- package/src/internal/{funding → routes}/SourceObservation.test.ts +13 -14
- package/src/internal/{funding → routes}/SourceObservation.ts +18 -22
- package/src/internal/{funding → routes}/Subsidy.local.test.ts +7 -7
- package/src/internal/routes/Subsidy.test.ts +169 -0
- package/src/internal/{funding → routes}/Subsidy.ts +86 -6
- package/src/internal/{funding → routes}/Token.test.ts +1 -1
- package/src/internal/{funding → routes}/Token.ts +5 -5
- package/src/internal/routes/Transfer.test.ts +1199 -0
- package/src/internal/routes/Transfer.ts +1206 -0
- package/src/internal/routes/TransferReconciliation.test.ts +731 -0
- package/src/internal/routes/TransferReconciliation.ts +527 -0
- package/src/internal/routes/TransferSubsidy.test.ts +172 -0
- package/src/internal/routes/TransferSubsidy.ts +447 -0
- package/src/internal/routes/TransferWebhook.test.ts +128 -0
- package/src/internal/routes/TransferWebhook.ts +67 -0
- package/src/internal/{funding → routes}/index.test.ts +6 -3
- package/src/internal/{funding → routes}/index.ts +3 -0
- package/src/internal/{funding → routes}/providers/across.ts +16 -16
- package/src/internal/{funding → routes}/providers/index.test.ts +157 -44
- package/src/internal/{funding → routes}/providers/relay.test.ts +165 -32
- package/src/internal/{funding → routes}/providers/relay.ts +231 -136
- package/src/internal/{funding → routes}/providers/rhino.ts +16 -16
- package/src/internal/{funding → routes}/providers/squid.ts +17 -17
- package/src/internal/routes/providers/stargate.test.ts +728 -0
- package/src/internal/routes/providers/stargate.ts +1276 -0
- package/src/internal/{funding → routes}/providers/symbiosis.ts +64 -24
- package/src/internal/webhookDestinations/slack.ts +20 -5
- package/src/providers/index.ts +13 -13
- package/src/server.ts +18 -0
- package/dist/apps/funding/Access.d.ts.map +0 -1
- package/dist/apps/funding/Access.js.map +0 -1
- package/dist/apps/funding/App.js.map +0 -1
- package/dist/apps/funding/Inventory.d.ts.map +0 -1
- package/dist/apps/funding/Inventory.js.map +0 -1
- package/dist/apps/funding/ProviderAttempts.d.ts +0 -5
- package/dist/apps/funding/ProviderAttempts.d.ts.map +0 -1
- package/dist/apps/funding/ProviderAttempts.js +0 -24
- package/dist/apps/funding/ProviderAttempts.js.map +0 -1
- package/dist/apps/funding/index.d.ts +0 -2
- package/dist/apps/funding/index.d.ts.map +0 -1
- package/dist/apps/funding/index.js +0 -2
- package/dist/apps/funding/index.js.map +0 -1
- package/dist/apps/funding/routes/chains.d.ts.map +0 -1
- package/dist/apps/funding/routes/chains.js.map +0 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +0 -1
- package/dist/apps/funding/routes/deposit-addresses.js.map +0 -1
- package/dist/apps/funding/routes/providers.d.ts.map +0 -1
- package/dist/apps/funding/routes/providers.js +0 -57
- package/dist/apps/funding/routes/providers.js.map +0 -1
- package/dist/apps/funding/routes/quotes.d.ts.map +0 -1
- package/dist/apps/funding/routes/quotes.js.map +0 -1
- package/dist/apps/funding/routes/transfers.d.ts.map +0 -1
- package/dist/apps/funding/routes/transfers.js +0 -622
- package/dist/apps/funding/routes/transfers.js.map +0 -1
- package/dist/db/tables/fundingCatalog.d.ts +0 -58
- package/dist/db/tables/fundingCatalog.d.ts.map +0 -1
- package/dist/db/tables/fundingCatalog.js.map +0 -1
- package/dist/db/tables/fundingDepositAddresses.d.ts +0 -192
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +0 -1
- package/dist/db/tables/fundingDepositAddresses.js +0 -235
- package/dist/db/tables/fundingDepositAddresses.js.map +0 -1
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +0 -1
- package/dist/db/tables/fundingDepositRequestObservations.js.map +0 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +0 -1
- package/dist/db/tables/fundingDeposits.js +0 -295
- package/dist/db/tables/fundingDeposits.js.map +0 -1
- package/dist/db/tables/fundingIdempotency.d.ts +0 -91
- package/dist/db/tables/fundingIdempotency.d.ts.map +0 -1
- package/dist/db/tables/fundingIdempotency.js +0 -103
- package/dist/db/tables/fundingIdempotency.js.map +0 -1
- package/dist/db/tables/fundingTransferEvents.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferEvents.js.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.d.ts +0 -15
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +0 -1
- package/dist/db/tables/fundingTransferTransactions.js +0 -27
- package/dist/db/tables/fundingTransferTransactions.js.map +0 -1
- package/dist/db/tables/fundingTransfers.d.ts +0 -82
- package/dist/db/tables/fundingTransfers.d.ts.map +0 -1
- package/dist/db/tables/fundingTransfers.js +0 -89
- package/dist/db/tables/fundingTransfers.js.map +0 -1
- package/dist/internal/funding/Action.d.ts.map +0 -1
- package/dist/internal/funding/Action.js.map +0 -1
- package/dist/internal/funding/Catalog.d.ts.map +0 -1
- package/dist/internal/funding/Catalog.js.map +0 -1
- package/dist/internal/funding/Chain.d.ts.map +0 -1
- package/dist/internal/funding/Chain.js.map +0 -1
- package/dist/internal/funding/Deposit.d.ts.map +0 -1
- package/dist/internal/funding/Deposit.js.map +0 -1
- package/dist/internal/funding/DepositAddress.d.ts.map +0 -1
- package/dist/internal/funding/DepositAddress.js.map +0 -1
- package/dist/internal/funding/DepositWebhook.d.ts.map +0 -1
- package/dist/internal/funding/DepositWebhook.js.map +0 -1
- package/dist/internal/funding/Evidence.d.ts.map +0 -1
- package/dist/internal/funding/Evidence.js.map +0 -1
- package/dist/internal/funding/Provider.d.ts.map +0 -1
- package/dist/internal/funding/Provider.js.map +0 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +0 -1
- package/dist/internal/funding/Reconciliation.js.map +0 -1
- package/dist/internal/funding/Route.d.ts +0 -21
- package/dist/internal/funding/Route.d.ts.map +0 -1
- package/dist/internal/funding/Route.js.map +0 -1
- package/dist/internal/funding/SourceObservation.d.ts.map +0 -1
- package/dist/internal/funding/SourceObservation.js.map +0 -1
- package/dist/internal/funding/Subsidy.d.ts.map +0 -1
- package/dist/internal/funding/Subsidy.js.map +0 -1
- package/dist/internal/funding/Token.d.ts.map +0 -1
- package/dist/internal/funding/Token.js.map +0 -1
- package/dist/internal/funding/Transfer.d.ts.map +0 -1
- package/dist/internal/funding/Transfer.js +0 -334
- package/dist/internal/funding/Transfer.js.map +0 -1
- package/dist/internal/funding/index.d.ts.map +0 -1
- package/dist/internal/funding/index.js.map +0 -1
- package/dist/internal/funding/providers/across.d.ts.map +0 -1
- package/dist/internal/funding/providers/across.js.map +0 -1
- package/dist/internal/funding/providers/relay.d.ts.map +0 -1
- package/dist/internal/funding/providers/relay.js.map +0 -1
- package/dist/internal/funding/providers/rhino.d.ts.map +0 -1
- package/dist/internal/funding/providers/rhino.js.map +0 -1
- package/dist/internal/funding/providers/squid.d.ts.map +0 -1
- package/dist/internal/funding/providers/squid.js.map +0 -1
- package/dist/internal/funding/providers/stargate.d.ts +0 -38
- package/dist/internal/funding/providers/stargate.d.ts.map +0 -1
- package/dist/internal/funding/providers/stargate.js +0 -277
- package/dist/internal/funding/providers/stargate.js.map +0 -1
- package/dist/internal/funding/providers/symbiosis.d.ts.map +0 -1
- package/dist/internal/funding/providers/symbiosis.js.map +0 -1
- package/src/apps/funding/App.test.ts +0 -78
- package/src/apps/funding/App.ts +0 -78
- package/src/apps/funding/ProviderAttempts.ts +0 -26
- package/src/apps/funding/index.ts +0 -1
- package/src/apps/funding/routes/transfers.test.ts +0 -1638
- package/src/apps/funding/routes/transfers.ts +0 -721
- package/src/db/tables/fundingCatalog.test.ts +0 -122
- package/src/db/tables/fundingCatalog.ts +0 -163
- package/src/db/tables/fundingDepositAddresses.test.ts +0 -608
- package/src/db/tables/fundingDepositAddresses.ts +0 -443
- package/src/db/tables/fundingDeposits.ts +0 -572
- package/src/db/tables/fundingIdempotency.test.ts +0 -182
- package/src/db/tables/fundingIdempotency.ts +0 -180
- package/src/db/tables/fundingTransferTransactions.test.ts +0 -69
- package/src/db/tables/fundingTransferTransactions.ts +0 -37
- package/src/db/tables/fundingTransfers.test.ts +0 -89
- package/src/db/tables/fundingTransfers.ts +0 -153
- package/src/handlers/internal/multisig.test.ts +0 -818
- package/src/internal/funding/Subsidy.test.ts +0 -75
- package/src/internal/funding/Transfer.test.ts +0 -369
- package/src/internal/funding/Transfer.ts +0 -545
- package/src/internal/funding/providers/stargate.test.ts +0 -163
- package/src/internal/funding/providers/stargate.ts +0 -409
- /package/dist/apps/{funding → routes}/Inventory.d.ts +0 -0
- /package/src/internal/{funding → routes}/Route.test.ts +0 -0
package/src/App.ts
CHANGED
|
@@ -15,6 +15,7 @@ import * as Assets from './Assets.js'
|
|
|
15
15
|
import * as Auth from './internal/Auth.js'
|
|
16
16
|
import * as Db from './db/Db.js'
|
|
17
17
|
import * as EdgeCache from './internal/EdgeCache.js'
|
|
18
|
+
import * as core_Email from './internal/Email.js'
|
|
18
19
|
import * as Log from './internal/Log.js'
|
|
19
20
|
import * as MetricSink from './internal/MetricSink.js'
|
|
20
21
|
import type * as Metrics from './Metrics.js'
|
|
@@ -26,6 +27,7 @@ import * as Response from './internal/Response.js'
|
|
|
26
27
|
import * as Scope from './Scope.js'
|
|
27
28
|
import type * as Tidx from './internal/Tidx.js'
|
|
28
29
|
import * as Timing from './internal/Timing.js'
|
|
30
|
+
import * as VercelOidc from './internal/VercelOidc.js'
|
|
29
31
|
import * as Viem from './internal/Viem.js'
|
|
30
32
|
import type * as Webhooks from './internal/Webhooks.js'
|
|
31
33
|
|
|
@@ -34,21 +36,21 @@ import openrpcSpec from './openrpc.json' with { type: 'json' }
|
|
|
34
36
|
import * as Metadata from './apps/metadata.js'
|
|
35
37
|
import * as Zones from './apps/Zones.js'
|
|
36
38
|
import * as Data from './apps/data/App.js'
|
|
37
|
-
import * as
|
|
39
|
+
import * as Routes from './apps/routes/App.js'
|
|
38
40
|
import * as Management from './apps/management/App.js'
|
|
39
41
|
import * as Mpp from './apps/mpp/App.js'
|
|
40
42
|
import * as Relay from './apps/relay/App.js'
|
|
41
43
|
|
|
42
44
|
export import data = Data.data
|
|
43
|
-
export import
|
|
45
|
+
export import routes = Routes.routes
|
|
44
46
|
export import management = Management.management
|
|
45
47
|
export import mpp = Mpp.mpp
|
|
46
48
|
export import relay = Relay.relay
|
|
47
49
|
|
|
48
50
|
/** The chain-data route group; see {@link data}. */
|
|
49
51
|
export type DataApp = ReturnType<typeof data>
|
|
50
|
-
/** The
|
|
51
|
-
export type
|
|
52
|
+
/** The Routes API group; see {@link routes}. */
|
|
53
|
+
export type RoutesApp = ReturnType<typeof routes>
|
|
52
54
|
/** The management route group; see {@link management}. */
|
|
53
55
|
export type ManagementApp = ReturnType<typeof management>
|
|
54
56
|
/** The MPP credential relay route group; see {@link mpp}. */
|
|
@@ -59,6 +61,7 @@ export type RelayApp = ReturnType<typeof relay>
|
|
|
59
61
|
/** Hono environment variables set by the Tempo API app. */
|
|
60
62
|
export type Environment = {
|
|
61
63
|
Variables: Auth.Variables &
|
|
64
|
+
core_Email.Variables &
|
|
62
65
|
RequestIdVariables & {
|
|
63
66
|
/** ClickHouse-backed analytics store, or a per-request factory; undefined when usage analytics is unconfigured. Resolve at the leaf with `Analytics.get`. */
|
|
64
67
|
analytics: Analytics.Source | undefined
|
|
@@ -72,6 +75,8 @@ export type Environment = {
|
|
|
72
75
|
dbCached: Db.Source
|
|
73
76
|
/** KV state store backing API-key records, or undefined when key auth is closed. */
|
|
74
77
|
kv: { store: Store.State } | undefined
|
|
78
|
+
/** Bounded operational metrics backend, or undefined when metrics are disabled. */
|
|
79
|
+
metrics: Metrics.Metrics | undefined
|
|
75
80
|
/** Providers registered by the host application. */
|
|
76
81
|
providers: readonly Provider.Provider[]
|
|
77
82
|
/** Issuable API-key scope catalog, including host-defined entries. */
|
|
@@ -92,6 +97,8 @@ export type Environment = {
|
|
|
92
97
|
tidx: Tidx.getClient.Tidx | undefined
|
|
93
98
|
/** Verified-token feature configuration (refresh window), or undefined when the feature is disabled. Token rows live in `db`. */
|
|
94
99
|
verifiedTokens: { refreshMs?: number | undefined } | undefined
|
|
100
|
+
/** Vercel workload-identity policy used for mainnet Zone authorization. */
|
|
101
|
+
vercelOidc: VercelOidc.create.Policy | undefined
|
|
95
102
|
/** Zone chain ids inferred from the current API key, or undefined for single-chain requests. */
|
|
96
103
|
zoneChainIds: readonly Viem.ChainId[] | undefined
|
|
97
104
|
/** Zone chains keyed by chain id; empty when none are configured. */
|
|
@@ -121,7 +128,7 @@ export function from<const app extends Hono<any, any>>(app: app, metadata: creat
|
|
|
121
128
|
function compose(options: create.Options) {
|
|
122
129
|
return create(options)
|
|
123
130
|
.route('/', data())
|
|
124
|
-
.route('/',
|
|
131
|
+
.route('/', routes())
|
|
125
132
|
.route('/', relay())
|
|
126
133
|
.route('/', mpp({ state: Store.memory() }))
|
|
127
134
|
.route('/', management())
|
|
@@ -136,14 +143,19 @@ export type Endpoint = Auth.Endpoint<App>
|
|
|
136
143
|
/** Stripe billing capability for management billing routes; owned by {@link management}. */
|
|
137
144
|
export type Billing = Management.Billing
|
|
138
145
|
|
|
139
|
-
/** Transactional email
|
|
140
|
-
export type Email =
|
|
146
|
+
/** Transactional email capability shared by authentication and route groups. */
|
|
147
|
+
export type Email = core_Email.Sender
|
|
148
|
+
|
|
149
|
+
export declare namespace Email {
|
|
150
|
+
/** One transactional message. */
|
|
151
|
+
type Message = core_Email.Message
|
|
152
|
+
}
|
|
141
153
|
|
|
142
154
|
/** Webhook capability shared by subscription routes and the host poller. */
|
|
143
155
|
export type Webhook = {
|
|
144
156
|
/** Application events produced by the host outside the chain poller. */
|
|
145
157
|
applicationEventTypes?: readonly Webhooks.EventType[] | undefined
|
|
146
|
-
/** Maximum live
|
|
158
|
+
/** Maximum live subscriptions per direct owner, shared across API-key organizations created by one user. Defaults to 100. */
|
|
147
159
|
maxPerOwner?: number | undefined
|
|
148
160
|
/** Chain ids the host actively polls for webhook events. */
|
|
149
161
|
supportedChainIds: readonly number[]
|
|
@@ -236,14 +248,13 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
236
248
|
// basePath that would collapse them to an index signature).
|
|
237
249
|
const base = new Hono<Environment>().basePath(basePath)
|
|
238
250
|
|
|
239
|
-
if (options.cors !== false)
|
|
240
|
-
base.use('*', hono_cors(typeof options.cors === 'object' ? options.cors : undefined))
|
|
241
251
|
if (options.compress)
|
|
242
252
|
base.use(
|
|
243
253
|
'*',
|
|
244
254
|
hono_compress(typeof options.compress === 'object' ? options.compress : undefined),
|
|
245
255
|
)
|
|
246
|
-
|
|
256
|
+
// Billing deduplicates analytics retries by this ID, so callers must never supply it.
|
|
257
|
+
base.use('*', requestId({ headerName: '' }))
|
|
247
258
|
base.use('*', async (c, next) => {
|
|
248
259
|
await next()
|
|
249
260
|
c.header('tempo-request-id', c.get('requestId'))
|
|
@@ -296,6 +307,7 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
296
307
|
requestTimeoutMs,
|
|
297
308
|
(c) =>
|
|
298
309
|
new HTTPException(504, {
|
|
310
|
+
message: 'Request timed out',
|
|
299
311
|
res: Response.error(c, {
|
|
300
312
|
code: 'request_timeout',
|
|
301
313
|
message: 'Request timed out',
|
|
@@ -340,9 +352,12 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
340
352
|
|
|
341
353
|
// Built-in auth: the session surface (mounted last) plus the enforcement
|
|
342
354
|
// middleware (installed below), wired together in `Auth.install`.
|
|
355
|
+
let email = options.email
|
|
343
356
|
const auth = Auth.install({
|
|
344
357
|
auth: options.auth,
|
|
358
|
+
basePath,
|
|
345
359
|
db: db.source,
|
|
360
|
+
email: () => email,
|
|
346
361
|
getClient,
|
|
347
362
|
kv: options.kv,
|
|
348
363
|
scopeCatalog,
|
|
@@ -355,13 +370,16 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
355
370
|
c.set('chainId', defaultChainId)
|
|
356
371
|
c.set('db', db.source)
|
|
357
372
|
c.set('dbCached', db.cached ?? db.source)
|
|
373
|
+
c.set('email', email)
|
|
358
374
|
c.set('getClient', (chainId) => getClient(chainId, Auth.getPrincipal(c)))
|
|
359
375
|
c.set('kv', options.kv)
|
|
376
|
+
c.set('metrics', options.metrics)
|
|
360
377
|
c.set('providers', providers)
|
|
361
378
|
c.set('rpc', options.rpc)
|
|
362
379
|
c.set('scopeCatalog', scopeCatalog)
|
|
363
380
|
c.set('store', Store.withRequest(store, c.req, { waitUntil: getWaitUntil(c) }))
|
|
364
381
|
c.set('supportedChainIds', supportedChainIds)
|
|
382
|
+
c.set('vercelOidc', options.vercelOidc)
|
|
365
383
|
c.set('zones', zones)
|
|
366
384
|
await next()
|
|
367
385
|
})
|
|
@@ -376,6 +394,13 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
376
394
|
c.res.headers.set('Cache-Control', 'no-store')
|
|
377
395
|
})
|
|
378
396
|
|
|
397
|
+
// Cached valid keys on API-key routes skip the edge backstop. Cold and
|
|
398
|
+
// invalid credentials consume it before any KV lookup.
|
|
399
|
+
if (auth.edgeRateLimit) base.use('*', auth.edgeRateLimit)
|
|
400
|
+
|
|
401
|
+
if (options.cors !== false)
|
|
402
|
+
base.use('*', hono_cors(typeof options.cors === 'object' ? options.cors : undefined))
|
|
403
|
+
|
|
379
404
|
// Serve GETs from the cache store before user middleware (auth, rate limiting)
|
|
380
405
|
// runs, so cache hits skip the per-request store round-trips that dominate
|
|
381
406
|
// latency.
|
|
@@ -397,7 +422,15 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
397
422
|
|
|
398
423
|
const chainId = c.get('chainId')
|
|
399
424
|
const principal = Auth.getPrincipal(c)
|
|
400
|
-
|
|
425
|
+
const zone = c.get('zones').get(chainId)
|
|
426
|
+
if (zone) {
|
|
427
|
+
if (zone.sourceId !== undefined && Viem.isMainnet(zone.sourceId)) {
|
|
428
|
+
const policy = c.get('vercelOidc')
|
|
429
|
+
const result = policy?.applies(principal) ? await policy.verify(c.req.raw, zone) : undefined
|
|
430
|
+
const error = result && VercelOidc.authorizationError(result)
|
|
431
|
+
if (result) c.set('vercelOidcResults', [result])
|
|
432
|
+
if (error) return Response.error(c, error)
|
|
433
|
+
}
|
|
401
434
|
const scopes = principal?.type === 'api_key' ? principal.apiKey.scopes : undefined
|
|
402
435
|
const allowed =
|
|
403
436
|
scopes?.includes(Scope.wildcard) ||
|
|
@@ -414,7 +447,7 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
414
447
|
if (
|
|
415
448
|
principal?.type === 'api_key' &&
|
|
416
449
|
principal.environment === 'sandbox' &&
|
|
417
|
-
Viem.isMainnet(chainId)
|
|
450
|
+
Viem.isMainnet(c.get('zones').get(chainId)?.sourceId ?? chainId)
|
|
418
451
|
)
|
|
419
452
|
return Response.error(c, {
|
|
420
453
|
code: 'api_key_forbidden',
|
|
@@ -433,6 +466,7 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
433
466
|
const route = app.route.bind(app)
|
|
434
467
|
;(app as unknown as { route: typeof route }).route = ((path, sub) => {
|
|
435
468
|
const entry = Metadata.read(sub)
|
|
469
|
+
email ??= core_Email.read(sub)
|
|
436
470
|
if (entry) {
|
|
437
471
|
metadata.push(entry)
|
|
438
472
|
for (const chainId of entry.supportedChainIds ?? []) supportedChainIds.add(chainId)
|
|
@@ -558,14 +592,24 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
558
592
|
/\/webhooks(\/|$)/.test(path),
|
|
559
593
|
)
|
|
560
594
|
const webhookBlocks = hasWebhookRoutes ? metadata_all.flatMap((m) => (m.webhooks ? [m.webhooks()] : [])) : [] // prettier-ignore
|
|
595
|
+
const webhookSchemas = Object.assign({}, ...webhookBlocks.map((block) => block.schemas ?? {}))
|
|
596
|
+
if (Object.keys(webhookSchemas).length) {
|
|
597
|
+
for (const [name, schema] of Object.entries(webhookSchemas))
|
|
598
|
+
OpenApiDocument.recoverExamples(schema, generated.components.schemas?.[name], generated)
|
|
599
|
+
generated.components.schemas = {
|
|
600
|
+
...generated.components.schemas,
|
|
601
|
+
...webhookSchemas,
|
|
602
|
+
}
|
|
603
|
+
}
|
|
561
604
|
const webhooksDoc = webhookBlocks.length
|
|
562
|
-
? { webhooks: Object.assign({}, ...webhookBlocks) }
|
|
605
|
+
? { webhooks: Object.assign({}, ...webhookBlocks.map((block) => block.document)) }
|
|
563
606
|
: {}
|
|
564
607
|
// Set per-operation `security` and the `402` payment-challenge response
|
|
565
608
|
// from each route's resolved auth policy (the single source of truth), so
|
|
566
609
|
// the anonymous option and `402` appear only where the public/MPP lanes
|
|
567
610
|
// are enabled, not on every operation via the document default.
|
|
568
611
|
OpenApiDocument.applyAccess(generated.paths, Auth.describeAccess(app))
|
|
612
|
+
OpenApiDocument.removePrivateFields(generated.paths)
|
|
569
613
|
// Point the `/rpc` operation at the OpenRPC document via `x-openrpc`.
|
|
570
614
|
OpenApiDocument.applyOpenrpcLink(generated.paths, basePath)
|
|
571
615
|
// Re-order paths so list endpoints appear before get endpoints inside each
|
|
@@ -573,7 +617,13 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
573
617
|
// handler sets as either "List ..." or "Get ...". The reference groups by
|
|
574
618
|
// tag and preserves document path order within a tag, so reordering here
|
|
575
619
|
// drives the sidebar sub-item order.
|
|
576
|
-
|
|
620
|
+
const document = {
|
|
621
|
+
...generated,
|
|
622
|
+
...webhooksDoc,
|
|
623
|
+
paths: OpenApiDocument.sortPaths(generated.paths),
|
|
624
|
+
}
|
|
625
|
+
OpenApiDocument.normalizeExamples(document)
|
|
626
|
+
return document
|
|
577
627
|
}
|
|
578
628
|
let finalized = false
|
|
579
629
|
const finalize = () => {
|
|
@@ -605,7 +655,8 @@ export function create<const path extends string = '/'>(options: create.Options<
|
|
|
605
655
|
return originalFetch(request, ...rest)
|
|
606
656
|
}) as typeof originalFetch
|
|
607
657
|
|
|
608
|
-
|
|
658
|
+
// Preserve the hosted auth client contract when tests disable auth at runtime.
|
|
659
|
+
return route('/', auth.app ?? (new Hono<Environment>() as NonNullable<typeof auth.app>))
|
|
609
660
|
}
|
|
610
661
|
|
|
611
662
|
/**
|
|
@@ -621,8 +672,7 @@ export function listener(app: { fetch: NodeServer.Fetch }): Listener {
|
|
|
621
672
|
export declare namespace create {
|
|
622
673
|
/**
|
|
623
674
|
* Options for creating the Tempo API Hono app: shared chain, RPC, database,
|
|
624
|
-
* cache, authentication, and cross-cutting configuration.
|
|
625
|
-
* {@link management}.
|
|
675
|
+
* cache, authentication, and cross-cutting configuration.
|
|
626
676
|
*/
|
|
627
677
|
type Options<path extends string = '/'> = {
|
|
628
678
|
/** Analytics store for usage reads (e.g. `Analytics.clickhouse(...)`), or a per-request factory. Accepts `{ source }` to mirror `db`. Omit to leave usage analytics unconfigured — usage routes answer 501. Ingest happens outside this app (queue consumer via `Analytics.handleQueue`). */
|
|
@@ -639,6 +689,8 @@ export declare namespace create {
|
|
|
639
689
|
db: Db.Source | { cached?: Db.Source | undefined; source: Db.Source }
|
|
640
690
|
/** Default Tempo chain id for requests that omit `chainId`. */
|
|
641
691
|
defaultChainId?: Viem.ChainId | undefined
|
|
692
|
+
/** Transactional email sender shared by authentication and mounted route groups. */
|
|
693
|
+
email?: Email | undefined
|
|
642
694
|
/** KV state store backing API-key records (e.g. `Store.cloudflareKv(...)`). Omit to leave API-key auth closed — every token resolves to `null`. */
|
|
643
695
|
kv?: Kv | undefined
|
|
644
696
|
/** Request logging. Disabled by default. Pass `true` to emit one canonical structured log entry per request through the level-matched console method (indexed by Workers Logs); a level (e.g. `'warn'`) to emit only that level and above (dropping successful-request info lines); or an emit function for a custom sink. */
|
|
@@ -657,6 +709,8 @@ export declare namespace create {
|
|
|
657
709
|
scopes?: readonly Scope.Entry[] | undefined
|
|
658
710
|
/** Extra chain ids served beyond the built-in chains and `defaultChainId`. */
|
|
659
711
|
supportedChainIds?: readonly number[] | undefined
|
|
712
|
+
/** Vercel workload-identity verifier for mainnet Zone shadow evaluation. */
|
|
713
|
+
vercelOidc?: VercelOidc.create.Policy | undefined
|
|
660
714
|
/** Zone chains served by this deployment. Pass true to use the hosted Zone list. */
|
|
661
715
|
zones?: true | readonly Chain[] | undefined
|
|
662
716
|
}
|
|
@@ -725,11 +779,19 @@ export declare namespace create {
|
|
|
725
779
|
/** Root-level OpenAPI tag definitions for this group's operations. */
|
|
726
780
|
tags?: readonly Tag[] | undefined
|
|
727
781
|
/** Builds the OAS 3.1 `webhooks` block documenting outbound deliveries, emitted only when the group's webhook routes are mounted. Called during spec generation only, keeping schema conversion off isolate startup. */
|
|
728
|
-
webhooks?: (() =>
|
|
782
|
+
webhooks?: (() => Webhooks) | undefined
|
|
729
783
|
/** Vocs tag-group metadata for grouping root tags in the reference. */
|
|
730
784
|
'x-tagGroups'?: readonly TagGroup[] | undefined
|
|
731
785
|
}
|
|
732
786
|
|
|
787
|
+
/** Root webhooks document and schemas contributed by one route group. */
|
|
788
|
+
type Webhooks = {
|
|
789
|
+
/** Root `webhooks` entries keyed by event name. */
|
|
790
|
+
document: Record<string, unknown>
|
|
791
|
+
/** Named schemas referenced only from outbound webhook operations. */
|
|
792
|
+
schemas?: Record<string, unknown> | undefined
|
|
793
|
+
}
|
|
794
|
+
|
|
733
795
|
/** One root-level OpenAPI tag definition. */
|
|
734
796
|
type Tag = {
|
|
735
797
|
/** Human-readable summary shown in the reference sidebar. */
|
|
@@ -772,6 +834,247 @@ async function errorFromException(c: Context<Environment>, cause: HTTPException)
|
|
|
772
834
|
}
|
|
773
835
|
|
|
774
836
|
namespace OpenApiDocument {
|
|
837
|
+
/** Copies examples from an equivalent input schema into its output representation. */
|
|
838
|
+
export function recoverExamples(target: unknown, source: unknown, root: unknown) {
|
|
839
|
+
if (!target || typeof target !== 'object' || Array.isArray(target)) return
|
|
840
|
+
if (!source || typeof source !== 'object' || Array.isArray(source)) return
|
|
841
|
+
|
|
842
|
+
const current = target as Record<string, unknown>
|
|
843
|
+
const source_raw = source as Record<string, unknown>
|
|
844
|
+
const source_resolved = (() => {
|
|
845
|
+
if (typeof source_raw['$ref'] !== 'string') return source_raw
|
|
846
|
+
const resolved = resolvePointer(root, source_raw['$ref'])
|
|
847
|
+
return resolved && typeof resolved === 'object' && !Array.isArray(resolved)
|
|
848
|
+
? (resolved as Record<string, unknown>)
|
|
849
|
+
: source_raw
|
|
850
|
+
})()
|
|
851
|
+
const source_aligned = (() => {
|
|
852
|
+
for (const name of ['anyOf', 'oneOf']) {
|
|
853
|
+
const branches = source_resolved[name]
|
|
854
|
+
if (!Array.isArray(branches)) continue
|
|
855
|
+
for (const branch of branches) {
|
|
856
|
+
if (!branch || typeof branch !== 'object' || Array.isArray(branch)) continue
|
|
857
|
+
const candidate = branch as Record<string, unknown>
|
|
858
|
+
const resolved = (() => {
|
|
859
|
+
if (typeof candidate['$ref'] !== 'string') return candidate
|
|
860
|
+
const value = resolvePointer(root, candidate['$ref'])
|
|
861
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
862
|
+
? (value as Record<string, unknown>)
|
|
863
|
+
: candidate
|
|
864
|
+
})()
|
|
865
|
+
if (
|
|
866
|
+
(current['type'] !== undefined && current['type'] === resolved['type']) ||
|
|
867
|
+
('properties' in current && 'properties' in resolved) ||
|
|
868
|
+
('items' in current && 'items' in resolved)
|
|
869
|
+
)
|
|
870
|
+
return resolved
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
return source_resolved
|
|
874
|
+
})()
|
|
875
|
+
if (!('example' in current) && 'example' in source_aligned)
|
|
876
|
+
current['example'] = source_aligned['example']
|
|
877
|
+
if (!('examples' in current) && 'examples' in source_aligned)
|
|
878
|
+
current['examples'] = source_aligned['examples']
|
|
879
|
+
|
|
880
|
+
const targetProperties = current['properties'] as Record<string, unknown> | undefined
|
|
881
|
+
const sourceProperties = source_aligned['properties'] as Record<string, unknown> | undefined
|
|
882
|
+
if (targetProperties && sourceProperties)
|
|
883
|
+
for (const [name, child] of Object.entries(targetProperties))
|
|
884
|
+
recoverExamples(child, sourceProperties[name], root)
|
|
885
|
+
|
|
886
|
+
if (current['items']) recoverExamples(current['items'], source_aligned['items'], root)
|
|
887
|
+
for (const name of ['allOf', 'anyOf', 'oneOf']) {
|
|
888
|
+
const targets = current[name]
|
|
889
|
+
const sources = source_aligned[name]
|
|
890
|
+
if (!Array.isArray(targets) || !Array.isArray(sources)) continue
|
|
891
|
+
for (const [index, child] of targets.entries()) recoverExamples(child, sources[index], root)
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
/** Publishes literal examples and propagates schema examples through nested representations. */
|
|
896
|
+
export function normalizeExamples(value: unknown) {
|
|
897
|
+
normalize(value, value)
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
function normalize(value: unknown, root: unknown, inherited: readonly unknown[] = []) {
|
|
901
|
+
if (!value || typeof value !== 'object') return
|
|
902
|
+
if (Array.isArray(value)) {
|
|
903
|
+
for (const item of value) normalize(item, root, inherited)
|
|
904
|
+
return
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
const current = value as Record<string, unknown>
|
|
908
|
+
const compatible = inherited.filter((example) => matchesSchemaType(current, example))
|
|
909
|
+
if (!('example' in current) && !('examples' in current)) {
|
|
910
|
+
if ('const' in current) current['examples'] = [current['const']]
|
|
911
|
+
else if (Array.isArray(current['enum']) && current['enum'].length)
|
|
912
|
+
current['examples'] = [current['enum'][0]]
|
|
913
|
+
else if (compatible.length) current['examples'] = [...new Set(compatible)]
|
|
914
|
+
}
|
|
915
|
+
const examples = [
|
|
916
|
+
...('example' in current ? [current['example']] : []),
|
|
917
|
+
...(Array.isArray(current['examples']) ? current['examples'] : []),
|
|
918
|
+
]
|
|
919
|
+
const properties = current['properties'] as Record<string, unknown> | undefined
|
|
920
|
+
if (properties)
|
|
921
|
+
for (const [name, child] of Object.entries(properties))
|
|
922
|
+
normalize(
|
|
923
|
+
child,
|
|
924
|
+
root,
|
|
925
|
+
examples.flatMap((example) => {
|
|
926
|
+
if (!example || typeof example !== 'object' || Array.isArray(example)) return []
|
|
927
|
+
return name in example ? [(example as Record<string, unknown>)[name]] : []
|
|
928
|
+
}),
|
|
929
|
+
)
|
|
930
|
+
if (current['items'])
|
|
931
|
+
normalize(
|
|
932
|
+
current['items'],
|
|
933
|
+
root,
|
|
934
|
+
examples.flatMap((example) => (Array.isArray(example) ? example : [])),
|
|
935
|
+
)
|
|
936
|
+
// Composition branches may share a JSON type while accepting different
|
|
937
|
+
// values. Keep inherited examples on the union instead of copying invalid
|
|
938
|
+
// values into each representation.
|
|
939
|
+
for (const name of ['allOf', 'anyOf', 'oneOf'])
|
|
940
|
+
if (current[name]) normalize(current[name], root)
|
|
941
|
+
for (const [name, child] of Object.entries(current))
|
|
942
|
+
if (!['allOf', 'anyOf', 'example', 'examples', 'items', 'oneOf', 'properties'].includes(name))
|
|
943
|
+
normalize(child, root)
|
|
944
|
+
|
|
945
|
+
if (!('$ref' in current) && !('example' in current) && !('examples' in current)) {
|
|
946
|
+
const [found, example] = deriveExample(root, current)
|
|
947
|
+
if (found) current['examples'] = [example]
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
type DerivedExample = readonly [found: boolean, value: unknown]
|
|
952
|
+
|
|
953
|
+
function deriveExample(
|
|
954
|
+
root: unknown,
|
|
955
|
+
schema: Record<string, unknown>,
|
|
956
|
+
seen: ReadonlySet<string> = new Set(),
|
|
957
|
+
): DerivedExample {
|
|
958
|
+
if ('example' in schema) return [true, schema['example']]
|
|
959
|
+
if (Array.isArray(schema['examples']) && schema['examples'].length)
|
|
960
|
+
return [true, schema['examples'][0]]
|
|
961
|
+
|
|
962
|
+
const schemaLike = [
|
|
963
|
+
'$ref',
|
|
964
|
+
'allOf',
|
|
965
|
+
'anyOf',
|
|
966
|
+
'const',
|
|
967
|
+
'enum',
|
|
968
|
+
'items',
|
|
969
|
+
'oneOf',
|
|
970
|
+
'properties',
|
|
971
|
+
'type',
|
|
972
|
+
].some((name) => name in schema)
|
|
973
|
+
if (!schemaLike) return [false, undefined]
|
|
974
|
+
|
|
975
|
+
if ('const' in schema) return [true, schema['const']]
|
|
976
|
+
if (Array.isArray(schema['enum']) && schema['enum'].length) return [true, schema['enum'][0]]
|
|
977
|
+
if ('default' in schema) return [true, schema['default']]
|
|
978
|
+
|
|
979
|
+
if (typeof schema['$ref'] === 'string' && !seen.has(schema['$ref'])) {
|
|
980
|
+
const target = resolvePointer(root, schema['$ref'])
|
|
981
|
+
if (target && typeof target === 'object' && !Array.isArray(target))
|
|
982
|
+
return deriveExample(
|
|
983
|
+
root,
|
|
984
|
+
target as Record<string, unknown>,
|
|
985
|
+
new Set([...seen, schema['$ref']]),
|
|
986
|
+
)
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
for (const name of ['oneOf', 'anyOf'])
|
|
990
|
+
if (Array.isArray(schema[name]))
|
|
991
|
+
for (const branch of schema[name]) {
|
|
992
|
+
if (!branch || typeof branch !== 'object' || Array.isArray(branch)) continue
|
|
993
|
+
const result = deriveExample(root, branch as Record<string, unknown>, seen)
|
|
994
|
+
if (result[0]) return result
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
if (Array.isArray(schema['allOf'])) {
|
|
998
|
+
const merged: Record<string, unknown> = {}
|
|
999
|
+
let found = false
|
|
1000
|
+
for (const branch of schema['allOf']) {
|
|
1001
|
+
if (!branch || typeof branch !== 'object' || Array.isArray(branch)) continue
|
|
1002
|
+
const result = deriveExample(root, branch as Record<string, unknown>, seen)
|
|
1003
|
+
if (!result[0] || !result[1] || typeof result[1] !== 'object' || Array.isArray(result[1]))
|
|
1004
|
+
continue
|
|
1005
|
+
Object.assign(merged, result[1])
|
|
1006
|
+
found = true
|
|
1007
|
+
}
|
|
1008
|
+
if (found) return [true, merged]
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
if (schema['type'] === 'array' && schema['items']) {
|
|
1012
|
+
const items = schema['items']
|
|
1013
|
+
if (items && typeof items === 'object' && !Array.isArray(items)) {
|
|
1014
|
+
const result = deriveExample(root, items as Record<string, unknown>, seen)
|
|
1015
|
+
if (result[0]) return [true, [result[1]]]
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
const properties = schema['properties']
|
|
1020
|
+
if (properties && typeof properties === 'object' && !Array.isArray(properties)) {
|
|
1021
|
+
const example: Record<string, unknown> = {}
|
|
1022
|
+
const required = new Set(Array.isArray(schema['required']) ? schema['required'] : [])
|
|
1023
|
+
for (const [name, property] of Object.entries(properties)) {
|
|
1024
|
+
if (!required.has(name)) continue
|
|
1025
|
+
if (!property || typeof property !== 'object' || Array.isArray(property)) continue
|
|
1026
|
+
const result = deriveExample(root, property as Record<string, unknown>, seen)
|
|
1027
|
+
if (result[0]) example[name] = result[1]
|
|
1028
|
+
else return [false, undefined]
|
|
1029
|
+
}
|
|
1030
|
+
return [true, example]
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
if (schema['type'] === 'object') return [true, {}]
|
|
1034
|
+
|
|
1035
|
+
return [false, undefined]
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
function resolvePointer(root: unknown, pointer: string) {
|
|
1039
|
+
if (!pointer.startsWith('#/')) return undefined
|
|
1040
|
+
return pointer
|
|
1041
|
+
.slice(2)
|
|
1042
|
+
.split('/')
|
|
1043
|
+
.map((part) => part.replaceAll('~1', '/').replaceAll('~0', '~'))
|
|
1044
|
+
.reduce<unknown>((value, part) => {
|
|
1045
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) return undefined
|
|
1046
|
+
return (value as Record<string, unknown>)[part]
|
|
1047
|
+
}, root)
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
function matchesSchemaType(schema: Record<string, unknown>, value: unknown) {
|
|
1051
|
+
switch (schema['type']) {
|
|
1052
|
+
case 'array':
|
|
1053
|
+
return Array.isArray(value)
|
|
1054
|
+
case 'boolean':
|
|
1055
|
+
return typeof value === 'boolean'
|
|
1056
|
+
case 'integer':
|
|
1057
|
+
return typeof value === 'number' && Number.isInteger(value)
|
|
1058
|
+
case 'null':
|
|
1059
|
+
return value === null
|
|
1060
|
+
case 'number':
|
|
1061
|
+
return typeof value === 'number'
|
|
1062
|
+
case 'object':
|
|
1063
|
+
return !!value && typeof value === 'object' && !Array.isArray(value)
|
|
1064
|
+
case 'string':
|
|
1065
|
+
return typeof value === 'string'
|
|
1066
|
+
default:
|
|
1067
|
+
return true
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
/** Removes route-composition metadata that is not part of an OpenAPI operation. */
|
|
1072
|
+
export function removePrivateFields(paths: PathsObject) {
|
|
1073
|
+
for (const item of Object.values(paths))
|
|
1074
|
+
for (const op of Object.values(item as Record<string, unknown>))
|
|
1075
|
+
if (isMutableOperation(op)) delete op.hide
|
|
1076
|
+
}
|
|
1077
|
+
|
|
775
1078
|
// Reorder OpenAPI `paths` so reads come before writes within each tag group,
|
|
776
1079
|
// and shallower paths come before deeper paths inside each bucket so root-level
|
|
777
1080
|
// routes ("List tokens" — `/tokens`) win over nested ones ("List address
|
|
@@ -797,13 +1100,13 @@ namespace OpenApiDocument {
|
|
|
797
1100
|
// 1 item (`GET`+`PATCH`+`DELETE /webhooks/{id}`) → "Get, Update, Delete"
|
|
798
1101
|
// 2 other list-only paths (`/event-types`, `/deliveries`)
|
|
799
1102
|
// 3 other writes/actions (`POST .../ping`, `.../retry`)
|
|
800
|
-
//
|
|
801
|
-
const
|
|
802
|
-
'
|
|
803
|
-
'
|
|
804
|
-
'
|
|
805
|
-
'
|
|
806
|
-
'
|
|
1103
|
+
// Route deposit paths preserve their resource-specific sidebar order.
|
|
1104
|
+
const routesDepositOperationOrder = [
|
|
1105
|
+
'createRoutesDepositAddress',
|
|
1106
|
+
'reconcileRoutesDepositAddress',
|
|
1107
|
+
'getRoutesDepositAddress',
|
|
1108
|
+
'getRoutesDeposit',
|
|
1109
|
+
'listRoutesDeposits',
|
|
807
1110
|
] as const
|
|
808
1111
|
|
|
809
1112
|
export function sortPaths(paths: PathsObject): PathsObject {
|
|
@@ -821,12 +1124,12 @@ namespace OpenApiDocument {
|
|
|
821
1124
|
return 3
|
|
822
1125
|
}
|
|
823
1126
|
if (operations.some((op) => isOperation(op) && op.tags?.includes('Deposit Addresses'))) {
|
|
824
|
-
const index =
|
|
1127
|
+
const index = routesDepositOperationOrder.findIndex((operationId) =>
|
|
825
1128
|
operations.some((op) => isOperation(op) && op.operationId === operationId),
|
|
826
1129
|
)
|
|
827
1130
|
if (index >= 0) return index
|
|
828
1131
|
}
|
|
829
|
-
if (/\/v1\/
|
|
1132
|
+
if (/\/v1\/routes(?:\/|$)/.test(entry[0])) {
|
|
830
1133
|
if (has('Create')) return 1
|
|
831
1134
|
if (has('Get transfer')) return 2
|
|
832
1135
|
return 0
|
|
@@ -862,7 +1165,7 @@ namespace OpenApiDocument {
|
|
|
862
1165
|
: []),
|
|
863
1166
|
...(lanes.public ? [{}] : []),
|
|
864
1167
|
]
|
|
865
|
-
if (security.length > 0) op.security = security
|
|
1168
|
+
if (security.length > 0 || lanes.bypass) op.security = security
|
|
866
1169
|
if (lanes.scopes.length > 0) op['x-required-scopes'] = [...lanes.scopes]
|
|
867
1170
|
if (lanes.mpp) op.responses = { ...op.responses, 402: OpenApi.paymentChallengeRef }
|
|
868
1171
|
else if (op.responses) delete op.responses['402']
|
|
@@ -873,8 +1176,8 @@ namespace OpenApiDocument {
|
|
|
873
1176
|
/**
|
|
874
1177
|
* Links the JSON-RPC passthrough operation to the OpenRPC document (served at
|
|
875
1178
|
* `{basePath}/openrpc.json`) via an `x-openrpc` vendor extension. The raw `/rpc`
|
|
876
|
-
*
|
|
877
|
-
* method
|
|
1179
|
+
* schemas in OpenAPI are generic, so this lets consumers discover each
|
|
1180
|
+
* method's specific parameter and return schemas.
|
|
878
1181
|
*
|
|
879
1182
|
* The public `/openapi.json` keeps a URL reference (small, conventional). The
|
|
880
1183
|
* docs handler instead inlines the document — see `inlineOpenrpc` in `tapimo/docs`.
|
|
@@ -892,6 +1195,7 @@ namespace OpenApiDocument {
|
|
|
892
1195
|
type PathItem = PathsObject[string]
|
|
893
1196
|
type Operation = { operationId?: string | undefined; summary?: string | undefined }
|
|
894
1197
|
type MutableOperation = {
|
|
1198
|
+
hide?: boolean | undefined
|
|
895
1199
|
operationId: string
|
|
896
1200
|
responses?: Record<string, unknown> | undefined
|
|
897
1201
|
security?: unknown
|
package/src/Assets.test.ts
CHANGED
|
@@ -9,10 +9,10 @@ describe('url', () => {
|
|
|
9
9
|
} as const
|
|
10
10
|
|
|
11
11
|
expect(Assets.url(options)).toBe(
|
|
12
|
-
'https://api.tempo.xyz/assets/4217/icons/0x20c000000000000000000000b9537d11c60e8b50',
|
|
12
|
+
'https://api.tempo.xyz/assets/4217/icons/0x20c000000000000000000000b9537d11c60e8b50?__response=svg-sandbox-v1',
|
|
13
13
|
)
|
|
14
14
|
expect(Assets.url({ ...options, basePath: '/api/' })).toBe(
|
|
15
|
-
'https://api.tempo.xyz/api/assets/4217/icons/0x20c000000000000000000000b9537d11c60e8b50',
|
|
15
|
+
'https://api.tempo.xyz/api/assets/4217/icons/0x20c000000000000000000000b9537d11c60e8b50?__response=svg-sandbox-v1',
|
|
16
16
|
)
|
|
17
17
|
})
|
|
18
18
|
})
|
package/src/Assets.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* (`Admin.create`'s `assets`, read + write).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import * as AssetResponse from './internal/AssetResponse.js'
|
|
10
|
+
|
|
9
11
|
/** A static asset: its bytes plus content type. */
|
|
10
12
|
export type Asset = {
|
|
11
13
|
/** Asset bytes. */
|
|
@@ -29,7 +31,7 @@ export function url(options: url.Options) {
|
|
|
29
31
|
const basePath = options.basePath?.replace(/^\/+|\/+$/g, '')
|
|
30
32
|
const path = options.path.replace(/^\/+/, '')
|
|
31
33
|
const pathname = [basePath, 'assets', String(options.chainId), path].filter(Boolean).join('/')
|
|
32
|
-
return new URL(`/${pathname}`, options.origin).toString()
|
|
34
|
+
return AssetResponse.versionUrl(new URL(`/${pathname}`, options.origin).toString())
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
export declare namespace url {
|
package/src/Auth.test-d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Hono } from 'hono'
|
|
2
2
|
import { testClient } from 'hono/testing'
|
|
3
3
|
import { expectTypeOf } from 'vite-plus/test'
|
|
4
|
-
import { App, Auth } from 'tapimo'
|
|
4
|
+
import { App, Auth } from 'tapimo/server'
|
|
5
5
|
|
|
6
6
|
describe('Auth', () => {
|
|
7
7
|
test('exports the external route-authoring surface', () => {
|