tapimo 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/dist/App.d.ts +4896 -2166
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/App.js +2 -2
  4. package/dist/App.js.map +1 -1
  5. package/dist/Assets.d.ts +15 -0
  6. package/dist/Assets.d.ts.map +1 -1
  7. package/dist/Assets.js +7 -0
  8. package/dist/Assets.js.map +1 -1
  9. package/dist/Webhooks.d.ts +0 -75
  10. package/dist/Webhooks.d.ts.map +1 -1
  11. package/dist/Webhooks.js +1 -143
  12. package/dist/Webhooks.js.map +1 -1
  13. package/dist/admin/App.d.ts +127 -78
  14. package/dist/admin/App.d.ts.map +1 -1
  15. package/dist/admin/apps/earn-vaults.d.ts +115 -1
  16. package/dist/admin/apps/earn-vaults.d.ts.map +1 -1
  17. package/dist/admin/apps/earn-vaults.js +59 -6
  18. package/dist/admin/apps/earn-vaults.js.map +1 -1
  19. package/dist/admin/apps/organizations.d.ts +3 -3
  20. package/dist/admin/apps/organizations.d.ts.map +1 -1
  21. package/dist/admin/apps/organizations.js +4 -2
  22. package/dist/admin/apps/organizations.js.map +1 -1
  23. package/dist/admin/apps/verified-tokens.d.ts +83 -83
  24. package/dist/admin/ui.generated.d.ts +1 -1
  25. package/dist/admin/ui.generated.d.ts.map +1 -1
  26. package/dist/admin/ui.generated.js +151 -151
  27. package/dist/admin/ui.generated.js.map +1 -1
  28. package/dist/apps/data/App.d.ts +5924 -4310
  29. package/dist/apps/data/App.d.ts.map +1 -1
  30. package/dist/apps/data/App.js +61 -9
  31. package/dist/apps/data/App.js.map +1 -1
  32. package/dist/apps/data/ZoneSelection.d.ts +62 -0
  33. package/dist/apps/data/ZoneSelection.d.ts.map +1 -0
  34. package/dist/apps/data/ZoneSelection.js +44 -0
  35. package/dist/apps/data/ZoneSelection.js.map +1 -0
  36. package/dist/apps/data/routes/activities.d.ts +2368 -5
  37. package/dist/apps/data/routes/activities.d.ts.map +1 -1
  38. package/dist/apps/data/routes/activities.js +423 -114
  39. package/dist/apps/data/routes/activities.js.map +1 -1
  40. package/dist/apps/data/routes/addresses.d.ts +131 -0
  41. package/dist/apps/data/routes/addresses.d.ts.map +1 -1
  42. package/dist/apps/data/routes/balances.d.ts +25 -25
  43. package/dist/apps/data/routes/balances.js +1 -1
  44. package/dist/apps/data/routes/balances.js.map +1 -1
  45. package/dist/apps/data/routes/blocks.d.ts +1 -1
  46. package/dist/apps/data/routes/blocks.js +1 -1
  47. package/dist/apps/data/routes/blocks.js.map +1 -1
  48. package/dist/apps/data/routes/earn.d.ts +135 -10
  49. package/dist/apps/data/routes/earn.d.ts.map +1 -1
  50. package/dist/apps/data/routes/earn.js +157 -25
  51. package/dist/apps/data/routes/earn.js.map +1 -1
  52. package/dist/apps/data/routes/exchanges.d.ts +829 -123
  53. package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
  54. package/dist/apps/data/routes/exchanges.js +16 -13
  55. package/dist/apps/data/routes/exchanges.js.map +1 -1
  56. package/dist/apps/data/routes/fee-amm.d.ts +26 -26
  57. package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
  58. package/dist/apps/data/routes/fee-amm.js +9 -11
  59. package/dist/apps/data/routes/fee-amm.js.map +1 -1
  60. package/dist/apps/data/routes/receipts.d.ts +54 -54
  61. package/dist/apps/data/routes/receipts.js +1 -1
  62. package/dist/apps/data/routes/receipts.js.map +1 -1
  63. package/dist/apps/data/routes/rpc.js +24 -10
  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/tokenlist.d.ts.map +1 -1
  67. package/dist/apps/data/routes/tokenlist.js +16 -15
  68. package/dist/apps/data/routes/tokenlist.js.map +1 -1
  69. package/dist/apps/data/routes/tokens.d.ts +17 -3
  70. package/dist/apps/data/routes/tokens.d.ts.map +1 -1
  71. package/dist/apps/data/routes/tokens.js +34 -15
  72. package/dist/apps/data/routes/tokens.js.map +1 -1
  73. package/dist/apps/data/routes/transactions.d.ts +1 -1
  74. package/dist/apps/data/routes/transactions.js +1 -1
  75. package/dist/apps/data/routes/transactions.js.map +1 -1
  76. package/dist/apps/data/routes/transfers.d.ts +13 -13
  77. package/dist/apps/data/routes/transfers.d.ts.map +1 -1
  78. package/dist/apps/data/routes/transfers.js +7 -9
  79. package/dist/apps/data/routes/transfers.js.map +1 -1
  80. package/dist/apps/data/routes/valuation.d.ts +21 -21
  81. package/dist/apps/data/routes/verified-tokens.d.ts +5 -5
  82. package/dist/apps/data/routes/webhooks.d.ts +1011 -151
  83. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  84. package/dist/apps/data/routes/webhooks.js +126 -739
  85. package/dist/apps/data/routes/webhooks.js.map +1 -1
  86. package/dist/apps/data/routes/zones.d.ts +15 -15
  87. package/dist/apps/funding/App.d.ts +27 -27
  88. package/dist/apps/funding/routes/chains.d.ts.map +1 -1
  89. package/dist/apps/funding/routes/chains.js +5 -4
  90. package/dist/apps/funding/routes/chains.js.map +1 -1
  91. package/dist/apps/funding/routes/deposit-addresses.d.ts +18 -18
  92. package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
  93. package/dist/apps/funding/routes/deposit-addresses.js +8 -8
  94. package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
  95. package/dist/apps/funding/routes/providers.d.ts.map +1 -1
  96. package/dist/apps/funding/routes/providers.js +3 -2
  97. package/dist/apps/funding/routes/providers.js.map +1 -1
  98. package/dist/apps/funding/routes/quotes.d.ts.map +1 -1
  99. package/dist/apps/funding/routes/quotes.js +2 -2
  100. package/dist/apps/funding/routes/quotes.js.map +1 -1
  101. package/dist/apps/funding/routes/transfers.d.ts +33 -33
  102. package/dist/apps/management/App.d.ts +1433 -322
  103. package/dist/apps/management/App.d.ts.map +1 -1
  104. package/dist/apps/management/Billing.d.ts.map +1 -1
  105. package/dist/apps/management/Billing.js +19 -6
  106. package/dist/apps/management/Billing.js.map +1 -1
  107. package/dist/apps/management/routes/api-keys.d.ts +154 -94
  108. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  109. package/dist/apps/management/routes/api-keys.js +76 -30
  110. package/dist/apps/management/routes/api-keys.js.map +1 -1
  111. package/dist/apps/management/routes/billing.d.ts +103 -30
  112. package/dist/apps/management/routes/billing.d.ts.map +1 -1
  113. package/dist/apps/management/routes/billing.js +91 -32
  114. package/dist/apps/management/routes/billing.js.map +1 -1
  115. package/dist/apps/management/routes/faucet.d.ts +12 -12
  116. package/dist/apps/management/routes/faucet.d.ts.map +1 -1
  117. package/dist/apps/management/routes/faucet.js +23 -12
  118. package/dist/apps/management/routes/faucet.js.map +1 -1
  119. package/dist/apps/management/routes/invitations.d.ts +46 -13
  120. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  121. package/dist/apps/management/routes/invitations.js +79 -29
  122. package/dist/apps/management/routes/invitations.js.map +1 -1
  123. package/dist/apps/management/routes/invite-links.d.ts +128 -83
  124. package/dist/apps/management/routes/invite-links.d.ts.map +1 -1
  125. package/dist/apps/management/routes/invite-links.js +100 -41
  126. package/dist/apps/management/routes/invite-links.js.map +1 -1
  127. package/dist/apps/management/routes/me.d.ts +5 -5
  128. package/dist/apps/management/routes/me.d.ts.map +1 -1
  129. package/dist/apps/management/routes/me.js +14 -10
  130. package/dist/apps/management/routes/me.js.map +1 -1
  131. package/dist/apps/management/routes/members.d.ts +68 -47
  132. package/dist/apps/management/routes/members.d.ts.map +1 -1
  133. package/dist/apps/management/routes/members.js +37 -18
  134. package/dist/apps/management/routes/members.js.map +1 -1
  135. package/dist/apps/management/routes/orgs.d.ts +48 -8
  136. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  137. package/dist/apps/management/routes/orgs.js +48 -19
  138. package/dist/apps/management/routes/orgs.js.map +1 -1
  139. package/dist/apps/management/routes/projects.d.ts +130 -68
  140. package/dist/apps/management/routes/projects.d.ts.map +1 -1
  141. package/dist/apps/management/routes/projects.js +72 -21
  142. package/dist/apps/management/routes/projects.js.map +1 -1
  143. package/dist/apps/management/routes/scopes.d.ts.map +1 -1
  144. package/dist/apps/management/routes/scopes.js +8 -5
  145. package/dist/apps/management/routes/scopes.js.map +1 -1
  146. package/dist/apps/management/routes/usage.d.ts +38 -38
  147. package/dist/apps/management/routes/usage.d.ts.map +1 -1
  148. package/dist/apps/management/routes/usage.js +41 -31
  149. package/dist/apps/management/routes/usage.js.map +1 -1
  150. package/dist/apps/management/routes/verified-token-requests.d.ts +34 -6
  151. package/dist/apps/management/routes/verified-token-requests.d.ts.map +1 -1
  152. package/dist/apps/management/routes/verified-token-requests.js +36 -17
  153. package/dist/apps/management/routes/verified-token-requests.js.map +1 -1
  154. package/dist/apps/management/routes/webhooks.d.ts +1186 -197
  155. package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
  156. package/dist/apps/management/routes/webhooks.js +106 -38
  157. package/dist/apps/management/routes/webhooks.js.map +1 -1
  158. package/dist/apps/mpp/internal/Adapter.d.ts +1 -1
  159. package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
  160. package/dist/apps/mpp/internal/Adapter.js +12 -0
  161. package/dist/apps/mpp/internal/Adapter.js.map +1 -1
  162. package/dist/db/Db.d.ts +2 -0
  163. package/dist/db/Db.d.ts.map +1 -1
  164. package/dist/db/Db.js +61 -0
  165. package/dist/db/Db.js.map +1 -1
  166. package/dist/db/Schema.d.ts +30 -2
  167. package/dist/db/Schema.d.ts.map +1 -1
  168. package/dist/db/Schema.js +28 -3
  169. package/dist/db/Schema.js.map +1 -1
  170. package/dist/db/tables/earnVaults.d.ts +5 -1
  171. package/dist/db/tables/earnVaults.d.ts.map +1 -1
  172. package/dist/db/tables/earnVaults.js +5 -0
  173. package/dist/db/tables/earnVaults.js.map +1 -1
  174. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -1
  175. package/dist/db/tables/webhookDeliveries.js +10 -0
  176. package/dist/db/tables/webhookDeliveries.js.map +1 -1
  177. package/dist/db/tables/webhookQueueCompletions.d.ts +15 -0
  178. package/dist/db/tables/webhookQueueCompletions.d.ts.map +1 -0
  179. package/dist/db/tables/webhookQueueCompletions.js +32 -0
  180. package/dist/db/tables/webhookQueueCompletions.js.map +1 -0
  181. package/dist/db/tables/webhookQueueEvents.d.ts +16 -20
  182. package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -1
  183. package/dist/db/tables/webhookQueueEvents.js +68 -43
  184. package/dist/db/tables/webhookQueueEvents.js.map +1 -1
  185. package/dist/db/tables/webhookSubscriptions.d.ts +47 -72
  186. package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
  187. package/dist/db/tables/webhookSubscriptions.js +92 -105
  188. package/dist/db/tables/webhookSubscriptions.js.map +1 -1
  189. package/dist/internal/Auth.d.ts +8 -1
  190. package/dist/internal/Auth.d.ts.map +1 -1
  191. package/dist/internal/Auth.js +13 -3
  192. package/dist/internal/Auth.js.map +1 -1
  193. package/dist/internal/Cache.d.ts.map +1 -1
  194. package/dist/internal/Cache.js +11 -7
  195. package/dist/internal/Cache.js.map +1 -1
  196. package/dist/internal/EarnVaults.d.ts +41 -2
  197. package/dist/internal/EarnVaults.d.ts.map +1 -1
  198. package/dist/internal/EarnVaults.js +167 -0
  199. package/dist/internal/EarnVaults.js.map +1 -1
  200. package/dist/internal/MetricSink.d.ts +35 -125
  201. package/dist/internal/MetricSink.d.ts.map +1 -1
  202. package/dist/internal/MetricSink.js +50 -121
  203. package/dist/internal/MetricSink.js.map +1 -1
  204. package/dist/internal/OpenApi.d.ts +26 -22
  205. package/dist/internal/OpenApi.d.ts.map +1 -1
  206. package/dist/internal/OpenApi.js +128 -39
  207. package/dist/internal/OpenApi.js.map +1 -1
  208. package/dist/internal/Response.d.ts +13 -8
  209. package/dist/internal/Response.d.ts.map +1 -1
  210. package/dist/internal/Response.js +16 -5
  211. package/dist/internal/Response.js.map +1 -1
  212. package/dist/internal/Schema.d.ts +8 -8
  213. package/dist/internal/Schema.d.ts.map +1 -1
  214. package/dist/internal/Schema.js +10 -9
  215. package/dist/internal/Schema.js.map +1 -1
  216. package/dist/internal/Store.d.ts +15 -6
  217. package/dist/internal/Store.d.ts.map +1 -1
  218. package/dist/internal/Store.js +45 -15
  219. package/dist/internal/Store.js.map +1 -1
  220. package/dist/internal/Tidx.d.ts +2 -0
  221. package/dist/internal/Tidx.d.ts.map +1 -1
  222. package/dist/internal/Tidx.js +16 -4
  223. package/dist/internal/Tidx.js.map +1 -1
  224. package/dist/internal/WebhookTransfer.d.ts +1 -55
  225. package/dist/internal/WebhookTransfer.d.ts.map +1 -1
  226. package/dist/internal/WebhookTransfer.js +1 -239
  227. package/dist/internal/WebhookTransfer.js.map +1 -1
  228. package/dist/internal/Webhooks.d.ts +112 -56
  229. package/dist/internal/Webhooks.d.ts.map +1 -1
  230. package/dist/internal/Webhooks.js +124 -93
  231. package/dist/internal/Webhooks.js.map +1 -1
  232. package/dist/internal/funding/Deposit.d.ts +2 -2
  233. package/dist/internal/funding/Deposit.d.ts.map +1 -1
  234. package/dist/internal/funding/Deposit.js +9 -8
  235. package/dist/internal/funding/Deposit.js.map +1 -1
  236. package/dist/internal/funding/DepositAddress.d.ts +4 -4
  237. package/dist/internal/funding/DepositAddress.d.ts.map +1 -1
  238. package/dist/internal/funding/DepositAddress.js +9 -8
  239. package/dist/internal/funding/DepositAddress.js.map +1 -1
  240. package/dist/internal/funding/DepositWebhook.d.ts +25 -0
  241. package/dist/internal/funding/DepositWebhook.d.ts.map +1 -0
  242. package/dist/internal/funding/DepositWebhook.js +74 -0
  243. package/dist/internal/funding/DepositWebhook.js.map +1 -0
  244. package/dist/internal/funding/Provider.d.ts.map +1 -1
  245. package/dist/internal/funding/Provider.js +13 -12
  246. package/dist/internal/funding/Provider.js.map +1 -1
  247. package/dist/internal/funding/Reconciliation.d.ts +6 -0
  248. package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
  249. package/dist/internal/funding/Reconciliation.js +42 -10
  250. package/dist/internal/funding/Reconciliation.js.map +1 -1
  251. package/dist/internal/funding/index.d.ts +1 -0
  252. package/dist/internal/funding/index.d.ts.map +1 -1
  253. package/dist/internal/funding/index.js +1 -0
  254. package/dist/internal/funding/index.js.map +1 -1
  255. package/dist/internal/funding/providers/stargate.d.ts +19 -0
  256. package/dist/internal/funding/providers/stargate.d.ts.map +1 -0
  257. package/dist/internal/funding/providers/stargate.js +143 -0
  258. package/dist/internal/funding/providers/stargate.js.map +1 -0
  259. package/dist/internal/webhookDestinations/slack.d.ts.map +1 -1
  260. package/dist/internal/webhookDestinations/slack.js +16 -0
  261. package/dist/internal/webhookDestinations/slack.js.map +1 -1
  262. package/dist/providers/index.d.ts +7 -0
  263. package/dist/providers/index.d.ts.map +1 -1
  264. package/dist/providers/index.js +3 -0
  265. package/dist/providers/index.js.map +1 -1
  266. package/package.json +2 -2
  267. package/src/App.test.ts +48 -0
  268. package/src/App.ts +7 -2
  269. package/src/Assets.test.ts +18 -0
  270. package/src/Assets.ts +22 -0
  271. package/src/Client.test-d.ts +287 -17
  272. package/src/Webhooks.ts +1 -220
  273. package/src/admin/apps/earn-vaults.test.ts +143 -0
  274. package/src/admin/apps/earn-vaults.ts +83 -6
  275. package/src/admin/apps/organizations.ts +6 -2
  276. package/src/admin/ui/src/routes/api-keys.tsx +36 -0
  277. package/src/admin/ui.generated.ts +151 -189
  278. package/src/apps/data/App.test.ts +31 -0
  279. package/src/apps/data/App.ts +64 -10
  280. package/src/apps/data/ZoneSelection.test.ts +196 -0
  281. package/src/apps/data/ZoneSelection.ts +108 -0
  282. package/src/apps/data/routes/activities.test.ts +435 -12
  283. package/src/apps/data/routes/activities.ts +562 -125
  284. package/src/apps/data/routes/balances.ts +1 -1
  285. package/src/apps/data/routes/blocks.ts +1 -1
  286. package/src/apps/data/routes/earn.test.ts +183 -23
  287. package/src/apps/data/routes/earn.ts +225 -29
  288. package/src/apps/data/routes/earn.zone-access.test.ts +46 -0
  289. package/src/apps/data/routes/exchanges.test.ts +31 -1
  290. package/src/apps/data/routes/exchanges.ts +19 -15
  291. package/src/apps/data/routes/fee-amm.ts +18 -11
  292. package/src/apps/data/routes/receipts.ts +1 -1
  293. package/src/apps/data/routes/rpc.test.ts +75 -0
  294. package/src/apps/data/routes/rpc.ts +23 -9
  295. package/src/apps/data/routes/tokenlist.ts +21 -18
  296. package/src/apps/data/routes/tokens.test.ts +29 -0
  297. package/src/apps/data/routes/tokens.ts +38 -15
  298. package/src/apps/data/routes/transactions.ts +1 -1
  299. package/src/apps/data/routes/transfers.test.ts +3 -3
  300. package/src/apps/data/routes/transfers.ts +12 -9
  301. package/src/apps/data/routes/webhooks.test.ts +179 -1497
  302. package/src/apps/data/routes/webhooks.ts +156 -976
  303. package/src/apps/data/routes/zones.test.ts +19 -13
  304. package/src/apps/funding/routes/chains.test.ts +211 -7
  305. package/src/apps/funding/routes/chains.ts +19 -12
  306. package/src/apps/funding/routes/deposit-addresses.test.ts +394 -0
  307. package/src/apps/funding/routes/deposit-addresses.ts +84 -72
  308. package/src/apps/funding/routes/providers.ts +9 -5
  309. package/src/apps/funding/routes/quotes.test.ts +46 -0
  310. package/src/apps/funding/routes/quotes.ts +8 -5
  311. package/src/apps/funding/routes/transfers.test.ts +35 -32
  312. package/src/apps/management/Billing.test.ts +26 -0
  313. package/src/apps/management/Billing.ts +24 -7
  314. package/src/apps/management/routes/api-keys.test.ts +178 -0
  315. package/src/apps/management/routes/api-keys.ts +203 -144
  316. package/src/apps/management/routes/billing.test.ts +209 -0
  317. package/src/apps/management/routes/billing.ts +254 -177
  318. package/src/apps/management/routes/faucet.test.ts +39 -0
  319. package/src/apps/management/routes/faucet.ts +75 -41
  320. package/src/apps/management/routes/invitations.test.ts +216 -0
  321. package/src/apps/management/routes/invitations.ts +186 -109
  322. package/src/apps/management/routes/invite-links.test.ts +263 -1
  323. package/src/apps/management/routes/invite-links.ts +295 -214
  324. package/src/apps/management/routes/me.test.ts +49 -0
  325. package/src/apps/management/routes/me.ts +42 -32
  326. package/src/apps/management/routes/members.test.ts +124 -1
  327. package/src/apps/management/routes/members.ts +81 -51
  328. package/src/apps/management/routes/orgs.test.ts +176 -0
  329. package/src/apps/management/routes/orgs.ts +101 -59
  330. package/src/apps/management/routes/projects.test.ts +183 -0
  331. package/src/apps/management/routes/projects.ts +124 -60
  332. package/src/apps/management/routes/scopes.test.ts +44 -0
  333. package/src/apps/management/routes/scopes.ts +37 -28
  334. package/src/apps/management/routes/usage.test.ts +92 -0
  335. package/src/apps/management/routes/usage.ts +186 -151
  336. package/src/apps/management/routes/verified-token-requests.test.ts +114 -0
  337. package/src/apps/management/routes/verified-token-requests.ts +166 -133
  338. package/src/apps/management/routes/webhooks.test.ts +313 -1
  339. package/src/apps/management/routes/webhooks.ts +220 -71
  340. package/src/apps/mpp/internal/Adapter.ts +13 -1
  341. package/src/db/Db.test.ts +42 -5
  342. package/src/db/Db.ts +85 -0
  343. package/src/db/Schema.ts +41 -3
  344. package/src/db/tables/earnVaults.test.ts +22 -0
  345. package/src/db/tables/earnVaults.ts +11 -1
  346. package/src/db/tables/organizations.test.ts +5 -2
  347. package/src/db/tables/webhookDeliveries.ts +13 -0
  348. package/src/db/tables/webhookQueueCompletions.ts +55 -0
  349. package/src/db/tables/webhookQueueEvents.ts +97 -57
  350. package/src/db/tables/webhookSubscriptions.ts +134 -144
  351. package/src/internal/Auth.ts +23 -5
  352. package/src/internal/Cache.ts +14 -7
  353. package/src/internal/EarnVaults.capabilities.test.ts +33 -0
  354. package/src/internal/EarnVaults.test.ts +79 -0
  355. package/src/internal/EarnVaults.ts +277 -0
  356. package/src/internal/MetricSink.test.ts +41 -373
  357. package/src/internal/MetricSink.ts +92 -273
  358. package/src/internal/OpenApi.ts +165 -49
  359. package/src/internal/Response.test.ts +95 -0
  360. package/src/internal/Response.ts +40 -2
  361. package/src/internal/Schema.test.ts +34 -0
  362. package/src/internal/Schema.ts +20 -9
  363. package/src/internal/Store.test.ts +186 -0
  364. package/src/internal/Store.ts +57 -17
  365. package/src/internal/Tidx.test.ts +19 -0
  366. package/src/internal/Tidx.ts +16 -4
  367. package/src/internal/WebhookTransfer.ts +1 -351
  368. package/src/internal/Webhooks.test.ts +222 -145
  369. package/src/internal/Webhooks.ts +234 -135
  370. package/src/internal/funding/Deposit.ts +71 -64
  371. package/src/internal/funding/DepositAddress.ts +50 -43
  372. package/src/internal/funding/DepositWebhook.test.ts +131 -0
  373. package/src/internal/funding/DepositWebhook.ts +101 -0
  374. package/src/internal/funding/Provider.ts +164 -142
  375. package/src/internal/funding/Reconciliation.test.ts +14 -0
  376. package/src/internal/funding/Reconciliation.ts +161 -86
  377. package/src/internal/funding/index.test.ts +1 -0
  378. package/src/internal/funding/index.ts +1 -0
  379. package/src/internal/funding/providers/index.test.ts +185 -0
  380. package/src/internal/funding/providers/stargate.ts +184 -0
  381. package/src/internal/webhookDestinations/slack.ts +15 -0
  382. package/src/providers/index.test.ts +1 -0
  383. package/src/providers/index.ts +9 -0
  384. package/src/Webhooks.bench.ts +0 -714
  385. package/src/Webhooks.memory.bench.ts +0 -250
  386. package/src/Webhooks.test.ts +0 -146
@@ -23,7 +23,7 @@ export declare function insert(db: Db.Db, subscription: Webhooks.Subscription, o
23
23
  export declare namespace insert {
24
24
  /** Options for {@link insert}. */
25
25
  type Options = {
26
- /** Initial poller cursor committed with the subscription. */
26
+ /** Initial cursor committed with the subscription. */
27
27
  pollerCursor?: string | undefined;
28
28
  };
29
29
  }
@@ -39,7 +39,7 @@ export declare namespace insertWithinLimit {
39
39
  maxPerOwner: number;
40
40
  /** ISO timestamp used to exclude expired rows from the count. */
41
41
  now: string;
42
- /** Initial poller cursor committed with the subscription. */
42
+ /** Initial cursor committed with the subscription. */
43
43
  pollerCursor?: string | undefined;
44
44
  };
45
45
  }
@@ -53,7 +53,7 @@ export declare namespace insertWithinLimit {
53
53
  * @param now - ISO timestamp expiry is evaluated against.
54
54
  * @returns The subscription, or `null` when absent (or not the owner's).
55
55
  */
56
- export declare function get(db: Db.Db, owner: Webhooks.Owner, id: string, now: string): Promise<Webhooks.Subscription | null>;
56
+ export declare function get(db: Db.Db, owner: Webhooks.Owner, id: string, now: string, access?: Webhooks.Access): Promise<Webhooks.Subscription | null>;
57
57
  /**
58
58
  * Lists an owner's live subscriptions, newest first, with keyset paging
59
59
  * (`id < cursor` — ids embed a zero-padded timestamp, so lexical order is
@@ -68,6 +68,8 @@ export declare function list(db: Db.Db, owner: Webhooks.Owner, options: list.Opt
68
68
  export declare namespace list {
69
69
  /** Options for {@link list}. */
70
70
  type Options = {
71
+ /** Private-resource visibility scope. */
72
+ access?: Webhooks.Access | undefined;
71
73
  /** Return subscriptions older than this id (keyset paging, newest first). */
72
74
  cursor?: string | undefined;
73
75
  /** Maximum subscriptions to return. */
@@ -86,7 +88,7 @@ export declare namespace list {
86
88
  * @param now - ISO timestamp expiry is evaluated against.
87
89
  * @returns The count.
88
90
  */
89
- export declare function count(db: Db.Db, owner: Webhooks.Owner, now: string): Promise<number>;
91
+ export declare function count(db: Db.Db, owner: Webhooks.Owner, now: string, access?: Webhooks.Access): Promise<number>;
90
92
  /**
91
93
  * Applies a column patch to a subscription. Only the provided columns are
92
94
  * written; `context: null` clears the stored context.
@@ -121,11 +123,11 @@ export declare namespace update {
121
123
  * @param now - ISO timestamp expiry is evaluated against.
122
124
  * @returns Whether a row was deleted.
123
125
  */
124
- export declare function remove(db: Db.Db, owner: Webhooks.Owner, id: string, now: string): Promise<boolean>;
126
+ export declare function remove(db: Db.Db, owner: Webhooks.Owner, id: string, now: string, access?: Webhooks.Access): Promise<boolean>;
125
127
  /**
126
- * Lists live `active` subscriptions for a `(chainId, eventType)` stream — the
127
- * poller's per-stream lookup, served by the partial status index. Each row
128
- * carries its poller cursor so the poller avoids a per-subscription read.
128
+ * Lists live `active` subscriptions for a `(chainId, eventType)` stream,
129
+ * served by the partial status index. Each row carries its cursor so callers
130
+ * avoid a per-subscription read.
129
131
  *
130
132
  * @param db - The database.
131
133
  * @param chainId - Chain the stream belongs to.
@@ -138,8 +140,8 @@ export declare function listActive(db: Db.Db, chainId: number, eventType: Webhoo
138
140
  subscription: Webhooks.Subscription;
139
141
  }[]>;
140
142
  /**
141
- * Lists every live `active` subscription on a chain in one read. The poller
142
- * groups the rows by event type so empty streams cost no extra database reads.
143
+ * Lists every live `active` subscription on a chain in one read. Callers
144
+ * group the rows by event type so empty streams cost no extra database reads.
143
145
  *
144
146
  * @param db - The database.
145
147
  * @param options - Chain, configured event types, and expiry time.
@@ -150,28 +152,35 @@ export declare function listActiveForChain(db: Db.Db, options: listActiveForChai
150
152
  subscription: Webhooks.Subscription;
151
153
  }[]>;
152
154
  export declare namespace listActiveForChain {
153
- /** Filters for the poller's chain-level subscription read. */
155
+ /** Filters for the chain-level subscription read. */
154
156
  type Options = {
155
157
  /** Chain whose subscriptions to read. */
156
158
  chainId: number;
157
- /** Event types configured for this poller tick. */
159
+ /** Event types eligible for the read. */
158
160
  eventTypes: readonly Webhooks.EventType[];
159
161
  /** ISO timestamp expiry is evaluated against. */
160
162
  now: string;
161
163
  };
162
164
  }
165
+ /** Lists live funding deposit subscriptions visible to one deposit owner. */
166
+ export declare function listActiveForFundingDeposit(db: Db.Db, options: listActiveForFundingDeposit.Options): Promise<Webhooks.Subscription[]>;
167
+ export declare namespace listActiveForFundingDeposit {
168
+ /** Ownership scope and chain for a funding deposit event. */
169
+ type Options = {
170
+ /** Destination Tempo chain id. */
171
+ chainId: number;
172
+ /** Deposit API-key environment. */
173
+ environment: 'production' | 'sandbox';
174
+ /** ISO timestamp used to exclude expired subscriptions. */
175
+ now: string;
176
+ /** Owning organization id. */
177
+ orgId: string;
178
+ /** Attributed deposit project, when present. */
179
+ projectId?: string | undefined;
180
+ };
181
+ }
163
182
  /**
164
- * Reads the poller cursors of every live `active` subscription on a chain,
165
- * across event types. Feeds the cron's cursor-freshness fallback gate.
166
- *
167
- * @param db - The database.
168
- * @param chainId - Chain whose cursors to read.
169
- * @param now - ISO timestamp expiry is evaluated against.
170
- * @returns The non-null cursors, unordered.
171
- */
172
- export declare function listActiveCursors(db: Db.Db, chainId: number, now: string): Promise<string[]>;
173
- /**
174
- * Reads a subscription's poller cursor.
183
+ * Reads a subscription's keyset cursor.
175
184
  *
176
185
  * @param db - The database.
177
186
  * @param id - The subscription id (`wh_…`).
@@ -179,75 +188,41 @@ export declare function listActiveCursors(db: Db.Db, chainId: number, now: strin
179
188
  */
180
189
  export declare function getCursor(db: Db.Db, id: string): Promise<string | null>;
181
190
  /**
182
- * Writes a subscription's poller cursor. Deliberately does not touch
183
- * `updatedAt` the cursor advances every tick and is not a user mutation.
191
+ * Records a successful delivery: resets the consecutive-failure counter and
192
+ * stamps `lastDeliveryAt`. Skipped when neither field would move, so
193
+ * deliveries stop contending on the row's lock.
184
194
  *
185
195
  * @param db - The database.
186
196
  * @param id - The subscription id (`wh_…`).
187
- * @param cursor - The keyset cursor to store.
188
- */
189
- export declare function setCursor(db: Db.Db, id: string, cursor: string): Promise<void>;
190
- /**
191
- * Writes a poller cursor only when the stored cursor still matches the caller's
192
- * observed value.
193
- *
194
- * @param db - The database.
195
- * @param options - Subscription, expected cursor, and next cursor.
196
- * @returns Whether the cursor was updated.
197
+ * @param options - Delivery timestamp and stamp-staleness bound.
198
+ * @returns The updated subscription, or `undefined` when nothing was written.
197
199
  */
198
- export declare function compareAndSetCursor(db: Db.Db, options: compareAndSetCursor.Options): Promise<boolean>;
199
- export declare namespace compareAndSetCursor {
200
- /** Options for {@link compareAndSetCursor}. */
200
+ export declare function recordSuccess(db: Db.Db, id: string, options: recordSuccess.Options): Promise<Webhooks.Subscription | undefined>;
201
+ export declare namespace recordSuccess {
202
+ /** Clock bounds for one success record. */
201
203
  type Options = {
202
- /** Next keyset cursor. */
203
- cursor: string;
204
- /** Cursor observed before scanning, or null for an uninitialized subscription. */
205
- expectedCursor: string | null;
206
- /** Subscription whose cursor advances. */
207
- subscriptionId: string;
208
- };
209
- }
210
- /**
211
- * Writes multiple poller cursors when each stored value still matches the
212
- * caller's observed value.
213
- *
214
- * @param db - The database.
215
- * @param options - Candidate cursor writes.
216
- * @returns Subscription ids whose cursors were updated.
217
- */
218
- export declare function compareAndSetCursors(db: Db.Db, options: compareAndSetCursors.Options): Promise<Set<string>>;
219
- export declare namespace compareAndSetCursors {
220
- /** Options for {@link compareAndSetCursors}. */
221
- type Options = {
222
- /** Candidate cursor writes. */
223
- cursors: readonly compareAndSetCursor.Options[];
204
+ /** Delivery timestamp (ISO). */
205
+ now: string;
206
+ /** Rewrite the stamp only when it predates this (ISO). */
207
+ staleBefore: string;
224
208
  };
225
209
  }
226
- /**
227
- * Records a successful delivery: resets the consecutive-failure counter and
228
- * stamps `lastDeliveryAt`.
229
- *
230
- * @param db - The database.
231
- * @param id - The subscription id (`wh_…`).
232
- * @param now - Delivery timestamp (ISO).
233
- * @returns The updated subscription, or `undefined` when the row is absent.
234
- */
235
- export declare function recordSuccess(db: Db.Db, id: string, now: string): Promise<Webhooks.Subscription | undefined>;
236
210
  /**
237
211
  * Records a failed delivery: atomically increments the consecutive-failure
238
212
  * counter and disables the subscription once it reaches `maxFailures` (raw
239
213
  * fragments use storage column names — they bypass the camelCase mapping).
214
+ * Skipped once disabled at the cap, when nothing would move.
240
215
  *
241
216
  * @param db - The database.
242
217
  * @param id - The subscription id (`wh_…`).
243
218
  * @param maxFailures - Consecutive failures before auto-disabling.
244
219
  * @param now - Failure timestamp (ISO).
245
- * @returns The updated subscription, or `undefined` when the row is absent.
220
+ * @returns The updated subscription, or `undefined` when nothing was written.
246
221
  */
247
222
  export declare function recordFailure(db: Db.Db, id: string, maxFailures: number, now: string): Promise<Webhooks.Subscription | undefined>;
248
223
  /**
249
224
  * Deletes expired subscriptions (their delivery rows cascade). Called
250
- * best-effort from the poller tick.
225
+ * best-effort on a schedule.
251
226
  *
252
227
  * @param db - The database.
253
228
  * @param now - ISO timestamp expiry is evaluated against.
@@ -1 +1 @@
1
- {"version":3,"file":"webhookSubscriptions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,QAAQ,CAAA;AAG3D,OAAO,KAAK,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,KAAK,SAAS,MAAM,cAAc,CAAA;AAI9C,+FAA+F;AAC/F,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAA;AAEjD,yCAAyC;AACzC,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AAEtC,wEAAwE;AACxE,wBAAsB,OAAO,CAC3B,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,CAQvC;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAErD;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAoBjE;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnC,OAAO,GAAE,MAAM,CAAC,OAAY,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,kCAAkC;IAClC,KAAK,OAAO,GAAG;QACb,6DAA6D;QAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAClC,CAAA;CACF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnC,OAAO,EAAE,iBAAiB,CAAC,OAAO,GACjC,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,2CAA2C;IAC3C,KAAK,OAAO,GAAG;QACb,qDAAqD;QACrD,WAAW,EAAE,MAAM,CAAA;QACnB,iEAAiE;QACjE,GAAG,EAAE,MAAM,CAAA;QACX,6DAA6D;QAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAClC,CAAA;CACF;AAED;;;;;;;;;GASG;AACH,wBAAsB,GAAG,CACvB,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,CAUvC;AAED;;;;;;;;;GASG;AACH,wBAAsB,IAAI,CACxB,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,GACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAYlC;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,gCAAgC;IAChC,KAAK,OAAO,GAAG;QACb,6EAA6E;QAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,iDAAiD;QACjD,GAAG,EAAE,MAAM,CAAA;QACX,mFAAmF;QACnF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,CAAA;CACF;AAED;;;;;;;GAOG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F;AAED;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,CAAC,GAAG,GACd,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,CAQ5C;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,gDAAgD;IAChD,KAAK,GAAG,GAAG;QACT,yCAAyC;QACzC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;QAC7C,gCAAgC;QAChC,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAA;QAC9C,6BAA6B;QAC7B,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;QACtD,4BAA4B;QAC5B,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAA;QACpC,gCAAgC;QAChC,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,CAAC,SAAS,EAC7B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAA;CAAE,EAAE,CAAC,CAW3E;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAClC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAA;CAAE,EAAE,CAAC,CAa3E;AAED,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC;IAC1C,8DAA8D;IAC9D,KAAK,OAAO,GAAG;QACb,yCAAyC;QACzC,OAAO,EAAE,MAAM,CAAA;QACf,mDAAmD;QACnD,UAAU,EAAE,SAAS,QAAQ,CAAC,SAAS,EAAE,CAAA;QACzC,iDAAiD;QACjD,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO7E;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpF;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,mBAAmB,CAAC,OAAO,GACnC,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,MAAM,CAAC,OAAO,WAAW,mBAAmB,CAAC;IAC3C,+CAA+C;IAC/C,KAAK,OAAO,GAAG;QACb,0BAA0B;QAC1B,MAAM,EAAE,MAAM,CAAA;QACd,kFAAkF;QAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;QAC7B,0CAA0C;QAC1C,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;CACF;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,oBAAoB,CAAC,OAAO,GACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CA4BtB;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,gDAAgD;IAChD,KAAK,OAAO,GAAG;QACb,+BAA+B;QAC/B,OAAO,EAAE,SAAS,mBAAmB,CAAC,OAAO,EAAE,CAAA;KAChD,CAAA;CACF;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,CAQ5C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,CAY5C;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO1E"}
1
+ {"version":3,"file":"webhookSubscriptions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { sql } from 'kysely';
2
+ import * as Scope from '../../Scope.js';
2
3
  const subscriptionLimitLockClass = 1464353612;
3
4
  /** Reads one live subscription by id for an internal Queue delivery. */
4
5
  export async function getById(db, id, now) {
@@ -21,6 +22,7 @@ export function toSubscription(row) {
21
22
  ...(row.context === null ? {} : { context: row.context }),
22
23
  createdAt: row.createdAt,
23
24
  destination: row.destination,
25
+ ...(row.environment === null ? {} : { environment: row.environment }),
24
26
  eventType: row.eventType,
25
27
  ...(row.expiresAt === null ? {} : { expiresAt: row.expiresAt }),
26
28
  failureCount: row.failureCount,
@@ -30,6 +32,7 @@ export function toSubscription(row) {
30
32
  owner: row.ownerType === 'api_key'
31
33
  ? { orgId: row.ownerId, type: 'api_key' }
32
34
  : { payer: row.ownerId, type: 'mpp' },
35
+ ...(row.projectId === null ? {} : { projectId: row.projectId }),
33
36
  secret: row.secret,
34
37
  status: row.status,
35
38
  updatedAt: row.updatedAt,
@@ -50,6 +53,7 @@ export async function insert(db, subscription, options = {}) {
50
53
  context: subscription.context ?? null,
51
54
  createdAt: subscription.createdAt,
52
55
  destination: subscription.destination,
56
+ environment: subscription.environment ?? null,
53
57
  eventType: subscription.eventType,
54
58
  expiresAt: subscription.expiresAt ?? null,
55
59
  failureCount: subscription.failureCount,
@@ -59,6 +63,7 @@ export async function insert(db, subscription, options = {}) {
59
63
  ownerId: ownerId(subscription.owner),
60
64
  ownerType: subscription.owner.type,
61
65
  pollerCursor: options.pollerCursor ?? null,
66
+ projectId: subscription.projectId ?? null,
62
67
  secret: subscription.secret,
63
68
  status: subscription.status,
64
69
  updatedAt: subscription.updatedAt,
@@ -90,15 +95,17 @@ export async function insertWithinLimit(db, subscription, options) {
90
95
  * @param now - ISO timestamp expiry is evaluated against.
91
96
  * @returns The subscription, or `null` when absent (or not the owner's).
92
97
  */
93
- export async function get(db, owner, id, now) {
94
- const row = await db.kysely
98
+ export async function get(db, owner, id, now, access) {
99
+ let query = db.kysely
95
100
  .selectFrom('webhook_subscriptions')
96
101
  .selectAll()
97
102
  .where('id', '=', id)
98
103
  .where('ownerType', '=', owner.type)
99
104
  .where('ownerId', '=', ownerId(owner))
100
- .where(live(now))
101
- .executeTakeFirst();
105
+ .where(live(now));
106
+ if (access)
107
+ query = query.where(privateResourceAccess(access));
108
+ const row = await query.executeTakeFirst();
102
109
  return row ? toSubscription(row) : null;
103
110
  }
104
111
  /**
@@ -119,6 +126,8 @@ export async function list(db, owner, options) {
119
126
  .where('ownerId', '=', ownerId(owner))
120
127
  .where(live(options.now))
121
128
  .orderBy('id', 'desc');
129
+ if (options.access)
130
+ query = query.where(privateResourceAccess(options.access));
122
131
  if (options.cursor)
123
132
  query = query.where('id', '<', options.cursor);
124
133
  if (options.offset)
@@ -135,14 +144,16 @@ export async function list(db, owner, options) {
135
144
  * @param now - ISO timestamp expiry is evaluated against.
136
145
  * @returns The count.
137
146
  */
138
- export async function count(db, owner, now) {
139
- const row = await db.kysely
147
+ export async function count(db, owner, now, access) {
148
+ let query = db.kysely
140
149
  .selectFrom('webhook_subscriptions')
141
150
  .select((eb) => eb.fn.countAll().as('count'))
142
151
  .where('ownerType', '=', owner.type)
143
152
  .where('ownerId', '=', ownerId(owner))
144
- .where(live(now))
145
- .executeTakeFirstOrThrow();
153
+ .where(live(now));
154
+ if (access)
155
+ query = query.where(privateResourceAccess(access));
156
+ const row = await query.executeTakeFirstOrThrow();
146
157
  return Number(row.count);
147
158
  }
148
159
  /**
@@ -172,20 +183,37 @@ export async function update(db, id, set) {
172
183
  * @param now - ISO timestamp expiry is evaluated against.
173
184
  * @returns Whether a row was deleted.
174
185
  */
175
- export async function remove(db, owner, id, now) {
176
- const result = await db.kysely
186
+ export async function remove(db, owner, id, now, access) {
187
+ let query = db.kysely
177
188
  .deleteFrom('webhook_subscriptions')
178
189
  .where('id', '=', id)
179
190
  .where('ownerType', '=', owner.type)
180
191
  .where('ownerId', '=', ownerId(owner))
181
- .where(live(now))
182
- .executeTakeFirst();
192
+ .where(live(now));
193
+ if (access)
194
+ query = query.where(privateResourceAccess(access));
195
+ const result = await query.executeTakeFirst();
183
196
  return result.numDeletedRows > 0n;
184
197
  }
198
+ function privateResourceAccess(access) {
199
+ const fundingRead = access.scopes.some((scope) => scope === Scope.wildcard || scope === 'funding:read');
200
+ return (eb) => eb.or([
201
+ eb('eventType', '!=', 'funding:deposit.updated'),
202
+ ...(fundingRead
203
+ ? [
204
+ eb.and([
205
+ eb('eventType', '=', 'funding:deposit.updated'),
206
+ eb('environment', '=', access.environment),
207
+ ...(access.projectId === undefined ? [] : [eb('projectId', '=', access.projectId)]),
208
+ ]),
209
+ ]
210
+ : []),
211
+ ]);
212
+ }
185
213
  /**
186
- * Lists live `active` subscriptions for a `(chainId, eventType)` stream — the
187
- * poller's per-stream lookup, served by the partial status index. Each row
188
- * carries its poller cursor so the poller avoids a per-subscription read.
214
+ * Lists live `active` subscriptions for a `(chainId, eventType)` stream,
215
+ * served by the partial status index. Each row carries its cursor so callers
216
+ * avoid a per-subscription read.
189
217
  *
190
218
  * @param db - The database.
191
219
  * @param chainId - Chain the stream belongs to.
@@ -206,8 +234,8 @@ export async function listActive(db, chainId, eventType, now) {
206
234
  return rows.map((row) => ({ cursor: row.pollerCursor, subscription: toSubscription(row) }));
207
235
  }
208
236
  /**
209
- * Lists every live `active` subscription on a chain in one read. The poller
210
- * groups the rows by event type so empty streams cost no extra database reads.
237
+ * Lists every live `active` subscription on a chain in one read. Callers
238
+ * group the rows by event type so empty streams cost no extra database reads.
211
239
  *
212
240
  * @param db - The database.
213
241
  * @param options - Chain, configured event types, and expiry time.
@@ -228,27 +256,27 @@ export async function listActiveForChain(db, options) {
228
256
  .execute();
229
257
  return rows.map((row) => ({ cursor: row.pollerCursor, subscription: toSubscription(row) }));
230
258
  }
231
- /**
232
- * Reads the poller cursors of every live `active` subscription on a chain,
233
- * across event types. Feeds the cron's cursor-freshness fallback gate.
234
- *
235
- * @param db - The database.
236
- * @param chainId - Chain whose cursors to read.
237
- * @param now - ISO timestamp expiry is evaluated against.
238
- * @returns The non-null cursors, unordered.
239
- */
240
- export async function listActiveCursors(db, chainId, now) {
241
- const rows = await db.kysely
259
+ /** Lists live funding deposit subscriptions visible to one deposit owner. */
260
+ export async function listActiveForFundingDeposit(db, options) {
261
+ let query = db.kysely
242
262
  .selectFrom('webhook_subscriptions')
243
- .select('pollerCursor')
244
- .where('chainId', '=', chainId)
263
+ .selectAll()
264
+ .where('chainId', '=', options.chainId)
265
+ .where('environment', '=', options.environment)
266
+ .where('eventType', '=', 'funding:deposit.updated')
267
+ .where('ownerId', '=', options.orgId)
268
+ .where('ownerType', '=', 'api_key')
245
269
  .where('status', '=', 'active')
246
- .where(live(now))
247
- .execute();
248
- return rows.flatMap((row) => (row.pollerCursor === null ? [] : [row.pollerCursor]));
270
+ .where(live(options.now));
271
+ const projectId = options.projectId;
272
+ query =
273
+ projectId === undefined
274
+ ? query.where('projectId', 'is', null)
275
+ : query.where((eb) => eb.or([eb('projectId', 'is', null), eb('projectId', '=', projectId)]));
276
+ return (await query.orderBy('id').execute()).map(toSubscription);
249
277
  }
250
278
  /**
251
- * Reads a subscription's poller cursor.
279
+ * Reads a subscription's keyset cursor.
252
280
  *
253
281
  * @param db - The database.
254
282
  * @param id - The subscription id (`wh_…`).
@@ -262,85 +290,27 @@ export async function getCursor(db, id) {
262
290
  .executeTakeFirst();
263
291
  return row?.pollerCursor ?? null;
264
292
  }
265
- /**
266
- * Writes a subscription's poller cursor. Deliberately does not touch
267
- * `updatedAt` — the cursor advances every tick and is not a user mutation.
268
- *
269
- * @param db - The database.
270
- * @param id - The subscription id (`wh_…`).
271
- * @param cursor - The keyset cursor to store.
272
- */
273
- export async function setCursor(db, id, cursor) {
274
- await db.kysely
275
- .updateTable('webhook_subscriptions')
276
- .set({ pollerCursor: cursor })
277
- .where('id', '=', id)
278
- .execute();
279
- }
280
- /**
281
- * Writes a poller cursor only when the stored cursor still matches the caller's
282
- * observed value.
283
- *
284
- * @param db - The database.
285
- * @param options - Subscription, expected cursor, and next cursor.
286
- * @returns Whether the cursor was updated.
287
- */
288
- export async function compareAndSetCursor(db, options) {
289
- let query = db.kysely
290
- .updateTable('webhook_subscriptions')
291
- .set({ pollerCursor: options.cursor })
292
- .where('id', '=', options.subscriptionId);
293
- query =
294
- options.expectedCursor === null
295
- ? query.where('pollerCursor', 'is', null)
296
- : query.where('pollerCursor', '=', options.expectedCursor);
297
- const result = await query.executeTakeFirst();
298
- return result.numUpdatedRows > 0n;
299
- }
300
- /**
301
- * Writes multiple poller cursors when each stored value still matches the
302
- * caller's observed value.
303
- *
304
- * @param db - The database.
305
- * @param options - Candidate cursor writes.
306
- * @returns Subscription ids whose cursors were updated.
307
- */
308
- export async function compareAndSetCursors(db, options) {
309
- if (options.cursors.length === 0)
310
- return new Set();
311
- const values = JSON.stringify(options.cursors);
312
- const result = await db.kysely
313
- .with('candidates', () => sql `(
314
- SELECT
315
- candidate."subscriptionId" AS subscription_id,
316
- candidate."expectedCursor" AS expected_cursor,
317
- candidate.cursor
318
- FROM jsonb_to_recordset(${values}::jsonb)
319
- AS candidate("subscriptionId" text, "expectedCursor" text, cursor text)
320
- )`)
321
- .updateTable('webhook_subscriptions as subscription')
322
- .from('candidates as candidate')
323
- .set((eb) => ({ pollerCursor: eb.ref('candidate.cursor') }))
324
- .whereRef('subscription.id', '=', 'candidate.subscriptionId')
325
- .whereRef('subscription.pollerCursor', 'is not distinct from', 'candidate.expectedCursor')
326
- .returning('subscription.id as subscriptionId')
327
- .execute();
328
- return new Set(result.map((row) => row.subscriptionId));
329
- }
330
293
  /**
331
294
  * Records a successful delivery: resets the consecutive-failure counter and
332
- * stamps `lastDeliveryAt`.
295
+ * stamps `lastDeliveryAt`. Skipped when neither field would move, so
296
+ * deliveries stop contending on the row's lock.
333
297
  *
334
298
  * @param db - The database.
335
299
  * @param id - The subscription id (`wh_…`).
336
- * @param now - Delivery timestamp (ISO).
337
- * @returns The updated subscription, or `undefined` when the row is absent.
300
+ * @param options - Delivery timestamp and stamp-staleness bound.
301
+ * @returns The updated subscription, or `undefined` when nothing was written.
338
302
  */
339
- export async function recordSuccess(db, id, now) {
303
+ export async function recordSuccess(db, id, options) {
304
+ const { now, staleBefore } = options;
340
305
  const row = await db.kysely
341
306
  .updateTable('webhook_subscriptions')
342
307
  .set({ failureCount: 0, lastDeliveryAt: now, updatedAt: now })
343
308
  .where('id', '=', id)
309
+ .where((eb) => eb.or([
310
+ eb('failureCount', '>', 0),
311
+ eb('lastDeliveryAt', 'is', null),
312
+ eb('lastDeliveryAt', '<', staleBefore),
313
+ ]))
344
314
  .returningAll()
345
315
  .executeTakeFirst();
346
316
  return row ? toSubscription(row) : undefined;
@@ -349,12 +319,13 @@ export async function recordSuccess(db, id, now) {
349
319
  * Records a failed delivery: atomically increments the consecutive-failure
350
320
  * counter and disables the subscription once it reaches `maxFailures` (raw
351
321
  * fragments use storage column names — they bypass the camelCase mapping).
322
+ * Skipped once disabled at the cap, when nothing would move.
352
323
  *
353
324
  * @param db - The database.
354
325
  * @param id - The subscription id (`wh_…`).
355
326
  * @param maxFailures - Consecutive failures before auto-disabling.
356
327
  * @param now - Failure timestamp (ISO).
357
- * @returns The updated subscription, or `undefined` when the row is absent.
328
+ * @returns The updated subscription, or `undefined` when nothing was written.
358
329
  */
359
330
  export async function recordFailure(db, id, maxFailures, now) {
360
331
  const row = await db.kysely
@@ -365,23 +336,39 @@ export async function recordFailure(db, id, maxFailures, now) {
365
336
  updatedAt: now,
366
337
  })
367
338
  .where('id', '=', id)
339
+ // In-flight failures race the disable and would queue on the row lock. A
340
+ // re-enabled subscription keeps its capped counter; the status arm lets
341
+ // its next failure re-disable it.
342
+ .where((eb) => eb.or([eb('failureCount', '<', maxFailures), eb('status', '!=', 'disabled')]))
368
343
  .returningAll()
369
344
  .executeTakeFirst();
370
345
  return row ? toSubscription(row) : undefined;
371
346
  }
347
+ // Smaller than the ledger-table bounds: each subscription delete cascades
348
+ // into deliveries, queue events, and completions, fanning the statement out.
349
+ const pruneBatchLimit = 1_000;
372
350
  /**
373
351
  * Deletes expired subscriptions (their delivery rows cascade). Called
374
- * best-effort from the poller tick.
352
+ * best-effort on a schedule.
375
353
  *
376
354
  * @param db - The database.
377
355
  * @param now - ISO timestamp expiry is evaluated against.
378
356
  * @returns The number of rows deleted.
379
357
  */
380
358
  export async function pruneExpired(db, now) {
359
+ // Bounded like the ledger prunes: this delete cascades into deliveries,
360
+ // queue events, and completions, so it fans out the widest of the four.
381
361
  const result = await db.kysely
382
362
  .deleteFrom('webhook_subscriptions')
363
+ // Repeated on the outer delete: the row recheck under concurrency re-runs
364
+ // only this predicate, so a subscription renewed mid-statement survives.
365
+ .where('expiresAt', '<=', now)
366
+ .where('id', 'in', (eb) => eb
367
+ .selectFrom('webhook_subscriptions')
368
+ .select('id')
383
369
  .where('expiresAt', 'is not', null)
384
370
  .where('expiresAt', '<=', now)
371
+ .limit(pruneBatchLimit))
385
372
  .executeTakeFirst();
386
373
  return Number(result.numDeletedRows);
387
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webhookSubscriptions.js","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhookSubscriptions.js","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
@@ -452,7 +452,14 @@ export declare namespace install {
452
452
  };
453
453
  }
454
454
  /** Creates route middleware that contributes an auth policy override. */
455
- export declare function policy(options: PolicyOverride): MiddlewareHandler;
455
+ export declare function policy(options: policy.Options): MiddlewareHandler;
456
+ export declare namespace policy {
457
+ /** Route policy plus metadata for compatibility aliases. */
458
+ type Options = PolicyOverride & {
459
+ /** HTTP method whose configured override this route inherits when its own is absent. */
460
+ inheritOverridesFrom?: string | undefined;
461
+ };
462
+ }
456
463
  /** Adds management POSTs for OpenAPI-registered MPP GET resources. */
457
464
  export declare function installMppManagementRoutes(app: Hono<any, any>, options?: MppManagementOptions): void;
458
465
  export declare namespace endpoint {