tapimo 0.4.4 → 0.5.1

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.
Files changed (229) hide show
  1. package/dist/App.d.ts +4701 -3416
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +24 -2
  4. package/dist/App.js.map +1 -1
  5. package/dist/Assets.js +3 -3
  6. package/dist/Assets.js.map +1 -1
  7. package/dist/Scope.d.ts +18 -1
  8. package/dist/Scope.d.ts.map +1 -1
  9. package/dist/Scope.js +23 -3
  10. package/dist/Scope.js.map +1 -1
  11. package/dist/Webhooks.d.ts +1 -1
  12. package/dist/Webhooks.d.ts.map +1 -1
  13. package/dist/Webhooks.js +5 -10
  14. package/dist/Webhooks.js.map +1 -1
  15. package/dist/admin/App.d.ts +6 -34
  16. package/dist/admin/App.d.ts.map +1 -1
  17. package/dist/admin/apps/api-keys.d.ts +3 -3
  18. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  19. package/dist/admin/apps/api-keys.js +4 -1
  20. package/dist/admin/apps/api-keys.js.map +1 -1
  21. package/dist/admin/apps/scopes.d.ts +6 -34
  22. package/dist/admin/apps/scopes.d.ts.map +1 -1
  23. package/dist/admin/apps/scopes.js +2 -2
  24. package/dist/admin/apps/scopes.js.map +1 -1
  25. package/dist/admin/apps/verified-tokens.d.ts +57 -57
  26. package/dist/admin/ui.generated.d.ts +1 -1
  27. package/dist/admin/ui.generated.js +33 -33
  28. package/dist/admin/ui.generated.js.map +1 -1
  29. package/dist/apps/data/App.d.ts +4574 -4277
  30. package/dist/apps/data/App.d.ts.map +1 -1
  31. package/dist/apps/data/App.js +155 -77
  32. package/dist/apps/data/App.js.map +1 -1
  33. package/dist/apps/data/FundingQuoteProviders.d.ts +109 -0
  34. package/dist/apps/data/FundingQuoteProviders.d.ts.map +1 -0
  35. package/dist/apps/data/FundingQuoteProviders.js +464 -0
  36. package/dist/apps/data/FundingQuoteProviders.js.map +1 -0
  37. package/dist/apps/data/index.d.ts +1 -1
  38. package/dist/apps/data/index.js +1 -1
  39. package/dist/apps/data/routes/activities.d.ts +26 -26
  40. package/dist/apps/data/routes/addresses.d.ts +38 -38
  41. package/dist/apps/data/routes/balances.d.ts +45 -45
  42. package/dist/apps/data/routes/balances.d.ts.map +1 -1
  43. package/dist/apps/data/routes/balances.js +67 -149
  44. package/dist/apps/data/routes/balances.js.map +1 -1
  45. package/dist/apps/data/routes/blocks.d.ts +2 -3
  46. package/dist/apps/data/routes/blocks.d.ts.map +1 -1
  47. package/dist/apps/data/routes/blocks.js +3 -5
  48. package/dist/apps/data/routes/blocks.js.map +1 -1
  49. package/dist/apps/data/routes/coingecko.d.ts +177 -176
  50. package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
  51. package/dist/apps/data/routes/coingecko.js +3 -8
  52. package/dist/apps/data/routes/coingecko.js.map +1 -1
  53. package/dist/apps/data/routes/funding.d.ts +131 -228
  54. package/dist/apps/data/routes/funding.d.ts.map +1 -1
  55. package/dist/apps/data/routes/funding.js +152 -219
  56. package/dist/apps/data/routes/funding.js.map +1 -1
  57. package/dist/apps/data/routes/indexer.d.ts +34 -34
  58. package/dist/apps/data/routes/indexer.d.ts.map +1 -1
  59. package/dist/apps/data/routes/indexer.js +9 -2
  60. package/dist/apps/data/routes/indexer.js.map +1 -1
  61. package/dist/apps/data/routes/receipts.d.ts +228 -228
  62. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  63. package/dist/apps/data/routes/rpc.js +86 -16
  64. package/dist/apps/data/routes/rpc.js.map +1 -1
  65. package/dist/apps/data/routes/tokenlist.d.ts +12 -12
  66. package/dist/apps/data/routes/verified-tokens.d.ts +5 -5
  67. package/dist/apps/data/routes/webhooks.d.ts +340 -0
  68. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  69. package/dist/apps/data/routes/webhooks.js +13 -1
  70. package/dist/apps/data/routes/webhooks.js.map +1 -1
  71. package/dist/apps/index.d.ts +1 -1
  72. package/dist/apps/index.js +1 -1
  73. package/dist/apps/management/App.d.ts +1833 -851
  74. package/dist/apps/management/App.d.ts.map +1 -1
  75. package/dist/apps/management/App.js +4 -0
  76. package/dist/apps/management/App.js.map +1 -1
  77. package/dist/apps/management/routes/api-keys.d.ts +41 -41
  78. package/dist/apps/management/routes/api-keys.js +2 -2
  79. package/dist/apps/management/routes/api-keys.js.map +1 -1
  80. package/dist/apps/management/routes/billing.d.ts +48 -48
  81. package/dist/apps/management/routes/invitations.d.ts +132 -132
  82. package/dist/apps/management/routes/invite-links.d.ts +1100 -0
  83. package/dist/apps/management/routes/invite-links.d.ts.map +1 -0
  84. package/dist/apps/management/routes/invite-links.js +411 -0
  85. package/dist/apps/management/routes/invite-links.js.map +1 -0
  86. package/dist/apps/management/routes/members.d.ts +41 -41
  87. package/dist/apps/management/routes/orgs.d.ts +92 -92
  88. package/dist/apps/management/routes/projects.d.ts +9 -9
  89. package/dist/apps/management/routes/scopes.d.ts.map +1 -1
  90. package/dist/apps/management/routes/scopes.js +2 -2
  91. package/dist/apps/management/routes/scopes.js.map +1 -1
  92. package/dist/apps/management/routes/usage.d.ts +24 -24
  93. package/dist/apps/mcp.js +2 -2
  94. package/dist/apps/mcp.js.map +1 -1
  95. package/dist/apps/relay/App.d.ts +2 -2
  96. package/dist/apps/relay/App.d.ts.map +1 -1
  97. package/dist/apps/relay/App.js +44 -6
  98. package/dist/apps/relay/App.js.map +1 -1
  99. package/dist/db/Db.d.ts +3 -0
  100. package/dist/db/Db.d.ts.map +1 -1
  101. package/dist/db/Db.js +57 -0
  102. package/dist/db/Db.js.map +1 -1
  103. package/dist/db/Schema.d.ts +31 -0
  104. package/dist/db/Schema.d.ts.map +1 -1
  105. package/dist/db/Schema.js +31 -0
  106. package/dist/db/Schema.js.map +1 -1
  107. package/dist/db/tables/inviteLinks.d.ts +42 -0
  108. package/dist/db/tables/inviteLinks.d.ts.map +1 -0
  109. package/dist/db/tables/inviteLinks.js +148 -0
  110. package/dist/db/tables/inviteLinks.js.map +1 -0
  111. package/dist/db/tables/organizations.d.ts.map +1 -1
  112. package/dist/db/tables/organizations.js +2 -0
  113. package/dist/db/tables/organizations.js.map +1 -1
  114. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  115. package/dist/db/tables/sponsoredTransactions.js +6 -2
  116. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  117. package/dist/handlers/relay.d.ts.map +1 -1
  118. package/dist/handlers/relay.js +13 -3
  119. package/dist/handlers/relay.js.map +1 -1
  120. package/dist/internal/Auth.d.ts +9 -1
  121. package/dist/internal/Auth.d.ts.map +1 -1
  122. package/dist/internal/Auth.js +138 -10
  123. package/dist/internal/Auth.js.map +1 -1
  124. package/dist/internal/EdgeCache.d.ts +3 -1
  125. package/dist/internal/EdgeCache.d.ts.map +1 -1
  126. package/dist/internal/EdgeCache.js +17 -2
  127. package/dist/internal/EdgeCache.js.map +1 -1
  128. package/dist/internal/{FundingRoutes.d.ts → FundingQuotes.d.ts} +240 -369
  129. package/dist/internal/FundingQuotes.d.ts.map +1 -0
  130. package/dist/internal/{FundingRoutes.js → FundingQuotes.js} +144 -183
  131. package/dist/internal/FundingQuotes.js.map +1 -0
  132. package/dist/internal/Log.d.ts +18 -12
  133. package/dist/internal/Log.d.ts.map +1 -1
  134. package/dist/internal/Log.js +2 -0
  135. package/dist/internal/Log.js.map +1 -1
  136. package/dist/internal/Tidx.d.ts +9 -3
  137. package/dist/internal/Tidx.d.ts.map +1 -1
  138. package/dist/internal/Tidx.js +13 -7
  139. package/dist/internal/Tidx.js.map +1 -1
  140. package/dist/internal/Viem.d.ts +17 -2
  141. package/dist/internal/Viem.d.ts.map +1 -1
  142. package/dist/internal/Viem.js +30 -3
  143. package/dist/internal/Viem.js.map +1 -1
  144. package/dist/internal/index.d.ts +1 -1
  145. package/dist/internal/index.js +1 -1
  146. package/package.json +2 -2
  147. package/src/ApiKeys.test.ts +25 -0
  148. package/src/App.test-d.ts +2 -0
  149. package/src/App.test.ts +13 -2
  150. package/src/App.ts +37 -5
  151. package/src/Assets.ts +3 -3
  152. package/src/Client.test-d.ts +21 -11
  153. package/src/Scope.test.ts +1 -0
  154. package/src/Scope.ts +32 -4
  155. package/src/Webhooks.ts +5 -10
  156. package/src/admin/apps/api-keys.test.ts +27 -0
  157. package/src/admin/apps/api-keys.ts +8 -1
  158. package/src/admin/apps/scopes.test.ts +7 -2
  159. package/src/admin/apps/scopes.ts +2 -2
  160. package/src/admin/ui/src/components/Dialog.tsx +8 -2
  161. package/src/admin/ui/src/lib/scopes.test.ts +19 -0
  162. package/src/admin/ui/src/lib/scopes.ts +12 -0
  163. package/src/admin/ui/src/routes/api-keys.tsx +128 -27
  164. package/src/admin/ui.generated.ts +33 -33
  165. package/src/apps/composition.test.ts +77 -0
  166. package/src/apps/data/App.test.ts +354 -0
  167. package/src/apps/data/App.ts +178 -91
  168. package/src/apps/data/FundingQuoteProviders.test.ts +577 -0
  169. package/src/apps/data/FundingQuoteProviders.ts +633 -0
  170. package/src/apps/data/index.ts +1 -1
  171. package/src/apps/data/routes/balances.test.ts +64 -18
  172. package/src/apps/data/routes/balances.ts +76 -177
  173. package/src/apps/data/routes/blocks.ts +3 -5
  174. package/src/apps/data/routes/coingecko.ts +3 -8
  175. package/src/apps/data/routes/funding.test.ts +304 -192
  176. package/src/apps/data/routes/funding.ts +166 -286
  177. package/src/apps/data/routes/indexer.test.ts +173 -15
  178. package/src/apps/data/routes/indexer.ts +8 -2
  179. package/src/apps/data/routes/rpc.test.ts +219 -0
  180. package/src/apps/data/routes/rpc.ts +92 -17
  181. package/src/apps/data/routes/webhooks.test.ts +21 -0
  182. package/src/apps/data/routes/webhooks.ts +13 -1
  183. package/src/apps/index.ts +1 -1
  184. package/src/apps/management/App.ts +4 -0
  185. package/src/apps/management/Billing.test.ts +2 -2
  186. package/src/apps/management/routes/api-keys.test.ts +47 -3
  187. package/src/apps/management/routes/api-keys.ts +2 -2
  188. package/src/apps/management/routes/invite-links.test.ts +385 -0
  189. package/src/apps/management/routes/invite-links.ts +570 -0
  190. package/src/apps/management/routes/scopes.test.ts +3 -2
  191. package/src/apps/management/routes/scopes.ts +4 -2
  192. package/src/apps/mcp.test.ts +18 -0
  193. package/src/apps/mcp.ts +2 -2
  194. package/src/apps/relay/App.test.ts +328 -7
  195. package/src/apps/relay/App.ts +42 -6
  196. package/src/apps/relay/Sponsorships.test.ts +2 -2
  197. package/src/db/Db.test.ts +5 -5
  198. package/src/db/Db.ts +65 -0
  199. package/src/db/Schema.ts +39 -0
  200. package/src/db/tables/billingSettings.test.ts +2 -2
  201. package/src/db/tables/inviteLinks.ts +187 -0
  202. package/src/db/tables/organizations.test.ts +2 -2
  203. package/src/db/tables/organizations.ts +2 -0
  204. package/src/db/tables/sponsoredTransactions.test.ts +19 -2
  205. package/src/db/tables/sponsoredTransactions.ts +21 -14
  206. package/src/db/tables/stripeCustomers.test.ts +2 -2
  207. package/src/handlers/relay.ts +16 -4
  208. package/src/internal/Auth.test.ts +132 -22
  209. package/src/internal/Auth.ts +181 -14
  210. package/src/internal/EdgeCache.test.ts +24 -3
  211. package/src/internal/EdgeCache.ts +18 -2
  212. package/src/internal/FundingQuotes.test.ts +268 -0
  213. package/src/internal/{FundingRoutes.ts → FundingQuotes.ts} +216 -277
  214. package/src/internal/Log.ts +21 -14
  215. package/src/internal/Tidx.test.ts +48 -0
  216. package/src/internal/Tidx.ts +21 -7
  217. package/src/internal/Viem.test.ts +46 -0
  218. package/src/internal/Viem.ts +48 -6
  219. package/src/internal/index.test.ts +1 -1
  220. package/src/internal/index.ts +1 -1
  221. package/dist/apps/data/FundingRouteProviders.d.ts +0 -36
  222. package/dist/apps/data/FundingRouteProviders.d.ts.map +0 -1
  223. package/dist/apps/data/FundingRouteProviders.js +0 -245
  224. package/dist/apps/data/FundingRouteProviders.js.map +0 -1
  225. package/dist/internal/FundingRoutes.d.ts.map +0 -1
  226. package/dist/internal/FundingRoutes.js.map +0 -1
  227. package/src/apps/data/FundingRouteProviders.test.ts +0 -225
  228. package/src/apps/data/FundingRouteProviders.ts +0 -312
  229. package/src/internal/FundingRoutes.test.ts +0 -213
@@ -26,6 +26,7 @@ export function middleware(options = {}) {
26
26
  const principal = c.get('principal');
27
27
  const errorCode = c.get('errorCode');
28
28
  const provider = c.get('providerFailure');
29
+ const providerFailures = c.get('providerFailures');
29
30
  // The `request` total metric duplicates `duration` (measured here, one
30
31
  // layer further out), so only operation timings are kept.
31
32
  const metrics = c.get('serverTiming')?.filter((metric) => metric.name !== 'request');
@@ -72,6 +73,7 @@ export function middleware(options = {}) {
72
73
  },
73
74
  }),
74
75
  ...(provider === undefined ? {} : { provider }),
76
+ ...(providerFailures === undefined ? {} : { providerFailures }),
75
77
  ...(query ? { query } : {}),
76
78
  ...(rateLimit === undefined ? {} : { rateLimit }),
77
79
  requestId: c.get('requestId'),
@@ -1 +1 @@
1
- {"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/internal/Log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/internal/Log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AA8GtC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,OAAO,GAAuB,EAAE;IAEhC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;IAC/B,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,MAAM,IAAI,EAAE,CAAA;QACZ,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;QAE1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAA;QAC3B,wEAAwE;QACxE,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAoB,CAA+B,CAAA;QAC3E,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAoB,CAAuB,CAAA;QACnE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,iBAA0B,CAAsB,CAAA;QACvE,MAAM,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,kBAA2B,CAA8B,CAAA;QAExF,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,OAAO,GAAI,CAAC,CAAC,GAAG,CAAC,cAAuB,CAAiC,EAAE,MAAM,CACrF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CACtC,CAAA;QACD,MAAM,OAAO,GAAG,OAAO,EAAE,MAAM;YAC7B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpF,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAClD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;YAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAClD,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,SAAS,CAAA;YAC1D,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC5B,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;aACrC,CAAA;QACH,CAAC,CAAC,EAAE,CAAA;QAEJ,MAAM,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,iBAA0B,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;YACzB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAChE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;YACpB,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,GAAG,CAAC,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClF,GAAG,CAAC,SAAS,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,SAAS,EAAE;wBACT,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvE,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;4BAC9B,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE;4BAC5D,CAAC,CAAC,EAAE,CAAC;wBACP,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/E,EAAE,EAAE,SAAS,CAAC,EAAE;wBAChB,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;4BACnE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE;4BACpC,CAAC,CAAC,EAAE,CAAC;wBACP,IAAI,EAAE,SAAS,CAAC,IAAI;qBACrB;iBACF,CAAC;YACN,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC/C,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;YAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,WAAoB,CAAW;YAChD,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS;YACtB,MAAM;YACN,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAC9C,CAAC,CAAA;QAEF,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAA;YACxF,wEAAwE;YACxE,yEAAyE;YACzE,4EAA4E;YAC5E,IAAI,CAAC;gBACH,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,OAAO,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAUD;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,KAAY;IAC/B,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC5C,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC;AAED,qEAAqE;AACrE,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAW,CAAA;AAExD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAU;IACrC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAM;QACjD,IAAI,CAAC,KAAK,CAAC,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;AACpC,CAAC"}
@@ -20,8 +20,8 @@ export type UrlResolver = (chainId: Viem.ChainId) => string | undefined;
20
20
  * receives a {@link Viem.resolve.Context} (`chainId` plus the request
21
21
  * `principal`), so callers can route traffic per caller — e.g. send anonymous
22
22
  * (`principal.type === 'public'`) traffic to a separate, no-auth indexer. A
23
- * missing `baseUrl` falls back to the built-in public host map ({@link url}); a
24
- * missing `basicAuth` means no Basic auth is sent.
23
+ * missing `baseUrl` falls back to the built-in public host map ({@link url});
24
+ * missing auth fields send no Authorization header.
25
25
  */
26
26
  export declare function resolve(tidx: getClient.Tidx | undefined, context: Viem.resolve.Context): resolve.Resolved;
27
27
  export declare namespace resolve {
@@ -35,6 +35,8 @@ export declare namespace resolve {
35
35
  baseUrl: string | undefined;
36
36
  /** Basic auth credentials, or undefined to send no Basic auth. */
37
37
  basicAuth?: string | undefined;
38
+ /** Bearer auth credential, or undefined to send no Bearer auth. */
39
+ bearerAuth?: string | undefined;
38
40
  };
39
41
  }
40
42
  export declare function getClient(options: getClient.Options): Client;
@@ -45,7 +47,7 @@ export declare function getClient(options: getClient.Options): Client;
45
47
  * output (`baseUrl` + `basicAuth` + `chainId`), not the principal, so a resolver
46
48
  * `tidx` may branch on any principal field while client cardinality stays
47
49
  * bounded by the number of distinct upstreams — callers that resolve to the same
48
- * upstream share a client. Shared by `App.create` (per-request reads) and
50
+ * upstream share a client. Shared by `data()` (per-request reads) and
49
51
  * `Webhooks.createPoller` (the scheduled poller) so the resolver logic lives in
50
52
  * one place.
51
53
  */
@@ -101,11 +103,15 @@ export declare namespace getClient {
101
103
  baseUrl?: UrlResolver | string | undefined;
102
104
  /** Basic auth credentials for TIDX requests. */
103
105
  basicAuth?: string | undefined;
106
+ /** Bearer auth credential for TIDX requests. */
107
+ bearerAuth?: string | undefined;
104
108
  } | ((context: Viem.resolve.Context) => {
105
109
  /** TIDX base URL to use; falls back to the built-in public host when omitted. */
106
110
  baseUrl?: string | undefined;
107
111
  /** Basic auth credentials for TIDX requests, or undefined for none. */
108
112
  basicAuth?: string | undefined;
113
+ /** Bearer auth credential for TIDX requests, or undefined for none. */
114
+ bearerAuth?: string | undefined;
109
115
  });
110
116
  }
111
117
  export declare namespace createGetClient {
@@ -1 +1 @@
1
- {"version":3,"file":"Tidx.d.ts","sourceRoot":"","sources":["../../src/internal/Tidx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,8CAA8C;AAC9C,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtC,CAAA;AAED,yBAAyB;AACzB,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAA;AAE9B,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,MAAM,CAAA;AAE7F;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,SAAS,CAAA;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,EAChC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,GAC5B,OAAO,CAAC,QAAQ,CAQlB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,iDAAiD;IACjD,KAAK,QAAQ,GAAG;QACd;;;;WAIG;QACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,kEAAkE;QAClE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAA;CACF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAI5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,eAAe,CAAC,OAAY,GAAG,SAAS,CAgBhF;AA6BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAEnC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBzD;AAqBD,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,+CAA+C;IAC/C,KAAK,OAAO,GAAG;QACb,sBAAsB;QACtB,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QAClC,6EAA6E;QAC7E,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAA;QAC7C,iCAAiC;QACjC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;KACxB,CAAA;IAED;;;;;OAKG;IACH,KAAK,IAAI,GACL;QACE,6EAA6E;QAC7E,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;QAC1C,gDAAgD;QAChD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,GACD,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK;QAClC,iFAAiF;QACjF,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,uEAAuE;QACvE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAC,CAAA;CACP;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,4DAA4D;IAC5D,KAAK,OAAO,GAAG;QACb,mDAAmD;QACnD,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACzC,qEAAqE;QACrE,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAA;KAClC,CAAA;CACF"}
1
+ {"version":3,"file":"Tidx.d.ts","sourceRoot":"","sources":["../../src/internal/Tidx.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,8 @@ export const url = {
12
12
  * receives a {@link Viem.resolve.Context} (`chainId` plus the request
13
13
  * `principal`), so callers can route traffic per caller — e.g. send anonymous
14
14
  * (`principal.type === 'public'`) traffic to a separate, no-auth indexer. A
15
- * missing `baseUrl` falls back to the built-in public host map ({@link url}); a
16
- * missing `basicAuth` means no Basic auth is sent.
15
+ * missing `baseUrl` falls back to the built-in public host map ({@link url});
16
+ * missing auth fields send no Authorization header.
17
17
  */
18
18
  export function resolve(tidx, context) {
19
19
  const config = typeof tidx === 'function' ? tidx(context) : tidx;
@@ -21,12 +21,18 @@ export function resolve(tidx, context) {
21
21
  baseUrl: (typeof config?.baseUrl === 'function' ? config.baseUrl(context.chainId) : config?.baseUrl) ??
22
22
  url[context.chainId],
23
23
  basicAuth: config?.basicAuth,
24
+ ...(config?.bearerAuth ? { bearerAuth: config.bearerAuth } : {}),
24
25
  };
25
26
  }
26
27
  export function getClient(options) {
27
28
  const { chainId = Viem.defaultChainId, principal = null, tidx } = options;
28
- const { baseUrl, basicAuth } = resolve(tidx, { chainId, principal });
29
- return withTransientRetry(Tidx.create({ baseUrl, basicAuth, chainId }));
29
+ const { baseUrl, basicAuth, bearerAuth } = resolve(tidx, { chainId, principal });
30
+ return withTransientRetry(Tidx.create({
31
+ baseUrl,
32
+ basicAuth,
33
+ bearerAuth,
34
+ chainId,
35
+ }));
30
36
  }
31
37
  /**
32
38
  * Builds a memoized {@link GetClient} that constructs one TIDX client per
@@ -35,7 +41,7 @@ export function getClient(options) {
35
41
  * output (`baseUrl` + `basicAuth` + `chainId`), not the principal, so a resolver
36
42
  * `tidx` may branch on any principal field while client cardinality stays
37
43
  * bounded by the number of distinct upstreams — callers that resolve to the same
38
- * upstream share a client. Shared by `App.create` (per-request reads) and
44
+ * upstream share a client. Shared by `data()` (per-request reads) and
39
45
  * `Webhooks.createPoller` (the scheduled poller) so the resolver logic lives in
40
46
  * one place.
41
47
  */
@@ -45,8 +51,8 @@ export function createGetClient(options = {}) {
45
51
  return (chainId = defaultChainId, principal = null) => {
46
52
  // Resolve to derive the cache key; `getClient` re-resolves to build the
47
53
  // client on a miss. `resolve` is pure and cheap, so the extra call is free.
48
- const { baseUrl, basicAuth } = resolve(tidx, { chainId, principal });
49
- const cacheKey = `${baseUrl}|${basicAuth ?? ''}|${chainId}`;
54
+ const { baseUrl, basicAuth, bearerAuth } = resolve(tidx, { chainId, principal });
55
+ const cacheKey = `${baseUrl}|${basicAuth ?? ''}|${bearerAuth ?? ''}|${chainId}`;
50
56
  const existing = clients.get(cacheKey);
51
57
  if (existing)
52
58
  return existing;
@@ -1 +1 @@
1
- {"version":3,"file":"Tidx.js","sourceRoot":"","sources":["../../src/internal/Tidx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tidx.js","sourceRoot":"","sources":["../../src/internal/Tidx.ts"],"names":[],"mappings":"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"}
@@ -518,7 +518,7 @@ export declare const chains: ({
518
518
  prepareTransactionRequest: [(r: import("viem").PrepareTransactionRequestParameters, { client, phase }: {
519
519
  client: import("viem").Client;
520
520
  phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
521
- }) => Promise<import("viem").PrepareTransactionRequestParameters<import("viem").Chain | undefined, import("viem").Account | undefined, import("viem").Chain | undefined, `0x${string}` | import("viem").Account | undefined, import("viem").PrepareTransactionRequestRequest<import("viem").Chain | undefined, import("viem").Chain | undefined, import("viem").Chain | undefined>>>, {
521
+ }) => Promise<import("viem").PrepareTransactionRequestParameters>, {
522
522
  readonly runAt: readonly ["beforeFillTransaction", "afterFillParameters"];
523
523
  }];
524
524
  serializers: {
@@ -2102,7 +2102,7 @@ export type UrlResolver = (chainId: ChainId) => string | undefined;
2102
2102
  * webhook poller). A missing `url` falls back to the built-in public host map
2103
2103
  * ({@link url}); a missing `basicAuth` means no Basic auth is sent.
2104
2104
  *
2105
- * Memoization is keyed on the resolved output (see `App.create` and
2105
+ * Memoization is keyed on the resolved output (see {@link createGetClient} and
2106
2106
  * {@link Tidx.createGetClient}), not the context, so a resolver may branch on
2107
2107
  * any principal field without unbounded client cardinality: callers that
2108
2108
  * resolve to the same upstream share a client. Pass the result to
@@ -2134,6 +2134,19 @@ export declare namespace resolve {
2134
2134
  };
2135
2135
  }
2136
2136
  export declare function getClient(options: getClient.Options): getClient.ReturnType;
2137
+ /** Builds a memoized Tempo client resolver. */
2138
+ export declare function createGetClient(options?: createGetClient.Options): createGetClient.ReturnType;
2139
+ export declare namespace createGetClient {
2140
+ /** Options for building a memoized Tempo client resolver. */
2141
+ type Options = {
2142
+ /** Tempo chain id used when a caller omits one. */
2143
+ defaultChainId?: ChainId | undefined;
2144
+ /** Tempo RPC options applied to every constructed client. */
2145
+ rpc?: getClient.Rpc | undefined;
2146
+ };
2147
+ /** Memoized Tempo client resolver. */
2148
+ type ReturnType = (chainId?: ChainId, principal?: Auth.Principal | null) => getClient.ReturnType;
2149
+ }
2137
2150
  export declare namespace getClient {
2138
2151
  /** Tempo viem client with public and Tempo action helpers. */
2139
2152
  type ReturnType = core_Client<HttpTransport, Chain, undefined, undefined, Omit<PublicActions<HttpTransport, Chain, undefined>, 'token'> & TempoActions<Chain, undefined>>;
@@ -2145,6 +2158,8 @@ export declare namespace getClient {
2145
2158
  principal?: Auth.Principal | null | undefined;
2146
2159
  /** Tempo RPC options. */
2147
2160
  rpc?: Rpc | undefined;
2161
+ /** Zone authorization token forwarded to the RPC node. */
2162
+ zoneToken?: string | undefined;
2148
2163
  };
2149
2164
  /**
2150
2165
  * Tempo RPC options: either a static config, or a per-request resolver
@@ -1 +1 @@
1
- {"version":3,"file":"Viem.d.ts","sourceRoot":"","sources":["../../src/internal/Viem.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAA;AAC9D,OAAO,KAAK,KAAK,CAAC,MAAM,UAAU,CAAA;AAElC,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,4DAA4D;AAC5D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA+B,CAAA;AAElD,wCAAwC;AACxC,eAAO,MAAM,OAAO;aAClB,OAAO;aACP,OAAO;CACC,CAAA;AAEV,8BAA8B;AAC9B,eAAO,MAAM,cAAc,MAAkB,CAAA;AAE7C,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED,gDAAgD;AAChD,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtC,CAAA;AAED,sBAAsB;AACtB,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AAErD,yDAAyD;AACzD,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,YAAY,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAA;AAErE,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,SAAS,CAAC,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAA;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,SAAS,CAAC,GAAG,GAAG,SAAS,EAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,QAAQ,CAQlB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,OAAO,GAAG;QACb,sBAAsB;QACtB,OAAO,EAAE,OAAO,CAAA;QAChB;;;;WAIG;QACH,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;KACjC,CAAA;IAED,gDAAgD;IAChD,KAAK,QAAQ,GAAG;QACd,kEAAkE;QAClE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B;;;;WAIG;QACH,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KACxB,CAAA;CACF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,CAmB1E;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,8DAA8D;IAC9D,KAAK,UAAU,GAAG,WAAW,CAC3B,aAAa,EACb,KAAK,EACL,SAAS,EACT,SAAS,EAET,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAC/F,CAAA;IAED,+CAA+C;IAC/C,KAAK,OAAO,GAAG;QACb,sBAAsB;QACtB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,6EAA6E;QAC7E,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAA;QAC7C,yBAAyB;QACzB,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;KACtB,CAAA;IAED;;;;OAIG;IACH,KAAK,GAAG,GACJ;QACE,+CAA+C;QAC/C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,iDAAiD;QACjD,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KAC9B,GACD,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK;QAC7B,sEAAsE;QACtE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,2EAA2E;QAC3E,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAC,CAAA;CACP"}
1
+ {"version":3,"file":"Viem.d.ts","sourceRoot":"","sources":["../../src/internal/Viem.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAA;AAC9D,OAAO,KAAK,KAAK,CAAC,MAAM,UAAU,CAAA;AAElC,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,4DAA4D;AAC5D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA+B,CAAA;AAElD,w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"}
@@ -1,3 +1,4 @@
1
+ import { ZoneRpcAuthentication } from 'ox/tempo';
1
2
  import { createClient, http, publicActions } from 'viem';
2
3
  import { tempoActions } from 'viem/tempo';
3
4
  import { tempoMainnet, tempoTestnet } from 'viem/tempo/chains';
@@ -30,7 +31,7 @@ export const url = {
30
31
  * webhook poller). A missing `url` falls back to the built-in public host map
31
32
  * ({@link url}); a missing `basicAuth` means no Basic auth is sent.
32
33
  *
33
- * Memoization is keyed on the resolved output (see `App.create` and
34
+ * Memoization is keyed on the resolved output (see {@link createGetClient} and
34
35
  * {@link Tidx.createGetClient}), not the context, so a resolver may branch on
35
36
  * any principal field without unbounded client cardinality: callers that
36
37
  * resolve to the same upstream share a client. Pass the result to
@@ -45,8 +46,16 @@ export function resolve(rpc, context) {
45
46
  };
46
47
  }
47
48
  export function getClient(options) {
48
- const { chainId = defaultChainId, principal = null, rpc } = options;
49
+ const { chainId = defaultChainId, principal = null, rpc, zoneToken } = options;
49
50
  const { basicAuth, url: rpcUrl } = resolve(rpc, { chainId, principal });
51
+ const fetchOptions = basicAuth || zoneToken
52
+ ? {
53
+ headers: {
54
+ ...(basicAuth ? { Authorization: `Basic ${btoa(basicAuth)}` } : {}),
55
+ ...(zoneToken ? { [ZoneRpcAuthentication.headerName]: zoneToken } : {}),
56
+ },
57
+ }
58
+ : undefined;
50
59
  return createClient({
51
60
  // Auto-batch `eth_call`s within the same macrotask into a single
52
61
  // deployless multicall. Lets call sites issue `Promise.all` of N reads
@@ -55,9 +64,27 @@ export function getClient(options) {
55
64
  // configure a deployed multicall3, can still serve the aggregated call.
56
65
  batch: { multicall: { deployless: true } },
57
66
  chain: { ...tempoMainnet, id: chainId },
58
- transport: http(rpcUrl, basicAuth ? { fetchOptions: { headers: { Authorization: `Basic ${btoa(basicAuth)}` } } } : {}),
67
+ transport: http(rpcUrl, fetchOptions ? { fetchOptions } : {}),
59
68
  })
60
69
  .extend(publicActions)
61
70
  .extend(tempoActions());
62
71
  }
72
+ /** Builds a memoized Tempo client resolver. */
73
+ export function createGetClient(options = {}) {
74
+ const { defaultChainId: defaultChainId_option = defaultChainId, rpc } = options;
75
+ const clients = new Map();
76
+ return (chainId = defaultChainId_option, principal = null) => {
77
+ const { basicAuth, url } = resolve(rpc, { chainId, principal });
78
+ const cacheKey = JSON.stringify([url, basicAuth, chainId]);
79
+ const existing = clients.get(cacheKey);
80
+ if (existing)
81
+ return existing;
82
+ const client = getClient({
83
+ chainId,
84
+ rpc: { basicAuth, url: () => url },
85
+ });
86
+ clients.set(cacheKey, client);
87
+ return client;
88
+ };
89
+ }
63
90
  //# sourceMappingURL=Viem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viem.js","sourceRoot":"","sources":["../../src/internal/Viem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAM9D,4DAA4D;AAC5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;AAElD,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,YAAY,CAAC,EAAE;IACxB,OAAO,EAAE,YAAY,CAAC,EAAE;CAChB,CAAA;AAEV,8BAA8B;AAC9B,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAA;AAE7C,2CAA2C;AAC3C,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAA;AAC/B,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,GAAG,GAA2B;IACzC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,uBAAuB;IAC1C,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,+BAA+B;CACnD,CAAA;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,OAAO,CACrB,GAA8B,EAC9B,OAAwB;IAExB,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC7D,OAAO;QACL,SAAS,EAAE,MAAM,EAAE,SAAS;QAC5B,GAAG,EACD,CAAC,OAAO,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;YAC/E,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;KACvB,CAAA;AACH,CAAC;AA4BD,MAAM,UAAU,SAAS,CAAC,OAA0B;IAClD,MAAM,EAAE,OAAO,GAAG,cAAc,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACnE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IAEvE,OAAO,YAAY,CAAC;QAClB,iEAAiE;QACjE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,wEAAwE;QACxE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;QAC1C,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE;QACvC,SAAS,EAAE,IAAI,CACb,MAAM,EACN,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAC9F;KACF,CAAC;SACC,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"Viem.js","sourceRoot":"","sources":["../../src/internal/Viem.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export * as Cursor from './Cursor.js';
4
4
  export * as EdgeCache from './EdgeCache.js';
5
5
  export * as Errors from './Errors.js';
6
6
  export * as Fees from './Fees.js';
7
- export * as FundingRoutes from './FundingRoutes.js';
7
+ export * as FundingQuotes from './FundingQuotes.js';
8
8
  export * as Id from './Id.js';
9
9
  export * as Log from './Log.js';
10
10
  export * as MetricSink from './MetricSink.js';
@@ -4,7 +4,7 @@ export * as Cursor from './Cursor.js';
4
4
  export * as EdgeCache from './EdgeCache.js';
5
5
  export * as Errors from './Errors.js';
6
6
  export * as Fees from './Fees.js';
7
- export * as FundingRoutes from './FundingRoutes.js';
7
+ export * as FundingQuotes from './FundingQuotes.js';
8
8
  export * as Id from './Id.js';
9
9
  export * as Log from './Log.js';
10
10
  export * as MetricSink from './MetricSink.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tapimo",
3
3
  "type": "module",
4
- "version": "0.4.4",
4
+ "version": "0.5.1",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "bin": {
@@ -26,7 +26,7 @@
26
26
  "ox": "0.14.30",
27
27
  "pg": "^8.22.0",
28
28
  "stripe": "^19.1.0",
29
- "tidx.ts": "^0.1.1",
29
+ "tidx.ts": "^0.1.2",
30
30
  "viem": "2.54.6",
31
31
  "vocs": "^2.3.3",
32
32
  "zod": "^4.4.3"
@@ -97,6 +97,31 @@ describe('mint', () => {
97
97
  ApiKeys.mint(Store.memory(), { orgId: 'org_a', scopes: ['totally:made-up' as never] }),
98
98
  ).rejects.toThrowError(/invalid API key input/)
99
99
  })
100
+
101
+ test('mints a per-zone read scope', async () => {
102
+ const state = Store.memory()
103
+ const { token } = await ApiKeys.mint(state, {
104
+ orgId: 'org_a',
105
+ scopes: ['zone:421700001:read'],
106
+ })
107
+ const resolved = await ApiKeys.resolve(state, token)
108
+ expect(resolved?.scopes).toEqual(['zone:421700001:read'])
109
+ })
110
+
111
+ test('rejects malformed zone scopes', async () => {
112
+ for (const scope of [
113
+ 'zone::read',
114
+ 'zone:abc:read',
115
+ 'zone:1.5:read',
116
+ 'zone:-1:read',
117
+ 'zone:0:read',
118
+ 'zone:000421700001:read',
119
+ 'zone:1:write',
120
+ ])
121
+ await expect(
122
+ ApiKeys.mint(Store.memory(), { orgId: 'org_a', scopes: [scope as never] }),
123
+ ).rejects.toThrowError(/invalid API key input/)
124
+ })
100
125
  })
101
126
 
102
127
  describe('list', () => {
package/src/App.test-d.ts CHANGED
@@ -17,7 +17,9 @@ describe('App.Endpoint', () => {
17
17
 
18
18
  expectTypeOf<'GET /v1/bogus'>().not.toExtend<App.Endpoint>()
19
19
  // The mounted routes are GET-only; other verbs must not appear.
20
+ expectTypeOf<'POST /v1/indexer/query'>().not.toExtend<App.Endpoint>()
20
21
  expectTypeOf<'POST /v1/tokens'>().not.toExtend<App.Endpoint>()
22
+ expectTypeOf<'POST /v1/tokens/:token'>().not.toExtend<App.Endpoint>()
21
23
  expectTypeOf<'DELETE /v1/tokens/:token'>().not.toExtend<App.Endpoint>()
22
24
  })
23
25
 
package/src/App.test.ts CHANGED
@@ -74,6 +74,18 @@ describe('create', () => {
74
74
  `)
75
75
  })
76
76
 
77
+ test('ignores client-supplied request ids', async () => {
78
+ const entries: Log.Entry[] = []
79
+ const app = TestApp.create({ logger: (entry) => void entries.push(entry) })
80
+ const response = await app.request('/health', {
81
+ headers: { 'tempo-request-id': 'client-controlled' },
82
+ })
83
+ const requestId = response.headers.get('tempo-request-id')
84
+
85
+ expect(requestId === 'client-controlled').toMatchInlineSnapshot(`false`)
86
+ expect(entries[0]?.requestId === requestId).toMatchInlineSnapshot(`true`)
87
+ })
88
+
77
89
  test('documents supported API key transports', async () => {
78
90
  const app = TestApp.create()
79
91
  const spec = await (await app.request('/openapi.json')).json()
@@ -473,7 +485,7 @@ describe('create', () => {
473
485
  // key matches, so a `:chainId//icons` regression would drop every logo.
474
486
  const db = TestApp.database()
475
487
  await TestApp.verifiedSeed(db, 42431)
476
- const app = App.create({ db }).route(
488
+ const app = App.create({ db, defaultChainId: 42431 }).route(
477
489
  '/',
478
490
  App.data({
479
491
  assets: {
@@ -485,7 +497,6 @@ describe('create', () => {
485
497
  }
486
498
  : undefined,
487
499
  },
488
- defaultChainId: 42431,
489
500
  }),
490
501
  )
491
502
  const response = await app.request('/v1/tokens?verified=true')
package/src/App.ts CHANGED
@@ -72,6 +72,8 @@ export type Environment = {
72
72
  tidx: Tidx.getClient.Tidx | undefined
73
73
  /** Verified-token feature configuration (refresh window), or undefined when the feature is disabled. Token rows live in `db`. */
74
74
  verifiedTokens: { refreshMs?: number | undefined } | undefined
75
+ /** Zone RPC endpoints keyed by chain id; empty when none are configured. */
76
+ zones: ReadonlyMap<number, Data.data.Zone>
75
77
  /** Webhook feature configuration, or undefined when webhooks are disabled. Rows live in `db`. */
76
78
  webhook: { maxPerOwner?: number | undefined } | undefined
77
79
  } & EdgeCache.Variables &
@@ -147,6 +149,13 @@ export function create<const path extends string = '/'>(options: create.Options<
147
149
  // `options.db`, API-key records in `options.kv`.
148
150
  const store = options.cache?.store ?? Store.memory()
149
151
  const scopeCatalog = Scope.extend(options.scopes)
152
+ const defaultChainId = options.defaultChainId ?? Viem.defaultChainId
153
+ const getClient = Viem.createGetClient({ defaultChainId, rpc: options.rpc })
154
+ const supportedChainIds = new Set<number>([
155
+ ...Object.keys(Viem.url).map(Number),
156
+ defaultChainId,
157
+ ...(options.supportedChainIds ?? []),
158
+ ])
150
159
 
151
160
  // Build the app in two phases: register middleware imperatively, then chain
152
161
  // route mounts so the merged Hono schema flows through the return type. The
@@ -163,7 +172,11 @@ export function create<const path extends string = '/'>(options: create.Options<
163
172
  '*',
164
173
  hono_compress(typeof options.compress === 'object' ? options.compress : undefined),
165
174
  )
166
- base.use('*', requestId({ headerName: 'tempo-request-id' }))
175
+ base.use('*', requestId())
176
+ base.use('*', async (c, next) => {
177
+ await next()
178
+ c.header('tempo-request-id', c.get('requestId'))
179
+ })
167
180
  // One canonical structured log line per request, plus request metrics.
168
181
  // Registered after `requestId` (the entry embeds it) and before the timing and
169
182
  // edge-cache layers so the entry covers edge-cache hits and includes the
@@ -231,11 +244,15 @@ export function create<const path extends string = '/'>(options: create.Options<
231
244
  base.use('*', async (c, next) => {
232
245
  c.set('analytics', analytics)
233
246
  c.set('basePath', basePath)
247
+ c.set('chainId', defaultChainId)
234
248
  c.set('db', db.source)
235
249
  c.set('dbCached', db.cached ?? db.source)
250
+ c.set('getClient', (chainId) => getClient(chainId, Auth.getPrincipal(c)))
236
251
  c.set('kv', options.kv)
252
+ c.set('rpc', options.rpc)
237
253
  c.set('scopeCatalog', scopeCatalog)
238
254
  c.set('store', store)
255
+ c.set('supportedChainIds', supportedChainIds)
239
256
  await next()
240
257
  })
241
258
 
@@ -269,7 +286,10 @@ export function create<const path extends string = '/'>(options: create.Options<
269
286
  const route = app.route.bind(app)
270
287
  ;(app as unknown as { route: typeof route }).route = ((path, sub) => {
271
288
  const entry = Metadata.read(sub)
272
- if (entry) metadata.push(entry)
289
+ if (entry) {
290
+ metadata.push(entry)
291
+ for (const chainId of entry.supportedChainIds ?? []) supportedChainIds.add(chainId)
292
+ }
273
293
  return route(path, sub)
274
294
  }) as typeof route
275
295
 
@@ -398,6 +418,10 @@ export function create<const path extends string = '/'>(options: create.Options<
398
418
  let finalized = false
399
419
  const finalize = () => {
400
420
  if (finalized) return
421
+ Auth.installMppManagementRoutes(app, {
422
+ basePath,
423
+ overrides: options.auth === false ? undefined : options.auth?.overrides,
424
+ })
401
425
  finalized = true
402
426
 
403
427
  app.get('/openapi.json', async (c) => c.json(await getSpec()))
@@ -436,9 +460,9 @@ export function listener(app: { fetch: NodeFetch }): Listener {
436
460
 
437
461
  export declare namespace create {
438
462
  /**
439
- * Options for creating the Tempo API Hono app the shared core:
440
- * db/cache/kv/auth capabilities and cross-cutting middleware. Chain-data
441
- * configuration belongs to {@link data}; email to {@link management}.
463
+ * Options for creating the Tempo API Hono app: shared chain, RPC, database,
464
+ * cache, authentication, and cross-cutting configuration. Email belongs to
465
+ * {@link management}.
442
466
  */
443
467
  type Options<path extends string = '/'> = {
444
468
  /** 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`). */
@@ -453,6 +477,8 @@ export declare namespace create {
453
477
  cors?: boolean | Cors | undefined
454
478
  /** Authoritative Postgres store backing stateful features (webhooks, verified tokens). Pass a long-lived `Db.postgres(...)` singleton on Node, or a factory (`() => Db.postgres(...)`) on Workers so each request builds a fresh Hyperdrive-pooled connection. Pass `{ source, cached }` to route staleness-tolerant reads (verified tokens) through a second, query-caching Hyperdrive config; `source` stays uncached for read-after-write correctness. Apply migrations out of band via `tapimo admin migrate`. */
455
479
  db: Db.Source | { cached?: Db.Source | undefined; source: Db.Source }
480
+ /** Default Tempo chain id for requests that omit `chainId`. */
481
+ defaultChainId?: Viem.ChainId | undefined
456
482
  /** KV state store backing API-key records (e.g. `Store.cloudflareKv(...)`). Omit to leave API-key auth closed — every token resolves to `null`. */
457
483
  kv?: Kv | undefined
458
484
  /** 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. */
@@ -461,10 +487,14 @@ export declare namespace create {
461
487
  metrics?: Metrics.Metrics | undefined
462
488
  /** Base path to mount API handlers under. Provided as a literal via the `path` generic so the resulting Hono schema keeps typed route paths for `testClient`. */
463
489
  path?: path | undefined
490
+ /** Tempo RPC options, including per-request routing by request principal. */
491
+ rpc?: Viem.getClient.Rpc | undefined
464
492
  /** OpenAPI `servers` for the generated document. Defaults to a single relative server (the host serving the doc), so the reference targets the deployment it is served from. Set the canonical public URL(s) here, e.g. `[{ url: 'https://api.tempo.xyz' }]`. */
465
493
  servers?: readonly Server[] | undefined
466
494
  /** Host-defined API-key scopes appended to the built-in {@link Scope.catalog}. */
467
495
  scopes?: readonly Scope.Entry[] | undefined
496
+ /** Extra chain ids served beyond the built-in chains and `defaultChainId`. */
497
+ supportedChainIds?: readonly number[] | undefined
468
498
  }
469
499
 
470
500
  /** KV state-store configuration. */
@@ -526,6 +556,8 @@ export declare namespace create {
526
556
  docs?: Docs | undefined
527
557
  /** Security scheme definitions this group's routes reference (e.g. the session cookie). */
528
558
  securitySchemes?: Record<string, unknown> | undefined
559
+ /** Chain ids served by this route group, merged before auth handles the first request. */
560
+ supportedChainIds?: readonly number[] | undefined
529
561
  /** Root-level OpenAPI tag definitions for this group's operations. */
530
562
  tags?: readonly Tag[] | undefined
531
563
  /** 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. */
package/src/Assets.ts CHANGED
@@ -26,9 +26,9 @@ export type Assets = {
26
26
  export function cloudflareR2(bucket: cloudflareR2.Bucket): Assets {
27
27
  return {
28
28
  async get(key) {
29
- // Exact keys sort first, so expected misses avoid `NoSuchKey` spans.
30
- const { objects } = await bucket.list({ limit: 1, prefix: key })
31
- if (objects[0]?.key !== key) return undefined
29
+ // Legacy source-extension aliases may sort before the extensionless key.
30
+ const { objects } = await bucket.list({ limit: 1_000, prefix: key })
31
+ if (!objects.some((object) => object.key === key)) return undefined
32
32
  const object = await bucket.get(key)
33
33
  if (!object) return undefined
34
34
  return {