tapimo 0.7.1 → 0.8.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 +10 -7
- package/dist/ApiKey.d.ts +3 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +10 -0
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +29 -8
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +24 -5
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +20680 -15487
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +250 -129
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts +10 -0
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +17 -4
- package/dist/Assets.js.map +1 -1
- package/dist/Scope.d.ts +19 -8
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +25 -9
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.d.ts +1 -1
- package/dist/admin/App.d.ts +667 -76
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +12 -2
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +107 -11
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +145 -32
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +1069 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -0
- package/dist/admin/apps/earn-vaults.js +409 -0
- package/dist/admin/apps/earn-vaults.js.map +1 -0
- package/dist/admin/apps/organizations.d.ts +2 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +74 -74
- 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 +99 -43
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +4 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +21 -2
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +22 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +59 -39
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/Zones.d.ts +8335 -0
- package/dist/apps/Zones.d.ts.map +1 -0
- package/dist/apps/Zones.js +38 -0
- package/dist/apps/Zones.js.map +1 -0
- package/dist/apps/data/App.d.ts +5666 -3934
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +90 -22
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +1 -1
- package/dist/apps/data/FxOracle.d.ts.map +1 -1
- package/dist/apps/data/index.d.ts +0 -1
- package/dist/apps/data/index.d.ts.map +1 -1
- package/dist/apps/data/index.js +0 -1
- package/dist/apps/data/index.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +56 -56
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +130 -65
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +65 -65
- package/dist/apps/data/routes/balances.d.ts +14 -14
- package/dist/apps/data/routes/balances.js +5 -5
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/coingecko.d.ts +54 -54
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +62 -35
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/earn.d.ts +2574 -0
- package/dist/apps/data/routes/earn.d.ts.map +1 -0
- package/dist/apps/data/routes/earn.js +1574 -0
- package/dist/apps/data/routes/earn.js.map +1 -0
- package/dist/apps/data/routes/exchanges.d.ts +1626 -719
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +656 -193
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +108 -108
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +59 -8
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +35 -35
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +23 -3
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +33 -33
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +11 -11
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +6 -6
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +214 -22
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +39 -8
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +115 -87
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +194 -91
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +54 -54
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +78 -39
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +76 -27
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +165 -67
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +42 -42
- package/dist/apps/data/routes/valuation.js +2 -2
- package/dist/apps/data/routes/valuation.js.map +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +370 -368
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +161 -59
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +281 -0
- package/dist/apps/data/routes/zones.d.ts.map +1 -0
- package/dist/apps/data/routes/zones.js +252 -0
- package/dist/apps/data/routes/zones.js.map +1 -0
- package/dist/apps/docs/reference.js +6 -5
- package/dist/apps/docs/reference.js.map +1 -1
- package/dist/apps/funding/Access.d.ts +16 -0
- package/dist/apps/funding/Access.d.ts.map +1 -0
- package/dist/apps/funding/Access.js +22 -0
- package/dist/apps/funding/Access.js.map +1 -0
- package/dist/apps/funding/App.d.ts +3183 -0
- package/dist/apps/funding/App.d.ts.map +1 -0
- package/dist/apps/funding/App.js +46 -0
- package/dist/apps/funding/App.js.map +1 -0
- package/dist/apps/funding/Inventory.d.ts +5 -0
- package/dist/apps/funding/Inventory.d.ts.map +1 -0
- package/dist/apps/funding/Inventory.js +25 -0
- package/dist/apps/funding/Inventory.js.map +1 -0
- package/dist/apps/funding/ProviderAttempts.d.ts +5 -0
- package/dist/apps/funding/ProviderAttempts.d.ts.map +1 -0
- package/dist/apps/funding/ProviderAttempts.js +24 -0
- package/dist/apps/funding/ProviderAttempts.js.map +1 -0
- package/dist/apps/funding/index.d.ts +2 -0
- package/dist/apps/funding/index.d.ts.map +1 -0
- package/dist/apps/funding/index.js +2 -0
- package/dist/apps/funding/index.js.map +1 -0
- package/dist/apps/funding/routes/chains.d.ts +169 -0
- package/dist/apps/funding/routes/chains.d.ts.map +1 -0
- package/dist/apps/funding/routes/chains.js +80 -0
- package/dist/apps/funding/routes/chains.js.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts +2388 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.js +860 -0
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/funding/routes/providers.d.ts +91 -0
- package/dist/apps/funding/routes/providers.d.ts.map +1 -0
- package/dist/apps/funding/routes/providers.js +56 -0
- package/dist/apps/funding/routes/providers.js.map +1 -0
- package/dist/apps/{data/routes/funding.d.ts → funding/routes/quotes.d.ts} +26 -396
- package/dist/apps/funding/routes/quotes.d.ts.map +1 -0
- package/dist/apps/funding/routes/quotes.js +188 -0
- package/dist/apps/funding/routes/quotes.js.map +1 -0
- package/dist/apps/funding/routes/transfers.d.ts +1999 -0
- package/dist/apps/funding/routes/transfers.d.ts.map +1 -0
- package/dist/apps/funding/routes/transfers.js +614 -0
- package/dist/apps/funding/routes/transfers.js.map +1 -0
- package/dist/apps/index.d.ts +3 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +3 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +839 -574
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/Billing.d.ts +8 -0
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +12 -0
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/Error.d.ts +12 -0
- package/dist/apps/management/Error.d.ts.map +1 -0
- package/dist/apps/management/Error.js +10 -0
- package/dist/apps/management/Error.js.map +1 -0
- package/dist/apps/management/routes/api-keys.d.ts +296 -19
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +77 -9
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +119 -119
- package/dist/apps/management/routes/faucet.d.ts +35 -35
- package/dist/apps/management/routes/invitations.d.ts +17 -17
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +4 -10
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts +38 -38
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +69 -69
- package/dist/apps/management/routes/orgs.d.ts +16 -16
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +2 -8
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +19 -19
- package/dist/apps/management/routes/scopes.d.ts +1 -1
- package/dist/apps/management/routes/scopes.js +2 -2
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +72 -72
- package/dist/apps/management/routes/verified-token-requests.d.ts +18 -18
- package/dist/apps/management/routes/webhooks.d.ts +122 -122
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +15 -3
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/apps/mcp.d.ts +2 -3
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +16 -14
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/metadata.d.ts +4 -0
- package/dist/apps/metadata.d.ts.map +1 -1
- package/dist/apps/metadata.js +10 -0
- package/dist/apps/metadata.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +57 -58
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/App.js +192 -27
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/Mpp.d.ts +0 -20
- package/dist/apps/mpp/Mpp.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.js +0 -24
- package/dist/apps/mpp/Mpp.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Adapter.js +66 -0
- package/dist/apps/mpp/internal/Adapter.js.map +1 -0
- package/dist/apps/mpp/internal/Error.d.ts +4 -0
- package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Error.js +41 -0
- package/dist/apps/mpp/internal/Error.js.map +1 -0
- package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
- package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Idempotency.js +28 -0
- package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
- package/dist/apps/mpp/internal/Policy.d.ts +46 -0
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Policy.js +57 -0
- package/dist/apps/mpp/internal/Policy.js.map +1 -0
- package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
- package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
- package/dist/apps/mpp/internal/ScreenManager.js +18 -0
- package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
- package/dist/apps/mpp/internal/Screening.d.ts +35 -0
- package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Screening.js +20 -0
- package/dist/apps/mpp/internal/Screening.js.map +1 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Sponsorship.js +103 -0
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
- package/dist/apps/mpp/internal/Utils.d.ts +7 -0
- package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Utils.js +24 -0
- package/dist/apps/mpp/internal/Utils.js.map +1 -0
- package/dist/apps/relay/App.js +183 -23
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +4 -0
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +15 -6
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/cloudflare.d.ts +50 -0
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +178 -0
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +22 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +379 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +933 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +289 -1
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/earnVaults.d.ts +68 -0
- package/dist/db/tables/earnVaults.d.ts.map +1 -0
- package/dist/db/tables/earnVaults.js +72 -0
- package/dist/db/tables/earnVaults.js.map +1 -0
- package/dist/db/tables/fundingCatalog.d.ts +56 -0
- package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
- package/dist/db/tables/fundingCatalog.js +85 -0
- package/dist/db/tables/fundingCatalog.js.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts +172 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.js +218 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
- package/dist/db/tables/fundingDepositRequestObservations.d.ts +45 -0
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositRequestObservations.js +46 -0
- package/dist/db/tables/fundingDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/fundingDeposits.d.ts +171 -0
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
- package/dist/db/tables/fundingDeposits.js +182 -0
- package/dist/db/tables/fundingDeposits.js.map +1 -0
- package/dist/db/tables/fundingIdempotency.d.ts +91 -0
- package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
- package/dist/db/tables/fundingIdempotency.js +103 -0
- package/dist/db/tables/fundingIdempotency.js.map +1 -0
- package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
- package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
- package/dist/db/tables/fundingTransferEvents.js +18 -0
- package/dist/db/tables/fundingTransferEvents.js.map +1 -0
- package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
- package/dist/db/tables/fundingTransferTransactions.js +27 -0
- package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
- package/dist/db/tables/fundingTransfers.d.ts +82 -0
- package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
- package/dist/db/tables/fundingTransfers.js +89 -0
- package/dist/db/tables/fundingTransfers.js.map +1 -0
- package/dist/db/tables/organizations.d.ts +8 -0
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +16 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +8 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +16 -0
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts +13 -0
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js +16 -0
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts +2 -2
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +1 -1
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/users.d.ts +8 -0
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +16 -0
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/verifiedTokens.d.ts +14 -7
- package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
- package/dist/db/tables/verifiedTokens.js +9 -7
- package/dist/db/tables/verifiedTokens.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +24 -3
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/relay.js +108 -108
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +37 -11
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +75 -16
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +17 -11
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/Cursor.js +1 -1
- package/dist/internal/Cursor.js.map +1 -1
- package/dist/internal/EarnRates.d.ts +89 -0
- package/dist/internal/EarnRates.d.ts.map +1 -0
- package/dist/internal/EarnRates.js +266 -0
- package/dist/internal/EarnRates.js.map +1 -0
- package/dist/internal/EarnVaults.d.ts +171 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -0
- package/dist/internal/EarnVaults.js +547 -0
- package/dist/internal/EarnVaults.js.map +1 -0
- package/dist/internal/EdgeCache.d.ts +10 -3
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +43 -11
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/Id.d.ts +11 -0
- package/dist/internal/Id.d.ts.map +1 -1
- package/dist/internal/Id.js +13 -0
- package/dist/internal/Id.js.map +1 -1
- package/dist/internal/Idempotency.d.ts +83 -0
- package/dist/internal/Idempotency.d.ts.map +1 -0
- package/dist/internal/Idempotency.js +113 -0
- package/dist/internal/Idempotency.js.map +1 -0
- package/dist/internal/IpAllowlist.d.ts +15 -0
- package/dist/internal/IpAllowlist.d.ts.map +1 -0
- package/dist/internal/IpAllowlist.js +27 -0
- package/dist/internal/IpAllowlist.js.map +1 -0
- package/dist/internal/Log.d.ts +64 -9
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +29 -7
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +47 -1
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +2 -2
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +4 -1
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Provider.d.ts +14 -0
- package/dist/internal/Provider.d.ts.map +1 -0
- package/dist/internal/Provider.js +5 -0
- package/dist/internal/Provider.js.map +1 -0
- package/dist/internal/Schema.d.ts +6 -1
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +20 -11
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Store.d.ts +6 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +35 -0
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +49 -24
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +90 -12
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +90 -65
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +90 -12
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookDestination.d.ts.map +1 -1
- package/dist/internal/WebhookDestination.js +34 -28
- package/dist/internal/WebhookDestination.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +9 -0
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +15 -10
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/exchange/Provider.d.ts +219 -0
- package/dist/internal/exchange/Provider.d.ts.map +1 -0
- package/dist/internal/exchange/Provider.js +117 -0
- package/dist/internal/exchange/Provider.js.map +1 -0
- package/dist/internal/exchange/index.d.ts +2 -0
- package/dist/internal/exchange/index.d.ts.map +1 -0
- package/dist/internal/exchange/index.js +2 -0
- package/dist/internal/exchange/index.js.map +1 -0
- package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
- package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
- package/dist/internal/exchange/providers/uniswap.js +553 -0
- package/dist/internal/exchange/providers/uniswap.js.map +1 -0
- package/dist/internal/funding/Action.d.ts +55 -0
- package/dist/internal/funding/Action.d.ts.map +1 -0
- package/dist/internal/funding/Action.js +74 -0
- package/dist/internal/funding/Action.js.map +1 -0
- package/dist/internal/funding/Catalog.d.ts +107 -0
- package/dist/internal/funding/Catalog.d.ts.map +1 -0
- package/dist/internal/funding/Catalog.js +270 -0
- package/dist/internal/funding/Catalog.js.map +1 -0
- package/dist/internal/funding/Chain.d.ts +76 -0
- package/dist/internal/funding/Chain.d.ts.map +1 -0
- package/dist/internal/funding/Chain.js +38 -0
- package/dist/internal/funding/Chain.js.map +1 -0
- package/dist/internal/funding/Deposit.d.ts +408 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -0
- package/dist/internal/funding/Deposit.js +318 -0
- package/dist/internal/funding/Deposit.js.map +1 -0
- package/dist/internal/funding/DepositAddress.d.ts +345 -0
- package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
- package/dist/internal/funding/DepositAddress.js +189 -0
- package/dist/internal/funding/DepositAddress.js.map +1 -0
- package/dist/internal/funding/Evidence.d.ts +48 -0
- package/dist/internal/funding/Evidence.d.ts.map +1 -0
- package/dist/internal/funding/Evidence.js +315 -0
- package/dist/internal/funding/Evidence.js.map +1 -0
- package/dist/internal/funding/Provider.d.ts +1288 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -0
- package/dist/internal/funding/Provider.js +1086 -0
- package/dist/internal/funding/Provider.js.map +1 -0
- package/dist/internal/funding/Reconciliation.d.ts +127 -0
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
- package/dist/internal/funding/Reconciliation.js +885 -0
- package/dist/internal/funding/Reconciliation.js.map +1 -0
- package/dist/internal/funding/Route.d.ts +21 -0
- package/dist/internal/funding/Route.d.ts.map +1 -0
- package/dist/internal/funding/Route.js +5 -0
- package/dist/internal/funding/Route.js.map +1 -0
- package/dist/internal/funding/SourceObservation.d.ts +108 -0
- package/dist/internal/funding/SourceObservation.d.ts.map +1 -0
- package/dist/internal/funding/SourceObservation.js +143 -0
- package/dist/internal/funding/SourceObservation.js.map +1 -0
- package/dist/internal/funding/Subsidy.d.ts +113 -0
- package/dist/internal/funding/Subsidy.d.ts.map +1 -0
- package/dist/internal/funding/Subsidy.js +138 -0
- package/dist/internal/funding/Subsidy.js.map +1 -0
- package/dist/internal/funding/Token.d.ts +41 -0
- package/dist/internal/funding/Token.d.ts.map +1 -0
- package/dist/internal/funding/Token.js +22 -0
- package/dist/internal/funding/Token.js.map +1 -0
- package/dist/internal/funding/Transfer.d.ts +643 -0
- package/dist/internal/funding/Transfer.d.ts.map +1 -0
- package/dist/internal/funding/Transfer.js +332 -0
- package/dist/internal/funding/Transfer.js.map +1 -0
- package/dist/internal/funding/index.d.ts +14 -0
- package/dist/internal/funding/index.d.ts.map +1 -0
- package/dist/internal/funding/index.js +14 -0
- package/dist/internal/funding/index.js.map +1 -0
- package/dist/internal/funding/providers/across.d.ts +21 -0
- package/dist/internal/funding/providers/across.d.ts.map +1 -0
- package/dist/internal/funding/providers/across.js +117 -0
- package/dist/internal/funding/providers/across.js.map +1 -0
- package/dist/internal/funding/providers/relay.d.ts +88 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -0
- package/dist/internal/funding/providers/relay.js +871 -0
- package/dist/internal/funding/providers/relay.js.map +1 -0
- package/dist/internal/funding/providers/rhino.d.ts +15 -0
- package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
- package/dist/internal/funding/providers/rhino.js +116 -0
- package/dist/internal/funding/providers/rhino.js.map +1 -0
- package/dist/internal/funding/providers/squid.d.ts +19 -0
- package/dist/internal/funding/providers/squid.d.ts.map +1 -0
- package/dist/internal/funding/providers/squid.js +120 -0
- package/dist/internal/funding/providers/squid.js.map +1 -0
- package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
- package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
- package/dist/internal/funding/providers/symbiosis.js +176 -0
- package/dist/internal/funding/providers/symbiosis.js.map +1 -0
- package/dist/internal/index.d.ts +5 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +5 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/webhookDestinations/url.js +61 -57
- package/dist/internal/webhookDestinations/url.js.map +1 -1
- package/dist/providers/index.d.ts +43 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/package.json +10 -5
- package/src/ApiKey.test.ts +35 -0
- package/src/ApiKey.ts +27 -0
- package/src/ApiKeys.test.ts +40 -7
- package/src/ApiKeys.ts +46 -10
- package/src/App.test.ts +108 -15
- package/src/App.ts +296 -138
- package/src/Assets.ts +29 -4
- package/src/Client.test-d.ts +809 -37
- package/src/Scope.test.ts +19 -0
- package/src/Scope.ts +28 -11
- package/src/Webhooks.test.ts +25 -0
- package/src/Webhooks.ts +1 -1
- package/src/admin/App.test.ts +9 -2
- package/src/admin/App.ts +32 -9
- package/src/admin/apps/api-keys.test.ts +190 -22
- package/src/admin/apps/api-keys.ts +170 -28
- package/src/admin/apps/earn-vaults.test.ts +338 -0
- package/src/admin/apps/earn-vaults.ts +572 -0
- package/src/admin/apps/scopes.test.ts +16 -1
- package/src/admin/ui/plugin.ts +2 -2
- package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
- package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
- package/src/admin/ui/src/components/Page.tsx +1 -1
- package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
- package/src/admin/ui/src/lib/api-keys.ts +37 -7
- package/src/admin/ui/src/lib/client.ts +1 -1
- package/src/admin/ui/src/lib/config.ts +1 -1
- package/src/admin/ui/src/lib/early-access.ts +8 -9
- package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
- package/src/admin/ui/src/lib/format.ts +13 -0
- package/src/admin/ui/src/lib/organizations.test.ts +14 -4
- package/src/admin/ui/src/lib/organizations.ts +7 -1
- package/src/admin/ui/src/lib/response.ts +22 -0
- package/src/admin/ui/src/lib/scopes.test.ts +19 -11
- package/src/admin/ui/src/lib/scopes.ts +28 -7
- package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
- package/src/admin/ui/src/routeTree.gen.ts +70 -7
- package/src/admin/ui/src/router.tsx +2 -2
- package/src/admin/ui/src/routes/__root.tsx +9 -8
- package/src/admin/ui/src/routes/api-keys.tsx +475 -64
- package/src/admin/ui/src/routes/early-access.tsx +5 -12
- package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
- package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
- package/src/admin/ui/src/routes/organizations.tsx +4 -7
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
- package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
- package/src/admin/ui/vite.config.ts +4 -1
- package/src/admin/ui.generated.ts +113 -43
- package/src/analytics/Analytics.test.ts +69 -10
- package/src/analytics/Analytics.ts +24 -1
- package/src/analytics/tables/requestEvents.ts +79 -37
- package/src/apps/Zones.test.ts +33 -0
- package/src/apps/Zones.ts +40 -0
- package/src/apps/composition.test.ts +184 -3
- package/src/apps/data/App.test.ts +28 -23
- package/src/apps/data/App.ts +95 -36
- package/src/apps/data/FxOracle.ts +1 -1
- package/src/apps/data/index.ts +0 -1
- package/src/apps/data/routes/activities.test.ts +82 -6
- package/src/apps/data/routes/activities.ts +131 -71
- package/src/apps/data/routes/balances.test.ts +50 -37
- package/src/apps/data/routes/balances.ts +5 -5
- package/src/apps/data/routes/blocks.test.ts +2 -0
- package/src/apps/data/routes/coingecko.test.ts +22 -0
- package/src/apps/data/routes/coingecko.ts +84 -48
- package/src/apps/data/routes/earn.test.ts +1391 -0
- package/src/apps/data/routes/earn.ts +2188 -0
- package/src/apps/data/routes/exchanges.test.ts +82 -33
- package/src/apps/data/routes/exchanges.ts +842 -227
- package/src/apps/data/routes/fee-amm.test.ts +4 -6
- package/src/apps/data/routes/fee-amm.ts +69 -12
- package/src/apps/data/routes/indexer.test.ts +43 -34
- package/src/apps/data/routes/indexer.ts +21 -3
- package/src/apps/data/routes/receipts.test.ts +5 -3
- package/src/apps/data/routes/receipts.ts +13 -11
- package/src/apps/data/routes/rpc.test.ts +446 -28
- package/src/apps/data/routes/rpc.ts +245 -25
- package/src/apps/data/routes/tokenlist.ts +72 -19
- package/src/apps/data/routes/tokens.test.ts +6 -8
- package/src/apps/data/routes/tokens.ts +258 -86
- package/src/apps/data/routes/transactions.test.ts +2 -0
- package/src/apps/data/routes/transactions.ts +77 -42
- package/src/apps/data/routes/transfers.test.ts +166 -4
- package/src/apps/data/routes/transfers.ts +216 -78
- package/src/apps/data/routes/valuation.test.ts +62 -9
- package/src/apps/data/routes/valuation.ts +2 -2
- package/src/apps/data/routes/webhooks.test.ts +386 -43
- package/src/apps/data/routes/webhooks.ts +172 -71
- package/src/apps/data/routes/zones.test.ts +473 -0
- package/src/apps/data/routes/zones.ts +338 -0
- package/src/apps/docs/reference.ts +8 -6
- package/src/apps/funding/Access.ts +26 -0
- package/src/apps/funding/App.test.ts +78 -0
- package/src/apps/funding/App.ts +63 -0
- package/src/apps/funding/Inventory.ts +30 -0
- package/src/apps/funding/ProviderAttempts.ts +26 -0
- package/src/apps/funding/index.ts +1 -0
- package/src/apps/funding/routes/chains.test.ts +78 -0
- package/src/apps/funding/routes/chains.ts +101 -0
- package/src/apps/funding/routes/deposit-addresses.test.ts +1628 -0
- package/src/apps/funding/routes/deposit-addresses.ts +1015 -0
- package/src/apps/funding/routes/providers.test.ts +165 -0
- package/src/apps/funding/routes/providers.ts +73 -0
- package/src/apps/funding/routes/quotes.test.ts +511 -0
- package/src/apps/funding/routes/quotes.ts +205 -0
- package/src/apps/funding/routes/transfers.test.ts +1255 -0
- package/src/apps/funding/routes/transfers.ts +704 -0
- package/src/apps/index.ts +3 -1
- package/src/apps/management/Billing.test.ts +29 -0
- package/src/apps/management/Billing.ts +23 -0
- package/src/apps/management/Error.ts +12 -0
- package/src/apps/management/routes/api-keys.test.ts +103 -3
- package/src/apps/management/routes/api-keys.ts +98 -10
- package/src/apps/management/routes/invitations.ts +4 -11
- package/src/apps/management/routes/orgs.ts +2 -9
- package/src/apps/management/routes/scopes.test.ts +7 -2
- package/src/apps/management/routes/scopes.ts +2 -2
- package/src/apps/management/routes/webhooks.test.ts +6 -1
- package/src/apps/management/routes/webhooks.ts +15 -3
- package/src/apps/mcp.test.ts +17 -2
- package/src/apps/mcp.ts +18 -13
- package/src/apps/metadata.ts +12 -0
- package/src/apps/mpp/App.ts +276 -29
- package/src/apps/mpp/Mpp.test.ts +631 -26
- package/src/apps/mpp/Mpp.ts +0 -42
- package/src/apps/mpp/internal/Adapter.ts +108 -3
- package/src/apps/mpp/internal/Error.test.ts +33 -0
- package/src/apps/mpp/internal/Error.ts +44 -6
- package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
- package/src/apps/mpp/internal/Idempotency.ts +59 -5
- package/src/apps/mpp/internal/Policy.test.ts +128 -0
- package/src/apps/mpp/internal/Policy.ts +98 -0
- package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
- package/src/apps/mpp/internal/ScreenManager.ts +41 -0
- package/src/apps/mpp/internal/Screening.ts +40 -3
- package/src/apps/mpp/internal/Sponsorship.ts +144 -0
- package/src/apps/mpp/internal/Utils.ts +30 -0
- package/src/apps/relay/App.test.ts +493 -62
- package/src/apps/relay/App.ts +233 -23
- package/src/apps/relay/Sponsorships.test.ts +49 -0
- package/src/apps/relay/Sponsorships.ts +18 -6
- package/src/cloudflare.ts +279 -0
- package/src/db/Db.ts +501 -0
- package/src/db/Schema.ts +349 -2
- package/src/db/tables/earnVaults.test.ts +185 -0
- package/src/db/tables/earnVaults.ts +151 -0
- package/src/db/tables/fundingCatalog.test.ts +108 -0
- package/src/db/tables/fundingCatalog.ts +157 -0
- package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
- package/src/db/tables/fundingDepositAddresses.ts +404 -0
- package/src/db/tables/fundingDepositRequestObservations.test.ts +106 -0
- package/src/db/tables/fundingDepositRequestObservations.ts +99 -0
- package/src/db/tables/fundingDeposits.test.ts +399 -0
- package/src/db/tables/fundingDeposits.ts +373 -0
- package/src/db/tables/fundingIdempotency.test.ts +182 -0
- package/src/db/tables/fundingIdempotency.ts +180 -0
- package/src/db/tables/fundingTransferEvents.ts +28 -0
- package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
- package/src/db/tables/fundingTransferTransactions.ts +37 -0
- package/src/db/tables/fundingTransfers.test.ts +89 -0
- package/src/db/tables/fundingTransfers.ts +153 -0
- package/src/db/tables/organizations.ts +16 -0
- package/src/db/tables/projects.ts +16 -0
- package/src/db/tables/requestUsage.ts +23 -0
- package/src/db/tables/sponsoredTransactions.test.ts +11 -0
- package/src/db/tables/sponsoredTransactions.ts +3 -3
- package/src/db/tables/users.ts +16 -0
- package/src/db/tables/verifiedTokens.ts +19 -14
- package/src/db/tables/webhookSubscriptions.ts +58 -3
- package/src/handlers/relay.test.ts +2 -0
- package/src/handlers/relay.ts +95 -99
- package/src/internal/Auth.test.ts +225 -5
- package/src/internal/Auth.ts +109 -20
- package/src/internal/Cache.test.ts +37 -3
- package/src/internal/Cache.ts +14 -10
- package/src/internal/Cursor.test.ts +2 -2
- package/src/internal/Cursor.ts +1 -1
- package/src/internal/EarnRates.test.ts +125 -0
- package/src/internal/EarnRates.ts +409 -0
- package/src/internal/EarnVaults.test.ts +195 -0
- package/src/internal/EarnVaults.ts +876 -0
- package/src/internal/EdgeCache.test.ts +26 -7
- package/src/internal/EdgeCache.ts +48 -9
- package/src/internal/Id.ts +14 -0
- package/src/internal/Idempotency.test.ts +109 -0
- package/src/internal/Idempotency.ts +237 -0
- package/src/internal/IpAllowlist.test.ts +52 -0
- package/src/internal/IpAllowlist.ts +39 -0
- package/src/internal/Log.test-d.ts +41 -8
- package/src/internal/Log.test.ts +196 -9
- package/src/internal/Log.ts +124 -17
- package/src/internal/MetricSink.test.ts +244 -4
- package/src/internal/MetricSink.ts +51 -1
- package/src/internal/OpenApi.ts +4 -1
- package/src/internal/Provider.test.ts +17 -0
- package/src/internal/Provider.ts +17 -0
- package/src/internal/Schema.ts +27 -17
- package/src/internal/Store.test.ts +25 -0
- package/src/internal/Store.ts +46 -0
- package/src/internal/Tidx.local.test.ts +78 -3
- package/src/internal/Tidx.test.ts +240 -18
- package/src/internal/Tidx.ts +129 -33
- package/src/internal/VerifiedTokens.test.ts +15 -0
- package/src/internal/Viem.test.ts +198 -17
- package/src/internal/Viem.ts +127 -28
- package/src/internal/WebhookDestination.ts +25 -23
- package/src/internal/Webhooks.test.ts +59 -0
- package/src/internal/Webhooks.ts +34 -10
- package/src/internal/exchange/Provider.test.ts +216 -0
- package/src/internal/exchange/Provider.ts +326 -0
- package/src/internal/exchange/index.test.ts +6 -0
- package/src/internal/exchange/index.ts +1 -0
- package/src/internal/exchange/providers/uniswap.test.ts +122 -0
- package/src/internal/exchange/providers/uniswap.ts +682 -0
- package/src/internal/funding/Action.test.ts +138 -0
- package/src/internal/funding/Action.ts +117 -0
- package/src/internal/funding/Catalog.test.ts +311 -0
- package/src/internal/funding/Catalog.ts +347 -0
- package/src/internal/funding/Chain.test.ts +79 -0
- package/src/internal/funding/Chain.ts +120 -0
- package/src/internal/funding/Deposit.test.ts +26 -0
- package/src/internal/funding/Deposit.ts +522 -0
- package/src/internal/funding/DepositAddress.test.ts +18 -0
- package/src/internal/funding/DepositAddress.ts +312 -0
- package/src/internal/funding/Evidence.test.ts +297 -0
- package/src/internal/funding/Evidence.ts +425 -0
- package/src/internal/funding/Provider.test.ts +1328 -0
- package/src/internal/funding/Provider.ts +1911 -0
- package/src/internal/funding/Reconciliation.local.test.ts +511 -0
- package/src/internal/funding/Reconciliation.test.ts +3037 -0
- package/src/internal/funding/Reconciliation.ts +1202 -0
- package/src/internal/funding/Route.test.ts +66 -0
- package/src/internal/funding/Route.ts +29 -0
- package/src/internal/funding/SourceObservation.test.ts +301 -0
- package/src/internal/funding/SourceObservation.ts +267 -0
- package/src/internal/funding/Subsidy.local.test.ts +152 -0
- package/src/internal/funding/Subsidy.test.ts +75 -0
- package/src/internal/funding/Subsidy.ts +260 -0
- package/src/internal/funding/Token.test.ts +47 -0
- package/src/internal/funding/Token.ts +59 -0
- package/src/internal/funding/Transfer.test.ts +369 -0
- package/src/internal/funding/Transfer.ts +522 -0
- package/src/internal/funding/index.test.ts +21 -0
- package/src/internal/funding/index.ts +13 -0
- package/src/internal/funding/providers/across.ts +149 -0
- package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
- package/src/internal/funding/providers/relay.test.ts +564 -0
- package/src/internal/funding/providers/relay.ts +1060 -0
- package/src/internal/funding/providers/rhino.ts +139 -0
- package/src/internal/funding/providers/squid.ts +151 -0
- package/src/internal/funding/providers/symbiosis.ts +221 -0
- package/src/internal/index.test.ts +5 -1
- package/src/internal/index.ts +5 -1
- package/src/internal/webhookDestinations/url.ts +49 -45
- package/src/providers/index.test.ts +14 -0
- package/src/providers/index.ts +54 -0
- package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
- package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
- package/dist/apps/data/FundingQuoteProviders.js +0 -775
- package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
- package/dist/apps/data/routes/funding.d.ts.map +0 -1
- package/dist/apps/data/routes/funding.js +0 -410
- package/dist/apps/data/routes/funding.js.map +0 -1
- package/dist/internal/FundingQuotes.d.ts +0 -864
- package/dist/internal/FundingQuotes.d.ts.map +0 -1
- package/dist/internal/FundingQuotes.js +0 -672
- package/dist/internal/FundingQuotes.js.map +0 -1
- package/src/apps/data/FundingQuoteProviders.ts +0 -1043
- package/src/apps/data/routes/funding.test.ts +0 -503
- package/src/apps/data/routes/funding.ts +0 -604
- package/src/internal/FundingQuotes.test.ts +0 -456
- package/src/internal/FundingQuotes.ts +0 -944
|
@@ -23,8 +23,8 @@ const volatileHeaders = [
|
|
|
23
23
|
/**
|
|
24
24
|
* Serves GET responses from the edge cache store BEFORE auth and rate-limiting
|
|
25
25
|
* run, so cache hits skip the per-request store round-trips that dominate
|
|
26
|
-
* latency
|
|
27
|
-
* auth middleware.
|
|
26
|
+
* latency. Credential-bearing requests bypass this layer so per-key policy
|
|
27
|
+
* enforcement always runs. Place this ahead of the auth middleware.
|
|
28
28
|
*
|
|
29
29
|
* Only 2xx responses from routes that opted into caching (via `Cache.response`,
|
|
30
30
|
* which publishes the `edgeCache` policy) are stored, and the policy is only
|
|
@@ -56,10 +56,16 @@ export function middleware(options = {}) {
|
|
|
56
56
|
const eligible = store !== undefined &&
|
|
57
57
|
c.req.method === 'GET' &&
|
|
58
58
|
!c.req.raw.headers.has('range') &&
|
|
59
|
-
//
|
|
60
|
-
!
|
|
59
|
+
// Credential-bearing requests must reach auth for per-key policy enforcement.
|
|
60
|
+
!hasCredential(c.req.raw) &&
|
|
61
61
|
isCacheableRoute(c);
|
|
62
|
-
const key = eligible
|
|
62
|
+
const key = eligible
|
|
63
|
+
? await routeCacheKey(c).catch(() => {
|
|
64
|
+
// Key generators may parse request input before route validation runs.
|
|
65
|
+
// Bypass caching so the validation middleware can return its response.
|
|
66
|
+
return undefined;
|
|
67
|
+
})
|
|
68
|
+
: undefined;
|
|
63
69
|
// Honor the standard request `Cache-Control` directives so a caller can
|
|
64
70
|
// refresh a stale entry on the colo serving them without any out-of-band
|
|
65
71
|
// purge: `no-cache` skips the stored hit but still re-stores the fresh
|
|
@@ -110,16 +116,25 @@ export function middleware(options = {}) {
|
|
|
110
116
|
return;
|
|
111
117
|
};
|
|
112
118
|
}
|
|
119
|
+
function hasCredential(request) {
|
|
120
|
+
return (request.headers.has('tempo-api-key') ||
|
|
121
|
+
request.headers.has('x-api-key') ||
|
|
122
|
+
request.headers.has('authorization') ||
|
|
123
|
+
new URL(request.url).searchParams.has('key'));
|
|
124
|
+
}
|
|
113
125
|
// Marks handlers whose route publishes an edge-cache policy; the middleware
|
|
114
126
|
// pays the store lookup only when a matched handler carries it.
|
|
115
127
|
const cacheableSymbol = Symbol('tempoApi.edgeCacheable');
|
|
116
128
|
const eligibility = new WeakMap();
|
|
129
|
+
const keys = new WeakMap();
|
|
117
130
|
/**
|
|
118
131
|
* Marks a route handler/middleware as publishing an edge-cache policy, so
|
|
119
132
|
* {@link middleware} looks its route up in the edge cache. `Cache.response`
|
|
120
133
|
* applies it; routes composed any other way never enter the shared cache.
|
|
121
134
|
*/
|
|
122
|
-
export function markCacheable(handler) {
|
|
135
|
+
export function markCacheable(handler, options = {}) {
|
|
136
|
+
if (options.key)
|
|
137
|
+
keys.set(handler, options.key);
|
|
123
138
|
return Object.assign(handler, { [cacheableSymbol]: true });
|
|
124
139
|
}
|
|
125
140
|
/** Adds a request eligibility check; every check must permit caching. */
|
|
@@ -141,6 +156,17 @@ function isCacheableRoute(c) {
|
|
|
141
156
|
}
|
|
142
157
|
return cacheable;
|
|
143
158
|
}
|
|
159
|
+
async function routeCacheKey(c) {
|
|
160
|
+
let requestUrl = c.req.url;
|
|
161
|
+
for (const route of matchedRoutes(c)) {
|
|
162
|
+
if (!(cacheableSymbol in route.handler))
|
|
163
|
+
continue;
|
|
164
|
+
const key = keys.get(route.handler);
|
|
165
|
+
if (key)
|
|
166
|
+
requestUrl = await key(c);
|
|
167
|
+
}
|
|
168
|
+
return cacheKey(requestUrl);
|
|
169
|
+
}
|
|
144
170
|
// Consumes `response` (callers pass a dedicated clone; the client streams the
|
|
145
171
|
// original).
|
|
146
172
|
async function serialize(response, policy) {
|
|
@@ -167,7 +193,7 @@ function serveHit(ifNoneMatch, value) {
|
|
|
167
193
|
const { body, encoding, headers, status } = JSON.parse(value);
|
|
168
194
|
const responseHeaders = new Headers(headers);
|
|
169
195
|
const etag = responseHeaders.get('etag');
|
|
170
|
-
if (
|
|
196
|
+
if (Etag.matches(etag, ifNoneMatch)) {
|
|
171
197
|
const notModified = new Headers();
|
|
172
198
|
for (const name of ['Cache-Control', 'ETag', 'Vary']) {
|
|
173
199
|
const header = responseHeaders.get(name);
|
|
@@ -213,10 +239,16 @@ function getWaitUntil(c) {
|
|
|
213
239
|
return undefined;
|
|
214
240
|
}
|
|
215
241
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
242
|
+
var Etag;
|
|
243
|
+
(function (Etag) {
|
|
244
|
+
function matches(etag, ifNoneMatch) {
|
|
245
|
+
if (!etag || !ifNoneMatch)
|
|
246
|
+
return false;
|
|
247
|
+
const strip = (tag) => tag.trim().replace(/^W\//, '');
|
|
248
|
+
return ifNoneMatch.split(',').some((tag) => strip(tag) === strip(etag));
|
|
249
|
+
}
|
|
250
|
+
Etag.matches = matches;
|
|
251
|
+
})(Etag || (Etag = {}));
|
|
220
252
|
/**
|
|
221
253
|
* Builds the shared-cache `Cache-Control` value for a stored copy: `public`
|
|
222
254
|
* with `max-age`/`s-maxage` bound to the policy plus an optional
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeCache.js","sourceRoot":"","sources":["../../src/internal/EdgeCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAwB3B,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,sDAAsD;AACtD,MAAM,eAAe,GAAG;IACtB,KAAK;IACL,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,0BAA0B;IAC1B,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,kBAAkB;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,UAAU,CACxB,OAAO,GAAuB,EAAE;IAEhC,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;QACzB,uEAAuE;QACvE,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,QAAQ,GACZ,KAAK,KAAK,SAAS;YACnB,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK;YACtB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAC/B,
|
|
1
|
+
{"version":3,"file":"EdgeCache.js","sourceRoot":"","sources":["../../src/internal/EdgeCache.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/Id.d.ts
CHANGED
|
@@ -12,4 +12,15 @@ export declare function generate(prefix: string): string;
|
|
|
12
12
|
* @returns The generated segment.
|
|
13
13
|
*/
|
|
14
14
|
export declare function random(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Generates a time-prefixed resource id (`{prefix}_{epoch ms}_{24 base62
|
|
17
|
+
* chars}`). The epoch-ms is zero-padded to 15 digits (headroom past the year
|
|
18
|
+
* 5138) so lexical id order is chronological, letting newest-first lists page
|
|
19
|
+
* by keyset on the id alone.
|
|
20
|
+
*
|
|
21
|
+
* @param prefix - The resource-type prefix (e.g. `wh`, `ftr`).
|
|
22
|
+
* @param now - The timestamp to embed.
|
|
23
|
+
* @returns The generated id.
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateSortable(prefix: string, now?: Date): string;
|
|
15
26
|
//# sourceMappingURL=Id.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Id.d.ts","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B"}
|
|
1
|
+
{"version":3,"file":"Id.d.ts","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAE/E"}
|
package/dist/internal/Id.js
CHANGED
|
@@ -19,4 +19,17 @@ export function generate(prefix) {
|
|
|
19
19
|
export function random() {
|
|
20
20
|
return segment();
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Generates a time-prefixed resource id (`{prefix}_{epoch ms}_{24 base62
|
|
24
|
+
* chars}`). The epoch-ms is zero-padded to 15 digits (headroom past the year
|
|
25
|
+
* 5138) so lexical id order is chronological, letting newest-first lists page
|
|
26
|
+
* by keyset on the id alone.
|
|
27
|
+
*
|
|
28
|
+
* @param prefix - The resource-type prefix (e.g. `wh`, `ftr`).
|
|
29
|
+
* @param now - The timestamp to embed.
|
|
30
|
+
* @returns The generated id.
|
|
31
|
+
*/
|
|
32
|
+
export function generateSortable(prefix, now = new Date()) {
|
|
33
|
+
return `${prefix}_${now.getTime().toString().padStart(15, '0')}_${random()}`;
|
|
34
|
+
}
|
|
22
35
|
//# sourceMappingURL=Id.js.map
|
package/dist/internal/Id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,uFAAuF;AACvF,MAAM,OAAO,GAAG,cAAc,CAAC,gEAAgE,EAAE,EAAE,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,OAAO,EAAE,CAAA;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"Id.js","sourceRoot":"","sources":["../../src/internal/Id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,uFAAuF;AACvF,MAAM,OAAO,GAAG,cAAc,CAAC,gEAAgE,EAAE,EAAE,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,OAAO,EAAE,CAAA;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAG,GAAS,IAAI,IAAI,EAAE;IACrE,OAAO,GAAG,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE,CAAA;AAC9E,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as Store from './Store.js';
|
|
2
|
+
/**
|
|
3
|
+
* API-level retry coordination for idempotent write endpoints, letting a
|
|
4
|
+
* caller recover a successful response after a transport timeout.
|
|
5
|
+
*
|
|
6
|
+
* A key moves from missing to pending to complete. Only the claim token may
|
|
7
|
+
* finish or release pending state, preventing an older request from
|
|
8
|
+
* overwriting a newer owner.
|
|
9
|
+
*/
|
|
10
|
+
/** Identity for one caller-supplied idempotent request. */
|
|
11
|
+
export type Identity = {
|
|
12
|
+
/** API key that submitted the request. */
|
|
13
|
+
apiKeyId: string;
|
|
14
|
+
/** Opaque caller-supplied idempotency key. */
|
|
15
|
+
idempotencyKey: string;
|
|
16
|
+
/** Hash of the request content bound to this idempotency key. */
|
|
17
|
+
inputHash: string;
|
|
18
|
+
};
|
|
19
|
+
/** Returns a stable digest without retaining request contents in durable state. */
|
|
20
|
+
export declare function inputHash(input: unknown): string;
|
|
21
|
+
/** Creates an idempotency coordinator over one durable-store key namespace. */
|
|
22
|
+
export declare function create<response>(options: create.Options): {
|
|
23
|
+
claim: (options: claim.Options) => Promise<claim.Result<response>>;
|
|
24
|
+
complete: (options: complete.Options<response>) => Promise<void>;
|
|
25
|
+
release: (options: release.Options) => Promise<void>;
|
|
26
|
+
};
|
|
27
|
+
export declare namespace create {
|
|
28
|
+
/** Coordinator configuration bound at creation. */
|
|
29
|
+
type Options = {
|
|
30
|
+
/** Durable-store key namespace (e.g. `mpp:relay:v1`). */
|
|
31
|
+
namespace: string;
|
|
32
|
+
/** How long a pending claim blocks equivalent requests, in milliseconds. */
|
|
33
|
+
pendingTtl: number;
|
|
34
|
+
/** How long a completed response replays, in milliseconds. */
|
|
35
|
+
receiptTtl: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export declare namespace claim {
|
|
39
|
+
/** Dependencies for claiming one idempotency key. */
|
|
40
|
+
type Options = {
|
|
41
|
+
/** API-key-scoped idempotency identity. */
|
|
42
|
+
identity: Identity;
|
|
43
|
+
/** Authoritative state with atomic compare-and-swap, normally a Durable Object. */
|
|
44
|
+
state: Store.State;
|
|
45
|
+
};
|
|
46
|
+
/** Outcome from attempting to claim an idempotency key. */
|
|
47
|
+
type Result<response> = {
|
|
48
|
+
token: string;
|
|
49
|
+
type: 'claimed';
|
|
50
|
+
} | {
|
|
51
|
+
type: 'mismatch';
|
|
52
|
+
} | {
|
|
53
|
+
response: response;
|
|
54
|
+
type: 'replay';
|
|
55
|
+
} | {
|
|
56
|
+
type: 'pending';
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export declare namespace complete {
|
|
60
|
+
/** Dependencies for persisting one terminal response. */
|
|
61
|
+
type Options<response> = {
|
|
62
|
+
/** API-key-scoped idempotency identity. */
|
|
63
|
+
identity: Identity;
|
|
64
|
+
/** Terminal successful response to replay. */
|
|
65
|
+
response: response;
|
|
66
|
+
/** Authoritative state with atomic compare-and-swap, normally a Durable Object. */
|
|
67
|
+
state: Store.State;
|
|
68
|
+
/** Token returned by the successful claim. */
|
|
69
|
+
token: string;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export declare namespace release {
|
|
73
|
+
/** Dependencies for releasing one idempotency claim. */
|
|
74
|
+
type Options = {
|
|
75
|
+
/** API-key-scoped idempotency identity. */
|
|
76
|
+
identity: Identity;
|
|
77
|
+
/** Authoritative state with atomic compare-and-swap, normally a Durable Object. */
|
|
78
|
+
state: Store.State;
|
|
79
|
+
/** Token returned by the successful claim. */
|
|
80
|
+
token: string;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=Idempotency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Idempotency.d.ts","sourceRoot":"","sources":["../../src/internal/Idempotency.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;;;GAOG;AAEH,2DAA2D;AAC3D,MAAM,MAAM,QAAQ,GAAG;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;qBAYxB,KAAK,CAAC,OAAO,KAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBA8B5C,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;uBA4B3C,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;EAkBhE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,mDAAmD;IACnD,KAAK,OAAO,GAAG;QACb,yDAAyD;QACzD,SAAS,EAAE,MAAM,CAAA;QACjB,4EAA4E;QAC5E,UAAU,EAAE,MAAM,CAAA;QAClB,8DAA8D;QAC9D,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,qDAAqD;IACrD,KAAK,OAAO,GAAG;QACb,2CAA2C;QAC3C,QAAQ,EAAE,QAAQ,CAAA;QAClB,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;KACnB,CAAA;IAED,2DAA2D;IAC3D,KAAK,MAAM,CAAC,QAAQ,IAChB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAClC;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GACpB;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;CACxB;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,yDAAyD;IACzD,KAAK,OAAO,CAAC,QAAQ,IAAI;QACvB,2CAA2C;QAC3C,QAAQ,EAAE,QAAQ,CAAA;QAClB,8CAA8C;QAC9C,QAAQ,EAAE,QAAQ,CAAA;QAClB,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,8CAA8C;QAC9C,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,wDAAwD;IACxD,KAAK,OAAO,GAAG;QACb,2CAA2C;QAC3C,QAAQ,EAAE,QAAQ,CAAA;QAClB,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,8CAA8C;QAC9C,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Hash, Hex } from 'ox';
|
|
2
|
+
import * as Store from './Store.js';
|
|
3
|
+
/** Returns a stable digest without retaining request contents in durable state. */
|
|
4
|
+
export function inputHash(input) {
|
|
5
|
+
return Hash.sha256(Hex.fromString(canonicalJson(input)));
|
|
6
|
+
}
|
|
7
|
+
/** Creates an idempotency coordinator over one durable-store key namespace. */
|
|
8
|
+
export function create(options) {
|
|
9
|
+
const { namespace, pendingTtl, receiptTtl } = options;
|
|
10
|
+
function keyFor(identity) {
|
|
11
|
+
// Scope keys to the authenticated API key so different tenants can reuse
|
|
12
|
+
// the same client-generated value. Hashing keeps that opaque value out of
|
|
13
|
+
// durable-store key names and enumeration output.
|
|
14
|
+
const digest = Hash.sha256(Hex.fromString(identity.idempotencyKey)).slice(2);
|
|
15
|
+
return `${namespace}:${identity.apiKeyId}:${digest}`;
|
|
16
|
+
}
|
|
17
|
+
/** Claims a request or returns its current outcome. */
|
|
18
|
+
async function claim(options) {
|
|
19
|
+
const { identity, state } = options;
|
|
20
|
+
const token = crypto.randomUUID();
|
|
21
|
+
return Store.change(state, keyFor(identity), (current) => {
|
|
22
|
+
const currentRecord = record(current);
|
|
23
|
+
// A completed request is the only cacheable terminal outcome. Failed
|
|
24
|
+
// attempts must be retried with the same input. Legacy records lack
|
|
25
|
+
// an input hash, so cannot be safely replayed.
|
|
26
|
+
if (currentRecord && currentRecord.inputHash !== identity.inputHash)
|
|
27
|
+
return { op: 'noop', result: { type: 'mismatch' } };
|
|
28
|
+
if (currentRecord?.type === 'complete')
|
|
29
|
+
return { op: 'noop', result: { response: currentRecord.response, type: 'replay' } };
|
|
30
|
+
// A parallel request must not settle the same caller operation while
|
|
31
|
+
// the first request still owns its pending claim.
|
|
32
|
+
if (currentRecord?.type === 'pending')
|
|
33
|
+
return { op: 'noop', result: { type: 'pending' } };
|
|
34
|
+
return {
|
|
35
|
+
op: 'set',
|
|
36
|
+
result: { token, type: 'claimed' },
|
|
37
|
+
value: encode({ inputHash: identity.inputHash, token, type: 'pending' }),
|
|
38
|
+
};
|
|
39
|
+
}, { ttl: pendingTtl });
|
|
40
|
+
}
|
|
41
|
+
/** Persists a successful response for an owned request claim. */
|
|
42
|
+
async function complete(options) {
|
|
43
|
+
const { identity, response, state, token } = options;
|
|
44
|
+
await Store.change(state, keyFor(identity), (current) => {
|
|
45
|
+
const currentRecord = record(current);
|
|
46
|
+
// Claim tokens fence delayed requests: a request cannot complete a
|
|
47
|
+
// claim it no longer owns after expiry or a later retry.
|
|
48
|
+
if (currentRecord?.type !== 'pending' ||
|
|
49
|
+
currentRecord.inputHash !== identity.inputHash ||
|
|
50
|
+
currentRecord.token !== token)
|
|
51
|
+
return { op: 'noop', result: undefined };
|
|
52
|
+
canonicalJson(response, 'Idempotency responses must be JSON values.');
|
|
53
|
+
return {
|
|
54
|
+
op: 'set',
|
|
55
|
+
result: undefined,
|
|
56
|
+
value: encode({ inputHash: identity.inputHash, response, type: 'complete' }),
|
|
57
|
+
};
|
|
58
|
+
}, { ttl: receiptTtl });
|
|
59
|
+
}
|
|
60
|
+
/** Releases an owned retryable request claim. */
|
|
61
|
+
async function release(options) {
|
|
62
|
+
const { identity, state, token } = options;
|
|
63
|
+
await Store.change(state, keyFor(identity), (current) => {
|
|
64
|
+
const currentRecord = record(current);
|
|
65
|
+
// Never delete a newer pending claim after this request has lost
|
|
66
|
+
// ownership through expiry and another caller has retried.
|
|
67
|
+
if (currentRecord?.type !== 'pending' ||
|
|
68
|
+
currentRecord.inputHash !== identity.inputHash ||
|
|
69
|
+
currentRecord.token !== token)
|
|
70
|
+
return { op: 'noop', result: undefined };
|
|
71
|
+
return { op: 'delete', result: undefined };
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return { claim, complete, release };
|
|
75
|
+
}
|
|
76
|
+
function encode(record) {
|
|
77
|
+
return JSON.stringify(record);
|
|
78
|
+
}
|
|
79
|
+
function canonicalJson(value, errorMessage = 'Idempotency inputs must be JSON values.') {
|
|
80
|
+
if (value === null)
|
|
81
|
+
return 'null';
|
|
82
|
+
if (typeof value === 'number' && !Number.isFinite(value))
|
|
83
|
+
throw new Error(errorMessage);
|
|
84
|
+
if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string')
|
|
85
|
+
return JSON.stringify(value);
|
|
86
|
+
if (Array.isArray(value))
|
|
87
|
+
return `[${value.map((item) => canonicalJson(item, errorMessage)).join(',')}]`;
|
|
88
|
+
if (typeof value === 'object') {
|
|
89
|
+
const record = value;
|
|
90
|
+
return `{${Object.keys(record)
|
|
91
|
+
.sort()
|
|
92
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key], errorMessage)}`)
|
|
93
|
+
.join(',')}}`;
|
|
94
|
+
}
|
|
95
|
+
throw new Error(errorMessage);
|
|
96
|
+
}
|
|
97
|
+
function record(value) {
|
|
98
|
+
if (value === null)
|
|
99
|
+
return undefined;
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(value);
|
|
102
|
+
if (!parsed || typeof parsed !== 'object')
|
|
103
|
+
return undefined;
|
|
104
|
+
const candidate = parsed;
|
|
105
|
+
if (candidate.type === 'pending' && typeof candidate.token === 'string')
|
|
106
|
+
return candidate;
|
|
107
|
+
if (candidate.type === 'complete' && candidate.response !== undefined)
|
|
108
|
+
return candidate;
|
|
109
|
+
}
|
|
110
|
+
catch { }
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=Idempotency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Idempotency.js","sourceRoot":"","sources":["../../src/internal/Idempotency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
/** Returns whether a value is an IPv4/IPv6 address or CIDR range. */
|
|
3
|
+
export declare function isRule(value: string): boolean;
|
|
4
|
+
/** Returns whether the client address matches at least one allowlist rule. */
|
|
5
|
+
export declare function allows(c: Context, options: allows.Options): Promise<boolean>;
|
|
6
|
+
export declare namespace allows {
|
|
7
|
+
/** Inputs used to check a client address. */
|
|
8
|
+
type Options = {
|
|
9
|
+
/** Trusted client IP address. */
|
|
10
|
+
address?: string | undefined;
|
|
11
|
+
/** Exact IP and CIDR rules to match. */
|
|
12
|
+
rules: readonly string[];
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=IpAllowlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpAllowlist.d.ts","sourceRoot":"","sources":["../../src/internal/IpAllowlist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,qEAAqE;AACrE,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ7C;AAED,8EAA8E;AAC9E,wBAAsB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAalF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,KAAK,OAAO,GAAG;QACb,iCAAiC;QACjC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,wCAAwC;QACxC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KACzB,CAAA;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ipRestriction } from 'hono/ip-restriction';
|
|
2
|
+
/** Returns whether a value is an IPv4/IPv6 address or CIDR range. */
|
|
3
|
+
export function isRule(value) {
|
|
4
|
+
if (value === '*' || value.trim() !== value || value.split('/').length > 2)
|
|
5
|
+
return false;
|
|
6
|
+
try {
|
|
7
|
+
ipRestriction(() => '', { allowList: [value] });
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Returns whether the client address matches at least one allowlist rule. */
|
|
15
|
+
export async function allows(c, options) {
|
|
16
|
+
const { address, rules } = options;
|
|
17
|
+
if (!address)
|
|
18
|
+
return false;
|
|
19
|
+
try {
|
|
20
|
+
const denied = await ipRestriction(() => address, { allowList: [...rules] }, () => new Response(null, { status: 403 }))(c, async () => { });
|
|
21
|
+
return denied === undefined;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=IpAllowlist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IpAllowlist.js","sourceRoot":"","sources":["../../src/internal/IpAllowlist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,qEAAqE;AACrE,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACxF,IAAI,CAAC;QACH,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,CAAU,EAAE,OAAuB;IAC9D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,GAAG,EAAE,CAAC,OAAO,EACb,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,EACzB,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAC1C,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAA;QACpB,OAAO,MAAM,KAAK,SAAS,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/dist/internal/Log.d.ts
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
import type { MiddlewareHandler } from 'hono';
|
|
2
2
|
import type { RequestIdVariables } from 'hono/request-id';
|
|
3
|
+
import type { Hex } from 'ox';
|
|
3
4
|
import * as ApiKey from '../ApiKey.js';
|
|
4
5
|
import type * as Auth from './Auth.js';
|
|
5
6
|
import type * as EdgeCache from './EdgeCache.js';
|
|
6
|
-
import type * as
|
|
7
|
+
import type * as FundingProvider from './funding/Provider.js';
|
|
7
8
|
import type * as Timing from './Timing.js';
|
|
8
9
|
/** Hono variables read by the request logger and written by other layers. */
|
|
9
10
|
export type Variables = {
|
|
11
|
+
/** Whether the original request exception was already reported. */
|
|
12
|
+
errorCaptured?: boolean | undefined;
|
|
10
13
|
/** Stable error code recorded by `Response.error` for the request log entry. */
|
|
11
14
|
errorCode?: string | undefined;
|
|
15
|
+
/** Bounded MPP relay outcome emitted by the credential routes. */
|
|
16
|
+
mpp?: Entry['mpp'] | undefined;
|
|
12
17
|
/** Bounded outcomes for funding providers attempted by the request. */
|
|
13
18
|
fundingProviderAttempts?: Entry['fundingProviderAttempts'] | undefined;
|
|
14
|
-
/**
|
|
19
|
+
/** Whether the optional funding transfer count query failed. */
|
|
20
|
+
fundingTransferCountFailed?: true | undefined;
|
|
21
|
+
/** Redacted provider failure details recorded by an upstream provider. */
|
|
15
22
|
providerFailure?: Entry['provider'] | undefined;
|
|
16
|
-
/** Redacted provider failures when multiple upstream
|
|
23
|
+
/** Redacted provider failures when multiple upstream providers fail. */
|
|
17
24
|
providerFailures?: Entry['providerFailures'] | undefined;
|
|
18
25
|
/** Bounded JSON-RPC failure metadata recorded by a composed RPC handler. */
|
|
19
26
|
rpcResponse?: Entry['rpc'] | undefined;
|
|
27
|
+
/** Bounded sponsorship rejection details recorded by the relay app. */
|
|
28
|
+
sponsorship?: Sponsorship | undefined;
|
|
20
29
|
};
|
|
21
30
|
/** Hono environment shape used by the request logger. */
|
|
22
31
|
export type Environment = {
|
|
@@ -29,10 +38,12 @@ export type Environment = {
|
|
|
29
38
|
export type Level = 'error' | 'info' | 'warn';
|
|
30
39
|
/** Redacted upstream provider failure details. */
|
|
31
40
|
export type ProviderFailure = {
|
|
41
|
+
/** Chain whose upstream request failed, when the request selected one. */
|
|
42
|
+
chainId?: number | undefined;
|
|
32
43
|
/** Stable provider error code, when one is safe to retain. */
|
|
33
44
|
code?: string | undefined;
|
|
34
45
|
/** Failure boundary that rejected the provider request. */
|
|
35
|
-
failure: 'http' | 'network' | 'payload' | 'rate_limit' | 'timeout' | 'unknown';
|
|
46
|
+
failure: 'http' | 'network' | 'payload' | 'query' | 'rate_limit' | 'timeout' | 'unknown';
|
|
36
47
|
/** Provider identifier. */
|
|
37
48
|
id: string;
|
|
38
49
|
/** Provider operation identifier. */
|
|
@@ -47,22 +58,47 @@ export type FundingProviderAttempt = {
|
|
|
47
58
|
/** Failure class, present only when the provider attempt failed. */
|
|
48
59
|
failure?: ProviderFailure['failure'] | undefined;
|
|
49
60
|
/** Provider identifier. */
|
|
50
|
-
id:
|
|
61
|
+
id: FundingProvider.ProviderId;
|
|
51
62
|
/** Stable upstream operation identifier. */
|
|
52
|
-
operation:
|
|
63
|
+
operation: FundingProvider.ProviderOperation;
|
|
53
64
|
/** Provider attempt outcome. */
|
|
54
65
|
outcome: 'available' | 'failed' | 'thin' | 'unavailable';
|
|
55
66
|
};
|
|
67
|
+
/** JSON-RPC methods that can request managed sponsorship. */
|
|
68
|
+
export type SponsorshipMethod = 'eth_fillTransaction' | 'eth_sendRawTransaction' | 'eth_sendRawTransactionSync' | 'eth_signRawTransaction';
|
|
69
|
+
/** Stable client error codes for sponsorship rejections. */
|
|
70
|
+
export type SponsorshipReason = 'api_key_forbidden' | 'api_key_required' | 'billing_past_due' | 'billing_required' | 'chain_id_unsupported' | 'fee_token_unsupported' | 'internal_error' | 'production_api_key_required' | 'spend_limit_exceeded' | 'tx_fee_limit_exceeded';
|
|
71
|
+
/** Bounded diagnostics for sponsorship rejections in one JSON-RPC request. */
|
|
72
|
+
export type Sponsorship = {
|
|
73
|
+
/** Common target chain, absent when rejected batch items disagree or are invalid. */
|
|
74
|
+
chainId?: number | undefined;
|
|
75
|
+
/** Number of internal sponsorship failures, capped at 65,535; absent when zero. */
|
|
76
|
+
internalErrors?: number | undefined;
|
|
77
|
+
/** Common sponsorship method, absent when rejected batch items use different methods. */
|
|
78
|
+
method?: SponsorshipMethod | undefined;
|
|
79
|
+
/** Sponsorship request outcome. */
|
|
80
|
+
outcome: 'rejected';
|
|
81
|
+
/** Keccak256 of the caller's raw transaction, present only for a single-request body. */
|
|
82
|
+
payloadHash?: Hex.Hex | undefined;
|
|
83
|
+
/** Common client error code, absent when rejected batch items have different codes. */
|
|
84
|
+
reason?: SponsorshipReason | undefined;
|
|
85
|
+
/** Number of sponsorship policy rejections, capped at 65,535. */
|
|
86
|
+
rejections: number;
|
|
87
|
+
};
|
|
56
88
|
/** One canonical request log entry. */
|
|
57
89
|
export type Entry = {
|
|
58
90
|
/** `'hit'` when the edge response cache served the request without reaching the origin handlers. */
|
|
59
91
|
cache?: 'hit' | undefined;
|
|
60
92
|
/** Total request duration in milliseconds. */
|
|
61
93
|
duration: number;
|
|
94
|
+
/** Whether the original request exception was already reported. */
|
|
95
|
+
errorCaptured?: boolean | undefined;
|
|
62
96
|
/** Stable error code when the response is a JSON error envelope (e.g. `not_found`, `api_key_invalid`). */
|
|
63
97
|
errorCode?: string | undefined;
|
|
64
98
|
/** Bounded funding provider attempts made while serving the request. */
|
|
65
99
|
fundingProviderAttempts?: readonly FundingProviderAttempt[] | undefined;
|
|
100
|
+
/** Whether the optional funding transfer count query failed. */
|
|
101
|
+
fundingTransferCountFailed?: true | undefined;
|
|
66
102
|
/** Log level: 5xx `error`; 4xx or JSON-RPC failure `warn`; otherwise `info`. */
|
|
67
103
|
level: Level;
|
|
68
104
|
/** Request method. */
|
|
@@ -71,6 +107,21 @@ export type Entry = {
|
|
|
71
107
|
path: string;
|
|
72
108
|
/** MPP payment reason when the request was paid per call. */
|
|
73
109
|
payment?: Auth.Payment['reason'] | undefined;
|
|
110
|
+
/** Bounded outcome for an MPP relay operation. */
|
|
111
|
+
mpp?: {
|
|
112
|
+
/** Resolved Tempo chain selected by the credential. */
|
|
113
|
+
chainId: number;
|
|
114
|
+
/** Stable relay failure code, absent when the operation succeeded. */
|
|
115
|
+
errorCode?: string | undefined;
|
|
116
|
+
/** Idempotency claim outcome for broadcast operations. */
|
|
117
|
+
idempotency?: 'claimed' | 'pending' | 'replay' | undefined;
|
|
118
|
+
/** Whether a fee payer was supplied for the credential. */
|
|
119
|
+
feePayer: boolean;
|
|
120
|
+
/** Relay route operation. */
|
|
121
|
+
operation: 'broadcast' | 'verify';
|
|
122
|
+
/** Relay operation outcome, independent of the HTTP status. */
|
|
123
|
+
outcome: 'failure' | 'success';
|
|
124
|
+
};
|
|
74
125
|
/** Caller identity. Raw API-key tokens and the super admin secret are never logged. */
|
|
75
126
|
principal?: {
|
|
76
127
|
/** Attributed super admin identity for super admin callers. */
|
|
@@ -88,9 +139,9 @@ export type Entry = {
|
|
|
88
139
|
/** Principal kind. */
|
|
89
140
|
type: 'api_key' | 'public' | 'session' | 'super_admin';
|
|
90
141
|
} | undefined;
|
|
91
|
-
/** Redacted upstream provider failure details, when
|
|
142
|
+
/** Redacted upstream provider failure details, when a provider request fails. */
|
|
92
143
|
provider?: ProviderFailure | undefined;
|
|
93
|
-
/** Redacted failures for every provider when multiple
|
|
144
|
+
/** Redacted failures for every provider when multiple providers fail. */
|
|
94
145
|
providerFailures?: readonly ProviderFailure[] | undefined;
|
|
95
146
|
/** Raw query string (no leading `?`) with API-key tokens redacted, when present. */
|
|
96
147
|
query?: string | undefined;
|
|
@@ -117,10 +168,14 @@ export type Entry = {
|
|
|
117
168
|
dataCode?: string | undefined;
|
|
118
169
|
/** Number of failed responses in the single or batch JSON-RPC response. */
|
|
119
170
|
errors: number;
|
|
171
|
+
/** Number of JSON-RPC server errors, capped at 65,535; absent when zero. */
|
|
172
|
+
serverErrors?: number | undefined;
|
|
120
173
|
};
|
|
174
|
+
/** Bounded sponsorship rejection diagnostics, without request or response bodies. */
|
|
175
|
+
sponsorship?: Sponsorship | undefined;
|
|
121
176
|
/** HTTP response status code. JSON-RPC failures retain their protocol-native `200`. */
|
|
122
177
|
status: number;
|
|
123
|
-
/**
|
|
178
|
+
/** Longest upstream operation duration per Server-Timing name, in milliseconds (e.g. RPC and TIDX calls). */
|
|
124
179
|
timings?: Record<string, number> | undefined;
|
|
125
180
|
};
|
|
126
181
|
/** Sink receiving one {@link Entry} per request. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Log.d.ts","sourceRoot":"","sources":["../../src/internal/Log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Log.d.ts","sourceRoot":"","sources":["../../src/internal/Log.ts"],"names":[],"mappings":"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"}
|