tapimo 0.0.0 → 0.0.2

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 (422) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/ApiKey.d.ts +65 -0
  4. package/dist/ApiKey.d.ts.map +1 -0
  5. package/dist/ApiKey.js +105 -0
  6. package/dist/ApiKey.js.map +1 -0
  7. package/dist/ApiKeySource.d.ts +166 -0
  8. package/dist/ApiKeySource.d.ts.map +1 -0
  9. package/dist/ApiKeySource.js +234 -0
  10. package/dist/ApiKeySource.js.map +1 -0
  11. package/dist/App.d.ts +19317 -0
  12. package/dist/App.d.ts.map +1 -0
  13. package/dist/App.js +612 -0
  14. package/dist/App.js.map +1 -0
  15. package/dist/Assets.d.ts +44 -0
  16. package/dist/Assets.d.ts.map +1 -0
  17. package/dist/Assets.js +23 -0
  18. package/dist/Assets.js.map +1 -0
  19. package/dist/Auth.d.ts +2 -0
  20. package/dist/Auth.d.ts.map +1 -0
  21. package/dist/Auth.js +2 -0
  22. package/dist/Auth.js.map +1 -0
  23. package/dist/Cli.d.ts +21 -0
  24. package/dist/Cli.d.ts.map +1 -0
  25. package/dist/Cli.js +13 -0
  26. package/dist/Cli.js.map +1 -0
  27. package/dist/Client.d.ts +20 -0
  28. package/dist/Client.d.ts.map +1 -0
  29. package/dist/Client.js +24 -0
  30. package/dist/Client.js.map +1 -0
  31. package/dist/Metrics.d.ts +70 -0
  32. package/dist/Metrics.d.ts.map +1 -0
  33. package/dist/Metrics.js +91 -0
  34. package/dist/Metrics.js.map +1 -0
  35. package/dist/Scope.d.ts +35 -0
  36. package/dist/Scope.d.ts.map +1 -0
  37. package/dist/Scope.js +38 -0
  38. package/dist/Scope.js.map +1 -0
  39. package/dist/Webhooks.d.ts +79 -0
  40. package/dist/Webhooks.d.ts.map +1 -0
  41. package/dist/Webhooks.js +107 -0
  42. package/dist/Webhooks.js.map +1 -0
  43. package/dist/admin/Access.d.ts +41 -0
  44. package/dist/admin/Access.d.ts.map +1 -0
  45. package/dist/admin/Access.js +75 -0
  46. package/dist/admin/Access.js.map +1 -0
  47. package/dist/admin/App.d.ts +1221 -0
  48. package/dist/admin/App.d.ts.map +1 -0
  49. package/dist/admin/App.js +113 -0
  50. package/dist/admin/App.js.map +1 -0
  51. package/dist/admin/apps/api-keys.d.ts +209 -0
  52. package/dist/admin/apps/api-keys.d.ts.map +1 -0
  53. package/dist/admin/apps/api-keys.js +129 -0
  54. package/dist/admin/apps/api-keys.js.map +1 -0
  55. package/dist/admin/apps/scopes.d.ts +46 -0
  56. package/dist/admin/apps/scopes.d.ts.map +1 -0
  57. package/dist/admin/apps/scopes.js +41 -0
  58. package/dist/admin/apps/scopes.js.map +1 -0
  59. package/dist/admin/apps/verified-tokens.d.ts +1206 -0
  60. package/dist/admin/apps/verified-tokens.d.ts.map +1 -0
  61. package/dist/admin/apps/verified-tokens.js +485 -0
  62. package/dist/admin/apps/verified-tokens.js.map +1 -0
  63. package/dist/admin/index.d.ts +3 -0
  64. package/dist/admin/index.d.ts.map +1 -0
  65. package/dist/admin/index.js +3 -0
  66. package/dist/admin/index.js.map +1 -0
  67. package/dist/admin/ui.generated.d.ts +11 -0
  68. package/dist/admin/ui.generated.d.ts.map +1 -0
  69. package/dist/admin/ui.generated.js +43 -0
  70. package/dist/admin/ui.generated.js.map +1 -0
  71. package/dist/apps/activities.d.ts +18725 -0
  72. package/dist/apps/activities.d.ts.map +1 -0
  73. package/dist/apps/activities.js +3138 -0
  74. package/dist/apps/activities.js.map +1 -0
  75. package/dist/apps/addresses.d.ts +3662 -0
  76. package/dist/apps/addresses.d.ts.map +1 -0
  77. package/dist/apps/addresses.js +22 -0
  78. package/dist/apps/addresses.js.map +1 -0
  79. package/dist/apps/balances.d.ts +342 -0
  80. package/dist/apps/balances.d.ts.map +1 -0
  81. package/dist/apps/balances.js +393 -0
  82. package/dist/apps/balances.js.map +1 -0
  83. package/dist/apps/blocks.d.ts +931 -0
  84. package/dist/apps/blocks.d.ts.map +1 -0
  85. package/dist/apps/blocks.js +689 -0
  86. package/dist/apps/blocks.js.map +1 -0
  87. package/dist/apps/coingecko.d.ts +1053 -0
  88. package/dist/apps/coingecko.d.ts.map +1 -0
  89. package/dist/apps/coingecko.js +1015 -0
  90. package/dist/apps/coingecko.js.map +1 -0
  91. package/dist/apps/exchanges.d.ts +3000 -0
  92. package/dist/apps/exchanges.d.ts.map +1 -0
  93. package/dist/apps/exchanges.js +3570 -0
  94. package/dist/apps/exchanges.js.map +1 -0
  95. package/dist/apps/fee-amm.d.ts +640 -0
  96. package/dist/apps/fee-amm.d.ts.map +1 -0
  97. package/dist/apps/fee-amm.js +815 -0
  98. package/dist/apps/fee-amm.js.map +1 -0
  99. package/dist/apps/indexer.d.ts +116 -0
  100. package/dist/apps/indexer.d.ts.map +1 -0
  101. package/dist/apps/indexer.js +270 -0
  102. package/dist/apps/indexer.js.map +1 -0
  103. package/dist/apps/receipts.d.ts +1438 -0
  104. package/dist/apps/receipts.d.ts.map +1 -0
  105. package/dist/apps/receipts.js +874 -0
  106. package/dist/apps/receipts.js.map +1 -0
  107. package/dist/apps/rpc.d.ts +173 -0
  108. package/dist/apps/rpc.d.ts.map +1 -0
  109. package/dist/apps/rpc.js +191 -0
  110. package/dist/apps/rpc.js.map +1 -0
  111. package/dist/apps/tokenlist.d.ts +192 -0
  112. package/dist/apps/tokenlist.d.ts.map +1 -0
  113. package/dist/apps/tokenlist.js +153 -0
  114. package/dist/apps/tokenlist.js.map +1 -0
  115. package/dist/apps/tokens.d.ts +2246 -0
  116. package/dist/apps/tokens.d.ts.map +1 -0
  117. package/dist/apps/tokens.js +1789 -0
  118. package/dist/apps/tokens.js.map +1 -0
  119. package/dist/apps/transactions.d.ts +2327 -0
  120. package/dist/apps/transactions.d.ts.map +1 -0
  121. package/dist/apps/transactions.js +975 -0
  122. package/dist/apps/transactions.js.map +1 -0
  123. package/dist/apps/transfers.d.ts +589 -0
  124. package/dist/apps/transfers.d.ts.map +1 -0
  125. package/dist/apps/transfers.js +769 -0
  126. package/dist/apps/transfers.js.map +1 -0
  127. package/dist/apps/verified-tokens.d.ts +544 -0
  128. package/dist/apps/verified-tokens.d.ts.map +1 -0
  129. package/dist/apps/verified-tokens.js +234 -0
  130. package/dist/apps/verified-tokens.js.map +1 -0
  131. package/dist/apps/webhooks.d.ts +7684 -0
  132. package/dist/apps/webhooks.d.ts.map +1 -0
  133. package/dist/apps/webhooks.js +2112 -0
  134. package/dist/apps/webhooks.js.map +1 -0
  135. package/dist/cloudflare.d.ts +32 -0
  136. package/dist/cloudflare.d.ts.map +1 -0
  137. package/dist/cloudflare.js +45 -0
  138. package/dist/cloudflare.js.map +1 -0
  139. package/dist/index.d.ts +16 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +16 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/internal/Auth.d.ts +298 -0
  144. package/dist/internal/Auth.d.ts.map +1 -0
  145. package/dist/internal/Auth.js +618 -0
  146. package/dist/internal/Auth.js.map +1 -0
  147. package/dist/internal/Cache.d.ts +74 -0
  148. package/dist/internal/Cache.d.ts.map +1 -0
  149. package/dist/internal/Cache.js +215 -0
  150. package/dist/internal/Cache.js.map +1 -0
  151. package/dist/internal/Cursor.d.ts +79 -0
  152. package/dist/internal/Cursor.d.ts.map +1 -0
  153. package/dist/internal/Cursor.js +116 -0
  154. package/dist/internal/Cursor.js.map +1 -0
  155. package/dist/internal/EdgeCache.d.ts +59 -0
  156. package/dist/internal/EdgeCache.d.ts.map +1 -0
  157. package/dist/internal/EdgeCache.js +174 -0
  158. package/dist/internal/EdgeCache.js.map +1 -0
  159. package/dist/internal/Log.d.ts +104 -0
  160. package/dist/internal/Log.d.ts.map +1 -0
  161. package/dist/internal/Log.js +118 -0
  162. package/dist/internal/Log.js.map +1 -0
  163. package/dist/internal/MetricSink.d.ts +65 -0
  164. package/dist/internal/MetricSink.d.ts.map +1 -0
  165. package/dist/internal/MetricSink.js +146 -0
  166. package/dist/internal/MetricSink.js.map +1 -0
  167. package/dist/internal/Mpp.d.ts +71 -0
  168. package/dist/internal/Mpp.d.ts.map +1 -0
  169. package/dist/internal/Mpp.js +105 -0
  170. package/dist/internal/Mpp.js.map +1 -0
  171. package/dist/internal/OpenApi.d.ts +313 -0
  172. package/dist/internal/OpenApi.d.ts.map +1 -0
  173. package/dist/internal/OpenApi.fonts.d.ts +2 -0
  174. package/dist/internal/OpenApi.fonts.d.ts.map +1 -0
  175. package/dist/internal/OpenApi.fonts.js +39 -0
  176. package/dist/internal/OpenApi.fonts.js.map +1 -0
  177. package/dist/internal/OpenApi.js +335 -0
  178. package/dist/internal/OpenApi.js.map +1 -0
  179. package/dist/internal/OpenApi.logo.d.ts +6 -0
  180. package/dist/internal/OpenApi.logo.d.ts.map +1 -0
  181. package/dist/internal/OpenApi.logo.js +19 -0
  182. package/dist/internal/OpenApi.logo.js.map +1 -0
  183. package/dist/internal/Path.d.ts +5 -0
  184. package/dist/internal/Path.d.ts.map +1 -0
  185. package/dist/internal/Path.js +16 -0
  186. package/dist/internal/Path.js.map +1 -0
  187. package/dist/internal/RateLimit.d.ts +60 -0
  188. package/dist/internal/RateLimit.d.ts.map +1 -0
  189. package/dist/internal/RateLimit.js +48 -0
  190. package/dist/internal/RateLimit.js.map +1 -0
  191. package/dist/internal/Response.d.ts +132 -0
  192. package/dist/internal/Response.d.ts.map +1 -0
  193. package/dist/internal/Response.js +72 -0
  194. package/dist/internal/Response.js.map +1 -0
  195. package/dist/internal/Schema.d.ts +257 -0
  196. package/dist/internal/Schema.d.ts.map +1 -0
  197. package/dist/internal/Schema.js +360 -0
  198. package/dist/internal/Schema.js.map +1 -0
  199. package/dist/internal/Store.d.ts +204 -0
  200. package/dist/internal/Store.d.ts.map +1 -0
  201. package/dist/internal/Store.js +291 -0
  202. package/dist/internal/Store.js.map +1 -0
  203. package/dist/internal/Tidx.d.ts +120 -0
  204. package/dist/internal/Tidx.d.ts.map +1 -0
  205. package/dist/internal/Tidx.js +156 -0
  206. package/dist/internal/Tidx.js.map +1 -0
  207. package/dist/internal/Timing.d.ts +22 -0
  208. package/dist/internal/Timing.d.ts.map +1 -0
  209. package/dist/internal/Timing.js +32 -0
  210. package/dist/internal/Timing.js.map +1 -0
  211. package/dist/internal/Ttl.d.ts +25 -0
  212. package/dist/internal/Ttl.d.ts.map +1 -0
  213. package/dist/internal/Ttl.js +49 -0
  214. package/dist/internal/Ttl.js.map +1 -0
  215. package/dist/internal/Value.d.ts +47 -0
  216. package/dist/internal/Value.d.ts.map +1 -0
  217. package/dist/internal/Value.js +122 -0
  218. package/dist/internal/Value.js.map +1 -0
  219. package/dist/internal/VerifiedTokens.d.ts +228 -0
  220. package/dist/internal/VerifiedTokens.d.ts.map +1 -0
  221. package/dist/internal/VerifiedTokens.js +450 -0
  222. package/dist/internal/VerifiedTokens.js.map +1 -0
  223. package/dist/internal/Viem.d.ts +2082 -0
  224. package/dist/internal/Viem.d.ts.map +1 -0
  225. package/dist/internal/Viem.js +63 -0
  226. package/dist/internal/Viem.js.map +1 -0
  227. package/dist/internal/WebhookDestination.d.ts +198 -0
  228. package/dist/internal/WebhookDestination.d.ts.map +1 -0
  229. package/dist/internal/WebhookDestination.js +170 -0
  230. package/dist/internal/WebhookDestination.js.map +1 -0
  231. package/dist/internal/Webhooks.d.ts +433 -0
  232. package/dist/internal/Webhooks.d.ts.map +1 -0
  233. package/dist/internal/Webhooks.js +489 -0
  234. package/dist/internal/Webhooks.js.map +1 -0
  235. package/dist/internal/webhookDestinations/betterStack.d.ts +26 -0
  236. package/dist/internal/webhookDestinations/betterStack.d.ts.map +1 -0
  237. package/dist/internal/webhookDestinations/betterStack.js +76 -0
  238. package/dist/internal/webhookDestinations/betterStack.js.map +1 -0
  239. package/dist/internal/webhookDestinations/slack.d.ts +59 -0
  240. package/dist/internal/webhookDestinations/slack.d.ts.map +1 -0
  241. package/dist/internal/webhookDestinations/slack.js +422 -0
  242. package/dist/internal/webhookDestinations/slack.js.map +1 -0
  243. package/dist/internal/webhookDestinations/url.d.ts +17 -0
  244. package/dist/internal/webhookDestinations/url.d.ts.map +1 -0
  245. package/dist/internal/webhookDestinations/url.js +130 -0
  246. package/dist/internal/webhookDestinations/url.js.map +1 -0
  247. package/dist/openrpc.json +5302 -0
  248. package/package.json +46 -4
  249. package/seeds/31318/icons/0x20c0000000000000000000000000000000000000.svg +1 -0
  250. package/seeds/31318/icons/0x20c0000000000000000000000000000000000001.svg +1 -0
  251. package/seeds/31318/icons/0x20c0000000000000000000000000000000000002.svg +1 -0
  252. package/seeds/31318/icons/0x20c0000000000000000000000000000000000003.svg +1 -0
  253. package/seeds/31318/verified-tokens.json +30 -0
  254. package/seeds/4217/icons/0x20c0000000000000000000000000000000000000.svg +25 -0
  255. package/seeds/4217/icons/0x20c000000000000000000000048c8f36df1c9a4a.svg +1 -0
  256. package/seeds/4217/icons/0x20c0000000000000000000000520792dcccccccc.svg +1 -0
  257. package/seeds/4217/icons/0x20c0000000000000000000000a6da882d075a4c3.svg +4 -0
  258. package/seeds/4217/icons/0x20c000000000000000000000111111111e910f0f.svg +30 -0
  259. package/seeds/4217/icons/0x20c00000000000000000000014f22ca97301eb73.svg +1 -0
  260. package/seeds/4217/icons/0x20c0000000000000000000001621e21f71cf12fb.svg +1 -0
  261. package/seeds/4217/icons/0x20c0000000000000000000002f52d5cc21a3207b.svg +1 -0
  262. package/seeds/4217/icons/0x20c0000000000000000000003158081efd85bfc2.svg +11 -0
  263. package/seeds/4217/icons/0x20c0000000000000000000003554d28269e0f3c2.svg +1 -0
  264. package/seeds/4217/icons/0x20c000000000000000000000383a23bacb546ab9.svg +1 -0
  265. package/seeds/4217/icons/0x20c00000000000000000000042109aef2f8b28e1.png +0 -0
  266. package/seeds/4217/icons/0x20c0000000000000000000005c0bac7cef389a11.svg +1 -0
  267. package/seeds/4217/icons/0x20c0000000000000000000006fd9a167923ba194.png +0 -0
  268. package/seeds/4217/icons/0x20c0000000000000000000007f7ba549dd0251b9.svg +1 -0
  269. package/seeds/4217/icons/0x20c0000000000000000000008191667423f70e67.svg +5 -0
  270. package/seeds/4217/icons/0x20c0000000000000000000008ee4fcff88888888.svg +1 -0
  271. package/seeds/4217/icons/0x20c0000000000000000000009a4a4b17e0dc6651.svg +1 -0
  272. package/seeds/4217/icons/0x20c000000000000000000000ab02d39df30bd17e.svg +1 -0
  273. package/seeds/4217/icons/0x20c000000000000000000000ae247a1130450f09.svg +1 -0
  274. package/seeds/4217/icons/0x20c000000000000000000000aeed2ec36a54d0e5.svg +1 -0
  275. package/seeds/4217/icons/0x20c000000000000000000000b9537d11c60e8b50.svg +1 -0
  276. package/seeds/4217/icons/0x20c000000000000000000000bd95bfb69fbe6ce3.svg +1 -0
  277. package/seeds/4217/icons/0x20c000000000000000000000c412ec89d0c08be5.svg +1 -0
  278. package/seeds/4217/icons/0x20c000000000000000000000f047dd7018e50367.png +0 -0
  279. package/seeds/4217/verified-tokens.json +177 -0
  280. package/seeds/42431/icons/0x20c0000000000000000000000000000000000000.svg +25 -0
  281. package/seeds/42431/icons/0x20c0000000000000000000000000000000000001.svg +1 -0
  282. package/seeds/42431/icons/0x20c0000000000000000000000000000000000002.svg +1 -0
  283. package/seeds/42431/icons/0x20c0000000000000000000000000000000000003.svg +1 -0
  284. package/seeds/42431/icons/0x20c0000000000000000000009e8d7eb59b783726.svg +1 -0
  285. package/seeds/42431/icons/0x20c000000000000000000000d72572838bbee59c.svg +1 -0
  286. package/seeds/42431/verified-tokens.json +44 -0
  287. package/seeds/openrpc/README.md +27 -0
  288. package/seeds/openrpc/execution-apis.json +8989 -0
  289. package/src/ApiKey.test.ts +91 -0
  290. package/src/ApiKey.ts +122 -0
  291. package/src/ApiKeySource.test-d.ts +11 -0
  292. package/src/ApiKeySource.test.ts +295 -0
  293. package/src/ApiKeySource.ts +303 -0
  294. package/src/App.test-d.ts +38 -0
  295. package/src/App.test.ts +65927 -0
  296. package/src/App.ts +855 -0
  297. package/src/Assets.ts +58 -0
  298. package/src/Auth.ts +1 -0
  299. package/src/Cli.test.ts +81 -0
  300. package/src/Cli.ts +38 -0
  301. package/src/Client.test-d.ts +1438 -0
  302. package/src/Client.test.ts +134 -0
  303. package/src/Client.ts +45 -0
  304. package/src/Metrics.ts +154 -0
  305. package/src/Scope.ts +50 -0
  306. package/src/Webhooks.test.ts +49 -0
  307. package/src/Webhooks.ts +172 -0
  308. package/src/admin/Access.test.ts +130 -0
  309. package/src/admin/Access.ts +87 -0
  310. package/src/admin/App.test.ts +225 -0
  311. package/src/admin/App.ts +216 -0
  312. package/src/admin/apps/api-keys.test.ts +156 -0
  313. package/src/admin/apps/api-keys.ts +157 -0
  314. package/src/admin/apps/scopes.test.ts +52 -0
  315. package/src/admin/apps/scopes.ts +47 -0
  316. package/src/admin/apps/verified-tokens.test.ts +415 -0
  317. package/src/admin/apps/verified-tokens.ts +566 -0
  318. package/src/admin/index.ts +2 -0
  319. package/src/admin/ui/plugin.ts +135 -0
  320. package/src/admin/ui/src/components/Checkbox.tsx +22 -0
  321. package/src/admin/ui/src/components/Dialog.tsx +32 -0
  322. package/src/admin/ui/src/components/MobileProfile.tsx +31 -0
  323. package/src/admin/ui/src/components/Page.tsx +53 -0
  324. package/src/admin/ui/src/components/TempoLogo.tsx +37 -0
  325. package/src/admin/ui/src/fonts/Pilat-Demi.woff2 +0 -0
  326. package/src/admin/ui/src/fonts/Pilat-Regular.woff2 +0 -0
  327. package/src/admin/ui/src/lib/api-keys.ts +63 -0
  328. package/src/admin/ui/src/lib/client.ts +15 -0
  329. package/src/admin/ui/src/lib/config.ts +57 -0
  330. package/src/admin/ui/src/lib/query-client.ts +26 -0
  331. package/src/admin/ui/src/lib/scopes.ts +25 -0
  332. package/src/admin/ui/src/lib/verified-tokens.ts +89 -0
  333. package/src/admin/ui/src/lib/wagmi.ts +18 -0
  334. package/src/admin/ui/src/routeTree.gen.ts +104 -0
  335. package/src/admin/ui/src/router.tsx +25 -0
  336. package/src/admin/ui/src/routes/__root.tsx +219 -0
  337. package/src/admin/ui/src/routes/api-keys.tsx +329 -0
  338. package/src/admin/ui/src/routes/index.tsx +7 -0
  339. package/src/admin/ui/src/routes/verified-tokens.tsx +331 -0
  340. package/src/admin/ui/src/styles.css +20 -0
  341. package/src/admin/ui/tsconfig.json +16 -0
  342. package/src/admin/ui/vite.config.ts +29 -0
  343. package/src/admin/ui.generated.ts +60 -0
  344. package/src/apps/activities.test.ts +1020 -0
  345. package/src/apps/activities.ts +3934 -0
  346. package/src/apps/addresses.ts +24 -0
  347. package/src/apps/balances.test.ts +274 -0
  348. package/src/apps/balances.ts +533 -0
  349. package/src/apps/blocks.test.ts +385 -0
  350. package/src/apps/blocks.ts +896 -0
  351. package/src/apps/coingecko.test.ts +218 -0
  352. package/src/apps/coingecko.ts +1383 -0
  353. package/src/apps/exchanges.test.ts +958 -0
  354. package/src/apps/exchanges.ts +4773 -0
  355. package/src/apps/fee-amm.test.ts +321 -0
  356. package/src/apps/fee-amm.ts +1121 -0
  357. package/src/apps/indexer.test.ts +153 -0
  358. package/src/apps/indexer.ts +330 -0
  359. package/src/apps/receipts.test.ts +285 -0
  360. package/src/apps/receipts.ts +1193 -0
  361. package/src/apps/rpc.test.ts +302 -0
  362. package/src/apps/rpc.ts +222 -0
  363. package/src/apps/tokenlist.test.ts +80 -0
  364. package/src/apps/tokenlist.ts +207 -0
  365. package/src/apps/tokens.test.ts +1062 -0
  366. package/src/apps/tokens.ts +2292 -0
  367. package/src/apps/transactions.test.ts +408 -0
  368. package/src/apps/transactions.ts +1363 -0
  369. package/src/apps/transfers.test.ts +371 -0
  370. package/src/apps/transfers.ts +1116 -0
  371. package/src/apps/verified-tokens.test.ts +114 -0
  372. package/src/apps/verified-tokens.ts +295 -0
  373. package/src/apps/webhooks.test.ts +1937 -0
  374. package/src/apps/webhooks.ts +2926 -0
  375. package/src/cloudflare.ts +55 -0
  376. package/src/index.ts +15 -0
  377. package/src/internal/Auth.test.ts +980 -0
  378. package/src/internal/Auth.ts +1012 -0
  379. package/src/internal/Cache.test.ts +240 -0
  380. package/src/internal/Cache.ts +262 -0
  381. package/src/internal/Cursor.test.ts +100 -0
  382. package/src/internal/Cursor.ts +149 -0
  383. package/src/internal/EdgeCache.test.ts +234 -0
  384. package/src/internal/EdgeCache.ts +224 -0
  385. package/src/internal/Errors.ts +14 -0
  386. package/src/internal/Log.test.ts +244 -0
  387. package/src/internal/Log.ts +216 -0
  388. package/src/internal/MetricSink.ts +220 -0
  389. package/src/internal/Mpp.test.ts +64 -0
  390. package/src/internal/Mpp.ts +141 -0
  391. package/src/internal/OpenApi.fonts.ts +38 -0
  392. package/src/internal/OpenApi.logo.ts +18 -0
  393. package/src/internal/OpenApi.ts +488 -0
  394. package/src/internal/Path.test.ts +14 -0
  395. package/src/internal/Path.ts +15 -0
  396. package/src/internal/RateLimit.test.ts +93 -0
  397. package/src/internal/RateLimit.ts +93 -0
  398. package/src/internal/Response.ts +131 -0
  399. package/src/internal/Schema.test.ts +34 -0
  400. package/src/internal/Schema.ts +523 -0
  401. package/src/internal/Store.test.ts +545 -0
  402. package/src/internal/Store.ts +526 -0
  403. package/src/internal/Tidx.local.test.ts +33 -0
  404. package/src/internal/Tidx.test.ts +294 -0
  405. package/src/internal/Tidx.ts +238 -0
  406. package/src/internal/Timing.test.ts +22 -0
  407. package/src/internal/Timing.ts +62 -0
  408. package/src/internal/Ttl.test.ts +18 -0
  409. package/src/internal/Ttl.ts +59 -0
  410. package/src/internal/Value.ts +114 -0
  411. package/src/internal/VerifiedTokens.test.ts +333 -0
  412. package/src/internal/VerifiedTokens.ts +645 -0
  413. package/src/internal/Viem.test.ts +115 -0
  414. package/src/internal/Viem.ts +165 -0
  415. package/src/internal/WebhookDestination.test.ts +648 -0
  416. package/src/internal/WebhookDestination.ts +331 -0
  417. package/src/internal/Webhooks.test.ts +668 -0
  418. package/src/internal/Webhooks.ts +940 -0
  419. package/src/internal/webhookDestinations/betterStack.ts +91 -0
  420. package/src/internal/webhookDestinations/slack.ts +496 -0
  421. package/src/internal/webhookDestinations/url.ts +128 -0
  422. package/src/openrpc.json +5302 -0
@@ -0,0 +1,433 @@
1
+ import type * as app_Webhooks from '../apps/webhooks.js';
2
+ import type * as Metrics from '../Metrics.js';
3
+ import * as MetricSink from './MetricSink.js';
4
+ import * as Store from './Store.js';
5
+ import * as WebhookDestination from './WebhookDestination.js';
6
+ export type { Destination, Result } from './WebhookDestination.js';
7
+ export { InvalidUrlError, sign, signatureHeader, verify } from './WebhookDestination.js';
8
+ /**
9
+ * Event types a subscription can listen to. The canonical set lives in the apps
10
+ * layer ({@link app_Webhooks.eventTypes}), co-located with the per-type schemas
11
+ * and descriptions that reference apps-layer read schemas; this storage layer
12
+ * only consumes the type.
13
+ */
14
+ export type EventType = app_Webhooks.EventType;
15
+ /** Lifecycle status of a subscription. */
16
+ export type Status = 'active' | 'disabled' | 'paused';
17
+ /**
18
+ * Authenticated owner of a subscription. Derived from the request principal:
19
+ * API keys are org-scoped; MPP payers are identified by their stable DID.
20
+ */
21
+ export type Owner = {
22
+ /** Owning organization id (any key in the org manages its webhooks). */
23
+ orgId: string;
24
+ /** Owner kind. */
25
+ type: 'api_key';
26
+ } | {
27
+ /** Verified MPP payer identifier (e.g. `did:pkh:…`). */
28
+ payer: string;
29
+ /** Owner kind. */
30
+ type: 'mpp';
31
+ };
32
+ /**
33
+ * Optional human context describing what a subscription is for. Carried onto
34
+ * every delivered {@link Envelope} and surfaced by destinations (Slack header +
35
+ * description, Better Stack log fields, and the raw `url` payload).
36
+ */
37
+ export type Context = {
38
+ /** Longer description of the subscription's purpose. */
39
+ description?: string | undefined;
40
+ /** Arbitrary key/value labels echoed on every delivery and rendered by destinations. */
41
+ metadata?: Record<string, string> | undefined;
42
+ /** Short label for the subscription (e.g. `Prod USDC large transfers`). */
43
+ title?: string | undefined;
44
+ };
45
+ /** A durable webhook subscription record. */
46
+ export type Subscription = {
47
+ /** Chain the subscription listens on. */
48
+ chainId: number;
49
+ /** Optional human context describing what the subscription is for. */
50
+ context?: Context | undefined;
51
+ /** ISO timestamp of creation. */
52
+ createdAt: string;
53
+ /** Where matched events are delivered (URL or Slack channel). */
54
+ destination: WebhookDestination.Destination;
55
+ /** Event type the subscription listens to. */
56
+ eventType: EventType;
57
+ /** ISO expiry timestamp; set for MPP-owned subscriptions (TTL-bounded). */
58
+ expiresAt?: string | undefined;
59
+ /** Consecutive delivery failures; drives auto-disable. */
60
+ failureCount: number;
61
+ /** Event-type-specific filter predicates. */
62
+ filters: Record<string, unknown>;
63
+ /** Subscription id (`wh_…`). */
64
+ id: string;
65
+ /** ISO timestamp of the last successful delivery, if any. */
66
+ lastDeliveryAt?: string | undefined;
67
+ /** Authenticated owner. */
68
+ owner: Owner;
69
+ /** HMAC signing secret. Returned once at creation; never exposed by reads. */
70
+ secret: string;
71
+ /** Lifecycle status. */
72
+ status: Status;
73
+ /** ISO timestamp of the last mutation. */
74
+ updatedAt: string;
75
+ };
76
+ /** Fields accepted when creating a subscription. */
77
+ export type CreateInput = {
78
+ /** Chain to listen on. */
79
+ chainId: number;
80
+ /** Optional human context describing what the subscription is for. */
81
+ context?: Context | undefined;
82
+ /** Where matched events are delivered. `url` destinations are SSRF-validated. */
83
+ destination: WebhookDestination.Destination;
84
+ /** Event type to listen to. */
85
+ eventType: EventType;
86
+ /** Event-type-specific filter predicates. */
87
+ filters?: Record<string, unknown> | undefined;
88
+ /** Owner derived from the request principal. */
89
+ owner: Owner;
90
+ /** Time-to-live in milliseconds; set the subscription to expire (MPP TTL). */
91
+ ttl?: number | undefined;
92
+ };
93
+ /** Mutable fields accepted when patching a subscription. */
94
+ export type PatchInput = {
95
+ /** New human context, or `null` to clear it. */
96
+ context?: Context | null | undefined;
97
+ /** New delivery destination. `url` destinations are re-validated for SSRF. */
98
+ destination?: WebhookDestination.Destination | undefined;
99
+ /** New filter predicates. */
100
+ filters?: Record<string, unknown> | undefined;
101
+ /** New lifecycle status (`active`/`paused`/`disabled`). */
102
+ status?: Status | undefined;
103
+ };
104
+ /** Outcome status of a delivery-log row. */
105
+ export type DeliveryStatus = 'failed' | 'pending' | 'succeeded';
106
+ /**
107
+ * A durable delivery-log row recording one delivery attempt. Persisted by
108
+ * {@link deliverAndRecord} so deliveries are observable and replayable (Phase
109
+ * C); the read endpoint returns these verbatim.
110
+ */
111
+ export type Delivery = {
112
+ /** Consecutive attempt number (1-based) at the time of this delivery. */
113
+ attempt: number;
114
+ /** ISO timestamp the attempt was recorded. */
115
+ createdAt: string;
116
+ /**
117
+ * The exact envelope that was sent, persisted so the delivery can be replayed
118
+ * verbatim (manual retry). Internal-only: the public delivery row omits it.
119
+ */
120
+ envelope: Envelope;
121
+ /** Failure reason when `status` is `failed`. */
122
+ error?: string | undefined;
123
+ /** Idempotent event id this delivery carried (`evt_…`). */
124
+ eventId: string;
125
+ /** Delivery id (`whd_…`); time-sortable so keys order chronologically. */
126
+ id: string;
127
+ /** Subscriber callback URL the attempt targeted. */
128
+ requestUrl: string;
129
+ /** Wall-clock duration of the attempt in ms, when a request was made. */
130
+ responseMs?: number | undefined;
131
+ /** HTTP response status, when a response was received. */
132
+ responseStatus?: number | undefined;
133
+ /** Outcome status. */
134
+ status: DeliveryStatus;
135
+ /** Owning subscription id. */
136
+ subscriptionId: string;
137
+ };
138
+ /**
139
+ * Creates a subscription, validating its URL and (optionally) enforcing a
140
+ * per-owner cap, then persists it and indexes it for the poller.
141
+ */
142
+ export declare function createSubscription(store: Store.State, input: CreateInput, options?: createSubscription.Options): Promise<Subscription>;
143
+ export declare namespace createSubscription {
144
+ /** Options for {@link createSubscription}. */
145
+ type Options = {
146
+ /** Reject creation once the owner has this many subscriptions. */
147
+ maxPerOwner?: number | undefined;
148
+ /** Clock used for timestamps (injectable for tests). */
149
+ now?: (() => Date) | undefined;
150
+ };
151
+ }
152
+ /** Reads a single subscription scoped to its owner. Returns null when absent. */
153
+ export declare function getSubscription(store: Store.State, owner: Owner, id: string): Promise<Subscription | null>;
154
+ /**
155
+ * Lists an owner's subscriptions, newest first, with optional keyset paging.
156
+ * Subscription ids embed a timestamp, so lexical key order is chronological.
157
+ */
158
+ export declare function listSubscriptions(store: Store.State, owner: Owner, options?: listSubscriptions.Options): Promise<Subscription[]>;
159
+ export declare namespace listSubscriptions {
160
+ /** Options for {@link listSubscriptions}. */
161
+ type Options = {
162
+ /** Return subscriptions older than this id (keyset paging, newest first). */
163
+ cursor?: string | undefined;
164
+ /** Maximum subscriptions to return. */
165
+ limit?: number | undefined;
166
+ /** Rows to skip from the head (positional pagination; exclusive with `cursor`). */
167
+ offset?: number | undefined;
168
+ };
169
+ }
170
+ /**
171
+ * Counts an owner's subscriptions. Reads only the key set under the owner
172
+ * prefix (no row hydration), so it's a single store `list` — exact and cheap,
173
+ * since the per-owner set is bounded by `maxPerOwner`. Feeds the opt-in
174
+ * `meta.totalCount` on `GET /webhooks`.
175
+ */
176
+ export declare function countSubscriptions(store: Store.State, owner: Owner): Promise<number>;
177
+ /**
178
+ * Patches an owner's subscription, re-validating the URL when changed and
179
+ * re-indexing for the poller when the status changes. Returns null when absent.
180
+ */
181
+ export declare function updateSubscription(store: Store.State, owner: Owner, id: string, patch: PatchInput, options?: updateSubscription.Options): Promise<Subscription | null>;
182
+ export declare namespace updateSubscription {
183
+ /** Options for {@link updateSubscription}. */
184
+ type Options = {
185
+ /** Clock used for timestamps (injectable for tests). */
186
+ now?: (() => Date) | undefined;
187
+ };
188
+ }
189
+ /** Deletes an owner's subscription and its index/cursor keys. */
190
+ export declare function deleteSubscription(store: Store.State, owner: Owner, id: string): Promise<boolean>;
191
+ /**
192
+ * Lists active subscriptions for a `(chainId, eventType)` stream. Used by the
193
+ * poller; reads the secondary index, then hydrates each subscription.
194
+ */
195
+ export declare function listActive(store: Store.State, chainId: number, eventType: EventType): Promise<Subscription[]>;
196
+ /** Reads a subscription's keyset cursor. Returns null when unset. */
197
+ export declare function getCursor(store: Store.State, subscriptionId: string): Promise<string | null>;
198
+ /** Writes a subscription's keyset cursor. */
199
+ export declare function setCursor(store: Store.State, subscriptionId: string, cursor: string): Promise<void>;
200
+ /**
201
+ * Default delivery-log retention. Rows are written with this TTL so a busy
202
+ * subscription's log doesn't grow unbounded; tune per deployment.
203
+ */
204
+ export declare const deliveryRetentionMs: number;
205
+ /** Records one delivery-log row (stateful, owner-agnostic; scoped per subscription). */
206
+ export declare function recordDelivery(store: Store.State, delivery: Delivery, options?: recordDelivery.Options): Promise<void>;
207
+ export declare namespace recordDelivery {
208
+ /** Options for {@link recordDelivery}. */
209
+ type Options = {
210
+ /** Row time-to-live in ms; defaults to {@link deliveryRetentionMs}. */
211
+ ttl?: number | undefined;
212
+ };
213
+ }
214
+ /**
215
+ * Lists a subscription's delivery log, newest first, with optional keyset
216
+ * paging. Delivery ids embed a timestamp, so lexical key order is chronological.
217
+ */
218
+ export declare function listDeliveries(store: Store.State, subscriptionId: string, options?: listDeliveries.Options): Promise<Delivery[]>;
219
+ export declare namespace listDeliveries {
220
+ /** Options for {@link listDeliveries}. */
221
+ type Options = {
222
+ /** Return deliveries whose id sorts before this one (older entries). */
223
+ cursor?: string | undefined;
224
+ /** Maximum deliveries to return. */
225
+ limit?: number | undefined;
226
+ /** Rows to skip from the head (positional pagination; exclusive with `cursor`). */
227
+ offset?: number | undefined;
228
+ };
229
+ }
230
+ /**
231
+ * Counts a subscription's delivery-log entries. Reads only the key set under
232
+ * the delivery prefix (no row hydration), so it's a single store `list` —
233
+ * exact, and bounded by the delivery retention TTL. Feeds the opt-in
234
+ * `meta.totalCount` on `GET /webhooks/:id/deliveries`.
235
+ */
236
+ export declare function countDeliveries(store: Store.State, subscriptionId: string): Promise<number>;
237
+ /** Loads a single delivery-log row (`null` when absent), scoped to its subscription. */
238
+ export declare function getDelivery(store: Store.State, subscriptionId: string, deliveryId: string): Promise<Delivery | null>;
239
+ /**
240
+ * Default number of consecutive delivery failures after which a subscription
241
+ * auto-disables (and is dropped from the poller's active index).
242
+ */
243
+ export declare const maxFailures = 10;
244
+ /**
245
+ * Records a successful delivery: resets the consecutive-failure counter and
246
+ * stamps `lastDeliveryAt`. Returns the updated subscription (re-persisted so the
247
+ * poller's active index and TTL stay correct).
248
+ */
249
+ export declare function recordSuccess(store: Store.State, subscription: Subscription, options?: recordSuccess.Options): Promise<Subscription>;
250
+ export declare namespace recordSuccess {
251
+ /** Options for {@link recordSuccess}. */
252
+ type Options = {
253
+ /** Clock used for timestamps; injectable for tests. */
254
+ now?: (() => Date) | undefined;
255
+ };
256
+ }
257
+ /**
258
+ * Records a failed delivery: increments the consecutive-failure counter and,
259
+ * once it reaches `maxFailures`, sets `status: 'disabled'` so the subscription
260
+ * drops out of the poller's active index (surfaced via the API). Returns the
261
+ * updated subscription.
262
+ */
263
+ export declare function recordFailure(store: Store.State, subscription: Subscription, options?: recordFailure.Options): Promise<Subscription>;
264
+ export declare namespace recordFailure {
265
+ /** Options for {@link recordFailure}. */
266
+ type Options = {
267
+ /** Consecutive failures before auto-disabling (default {@link maxFailures}). */
268
+ maxFailures?: number | undefined;
269
+ /** Clock used for timestamps; injectable for tests. */
270
+ now?: (() => Date) | undefined;
271
+ };
272
+ }
273
+ /**
274
+ * Delivers an envelope to its subscription and records the outcome: success
275
+ * resets the failure counter and stamps `lastDeliveryAt`; failure increments it
276
+ * and auto-disables after {@link maxFailures}. This is the single delivery entry
277
+ * point shared by the Cloudflare Queue consumer and the self-host inline path.
278
+ */
279
+ export declare function deliverAndRecord(store: Store.State, subscription: Subscription, envelope: Envelope, options?: deliverAndRecord.Options): Promise<WebhookDestination.Result>;
280
+ export declare namespace deliverAndRecord {
281
+ /** Options for {@link deliverAndRecord}. */
282
+ type Options = {
283
+ /** Delivery-log row TTL in ms; defaults to {@link deliveryRetentionMs}. */
284
+ deliveryRetentionMs?: number | undefined;
285
+ /** `fetch` implementation passed through to {@link deliver}. */
286
+ fetch?: typeof globalThis.fetch | undefined;
287
+ /** Consecutive failures before auto-disabling (default {@link maxFailures}). */
288
+ maxFailures?: number | undefined;
289
+ /** Metrics backend; emits one `webhook:delivery` event per attempt. */
290
+ metrics?: Metrics.Metrics | undefined;
291
+ /** Clock used for timestamps; injectable for tests. */
292
+ now?: (() => Date) | undefined;
293
+ /** Delivery timeout in ms passed through to {@link deliver}. */
294
+ timeoutMs?: number | undefined;
295
+ /** Where this attempt originated; tags the `webhook:delivery` event (default `queue`). */
296
+ trigger?: MetricSink.Trigger | undefined;
297
+ };
298
+ }
299
+ /**
300
+ * Computes a stable, idempotent event id from its on-chain coordinates so
301
+ * re-deliveries are dedupable by the receiver.
302
+ */
303
+ export declare function eventId(options: eventId.Options): string;
304
+ export declare namespace eventId {
305
+ /** Options for {@link eventId}. */
306
+ type Options = {
307
+ /** Block number the event was indexed in. */
308
+ blockNumber: bigint | number | string;
309
+ /** Chain the event occurred on. */
310
+ chainId: number;
311
+ /** Event type. */
312
+ eventType: EventType;
313
+ /** Log index within the block (or transaction index for transaction events). */
314
+ logIndex: bigint | number | string;
315
+ };
316
+ }
317
+ /** The JSON envelope delivered to subscribers. */
318
+ export type Envelope = {
319
+ /** Chain the event occurred on. */
320
+ chainId: number;
321
+ /** Human context copied from the subscription, when set. */
322
+ context?: Context | undefined;
323
+ /** ISO timestamp the envelope was built. */
324
+ createdAt: string;
325
+ /** The same row shape the corresponding read endpoint returns. */
326
+ data: unknown;
327
+ /** Stable, idempotent event id (`evt_…`). */
328
+ id: string;
329
+ /** Originating subscription id. */
330
+ subscriptionId: string;
331
+ /** Event type; `ping` marks a synthetic test delivery (see {@link buildPingEnvelope}). */
332
+ type: EventType | 'ping';
333
+ };
334
+ /** Builds a delivery envelope for an event matched against a subscription. */
335
+ export declare function buildEnvelope(options: buildEnvelope.Options): Envelope;
336
+ export declare namespace buildEnvelope {
337
+ /** Options for {@link buildEnvelope}. */
338
+ type Options = {
339
+ /** Block number the event was indexed in. */
340
+ blockNumber: bigint | number | string;
341
+ /** Timestamp to stamp on the envelope; defaults to now. */
342
+ createdAt?: Date | undefined;
343
+ /** Decoded event row (same shape the read endpoint returns). */
344
+ data: unknown;
345
+ /** Log index within the block. */
346
+ logIndex: bigint | number | string;
347
+ /** Subscription the event matched. */
348
+ subscription: Subscription;
349
+ };
350
+ }
351
+ /**
352
+ * Builds a synthetic `ping` envelope so an owner can test a subscription's
353
+ * endpoint (connectivity, TLS, signature verification) without waiting for a real
354
+ * on-chain event. The id is randomized per call so repeated pings are never
355
+ * deduped by the receiver; `type` is `ping` and `data` is a recognizable
356
+ * `{ ping: true }` marker rather than an event row, so receivers can tell a test
357
+ * delivery apart from a real event.
358
+ */
359
+ export declare function buildPingEnvelope(subscription: Subscription, options?: buildPingEnvelope.Options): Envelope;
360
+ export declare namespace buildPingEnvelope {
361
+ /** Options for {@link buildPingEnvelope}. */
362
+ type Options = {
363
+ /** Timestamp to stamp on the envelope; defaults to now. */
364
+ createdAt?: Date | undefined;
365
+ /** Deterministic nonce for the event id; defaults to random (tests only). */
366
+ nonce?: string | undefined;
367
+ };
368
+ }
369
+ /**
370
+ * Delivers a synthetic {@link buildPingEnvelope} to a subscription's endpoint and
371
+ * logs the attempt. Unlike {@link deliverAndRecord} it deliberately does NOT
372
+ * touch the subscription's `failureCount`/`status`: a test ping must never
373
+ * auto-disable a healthy subscription or reset a real failure streak. The
374
+ * delivery row is still appended (best-effort) so the ping is observable via the
375
+ * delivery log.
376
+ */
377
+ export declare function ping(store: Store.State, subscription: Subscription, options?: ping.Options): Promise<ping.Result>;
378
+ export declare namespace ping {
379
+ /** Options for {@link ping}. */
380
+ type Options = {
381
+ /** Delivery-log row TTL in ms; defaults to {@link deliveryRetentionMs}. */
382
+ deliveryRetentionMs?: number | undefined;
383
+ /** `fetch` implementation passed through to {@link deliver}. */
384
+ fetch?: typeof globalThis.fetch | undefined;
385
+ /** Deterministic event-id nonce; defaults to random (tests only). */
386
+ nonce?: string | undefined;
387
+ /** Clock used for timestamps; injectable for tests. */
388
+ now?: (() => Date) | undefined;
389
+ /** Delivery timeout in ms passed through to {@link deliver}. */
390
+ timeoutMs?: number | undefined;
391
+ };
392
+ /** Outcome of a ping: the classified delivery result plus the logged row. */
393
+ type Result = {
394
+ /** The delivery-log row that was recorded. */
395
+ delivery: Delivery;
396
+ /** The synthetic envelope that was sent. */
397
+ envelope: Envelope;
398
+ /** The classified transport result. */
399
+ result: WebhookDestination.Result;
400
+ };
401
+ }
402
+ export declare class LimitExceededError extends Error {
403
+ /** The cap that was reached. */
404
+ limit: number;
405
+ constructor(limit: number);
406
+ }
407
+ /**
408
+ * Thrown when a subscription's `filters` fail to validate against the schema for
409
+ * its `eventType`. The detection path treats stored filters as **fail-closed**:
410
+ * an invalid filter never degrades to a firehose, so the API rejects bad filters
411
+ * at create/patch time rather than silently widening the match set later.
412
+ */
413
+ export declare class InvalidFilterError extends Error {
414
+ /** Event type whose filters failed validation. */
415
+ eventType: string;
416
+ /** Per-field validation issues, suitable for an API error `details` array. */
417
+ details: readonly InvalidFilterError.Detail[];
418
+ constructor(eventType: string, details?: readonly InvalidFilterError.Detail[]);
419
+ }
420
+ export declare namespace InvalidFilterError {
421
+ /** A single validation issue: a message plus the path to the invalid value. */
422
+ type Detail = {
423
+ /** Human-readable validation message. */
424
+ message: string;
425
+ /** Path to the invalid value within the `filters` object. */
426
+ path?: readonly (string | number)[] | undefined;
427
+ };
428
+ }
429
+ /** Thrown when webhook operations run without a configured state store. */
430
+ export declare class UnconfiguredError extends Error {
431
+ constructor();
432
+ }
433
+ //# sourceMappingURL=Webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Webhooks.d.ts","sourceRoot":"","sources":["../../src/internal/Webhooks.ts"],"names":[],"mappings":"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"}