better-supabase 0.8.0 → 0.9.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 (1374) hide show
  1. package/README.md +144 -83
  2. package/bin/better-supabase.js +14 -2
  3. package/dist/access-sql-DUSSMaC3.js +201 -0
  4. package/dist/actor-BAhb-d1S.d.ts +104 -0
  5. package/dist/actor-KHDOKGb1.js +151 -0
  6. package/dist/adapter-CEjmtazZ.js +1984 -0
  7. package/dist/agents-BCNhIxVZ.d.ts +111 -0
  8. package/dist/ai-cache-Dps7aRu1.d.ts +70 -0
  9. package/dist/ai-cache-zeUL94pB.js +84 -0
  10. package/dist/ai-chat-3GBSlFR4.d.ts +608 -0
  11. package/dist/ai-files-D2_9YLjF.js +331 -0
  12. package/dist/ai-sdk/agents/index.d.ts +154 -10
  13. package/dist/ai-sdk/agents/index.js +172 -17
  14. package/dist/ai-sdk/batches/index.d.ts +4 -4
  15. package/dist/ai-sdk/batches/index.js +5 -5
  16. package/dist/ai-sdk/cache/index.d.ts +2 -2
  17. package/dist/ai-sdk/cache/index.js +1 -1
  18. package/dist/ai-sdk/chat/index.d.ts +1 -1
  19. package/dist/ai-sdk/chat/index.js +7 -6
  20. package/dist/ai-sdk/embeddings/index.d.ts +3 -3
  21. package/dist/ai-sdk/embeddings/index.js +1 -2
  22. package/dist/ai-sdk/files/index.d.ts +2 -2
  23. package/dist/ai-sdk/files/index.js +4 -4
  24. package/dist/ai-sdk/index.d.ts +7 -6
  25. package/dist/ai-sdk/index.js +4 -3
  26. package/dist/ai-sdk/mcp/index.d.ts +4 -4
  27. package/dist/ai-sdk/mcp/index.js +6 -6
  28. package/dist/ai-sdk/memory/index.d.ts +5 -2
  29. package/dist/ai-sdk/memory/index.js +2 -2
  30. package/dist/ai-sdk/react/index.js +1 -2
  31. package/dist/ai-sdk/workflow/index.d.ts +5 -4
  32. package/dist/ai-sdk/workflow/index.js +8 -8
  33. package/dist/ai-tasks-Ih5oHfyj.d.ts +157 -0
  34. package/dist/announcements-BHCzraR6.js +128 -0
  35. package/dist/api-CFjuYKFY.js +680 -0
  36. package/dist/api-TG3jE5aO.d.ts +411 -0
  37. package/dist/api-keys-BEQatEUW.js +318 -0
  38. package/dist/api-keys-BYoGCM9p.d.ts +205 -0
  39. package/dist/app-tables-BGl5_U2x.js +584 -0
  40. package/dist/approvals-a2KmioBh.d.ts +124 -0
  41. package/dist/arazzo/index.d.ts +5 -5
  42. package/dist/arazzo/index.js +6 -6
  43. package/dist/assistant-Bf2cA6RO.d.ts +148 -0
  44. package/dist/astro/index.d.ts +9 -8
  45. package/dist/astro/index.js +10 -7
  46. package/dist/asyncapi/index.d.ts +4 -4
  47. package/dist/asyncapi/index.js +6 -6
  48. package/dist/attachments-DAj2Yp95.js +264 -0
  49. package/dist/attributes-D4mA7WhI.js +38 -0
  50. package/dist/audit-log-BMMuGPdP.js +786 -0
  51. package/dist/auth-CdBKt0CS.js +20 -0
  52. package/dist/auth-reply-DUCwb8YO.js +31 -0
  53. package/dist/auth-reply-Dj124sbX.d.ts +11 -0
  54. package/dist/authorization-DpRfs6Wx.d.ts +1412 -0
  55. package/dist/authorization-hooks-DkmrnDX7.d.ts +214 -0
  56. package/dist/authorizer-DH7DjkL3.js +126 -0
  57. package/dist/base64-BmeCBgGo.js +42 -0
  58. package/dist/batch-limit-DKVQDz4o.js +5 -0
  59. package/dist/before-route-B98js9m_.js +30 -0
  60. package/dist/better-result/index.d.ts +5 -5
  61. package/dist/better-result/index.js +1 -1
  62. package/dist/bind-a7sUgvf4.d.ts +70 -0
  63. package/dist/block-env-CBd_SoL5.js +29 -0
  64. package/dist/block-env-Dxl7rsI0.d.ts +10 -0
  65. package/dist/block-events-DD9Q_NUz.js +96 -0
  66. package/dist/block-fields-5UA84ZUg.d.ts +55 -0
  67. package/dist/block-fields-ffD6Gxe4.js +139 -0
  68. package/dist/block-helpers-C86hPEjI.d.ts +37 -0
  69. package/dist/block-helpers-CfG_MvDR.js +264 -0
  70. package/dist/block-hooks-BLPWD3Jt.d.ts +107 -0
  71. package/dist/block-hooks-BsXncUlZ.js +114 -0
  72. package/dist/block-transport-DaGGXjIw.d.ts +70 -0
  73. package/dist/block-transport-G4t1umrR.js +85 -0
  74. package/dist/blocks/access-requests/index.d.ts +98 -0
  75. package/dist/blocks/access-requests/index.js +99 -0
  76. package/dist/blocks/agents/index.d.ts +21 -3
  77. package/dist/blocks/agents/index.js +64 -18
  78. package/dist/blocks/ai-cache/index.d.ts +7 -2
  79. package/dist/blocks/ai-cache/index.js +15 -3
  80. package/dist/blocks/ai-chat/index.d.ts +22 -3
  81. package/dist/blocks/ai-chat/index.js +29 -3
  82. package/dist/blocks/ai-chat/react/index.d.ts +12 -46
  83. package/dist/blocks/ai-chat/react/index.js +43 -335
  84. package/dist/blocks/ai-chat/solid/index.d.ts +34 -0
  85. package/dist/blocks/ai-chat/solid/index.js +41 -0
  86. package/dist/blocks/ai-chat/svelte/index.d.ts +34 -0
  87. package/dist/blocks/ai-chat/svelte/index.js +41 -0
  88. package/dist/blocks/ai-chat/vue/index.d.ts +34 -0
  89. package/dist/blocks/ai-chat/vue/index.js +41 -0
  90. package/dist/blocks/ai-files/index.d.ts +10 -3
  91. package/dist/blocks/ai-files/index.js +16 -3
  92. package/dist/blocks/ai-providers/index.d.ts +18 -3
  93. package/dist/blocks/ai-providers/index.js +40 -15
  94. package/dist/blocks/ai-tasks/index.d.ts +9 -2
  95. package/dist/blocks/ai-tasks/index.js +70 -21
  96. package/dist/blocks/announcements/index.d.ts +18 -3
  97. package/dist/blocks/announcements/index.js +27 -3
  98. package/dist/blocks/announcements/react/index.d.ts +4 -14
  99. package/dist/blocks/announcements/react/index.js +22 -70
  100. package/dist/blocks/announcements/solid/index.d.ts +13 -0
  101. package/dist/blocks/announcements/solid/index.js +14 -0
  102. package/dist/blocks/announcements/svelte/index.d.ts +13 -0
  103. package/dist/blocks/announcements/svelte/index.js +14 -0
  104. package/dist/blocks/announcements/vue/index.d.ts +13 -0
  105. package/dist/blocks/announcements/vue/index.js +14 -0
  106. package/dist/blocks/api-keys/index.d.ts +24 -7
  107. package/dist/blocks/api-keys/index.js +29 -294
  108. package/dist/blocks/api-keys/react/index.d.ts +29 -0
  109. package/dist/blocks/api-keys/react/index.js +43 -0
  110. package/dist/blocks/api-keys/react/server.d.ts +7 -0
  111. package/dist/blocks/api-keys/react/server.js +7 -0
  112. package/dist/blocks/api-keys/solid/index.d.ts +13 -0
  113. package/dist/blocks/api-keys/solid/index.js +14 -0
  114. package/dist/blocks/api-keys/svelte/index.d.ts +13 -0
  115. package/dist/blocks/api-keys/svelte/index.js +14 -0
  116. package/dist/blocks/api-keys/vue/index.d.ts +13 -0
  117. package/dist/blocks/api-keys/vue/index.js +14 -0
  118. package/dist/blocks/approvals/index.d.ts +22 -0
  119. package/dist/blocks/approvals/index.js +189 -0
  120. package/dist/blocks/attachments/index.d.ts +18 -227
  121. package/dist/blocks/attachments/index.js +26 -242
  122. package/dist/blocks/audit/index.d.ts +72 -365
  123. package/dist/blocks/audit/index.js +91 -714
  124. package/dist/blocks/audit/react/index.d.ts +26 -0
  125. package/dist/blocks/audit/react/index.js +44 -0
  126. package/dist/blocks/audit/react/server.d.ts +7 -0
  127. package/dist/blocks/audit/react/server.js +7 -0
  128. package/dist/blocks/audit/solid/index.d.ts +13 -0
  129. package/dist/blocks/audit/solid/index.js +14 -0
  130. package/dist/blocks/audit/svelte/index.d.ts +13 -0
  131. package/dist/blocks/audit/svelte/index.js +14 -0
  132. package/dist/blocks/audit/vue/index.d.ts +13 -0
  133. package/dist/blocks/audit/vue/index.js +14 -0
  134. package/dist/blocks/billing/index.d.ts +37 -12
  135. package/dist/blocks/billing/index.js +43 -12
  136. package/dist/blocks/billing/react/index.d.ts +34 -0
  137. package/dist/blocks/billing/react/index.js +36 -0
  138. package/dist/blocks/billing/react/server.d.ts +7 -0
  139. package/dist/blocks/billing/react/server.js +7 -0
  140. package/dist/blocks/billing/solid/index.d.ts +15 -0
  141. package/dist/blocks/billing/solid/index.js +14 -0
  142. package/dist/blocks/billing/svelte/index.d.ts +15 -0
  143. package/dist/blocks/billing/svelte/index.js +14 -0
  144. package/dist/blocks/billing/vue/index.d.ts +15 -0
  145. package/dist/blocks/billing/vue/index.js +14 -0
  146. package/dist/blocks/bookings/index.d.ts +36 -0
  147. package/dist/blocks/bookings/index.js +28 -0
  148. package/dist/blocks/bookings/react/index.d.ts +31 -0
  149. package/dist/blocks/bookings/react/index.js +59 -0
  150. package/dist/blocks/bookings/react/server.d.ts +6 -0
  151. package/dist/blocks/bookings/react/server.js +7 -0
  152. package/dist/blocks/bookings/solid/index.d.ts +13 -0
  153. package/dist/blocks/bookings/solid/index.js +14 -0
  154. package/dist/blocks/bookings/svelte/index.d.ts +13 -0
  155. package/dist/blocks/bookings/svelte/index.js +14 -0
  156. package/dist/blocks/bookings/vue/index.d.ts +13 -0
  157. package/dist/blocks/bookings/vue/index.js +14 -0
  158. package/dist/blocks/bulk/index.d.ts +142 -0
  159. package/dist/blocks/bulk/index.js +154 -0
  160. package/dist/blocks/calendar/index.d.ts +20 -0
  161. package/dist/blocks/calendar/index.js +33 -0
  162. package/dist/blocks/calendar/react/index.d.ts +26 -0
  163. package/dist/blocks/calendar/react/index.js +58 -0
  164. package/dist/blocks/calendar/react/server.d.ts +6 -0
  165. package/dist/blocks/calendar/react/server.js +7 -0
  166. package/dist/blocks/calendar/solid/index.d.ts +13 -0
  167. package/dist/blocks/calendar/solid/index.js +14 -0
  168. package/dist/blocks/calendar/svelte/index.d.ts +13 -0
  169. package/dist/blocks/calendar/svelte/index.js +14 -0
  170. package/dist/blocks/calendar/vue/index.d.ts +13 -0
  171. package/dist/blocks/calendar/vue/index.js +14 -0
  172. package/dist/blocks/catalog/index.d.ts +224 -0
  173. package/dist/blocks/catalog/index.js +292 -0
  174. package/dist/blocks/collections/index.d.ts +184 -0
  175. package/dist/blocks/collections/index.js +208 -0
  176. package/dist/blocks/comments/index.d.ts +19 -166
  177. package/dist/blocks/comments/index.js +26 -207
  178. package/dist/blocks/comments/react/index.d.ts +27 -0
  179. package/dist/blocks/comments/react/index.js +45 -0
  180. package/dist/blocks/comments/react/server.d.ts +7 -0
  181. package/dist/blocks/comments/react/server.js +7 -0
  182. package/dist/blocks/comments/solid/index.d.ts +13 -0
  183. package/dist/blocks/comments/solid/index.js +14 -0
  184. package/dist/blocks/comments/svelte/index.d.ts +13 -0
  185. package/dist/blocks/comments/svelte/index.js +14 -0
  186. package/dist/blocks/comments/vue/index.d.ts +13 -0
  187. package/dist/blocks/comments/vue/index.js +14 -0
  188. package/dist/blocks/connectors/index.d.ts +21 -3
  189. package/dist/blocks/connectors/index.js +53 -18
  190. package/dist/blocks/custom-fields/index.d.ts +62 -0
  191. package/dist/blocks/custom-fields/index.js +85 -0
  192. package/dist/blocks/data-lifecycle/index.d.ts +114 -9
  193. package/dist/blocks/data-lifecycle/index.js +98 -12
  194. package/dist/blocks/deals/index.d.ts +262 -0
  195. package/dist/blocks/deals/index.js +380 -0
  196. package/dist/blocks/documents/index.d.ts +17 -0
  197. package/dist/blocks/documents/index.js +118 -0
  198. package/dist/blocks/domains/index.d.ts +117 -0
  199. package/dist/blocks/domains/index.js +118 -0
  200. package/dist/blocks/drive/index.d.ts +296 -0
  201. package/dist/blocks/drive/index.js +483 -0
  202. package/dist/blocks/employees/index.d.ts +205 -0
  203. package/dist/blocks/employees/index.js +289 -0
  204. package/dist/blocks/engagements/index.d.ts +125 -0
  205. package/dist/blocks/engagements/index.js +143 -0
  206. package/dist/blocks/entitlements/index.d.ts +40 -4
  207. package/dist/blocks/entitlements/index.js +14 -24
  208. package/dist/blocks/entitlements/react/index.d.ts +24 -0
  209. package/dist/blocks/entitlements/react/index.js +35 -0
  210. package/dist/blocks/entitlements/react/server.d.ts +6 -0
  211. package/dist/blocks/entitlements/react/server.js +7 -0
  212. package/dist/blocks/entitlements/solid/index.d.ts +13 -0
  213. package/dist/blocks/entitlements/solid/index.js +14 -0
  214. package/dist/blocks/entitlements/svelte/index.d.ts +13 -0
  215. package/dist/blocks/entitlements/svelte/index.js +14 -0
  216. package/dist/blocks/entitlements/vue/index.d.ts +13 -0
  217. package/dist/blocks/entitlements/vue/index.js +14 -0
  218. package/dist/blocks/flags/index.d.ts +61 -187
  219. package/dist/blocks/flags/index.js +65 -253
  220. package/dist/blocks/forms/index.d.ts +302 -0
  221. package/dist/blocks/forms/index.js +341 -0
  222. package/dist/blocks/forms/react/index.d.ts +16 -0
  223. package/dist/blocks/forms/react/index.js +25 -0
  224. package/dist/blocks/forms/react/server.d.ts +6 -0
  225. package/dist/blocks/forms/react/server.js +7 -0
  226. package/dist/blocks/forms/solid/index.d.ts +13 -0
  227. package/dist/blocks/forms/solid/index.js +14 -0
  228. package/dist/blocks/forms/svelte/index.d.ts +13 -0
  229. package/dist/blocks/forms/svelte/index.js +14 -0
  230. package/dist/blocks/forms/vue/index.d.ts +13 -0
  231. package/dist/blocks/forms/vue/index.js +14 -0
  232. package/dist/blocks/hiring/index.d.ts +154 -0
  233. package/dist/blocks/hiring/index.js +180 -0
  234. package/dist/blocks/identities/index.d.ts +83 -0
  235. package/dist/blocks/identities/index.js +103 -0
  236. package/dist/blocks/imports/index.d.ts +91 -0
  237. package/dist/blocks/imports/index.js +123 -0
  238. package/dist/blocks/inbox/index.d.ts +22 -3
  239. package/dist/blocks/inbox/index.js +77 -4
  240. package/dist/blocks/inbox/react/index.d.ts +3 -2
  241. package/dist/blocks/inbox/react/index.js +55 -199
  242. package/dist/blocks/inbox/react/server.d.ts +2 -1
  243. package/dist/blocks/inbox/solid/index.d.ts +27 -0
  244. package/dist/blocks/inbox/solid/index.js +32 -0
  245. package/dist/blocks/inbox/svelte/index.d.ts +27 -0
  246. package/dist/blocks/inbox/svelte/index.js +32 -0
  247. package/dist/blocks/inbox/vue/index.d.ts +27 -0
  248. package/dist/blocks/inbox/vue/index.js +32 -0
  249. package/dist/blocks/index.d.ts +9 -64
  250. package/dist/blocks/index.js +191 -55
  251. package/dist/blocks/inventory/index.d.ts +181 -0
  252. package/dist/blocks/inventory/index.js +219 -0
  253. package/dist/blocks/invoices/index.d.ts +154 -0
  254. package/dist/blocks/invoices/index.js +216 -0
  255. package/dist/blocks/jobs/index.d.ts +156 -33
  256. package/dist/blocks/jobs/index.js +675 -261
  257. package/dist/blocks/knowledge/index.d.ts +10 -3
  258. package/dist/blocks/knowledge/index.js +17 -3
  259. package/dist/blocks/leave/index.d.ts +241 -0
  260. package/dist/blocks/leave/index.js +209 -0
  261. package/dist/blocks/memory/index.d.ts +9 -4
  262. package/dist/blocks/memory/index.js +48 -12
  263. package/dist/blocks/metrics/index.d.ts +174 -0
  264. package/dist/blocks/metrics/index.js +217 -0
  265. package/dist/blocks/mfa/index.d.ts +7 -0
  266. package/dist/blocks/mfa/index.js +12 -0
  267. package/dist/blocks/mfa/react/index.d.ts +30 -0
  268. package/dist/blocks/mfa/react/index.js +45 -0
  269. package/dist/blocks/mfa/react/server.d.ts +9 -0
  270. package/dist/blocks/mfa/react/server.js +12 -0
  271. package/dist/blocks/mfa/solid/index.d.ts +20 -0
  272. package/dist/blocks/mfa/solid/index.js +23 -0
  273. package/dist/blocks/mfa/svelte/index.d.ts +20 -0
  274. package/dist/blocks/mfa/svelte/index.js +23 -0
  275. package/dist/blocks/mfa/vue/index.d.ts +20 -0
  276. package/dist/blocks/mfa/vue/index.js +23 -0
  277. package/dist/blocks/notifications/index.d.ts +342 -25
  278. package/dist/blocks/notifications/index.js +733 -104
  279. package/dist/blocks/notifications/react/index.d.ts +7 -32
  280. package/dist/blocks/notifications/react/index.js +23 -49
  281. package/dist/blocks/notifications/react/server.d.ts +2 -1
  282. package/dist/blocks/notifications/solid/index.d.ts +13 -0
  283. package/dist/blocks/notifications/solid/index.js +14 -0
  284. package/dist/blocks/notifications/svelte/index.d.ts +13 -0
  285. package/dist/blocks/notifications/svelte/index.js +14 -0
  286. package/dist/blocks/notifications/vue/index.d.ts +13 -0
  287. package/dist/blocks/notifications/vue/index.js +14 -0
  288. package/dist/blocks/number-sequences/index.d.ts +39 -0
  289. package/dist/blocks/number-sequences/index.js +38 -0
  290. package/dist/blocks/oauth-server/index.d.ts +228 -0
  291. package/dist/blocks/oauth-server/index.js +309 -0
  292. package/dist/blocks/onboarding/index.d.ts +8 -3
  293. package/dist/blocks/onboarding/index.js +17 -63
  294. package/dist/blocks/onboarding/react/index.d.ts +3 -12
  295. package/dist/blocks/onboarding/react/index.js +18 -60
  296. package/dist/blocks/onboarding/react/server.d.ts +2 -2
  297. package/dist/blocks/onboarding/react/server.js +2 -2
  298. package/dist/blocks/onboarding/solid/index.d.ts +13 -0
  299. package/dist/blocks/onboarding/solid/index.js +14 -0
  300. package/dist/blocks/onboarding/svelte/index.d.ts +13 -0
  301. package/dist/blocks/onboarding/svelte/index.js +14 -0
  302. package/dist/blocks/onboarding/vue/index.d.ts +13 -0
  303. package/dist/blocks/onboarding/vue/index.js +14 -0
  304. package/dist/blocks/orders/index.d.ts +264 -0
  305. package/dist/blocks/orders/index.js +589 -0
  306. package/dist/blocks/organizations/index.d.ts +31 -238
  307. package/dist/blocks/organizations/index.js +49 -392
  308. package/dist/blocks/organizations/react/index.d.ts +108 -0
  309. package/dist/blocks/organizations/react/index.js +113 -0
  310. package/dist/blocks/organizations/react/server.d.ts +11 -0
  311. package/dist/blocks/organizations/react/server.js +15 -0
  312. package/dist/blocks/organizations/solid/index.d.ts +34 -0
  313. package/dist/blocks/organizations/solid/index.js +32 -0
  314. package/dist/blocks/organizations/svelte/index.d.ts +34 -0
  315. package/dist/blocks/organizations/svelte/index.js +32 -0
  316. package/dist/blocks/organizations/vue/index.d.ts +34 -0
  317. package/dist/blocks/organizations/vue/index.js +32 -0
  318. package/dist/blocks/outbox/index.d.ts +12 -3
  319. package/dist/blocks/outbox/index.js +85 -46
  320. package/dist/blocks/parties/index.d.ts +181 -0
  321. package/dist/blocks/parties/index.js +258 -0
  322. package/dist/blocks/pipelines/index.d.ts +189 -0
  323. package/dist/blocks/pipelines/index.js +204 -0
  324. package/dist/blocks/profiles/index.d.ts +13 -8
  325. package/dist/blocks/profiles/index.js +19 -6
  326. package/dist/blocks/promotions/index.d.ts +125 -0
  327. package/dist/blocks/promotions/index.js +123 -0
  328. package/dist/blocks/push/index.d.ts +48 -28
  329. package/dist/blocks/push/index.js +45 -16
  330. package/dist/blocks/quotes/index.d.ts +152 -0
  331. package/dist/blocks/quotes/index.js +209 -0
  332. package/dist/blocks/rank/index.d.ts +71 -0
  333. package/dist/blocks/rank/index.js +53 -0
  334. package/dist/blocks/reactions/index.d.ts +18 -0
  335. package/dist/blocks/reactions/index.js +26 -0
  336. package/dist/blocks/reactions/react/index.d.ts +23 -0
  337. package/dist/blocks/reactions/react/index.js +46 -0
  338. package/dist/blocks/reactions/react/server.d.ts +6 -0
  339. package/dist/blocks/reactions/react/server.js +7 -0
  340. package/dist/blocks/reactions/solid/index.d.ts +13 -0
  341. package/dist/blocks/reactions/solid/index.js +14 -0
  342. package/dist/blocks/reactions/svelte/index.d.ts +13 -0
  343. package/dist/blocks/reactions/svelte/index.js +14 -0
  344. package/dist/blocks/reactions/vue/index.d.ts +13 -0
  345. package/dist/blocks/reactions/vue/index.js +14 -0
  346. package/dist/blocks/relations/index.d.ts +180 -0
  347. package/dist/blocks/relations/index.js +254 -0
  348. package/dist/blocks/reminders/index.d.ts +177 -0
  349. package/dist/blocks/reminders/index.js +171 -0
  350. package/dist/blocks/reviews/index.d.ts +148 -0
  351. package/dist/blocks/reviews/index.js +139 -0
  352. package/dist/blocks/rules/index.d.ts +103 -0
  353. package/dist/blocks/rules/index.js +54 -0
  354. package/dist/blocks/rules/react/index.d.ts +34 -0
  355. package/dist/blocks/rules/react/index.js +55 -0
  356. package/dist/blocks/rules/react/server.d.ts +6 -0
  357. package/dist/blocks/rules/react/server.js +7 -0
  358. package/dist/blocks/rules/solid/index.d.ts +13 -0
  359. package/dist/blocks/rules/solid/index.js +14 -0
  360. package/dist/blocks/rules/svelte/index.d.ts +13 -0
  361. package/dist/blocks/rules/svelte/index.js +14 -0
  362. package/dist/blocks/rules/vue/index.d.ts +13 -0
  363. package/dist/blocks/rules/vue/index.js +14 -0
  364. package/dist/blocks/saved-views/index.d.ts +17 -0
  365. package/dist/blocks/saved-views/index.js +29 -0
  366. package/dist/blocks/saved-views/react/index.d.ts +34 -0
  367. package/dist/blocks/saved-views/react/index.js +57 -0
  368. package/dist/blocks/saved-views/react/server.d.ts +7 -0
  369. package/dist/blocks/saved-views/react/server.js +7 -0
  370. package/dist/blocks/saved-views/solid/index.d.ts +13 -0
  371. package/dist/blocks/saved-views/solid/index.js +14 -0
  372. package/dist/blocks/saved-views/svelte/index.d.ts +13 -0
  373. package/dist/blocks/saved-views/svelte/index.js +14 -0
  374. package/dist/blocks/saved-views/vue/index.d.ts +13 -0
  375. package/dist/blocks/saved-views/vue/index.js +14 -0
  376. package/dist/blocks/search/index.d.ts +31 -0
  377. package/dist/blocks/search/index.js +61 -0
  378. package/dist/blocks/search/react/index.d.ts +36 -0
  379. package/dist/blocks/search/react/index.js +49 -0
  380. package/dist/blocks/search/react/server.d.ts +7 -0
  381. package/dist/blocks/search/react/server.js +8 -0
  382. package/dist/blocks/search/solid/index.d.ts +13 -0
  383. package/dist/blocks/search/solid/index.js +14 -0
  384. package/dist/blocks/search/svelte/index.d.ts +13 -0
  385. package/dist/blocks/search/svelte/index.js +14 -0
  386. package/dist/blocks/search/vue/index.d.ts +13 -0
  387. package/dist/blocks/search/vue/index.js +14 -0
  388. package/dist/blocks/service-principals/index.d.ts +126 -0
  389. package/dist/blocks/service-principals/index.js +107 -0
  390. package/dist/blocks/sessions/index.d.ts +7 -0
  391. package/dist/blocks/sessions/index.js +14 -0
  392. package/dist/blocks/sessions/react/index.d.ts +31 -0
  393. package/dist/blocks/sessions/react/index.js +51 -0
  394. package/dist/blocks/sessions/react/server.d.ts +9 -0
  395. package/dist/blocks/sessions/react/server.js +11 -0
  396. package/dist/blocks/sessions/solid/index.d.ts +20 -0
  397. package/dist/blocks/sessions/solid/index.js +23 -0
  398. package/dist/blocks/sessions/svelte/index.d.ts +20 -0
  399. package/dist/blocks/sessions/svelte/index.js +23 -0
  400. package/dist/blocks/sessions/vue/index.d.ts +20 -0
  401. package/dist/blocks/sessions/vue/index.js +23 -0
  402. package/dist/blocks/settings/index.d.ts +20 -86
  403. package/dist/blocks/settings/index.js +28 -102
  404. package/dist/blocks/settings/react/index.d.ts +25 -0
  405. package/dist/blocks/settings/react/index.js +37 -0
  406. package/dist/blocks/settings/react/server.d.ts +7 -0
  407. package/dist/blocks/settings/react/server.js +7 -0
  408. package/dist/blocks/settings/solid/index.d.ts +13 -0
  409. package/dist/blocks/settings/solid/index.js +14 -0
  410. package/dist/blocks/settings/svelte/index.d.ts +13 -0
  411. package/dist/blocks/settings/svelte/index.js +14 -0
  412. package/dist/blocks/settings/vue/index.d.ts +13 -0
  413. package/dist/blocks/settings/vue/index.js +14 -0
  414. package/dist/blocks/share-links/index.d.ts +99 -0
  415. package/dist/blocks/share-links/index.js +99 -0
  416. package/dist/blocks/shared-signals/index.d.ts +395 -0
  417. package/dist/blocks/shared-signals/index.js +880 -0
  418. package/dist/blocks/signing-keys/index.d.ts +29 -0
  419. package/dist/blocks/signing-keys/index.js +161 -0
  420. package/dist/blocks/sla/index.d.ts +114 -0
  421. package/dist/blocks/sla/index.js +122 -0
  422. package/dist/blocks/sso/index.d.ts +169 -147
  423. package/dist/blocks/sso/index.js +258 -321
  424. package/dist/blocks/state-machine/index.d.ts +105 -0
  425. package/dist/blocks/state-machine/index.js +116 -0
  426. package/dist/blocks/tags/index.d.ts +20 -0
  427. package/dist/blocks/tags/index.js +28 -0
  428. package/dist/blocks/tags/react/index.d.ts +28 -0
  429. package/dist/blocks/tags/react/index.js +47 -0
  430. package/dist/blocks/tags/react/server.d.ts +7 -0
  431. package/dist/blocks/tags/react/server.js +7 -0
  432. package/dist/blocks/tags/solid/index.d.ts +13 -0
  433. package/dist/blocks/tags/solid/index.js +14 -0
  434. package/dist/blocks/tags/svelte/index.d.ts +13 -0
  435. package/dist/blocks/tags/svelte/index.js +14 -0
  436. package/dist/blocks/tags/vue/index.d.ts +13 -0
  437. package/dist/blocks/tags/vue/index.js +14 -0
  438. package/dist/blocks/targets/index.d.ts +82 -0
  439. package/dist/blocks/targets/index.js +73 -0
  440. package/dist/blocks/teams/index.d.ts +61 -0
  441. package/dist/blocks/teams/index.js +83 -0
  442. package/dist/blocks/templates/index.d.ts +362 -0
  443. package/dist/blocks/templates/index.js +483 -0
  444. package/dist/blocks/time-tracking/index.d.ts +250 -0
  445. package/dist/blocks/time-tracking/index.js +317 -0
  446. package/dist/blocks/trash/index.d.ts +78 -0
  447. package/dist/blocks/trash/index.js +79 -0
  448. package/dist/blocks/undo/index.d.ts +9 -0
  449. package/dist/blocks/undo/index.js +14 -0
  450. package/dist/blocks/undo/react/index.d.ts +17 -0
  451. package/dist/blocks/undo/react/index.js +24 -0
  452. package/dist/blocks/undo/react/server.d.ts +7 -0
  453. package/dist/blocks/undo/react/server.js +7 -0
  454. package/dist/blocks/undo/solid/index.d.ts +13 -0
  455. package/dist/blocks/undo/solid/index.js +14 -0
  456. package/dist/blocks/undo/svelte/index.d.ts +13 -0
  457. package/dist/blocks/undo/svelte/index.js +14 -0
  458. package/dist/blocks/undo/vue/index.d.ts +13 -0
  459. package/dist/blocks/undo/vue/index.js +14 -0
  460. package/dist/blocks/usage/index.d.ts +10 -4
  461. package/dist/blocks/usage/index.js +16 -233
  462. package/dist/blocks/usage/react/index.d.ts +23 -0
  463. package/dist/blocks/usage/react/index.js +38 -0
  464. package/dist/blocks/usage/react/server.d.ts +7 -0
  465. package/dist/blocks/usage/react/server.js +7 -0
  466. package/dist/blocks/usage/solid/index.d.ts +13 -0
  467. package/dist/blocks/usage/solid/index.js +14 -0
  468. package/dist/blocks/usage/svelte/index.d.ts +13 -0
  469. package/dist/blocks/usage/svelte/index.js +14 -0
  470. package/dist/blocks/usage/vue/index.d.ts +13 -0
  471. package/dist/blocks/usage/vue/index.js +14 -0
  472. package/dist/blocks/versions/index.d.ts +165 -0
  473. package/dist/blocks/versions/index.js +283 -0
  474. package/dist/blocks/waitlist/index.d.ts +57 -19
  475. package/dist/blocks/waitlist/index.js +46 -12
  476. package/dist/blocks/webhooks/index.d.ts +269 -137
  477. package/dist/blocks/webhooks/index.js +752 -179
  478. package/dist/blocks/work-items/index.d.ts +208 -0
  479. package/dist/blocks/work-items/index.js +305 -0
  480. package/dist/blocks/workflow-builder/index.d.ts +26 -6
  481. package/dist/blocks/workflow-builder/index.js +30 -5
  482. package/dist/blocks/workflow-builder/react/index.d.ts +4 -19
  483. package/dist/blocks/workflow-builder/react/index.js +45 -89
  484. package/dist/blocks/workflow-builder/solid/index.d.ts +20 -0
  485. package/dist/blocks/workflow-builder/solid/index.js +23 -0
  486. package/dist/blocks/workflow-builder/svelte/index.d.ts +20 -0
  487. package/dist/blocks/workflow-builder/svelte/index.js +23 -0
  488. package/dist/blocks/workflow-builder/vue/index.d.ts +20 -0
  489. package/dist/blocks/workflow-builder/vue/index.js +23 -0
  490. package/dist/blocks/workflows/index.d.ts +20 -3
  491. package/dist/blocks/workflows/index.js +27 -3
  492. package/dist/blocks/workflows/react/index.d.ts +5 -20
  493. package/dist/blocks/workflows/react/index.js +41 -113
  494. package/dist/blocks/workflows/solid/index.d.ts +20 -0
  495. package/dist/blocks/workflows/solid/index.js +23 -0
  496. package/dist/blocks/workflows/svelte/index.d.ts +20 -0
  497. package/dist/blocks/workflows/svelte/index.js +23 -0
  498. package/dist/blocks/workflows/vue/index.d.ts +20 -0
  499. package/dist/blocks/workflows/vue/index.js +23 -0
  500. package/dist/blocks-D2WQ63PI.js +84 -0
  501. package/dist/bookings-0XnhHNLM.js +181 -0
  502. package/dist/build-Cm0T5MVG.js +1815 -0
  503. package/dist/build-Cx08LOT7.js +689 -0
  504. package/dist/calendar-DcFrpSOy.js +801 -0
  505. package/dist/channel-D-LHCY11.d.ts +78 -0
  506. package/dist/channels-C-GCoNLd.js +114 -0
  507. package/dist/chat-sdk/index.d.ts +131 -7
  508. package/dist/chat-sdk/index.js +154 -6
  509. package/dist/chat-sdk/react/index.d.ts +2 -1
  510. package/dist/chat-sdk/react/index.js +1 -2
  511. package/dist/chat-sdk/react/server.d.ts +2 -1
  512. package/dist/chat-sdk/react/server.js +1 -2
  513. package/dist/cli/add-B0zoJUYX.js +651 -0
  514. package/dist/cli/add-Bd5M6uEZ.js +75 -0
  515. package/dist/cli/add-CT6p5psO.js +1 -0
  516. package/dist/cli/adopt-C9jl8z0h.js +1 -0
  517. package/dist/cli/adopt-CebmlHL-.js +393 -0
  518. package/dist/cli/agent-CCt_aXpJ.js +176 -0
  519. package/dist/cli/apply-Dxk8AUNU.js +302 -0
  520. package/dist/cli/bin.js +40 -20
  521. package/dist/cli/blocks-Bzz326nn.js +1 -0
  522. package/dist/cli/blocks-Dq25D80b.js +124 -0
  523. package/dist/cli/cache-Cx6qlRDR.js +502 -0
  524. package/dist/cli/catalog-Di15TkM2.js +187 -0
  525. package/dist/cli/codemod-woL4cVe0.js +985 -0
  526. package/dist/cli/command-CK9Cn8HV.js +836 -0
  527. package/dist/cli/completion-BO5UK6bG.js +1 -0
  528. package/dist/cli/completion-CWoDmFZr.js +205 -0
  529. package/dist/cli/completion-J3dqnNoW.js +30 -0
  530. package/dist/cli/config-C1d-mbUA.js +1 -0
  531. package/dist/cli/config-CLHpTk9Y.js +1421 -0
  532. package/dist/cli/config-MuKY9kUj.js +39 -0
  533. package/dist/cli/config-edit-Ct1lXe8a.js +603 -0
  534. package/dist/cli/db-DT1bGB02.js +78 -0
  535. package/dist/cli/design-edit-B-WsnhUF.js +175 -0
  536. package/dist/cli/detect-DYDUBLU4.js +84 -0
  537. package/dist/cli/dist-D_VbPAMR.js +129 -0
  538. package/dist/cli/dist-DuiMMRbJ.js +1112 -0
  539. package/dist/cli/doctor-SGw36h1D.js +3806 -0
  540. package/dist/cli/emit-ZAYeh4Yn.js +1042 -0
  541. package/dist/cli/env-CVXvJoLP.js +142 -0
  542. package/dist/cli/env-D3gZ-OHj.js +1 -0
  543. package/dist/cli/env-DJ4ZaJpe.js +1 -0
  544. package/dist/cli/env-DMw_MBe5.js +996 -0
  545. package/dist/cli/errors-Caiz_0so.js +98 -0
  546. package/dist/cli/fastest-levenshtein-dhRRvrM2.js +120 -0
  547. package/dist/cli/files-DDvAwTko.js +963 -0
  548. package/dist/cli/gen-B344S1Oy.js +304 -0
  549. package/dist/cli/guards-CUlDNYZs.js +8 -0
  550. package/dist/cli/index.d.ts +258 -129
  551. package/dist/cli/index.js +13 -10
  552. package/dist/cli/init-B1dL-RZL.js +393 -0
  553. package/dist/cli/introspect-BPcFi8ow.js +51 -0
  554. package/dist/cli/io-BiPX-_J1.js +37 -0
  555. package/dist/cli/jsonc-C8M0EhHB.js +1 -0
  556. package/dist/cli/keys-jsxCNJdz.js +106 -0
  557. package/dist/cli/metadata-CxBZo4KM.js +138 -0
  558. package/dist/cli/module-migration-YFFdWC5X.js +592 -0
  559. package/dist/cli/moved-D9OT_Uyy.js +152 -0
  560. package/dist/cli/parse-DE59XyWt.js +170 -0
  561. package/dist/cli/preset-DmcC4nWE.js +129 -0
  562. package/dist/cli/prompts-Bvg_DBpe.js +1137 -0
  563. package/dist/cli/redact-PjNswZOs.js +35 -0
  564. package/dist/cli/rolldown-runtime-kJ_i4yPo.js +26 -0
  565. package/dist/cli/run-CM_2g6KQ.js +684 -0
  566. package/dist/cli/run-DaHfUUO9.js +1539 -0
  567. package/dist/cli/scaffold-CFdDq36-.js +898 -0
  568. package/dist/cli/scaffold-Dsjr7sOT.js +1 -0
  569. package/dist/cli/seed-DldDdXWO.js +113 -0
  570. package/dist/cli/seed-DtRFysBe.js +1 -0
  571. package/dist/cli/shell-Btv_4Yhe.js +10 -0
  572. package/dist/cli/skills-v34NDb2D.js +121 -0
  573. package/dist/cli/snapshot-DAxLi4hO.js +347 -0
  574. package/dist/cli/source-args-0I9zylYy.js +47 -0
  575. package/dist/cli/spec-CaaSOYZS.js +7501 -0
  576. package/dist/cli/spec-De0cfceR.js +1 -0
  577. package/dist/cli/sql-0I1EQ3JG.js +2 -0
  578. package/dist/cli/sql-DDLWwzh9.js +326 -0
  579. package/dist/cli/stack-status-CRanl-CN.js +456 -0
  580. package/dist/cli/style-2JfIPVMQ.js +29 -0
  581. package/dist/cli/supabase-toml-DjLgBYEo.js +1153 -0
  582. package/dist/cli/sync-DFx-6t5n.js +88 -0
  583. package/dist/cli/topics-GJuIDwlY.js +30 -0
  584. package/dist/cli/trace-VbdO6bcN.js +7 -0
  585. package/dist/cli/typegen--TfvOPLh.js +494 -0
  586. package/dist/cli/typegen-version-BNBPI4Eu.js +9 -0
  587. package/dist/cli/validate-BfWNKvxy.js +7522 -0
  588. package/dist/cli/version-DNRW4DAP.js +4 -0
  589. package/dist/cli/write-BS6F3Yvz.js +180 -0
  590. package/dist/client/index.d.ts +7 -4
  591. package/dist/client/index.js +152 -6
  592. package/dist/client/native/index.d.ts +71 -4
  593. package/dist/client/native/index.js +65 -6
  594. package/dist/client-01MAuqzW.js +137 -0
  595. package/dist/client-B7QVIrJS.d.ts +263 -0
  596. package/dist/client-B9CqzgPO.js +75 -0
  597. package/dist/client-BAcILZOf.d.ts +122 -0
  598. package/dist/client-BOT2KVIp.js +128 -0
  599. package/dist/client-BUGIS__1.js +1051 -0
  600. package/dist/client-BVZtq_rQ.d.ts +34 -0
  601. package/dist/client-BYaOGCOG.js +84 -0
  602. package/dist/client-BfgwocyT.js +155 -0
  603. package/dist/client-BpS8a6Fm.js +51 -0
  604. package/dist/client-BxnLb9bz.d.ts +58 -0
  605. package/dist/client-BzCv4kKE.js +65 -0
  606. package/dist/client-C-2ajnhM.js +89 -0
  607. package/dist/client-C5mUEb2n.js +55 -0
  608. package/dist/client-C9QrWrnt.js +209 -0
  609. package/dist/client-CFdMJ1h9.d.ts +277 -0
  610. package/dist/client-CHmjaI0j.d.ts +103 -0
  611. package/dist/client-CWs3X4g1.js +120 -0
  612. package/dist/client-Cdedx_lw.js +438 -0
  613. package/dist/client-CiGjS6us.js +169 -0
  614. package/dist/client-CilSKXNu.js +288 -0
  615. package/dist/client-ClZ0D-if.d.ts +162 -0
  616. package/dist/client-Cmensu7l.d.ts +419 -0
  617. package/dist/client-Co6BPmvr.d.ts +108 -0
  618. package/dist/client-CoVGPi0c.js +133 -0
  619. package/dist/client-CvITjt-9.js +310 -0
  620. package/dist/client-CzI4QpG3.d.ts +131 -0
  621. package/dist/client-D5CZ2a34.d.ts +455 -0
  622. package/dist/client-DAHsEOVV.d.ts +155 -0
  623. package/dist/client-DG7FwgZD.js +104 -0
  624. package/dist/client-DIrCmOXz.d.ts +157 -0
  625. package/dist/client-DNq8xYb-.js +52 -0
  626. package/dist/client-DdfSIZ3M.d.ts +107 -0
  627. package/dist/client-DjTRlN3a.d.ts +68 -0
  628. package/dist/client-Ezlbskjq.js +60 -0
  629. package/dist/client-LLmgiCwJ.d.ts +135 -0
  630. package/dist/client-Lx3mlvKO.d.ts +100 -0
  631. package/dist/client-PGRk3DGz.js +98 -0
  632. package/dist/client-Tc47rlSe.d.ts +350 -0
  633. package/dist/client-VvY0K3wr.d.ts +59 -0
  634. package/dist/client-WAdEBBrH.d.ts +65 -0
  635. package/dist/client-WHeWTNVL.d.ts +130 -0
  636. package/dist/client-WgrPIHH-.js +213 -0
  637. package/dist/client-ZTtSV3l8.js +40 -0
  638. package/dist/client-b2_GjzzD.js +438 -0
  639. package/dist/client-ckXfdy1k.js +38 -0
  640. package/dist/client-e-hFkLUf.d.ts +34 -0
  641. package/dist/client-hyP_nS5R.d.ts +218 -0
  642. package/dist/client-i8glKhxh.js +67 -0
  643. package/dist/client-iDLLvGR4.d.ts +52 -0
  644. package/dist/client-pxjbgOz6.js +376 -0
  645. package/dist/client-xkSCp9hN.d.ts +101 -0
  646. package/dist/client-ysNShuJZ.d.ts +39 -0
  647. package/dist/cloud-event-5rCEzIgK.d.ts +64 -0
  648. package/dist/codecs-Bm46sVxr.d.ts +215 -0
  649. package/dist/codecs-YAekuQ08.js +358 -0
  650. package/dist/codegen-DeoSt1mi.d.ts +1571 -0
  651. package/dist/comments-D7sbd0xG.js +230 -0
  652. package/dist/commerce/index.d.ts +211 -0
  653. package/dist/commerce/index.js +517 -0
  654. package/dist/compiler-BVxepAY0.d.ts +14 -0
  655. package/dist/compose-Djntdacs.js +53 -0
  656. package/dist/composite-M6zPs1Xm.js +130 -0
  657. package/dist/composite-djtGy6bz.d.ts +67 -0
  658. package/dist/config/index.d.ts +7 -5
  659. package/dist/config/index.js +7 -4
  660. package/dist/config-BA1K4OPk.js +557 -0
  661. package/dist/config-C4MozTD7.js +3892 -0
  662. package/dist/connector-Cp8CqssJ.d.ts +107 -0
  663. package/dist/connectors-CjD-R2ks.d.ts +141 -0
  664. package/dist/context-1sSWcd7_.d.ts +365 -0
  665. package/dist/context-B8_p3MXo.js +11 -0
  666. package/dist/context-BDDgjoxz.js +41 -0
  667. package/dist/context-C-bHOtoD.js +5 -0
  668. package/dist/context-D6ZMKc2L.js +19 -0
  669. package/dist/context-wDKxSl9x.js +9 -0
  670. package/dist/controller-D6NyNrlZ.js +79 -0
  671. package/dist/controller-D845qKh2.d.ts +46 -0
  672. package/dist/credentials/index.d.ts +15 -5
  673. package/dist/credentials/index.js +16 -8
  674. package/dist/cron-CUaKTjWC.js +145 -0
  675. package/dist/cron-route-CoL-By8Z.js +24 -0
  676. package/dist/csv-CVfXqaAu.js +89 -0
  677. package/dist/csv-D3eKxV1T.d.ts +28 -0
  678. package/dist/define-B2ln373W.js +1896 -0
  679. package/dist/define-DxHHbNEb.d.ts +1005 -0
  680. package/dist/define-block-B6Gjs57G.js +52 -0
  681. package/dist/define-block-CLZMEFeK.d.ts +256 -0
  682. package/dist/delegation-Dt8hMJWu.js +140 -0
  683. package/dist/delivery-B1mKaOen.js +30 -0
  684. package/dist/delivery-BeHgwS3k.d.ts +69 -0
  685. package/dist/documents-CWn2mtYf.d.ts +96 -0
  686. package/dist/edge/index.d.ts +16 -14
  687. package/dist/edge/index.js +24 -18
  688. package/dist/elysia/index.d.ts +1 -1
  689. package/dist/elysia/index.js +2 -2
  690. package/dist/email-BcmbIWOX.d.ts +42 -0
  691. package/dist/embeddings-C2S14foD.d.ts +78 -0
  692. package/dist/embeddings-CVeOoufZ.js +128 -0
  693. package/dist/ended-nIdGCHxk.d.ts +70 -0
  694. package/dist/entitlements-BvU5dLpW.js +45 -0
  695. package/dist/entitlements-CbzCKalR.d.ts +53 -0
  696. package/dist/env/index.d.ts +1 -1
  697. package/dist/env/index.js +3 -3
  698. package/dist/envelope-CHYk5MXU.js +90 -0
  699. package/dist/errors-8i6tSICm.js +301 -0
  700. package/dist/errors-PIpcoe4z.js +44 -0
  701. package/dist/escape-like-AUEPn-C5.d.ts +15 -0
  702. package/dist/eve/index.d.ts +5 -5
  703. package/dist/eve/index.js +9 -9
  704. package/dist/eve-DUF70Vgi.d.ts +151 -0
  705. package/dist/event-calendar-DJXXMJ3x.d.ts +217 -0
  706. package/dist/event-map-Dy2vKHai.js +19 -0
  707. package/dist/events/index.d.ts +4 -4
  708. package/dist/events/index.js +10 -7
  709. package/dist/events-CTreRrgP.d.ts +800 -0
  710. package/dist/events-xbpHkcK9.js +82 -0
  711. package/dist/executor-BBHgjUJu.d.ts +39 -0
  712. package/dist/executor-BINiCFNp.d.ts +95 -0
  713. package/dist/executor-BXSHYyW2.js +735 -0
  714. package/dist/executor-D1kYY5BA.js +206 -0
  715. package/dist/executor-D3K3tycZ.js +147 -0
  716. package/dist/executor-DKrZr3AC.d.ts +174 -0
  717. package/dist/executor-DoE-5iM8.d.ts +272 -0
  718. package/dist/expo/index.d.ts +4 -4
  719. package/dist/expo/index.js +6 -6
  720. package/dist/expo-sqlite/index.d.ts +3 -3
  721. package/dist/expo-sqlite/index.js +2 -2
  722. package/dist/field-errors-CWXN_h_E.d.ts +113 -0
  723. package/dist/field-formats-Cif5gr7c.js +102 -0
  724. package/dist/field-formats-DCvOQlOy.d.ts +39 -0
  725. package/dist/filter-evaluate-C0ULNfS7.js +214 -0
  726. package/dist/filter-evaluate-CjcFq0RT.d.ts +34 -0
  727. package/dist/filter-query-B3lhckKX.js +518 -0
  728. package/dist/filter-query-BKmRYrTE.d.ts +121 -0
  729. package/dist/flags-D_D1jAHB.d.ts +230 -0
  730. package/dist/flags-XAOsdNAc.js +279 -0
  731. package/dist/flags-sdk/index.d.ts +143 -0
  732. package/dist/flags-sdk/index.js +175 -0
  733. package/dist/form-definition-sagoefQr.d.ts +95 -0
  734. package/dist/format-CNwSjXUU.d.ts +70 -0
  735. package/dist/framework-DG5Bv39u.d.ts +26 -0
  736. package/dist/framework-INbjMZX1.js +51 -0
  737. package/dist/function-contract-B4c0XuTU.d.ts +21 -0
  738. package/dist/function-contract-DmkBg19r.js +5 -0
  739. package/dist/gateway-Cup00l0w.d.ts +109 -0
  740. package/dist/gateway-options-ClvvfuuU.d.ts +29 -0
  741. package/dist/gateway-options-DcLcWL5_.js +27 -0
  742. package/dist/graph-Cs28bOlK.js +360 -0
  743. package/dist/groups-CxonH3u5.js +16 -0
  744. package/dist/h3/index.d.ts +7 -3
  745. package/dist/h3/index.js +3 -3
  746. package/dist/h3/v1/index.d.ts +1 -1
  747. package/dist/h3/v1/index.js +2 -2
  748. package/dist/hono/index.d.ts +24 -10
  749. package/dist/hono/index.js +50 -22
  750. package/dist/http-BF-V0CUF.js +25 -0
  751. package/dist/impersonation-CDeCzZP6.js +62 -0
  752. package/dist/impersonation-D5chOkrO.d.ts +25 -0
  753. package/dist/inbox-3ql4phyr.d.ts +400 -0
  754. package/dist/index-BIi8i6BO.d.ts +97 -0
  755. package/dist/index-BkzNUPId.d.ts +131 -0
  756. package/dist/index-BlqrGvb3.d.ts +227 -0
  757. package/dist/index-Brhm22eL.d.ts +138 -0
  758. package/dist/index-Bvw9r94Q.d.ts +245 -0
  759. package/dist/index-CETRk4YO.d.ts +82 -0
  760. package/dist/index-CrZitvSC.d.ts +258 -0
  761. package/dist/index-DfVXx4Ia.d.ts +202 -0
  762. package/dist/index-DygICr8c.d.ts +206 -0
  763. package/dist/index-Ej8XQ9w9.d.ts +58 -0
  764. package/dist/index-jhqhynmh.d.ts +58 -0
  765. package/dist/index.d.ts +15 -15
  766. package/dist/index.js +15 -14
  767. package/dist/iso4217-A8ev-CNW.js +176 -0
  768. package/dist/json-schema-CpYINXG8.js +548 -0
  769. package/dist/jws-35a8VhFV.d.ts +60 -0
  770. package/dist/jws-milwSg7E.js +191 -0
  771. package/dist/kit-D5S7KNFe.d.ts +66 -0
  772. package/dist/kit-MUK34-ZG.js +104 -0
  773. package/dist/knowledge-BXQ2-V0a.d.ts +187 -0
  774. package/dist/knowledge-CJ_Mm3ic.js +272 -0
  775. package/dist/lint/index.js +9 -9
  776. package/dist/list/index.d.ts +4 -2
  777. package/dist/list/index.js +4 -2
  778. package/dist/list-query-CBXNfJt4.js +549 -0
  779. package/dist/list-query-PvP3pPGQ.d.ts +194 -0
  780. package/dist/live-DwDreq1n.js +239 -0
  781. package/dist/mcp/index.d.ts +24 -7
  782. package/dist/mcp/index.js +76 -55
  783. package/dist/mcp/sdk/index.d.ts +6 -6
  784. package/dist/mcp/sdk/index.js +7 -7
  785. package/dist/messages-Cx4ttLJJ.js +493 -0
  786. package/dist/metric-definition-95HFoW1V.d.ts +70 -0
  787. package/dist/metric-definition-BjxVn4R5.js +117 -0
  788. package/dist/mfa-DtflCXEt.d.ts +30 -0
  789. package/dist/model-lUafmeBQ.d.ts +311 -0
  790. package/dist/model-messages-CTu-6kBu.js +206 -0
  791. package/dist/money-95Rff2vT.js +185 -0
  792. package/dist/money-DFpWzQvk.d.ts +76 -0
  793. package/dist/money-codec-C_-K5ZUU.js +41 -0
  794. package/dist/nestjs/index.d.ts +2 -2
  795. package/dist/nestjs/index.js +2 -2
  796. package/dist/next/index.d.ts +26 -16
  797. package/dist/next/index.js +17 -16
  798. package/dist/node/index.d.ts +2 -2
  799. package/dist/node/index.js +3 -3
  800. package/dist/nuxt/index.d.ts +2 -2
  801. package/dist/nuxt/index.js +3 -2
  802. package/dist/onboarding-BZvLLPaY.js +68 -0
  803. package/dist/openapi/index.d.ts +3 -3
  804. package/dist/openapi/index.js +2 -2
  805. package/dist/operations-C9-UcReN.d.ts +6 -0
  806. package/dist/operations-CsIfMED7.js +29 -0
  807. package/dist/optional-peer-Dx8TaYXw.js +29 -0
  808. package/dist/options-B0FcEKtH.js +5 -0
  809. package/dist/options-B5BU2Yg7.js +11 -0
  810. package/dist/options-B5woz53h.js +5 -0
  811. package/dist/options-B7EJaOX-.js +5 -0
  812. package/dist/options-B9q8CROT.js +9 -0
  813. package/dist/options-BA6jV6py.js +10 -0
  814. package/dist/options-BAW2ZlZ8.js +8 -0
  815. package/dist/options-BMjcVuaI.js +82 -0
  816. package/dist/options-BOOEzor9.js +5 -0
  817. package/dist/options-BQ07tTYr.js +11 -0
  818. package/dist/options-BZsoPJGX.js +5 -0
  819. package/dist/options-BesyRBnM.js +16 -0
  820. package/dist/options-Bf96aVk5.js +10 -0
  821. package/dist/options-BlOPivzq.js +8 -0
  822. package/dist/options-Blg8lAkz.js +9 -0
  823. package/dist/options-Bn4cu0gt.js +5 -0
  824. package/dist/options-BnoJOwXK.js +8 -0
  825. package/dist/options-Bp7sgKvl.js +30 -0
  826. package/dist/options-BqO9GYig.js +311 -0
  827. package/dist/options-BxcFLL1G.js +8 -0
  828. package/dist/options-C1HR4UZd.js +13 -0
  829. package/dist/options-C239TLRF.js +14 -0
  830. package/dist/options-C2HesT4A.js +9 -0
  831. package/dist/options-C3EzJATk.js +10 -0
  832. package/dist/options-C3hZ1fbC.js +10 -0
  833. package/dist/options-C6rEL6U5.js +8 -0
  834. package/dist/options-CAzVf-1T.js +8 -0
  835. package/dist/options-CGKSUFUq.js +5 -0
  836. package/dist/options-CGjGE8xS.js +12 -0
  837. package/dist/options-CK5WiFwG.js +11 -0
  838. package/dist/options-CN7PHkhU.js +8 -0
  839. package/dist/options-CTZNpb2n.js +5 -0
  840. package/dist/options-CUqQ9pm7.js +9 -0
  841. package/dist/options-CVSWgZpY.js +8 -0
  842. package/dist/options-CXFz0xxS.js +8 -0
  843. package/dist/options-CZk_fbbg.js +9 -0
  844. package/dist/options-C_pb1Nd3.js +5 -0
  845. package/dist/options-CbSOj53r.d.ts +52 -0
  846. package/dist/options-ChD15QxJ.js +9 -0
  847. package/dist/options-CkScQRJR.js +12 -0
  848. package/dist/options-CljDnQt2.js +25 -0
  849. package/dist/options-CmraJhd9.js +5 -0
  850. package/dist/options-CoX6VKGb.js +8 -0
  851. package/dist/options-CrC78Tee.js +5 -0
  852. package/dist/options-Ctac2R0Q.js +11 -0
  853. package/dist/options-CyD7OObW.js +17 -0
  854. package/dist/options-D1blDihM.js +9 -0
  855. package/dist/options-D2Gd6VfS.js +8 -0
  856. package/dist/options-D2d1fFuw.js +11 -0
  857. package/dist/options-D40CQzji.js +8 -0
  858. package/dist/options-D7f2VKzj.js +25 -0
  859. package/dist/options-DARkpk2P.js +8 -0
  860. package/dist/options-DCduTMST.js +17 -0
  861. package/dist/options-DDzggjN7.js +8 -0
  862. package/dist/options-DMR68VAC.js +5 -0
  863. package/dist/options-DNKyN5uq.js +20 -0
  864. package/dist/options-DTDxFT6J.js +13 -0
  865. package/dist/options-DWpz3V3F.js +8 -0
  866. package/dist/options-DXqcJyOP.js +10 -0
  867. package/dist/options-DYBQ973I.js +8 -0
  868. package/dist/options-Dh4wu9Ks.js +15 -0
  869. package/dist/options-Dmg1Da9P.js +25 -0
  870. package/dist/options-DsUgamiy.js +5 -0
  871. package/dist/options-EsUh744F.js +13 -0
  872. package/dist/options-Fz6xqu-b.js +5 -0
  873. package/dist/options-HSv8R6h5.js +13 -0
  874. package/dist/options-I8zVkB_y.js +8 -0
  875. package/dist/options-MHhjOoWz.js +5 -0
  876. package/dist/options-MLxMkd5B.js +11 -0
  877. package/dist/options-OJ5zmgr8.js +10 -0
  878. package/dist/options-QKP9FFcK.js +8 -0
  879. package/dist/options-SViK_2x2.js +12 -0
  880. package/dist/options-XgfTctbI.js +5 -0
  881. package/dist/options-_9arpsX9.js +11 -0
  882. package/dist/options-eBPsk4WI.js +11 -0
  883. package/dist/options-kLKILdIu.js +10 -0
  884. package/dist/options-n22NK3PL.js +8 -0
  885. package/dist/options-oeAq4Ho5.js +12 -0
  886. package/dist/options-qU8vgxhO.js +18 -0
  887. package/dist/options-vXMBEWSH.js +5 -0
  888. package/dist/options-wFnK3qWl.js +9 -0
  889. package/dist/options-xVAy3UsV.js +9 -0
  890. package/dist/organizations-Cw7om8uk.js +398 -0
  891. package/dist/orpc/index.d.ts +26 -10
  892. package/dist/orpc/index.js +54 -33
  893. package/dist/otel/index.d.ts +3 -3
  894. package/dist/otel/index.js +42 -7
  895. package/dist/outbox-BTeqjbum.d.ts +181 -0
  896. package/dist/overlay/index.d.ts +1 -1
  897. package/dist/overlay/index.js +3 -3
  898. package/dist/payments-h45bswA-.js +16 -0
  899. package/dist/pg-error-BV_X8Isq.js +26 -0
  900. package/dist/plugin-CDLJRFFg.d.ts +190 -0
  901. package/dist/plugins/actor/index.d.ts +1 -1
  902. package/dist/plugins/actor/index.js +1 -1
  903. package/dist/plugins/rules/index.d.ts +2 -2
  904. package/dist/plugins/rules/index.js +2 -2
  905. package/dist/plugins/soft-delete/index.d.ts +3 -3
  906. package/dist/plugins/soft-delete/index.js +4 -4
  907. package/dist/plugins/tenant/index.d.ts +4 -3
  908. package/dist/plugins/tenant/index.js +3 -3
  909. package/dist/plugins/timestamps/index.d.ts +1 -1
  910. package/dist/plugins/timestamps/index.js +1 -1
  911. package/dist/plugins/validation/index.d.ts +2 -2
  912. package/dist/plugins/validation/index.js +3 -3
  913. package/dist/pool-CwOCsX9e.d.ts +114 -0
  914. package/dist/pool-errors-GMjlCN0d.js +27 -0
  915. package/dist/ports-Ca63W4cW.d.ts +285 -0
  916. package/dist/ports-DAdQyjZz.d.ts +86 -0
  917. package/dist/ports-DGK3KTDH.js +133 -0
  918. package/dist/postgres/index.d.ts +28 -6
  919. package/dist/postgres/index.js +54 -23
  920. package/dist/postgrest-Cw9Bs5gm.d.ts +53 -0
  921. package/dist/powersync/index.d.ts +4 -4
  922. package/dist/powersync/index.js +4 -4
  923. package/dist/powersync/react/index.d.ts +8 -3
  924. package/dist/powersync/react/index.js +11 -3
  925. package/dist/preset/index.d.ts +352 -0
  926. package/dist/preset/index.js +564 -0
  927. package/dist/problem-CEjyhV5T.d.ts +76 -0
  928. package/dist/problem-pIiL3WbE.js +159 -0
  929. package/dist/provider-9gBq9W6k.d.ts +113 -0
  930. package/dist/provider-DKh2xFZb.js +57 -0
  931. package/dist/push-token-D6REHMMw.js +16 -0
  932. package/dist/push-token-asrmi7-6.d.ts +24 -0
  933. package/dist/query/index.d.ts +2 -2
  934. package/dist/range-DwpWe8e7.js +7 -0
  935. package/dist/range-p5V4rBhZ.d.ts +8 -0
  936. package/dist/rank-keys-DcPMt_Jk.js +60 -0
  937. package/dist/rank-result-DS8IoLup.js +18 -0
  938. package/dist/rank-result-Dngpt2n5.d.ts +14 -0
  939. package/dist/rate-limit--QSiFA6D.js +325 -0
  940. package/dist/rate-limit-BtbddDnE.js +49 -0
  941. package/dist/rate-limit-C88MEAOm.d.ts +41 -0
  942. package/dist/ratelimit-headers-Bsxx0Tj2.js +62 -0
  943. package/dist/react/index.d.ts +9 -9
  944. package/dist/react/index.js +3 -4
  945. package/dist/react/native/index.d.ts +1 -1
  946. package/dist/react/native/index.js +2 -2
  947. package/dist/react/server.d.ts +10 -10
  948. package/dist/react/server.js +3 -3
  949. package/dist/react/session.d.ts +2 -2
  950. package/dist/react-CKXUkwPx.js +410 -0
  951. package/dist/react-controller-Xn-IU44p.js +40 -0
  952. package/dist/react-env-Cc7Vf6eb.js +13 -0
  953. package/dist/react-router/index.d.ts +6 -6
  954. package/dist/react-router/index.js +7 -7
  955. package/dist/read-set-GEb-i0On.js +314 -0
  956. package/dist/realtime/index.d.ts +8 -4
  957. package/dist/realtime/index.js +5 -327
  958. package/dist/realtime-status-D2dw1hOE.js +12 -0
  959. package/dist/realtime-status-DcsO00Gw.d.ts +8 -0
  960. package/dist/refusal-br4Ma9Cf.js +61 -0
  961. package/dist/refusal-oD3ISM9h.d.ts +18 -0
  962. package/dist/replicas-BvIL4_jL.js +94 -0
  963. package/dist/resolve-CAR9oaKW.js +869 -0
  964. package/dist/resolve-w9EpHzuM.d.ts +266 -0
  965. package/dist/resource-B4ka8dDH.d.ts +106 -0
  966. package/dist/resource-C8r5xGqY.js +463 -0
  967. package/dist/resource-DO4gbVi5.js +91 -0
  968. package/dist/resource-execute-D0yQ-8WR.d.ts +12 -0
  969. package/dist/resource-types-D2vEQVXI.d.ts +141 -0
  970. package/dist/resources-BklF-rjz.d.ts +7 -0
  971. package/dist/resources-BlZdLsWQ.js +64 -0
  972. package/dist/respond-C7I8kLK_.d.ts +93 -0
  973. package/dist/respond-DdhZ9Wbn.js +95 -0
  974. package/dist/result-BlgnMB0H.js +128 -0
  975. package/dist/result-Cj3yWhjH.d.ts +298 -0
  976. package/dist/rrule-zBh3CA1r.js +290 -0
  977. package/dist/rules-B0-3Iosu.js +261 -0
  978. package/dist/run-watch-CQRdpy-f.js +53 -0
  979. package/dist/sales-lines-BAk8In-Z.js +41 -0
  980. package/dist/sales-lines-C6gafAwg.d.ts +28 -0
  981. package/dist/sales-shared-DAAGwQwN.d.ts +8 -0
  982. package/dist/sales-shared-SblIgCgI.js +22 -0
  983. package/dist/scope-DgWjuXUw.js +90 -0
  984. package/dist/search-B6h03cAx.js +106 -0
  985. package/dist/search-BtoWY6n_.js +9 -0
  986. package/dist/server/index.d.ts +157 -51
  987. package/dist/server/index.js +295 -20
  988. package/dist/server-types-OohhIQb2.d.ts +737 -0
  989. package/dist/session-DiWHtYrO.d.ts +95 -0
  990. package/dist/settings-BXFn9zpS.js +90 -0
  991. package/dist/shared-BmMcMoW9.js +89 -0
  992. package/dist/shared-DbO3Dfms.js +14 -0
  993. package/dist/shared-as0EG51f.js +60 -0
  994. package/dist/sign-in-D0xN6E_l.js +360 -0
  995. package/dist/signatures-B41ApWXA.js +145 -0
  996. package/dist/signatures-BMdJ7neI.d.ts +43 -0
  997. package/dist/signers-CXt_wA9S.d.ts +385 -0
  998. package/dist/signing-keys-Bq9mMCTh.d.ts +90 -0
  999. package/dist/solid/index.d.ts +8 -8
  1000. package/dist/solid/index.js +3 -8
  1001. package/dist/solid-controller-DLsmrczT.js +33 -0
  1002. package/dist/solid-controller-DqlvYFZa.d.ts +11 -0
  1003. package/dist/solid-start/index.d.ts +8 -12
  1004. package/dist/solid-start/index.js +8 -7
  1005. package/dist/spec/index.d.ts +25 -5
  1006. package/dist/spec/index.js +37 -4
  1007. package/dist/spec-pins-Dqpml2dZ.d.ts +84 -0
  1008. package/dist/spec-pins-S4PymRxp.js +60 -0
  1009. package/dist/sql/index.d.ts +189 -28
  1010. package/dist/sql/index.js +74328 -26488
  1011. package/dist/sql-DJrXG-3Z.js +422 -0
  1012. package/dist/sso-BDva_-4y.js +217 -0
  1013. package/dist/sso-BN0LnMqE.d.ts +131 -0
  1014. package/dist/ssr/index.d.ts +5 -6
  1015. package/dist/ssr/index.js +4 -4
  1016. package/dist/standard-B5fe2gnW.js +25 -0
  1017. package/dist/standard-C3_AAF3g.d.ts +7 -0
  1018. package/dist/stats-D6vkb89f.js +1128 -0
  1019. package/dist/storage/index.d.ts +3 -3
  1020. package/dist/storage/index.js +14 -10
  1021. package/dist/storage-api-Cx-1iWBd.d.ts +582 -0
  1022. package/dist/store-B5qYKsTh.d.ts +68 -0
  1023. package/dist/streams/index.d.ts +4 -4
  1024. package/dist/streams/index.js +4 -4
  1025. package/dist/streams/redis/index.d.ts +1 -1
  1026. package/dist/streams/redis/index.js +4 -4
  1027. package/dist/stripe/index.d.ts +16 -0
  1028. package/dist/stripe/index.js +14 -0
  1029. package/dist/stripe-NVcNOhHy.d.ts +140 -0
  1030. package/dist/stripe-XZrSmDTf.js +32 -0
  1031. package/dist/subject-readers-DiePmaYP.js +46 -0
  1032. package/dist/subject-readers-fxP5wu0s.d.ts +21 -0
  1033. package/dist/subjects-z8VWA_lF.d.ts +69 -0
  1034. package/dist/subscribers-Cq--DL1E.js +34 -0
  1035. package/dist/supabase-mcp-DomZ-amK.js +28 -0
  1036. package/dist/support-BsKkvA92.js +522 -0
  1037. package/dist/support-view-BbcZR7Io.d.ts +17 -0
  1038. package/dist/svelte/index.d.ts +7 -7
  1039. package/dist/svelte/index.js +2 -2
  1040. package/dist/svelte-controller-CDAujo-_.js +50 -0
  1041. package/dist/svelte-controller-DxxHEHxD.d.ts +10 -0
  1042. package/dist/sveltekit/index.d.ts +11 -13
  1043. package/dist/sveltekit/index.js +9 -9
  1044. package/dist/table-schema-pQlER3jj.js +283 -0
  1045. package/dist/tags-Dw8vKkcI.d.ts +30 -0
  1046. package/dist/tags-PaG0Ns_9.js +84 -0
  1047. package/dist/tanstack-db/index.d.ts +2 -2
  1048. package/dist/tanstack-db/index.js +1 -1
  1049. package/dist/tanstack-db/supabase/index.d.ts +5 -6
  1050. package/dist/tanstack-db/supabase/index.js +180 -9
  1051. package/dist/tanstack-start/index.d.ts +7 -7
  1052. package/dist/tanstack-start/index.js +6 -6
  1053. package/dist/tax-DDZUB_oc.d.ts +273 -0
  1054. package/dist/tax-D_kSCdWU.js +140 -0
  1055. package/dist/tee-Bsisfd7t.js +101 -0
  1056. package/dist/template-DdgYjIZ5.js +123 -0
  1057. package/dist/temporal-CB5Fpo5d.js +79 -0
  1058. package/dist/temporal-required-DqRzr7i0.js +20 -0
  1059. package/dist/tenant-B-fiItlJ.js +27 -0
  1060. package/dist/tenant-DdmVhsff.d.ts +17 -0
  1061. package/dist/tenant-naming-Bsj3Uvap.js +27 -0
  1062. package/dist/testing/index.d.ts +235 -32
  1063. package/dist/testing/index.js +1132 -32
  1064. package/dist/timing-BMCWgpdZ.js +92 -0
  1065. package/dist/topic-ByDz9edV.js +542 -0
  1066. package/dist/topic-cMS7UtM1.d.ts +359 -0
  1067. package/dist/types-6oiy6rIa.d.ts +205 -0
  1068. package/dist/types-CdP0z5tS.d.ts +564 -0
  1069. package/dist/types-D0W4fnsc.d.ts +162 -0
  1070. package/dist/types-R6syp1el.js +29 -0
  1071. package/dist/types-YfwpIE-d.d.ts +357 -0
  1072. package/dist/types-pNY_UpDs.d.ts +240 -0
  1073. package/dist/types-vaoP9S9_.d.ts +635 -0
  1074. package/dist/undo-CEGIRkPA.js +44 -0
  1075. package/dist/undo-DGo0skyO.d.ts +43 -0
  1076. package/dist/usage-CdlfuS3i.js +250 -0
  1077. package/dist/usage-DM2rzczj.d.ts +202 -0
  1078. package/dist/vault-tOkPLnMB.d.ts +50 -0
  1079. package/dist/vercel-connect/index.d.ts +1 -1
  1080. package/dist/vercel-connect/index.js +4 -4
  1081. package/dist/verify-D63A2ALE.d.ts +142 -0
  1082. package/dist/verify-EQcC3Khp.js +126 -0
  1083. package/dist/version-D87ZteKy.js +4 -0
  1084. package/dist/view-DZ63nqwt.js +105 -0
  1085. package/dist/view-Dv0A949a.d.ts +90 -0
  1086. package/dist/vue/index.d.ts +8 -8
  1087. package/dist/vue/index.js +3 -16
  1088. package/dist/vue-controller-C9tFzqAc.js +32 -0
  1089. package/dist/vue-controller-HPfMTDa2.d.ts +11 -0
  1090. package/dist/watch-DDuWYv0Y.d.ts +84 -0
  1091. package/dist/watch-DT_B3CnJ.js +139 -0
  1092. package/dist/watch-topic-EFpOIIDE.d.ts +28 -0
  1093. package/dist/watch-topic-miuymrli.js +57 -0
  1094. package/dist/wire-DEY0ajW9.js +45 -0
  1095. package/dist/workflow-builder-OrglbXUh.js +681 -0
  1096. package/dist/workflow-sdk/builder/index.d.ts +46 -15
  1097. package/dist/workflow-sdk/builder/index.js +69 -21
  1098. package/dist/workflow-sdk/index.d.ts +75 -2
  1099. package/dist/workflow-sdk/index.js +83 -3
  1100. package/dist/workflow-sdk/world/index.d.ts +29 -4
  1101. package/dist/workflow-sdk/world/index.js +137 -59
  1102. package/dist/workflow-sdk-BZ6qsRlY.js +243 -0
  1103. package/dist/workflow-sdk-q8cLwW1K.d.ts +161 -0
  1104. package/dist/workflow-sdk-world-DPMdBfzn.js +2103 -0
  1105. package/dist/workflows-C-OvZpeg.js +282 -0
  1106. package/dist/workflows-DFQeXDAI.d.ts +243 -0
  1107. package/dist/yjs/index.d.ts +67 -0
  1108. package/dist/yjs/index.js +212 -0
  1109. package/package.json +788 -46
  1110. package/schemas/cli-commands-v1.json +220 -0
  1111. package/schemas/cli-result-v1.json +138 -0
  1112. package/schemas/config-v1.json +4147 -726
  1113. package/schemas/doctor-report-v1.json +23 -0
  1114. package/schemas/snapshot-v2.json +271 -0
  1115. package/skills/better-supabase/SKILL.md +11 -4
  1116. package/skills/better-supabase/references/plugins.md +2 -2
  1117. package/skills/better-supabase/references/ui-recipes.md +18652 -0
  1118. package/skills/better-supabase-api/SKILL.md +14 -14
  1119. package/skills/better-supabase-api/references/adapters.md +12 -2
  1120. package/skills/better-supabase-api/references/ai.md +4 -4
  1121. package/skills/better-supabase-api/references/expo.md +1 -1
  1122. package/skills/better-supabase-api/references/powersync.md +1 -1
  1123. package/skills/better-supabase-api/references/streams-credentials.md +8 -5
  1124. package/skills/better-supabase-auth/SKILL.md +18 -11
  1125. package/skills/better-supabase-auth/references/authorization-providers.md +5 -5
  1126. package/skills/better-supabase-testing/SKILL.md +2 -2
  1127. package/testing/act-cases.json +370 -0
  1128. package/dist/access-sql-CrSbK1q-.js +0 -181
  1129. package/dist/actor-CQTlc1Hh.d.ts +0 -43
  1130. package/dist/adapter-CN45ibbV.js +0 -1691
  1131. package/dist/agents-BY_LQXtQ.d.ts +0 -94
  1132. package/dist/ai-cache-Dfgk8nBT.js +0 -81
  1133. package/dist/ai-cache-DrUMMgp6.d.ts +0 -64
  1134. package/dist/ai-chat-CVLRWbtS.js +0 -744
  1135. package/dist/ai-chat-DXkMy74O.d.ts +0 -590
  1136. package/dist/ai-files-CioLu5du.js +0 -320
  1137. package/dist/ai-tasks-BRQ6iQLc.d.ts +0 -131
  1138. package/dist/announcements-Bouy0Ski.d.ts +0 -72
  1139. package/dist/announcements-p_BFofiR.js +0 -107
  1140. package/dist/api-Dnf2q-Ht.d.ts +0 -370
  1141. package/dist/api-DtHFC037.js +0 -676
  1142. package/dist/api-keys-C8BlF3L2.d.ts +0 -156
  1143. package/dist/assistant-DBlFDZsi.d.ts +0 -147
  1144. package/dist/attributes-5dYul0u0.js +0 -13
  1145. package/dist/authorization-BFCqamMs.d.ts +0 -172
  1146. package/dist/authorizer-ayxUDXXP.js +0 -126
  1147. package/dist/base64-D2gsioCY.js +0 -42
  1148. package/dist/before-route-CnR0C0Jr.js +0 -30
  1149. package/dist/bind-ButSzrHe.js +0 -97
  1150. package/dist/bind-CQ5mPyX1.d.ts +0 -62
  1151. package/dist/block-events-DTxU5tfr.js +0 -91
  1152. package/dist/block-fields-CroxUuF2.js +0 -49
  1153. package/dist/block-fields-D1pfrcIY.d.ts +0 -31
  1154. package/dist/block-helpers-C0Xj8War.d.ts +0 -37
  1155. package/dist/block-helpers-Cy3pB96I.js +0 -222
  1156. package/dist/block-hooks-BPNMIlLl.js +0 -114
  1157. package/dist/block-hooks-DaOVC7SC.d.ts +0 -107
  1158. package/dist/block-transport-bAKh-dGc.js +0 -85
  1159. package/dist/block-transport-inD4fFq-.d.ts +0 -70
  1160. package/dist/build-hPwk3_X5.js +0 -1296
  1161. package/dist/build-meLuYGri.js +0 -689
  1162. package/dist/channel-_2Mx1Oyu.d.ts +0 -70
  1163. package/dist/channels-CkgQ_X60.js +0 -114
  1164. package/dist/cli/add-1dc5wM5k.js +0 -69
  1165. package/dist/cli/bin.d.ts +0 -1
  1166. package/dist/cli/cache-CIfA-jBV.js +0 -483
  1167. package/dist/cli/codemod-JVlTQQG2.js +0 -491
  1168. package/dist/cli/command-DV-StG1x.js +0 -507
  1169. package/dist/cli/config-C2Pz2_4A.js +0 -52
  1170. package/dist/cli/config-DpbF8ML3.js +0 -2
  1171. package/dist/cli/config-M-WzL9O2.js +0 -1175
  1172. package/dist/cli/db-BkcfOlyB.js +0 -53
  1173. package/dist/cli/diff-D1jGdb3Y.js +0 -752
  1174. package/dist/cli/dist-DBPdlPYK.js +0 -1112
  1175. package/dist/cli/dist-DRAVaE6w.js +0 -842
  1176. package/dist/cli/dist-DreZ24Sz.js +0 -129
  1177. package/dist/cli/doctor-VcDtuusV.js +0 -3686
  1178. package/dist/cli/emit-BHHfwUoT.js +0 -1136
  1179. package/dist/cli/env-B--LMhEe.js +0 -514
  1180. package/dist/cli/env-vzBG90Um.js +0 -2
  1181. package/dist/cli/env-zHJtMIBo.js +0 -116
  1182. package/dist/cli/errors-CqTLXe2M.js +0 -72
  1183. package/dist/cli/fastest-levenshtein-CF7BCi9l.js +0 -120
  1184. package/dist/cli/files-BVupXPIC.js +0 -34
  1185. package/dist/cli/gen-DmVj3u4L.js +0 -322
  1186. package/dist/cli/glue-C1UE8gQN.js +0 -468
  1187. package/dist/cli/init-CVZ3s5kl.js +0 -258
  1188. package/dist/cli/introspect-BToGNfm-.js +0 -81
  1189. package/dist/cli/io-CFzJVJ68.js +0 -37
  1190. package/dist/cli/jsonc-BUniUpOk.js +0 -2
  1191. package/dist/cli/keys-CJhtIxJ3.js +0 -85
  1192. package/dist/cli/metadata-DSRKCaf-.js +0 -133
  1193. package/dist/cli/openapi-DWa4Ir1q.js +0 -60
  1194. package/dist/cli/project-DZRaBaY7.js +0 -75
  1195. package/dist/cli/prompts-BdeVmVpg.js +0 -2
  1196. package/dist/cli/prompts-DZJB1nTw.js +0 -1142
  1197. package/dist/cli/read-sets-DjJrm8Wj.js +0 -223
  1198. package/dist/cli/rolldown-runtime-CMFfr-1z.js +0 -26
  1199. package/dist/cli/run-DA6_lg3w.js +0 -389
  1200. package/dist/cli/run-DuN1MX-7.js +0 -705
  1201. package/dist/cli/scaffold-5DenHSxF.js +0 -292
  1202. package/dist/cli/scaffold-CwQUMFRb.js +0 -2
  1203. package/dist/cli/seed-CzBmrGON.js +0 -96
  1204. package/dist/cli/seed-DOmit9Hq.js +0 -2
  1205. package/dist/cli/skills-CnO8QFS7.js +0 -139
  1206. package/dist/cli/snapshot-Bstk6ulj.js +0 -287
  1207. package/dist/cli/source-args-BYfq6imV.js +0 -31
  1208. package/dist/cli/spec-CzosTYm3.js +0 -7438
  1209. package/dist/cli/spec-T_0Bcyw7.js +0 -2
  1210. package/dist/cli/sql-BKOOQAX3.js +0 -517
  1211. package/dist/cli/sql-DJrNDxQm.js +0 -3
  1212. package/dist/cli/sql-layout-D6cphHT3.js +0 -69
  1213. package/dist/cli/style-CB3vxgh0.js +0 -29
  1214. package/dist/cli/supabase-toml-B-bIukQF.js +0 -1095
  1215. package/dist/cli/typegen-Demi5-VQ.js +0 -486
  1216. package/dist/cli/typegen-version-DeFbtzYI.js +0 -8
  1217. package/dist/cli/validate-Ca13ktgz.js +0 -7522
  1218. package/dist/cli/version-B4k0aUxS.js +0 -4
  1219. package/dist/client-wxeTQFtB.js +0 -310
  1220. package/dist/cloud-event-Dune0KI7.d.ts +0 -64
  1221. package/dist/compiler-V1qvcST1.d.ts +0 -14
  1222. package/dist/compose-BHej1acw.js +0 -53
  1223. package/dist/composite-CWAJTRBF.d.ts +0 -146
  1224. package/dist/composite-zTe0TCqj.js +0 -130
  1225. package/dist/config-DlKvtt95.js +0 -540
  1226. package/dist/connector-CySQEFcW.d.ts +0 -107
  1227. package/dist/connectors--PGhmiu0.d.ts +0 -120
  1228. package/dist/context-DsV2SueA.d.ts +0 -246
  1229. package/dist/context-nPDvQ-Zl.js +0 -41
  1230. package/dist/cron-D25Ukpxy.js +0 -145
  1231. package/dist/cron-route-D2AN9SA1.js +0 -24
  1232. package/dist/csv-BZnHA1Py.js +0 -25
  1233. package/dist/define-CFQcvM20.js +0 -1949
  1234. package/dist/define-DmcfoNXB.d.ts +0 -1005
  1235. package/dist/embeddings-4ZvFzjsU.js +0 -127
  1236. package/dist/embeddings-B4vhS-dY.d.ts +0 -68
  1237. package/dist/ended-CcvcRqEd.d.ts +0 -69
  1238. package/dist/entitlements-BYFf0Cdh.js +0 -24
  1239. package/dist/entitlements-Ds8qoYZ-.d.ts +0 -51
  1240. package/dist/envelope-DqnYGRw7.js +0 -47
  1241. package/dist/errors-2M6CKMP4.js +0 -271
  1242. package/dist/errors-rZ7VIqp6.js +0 -44
  1243. package/dist/escape-like-DDWoHzh_.d.ts +0 -15
  1244. package/dist/eve-CoAIcCkq.d.ts +0 -151
  1245. package/dist/events-D1BOCll8.d.ts +0 -551
  1246. package/dist/executor-B-fD7DLt.js +0 -735
  1247. package/dist/executor-B_Hfobee.js +0 -162
  1248. package/dist/executor-C-R4pucm.js +0 -83
  1249. package/dist/executor-CpxLPCiz.d.ts +0 -36
  1250. package/dist/executor-DfEtf0cq.d.ts +0 -164
  1251. package/dist/executor-Drzu3dBK.d.ts +0 -261
  1252. package/dist/executor-ngjKL_Pe.d.ts +0 -30
  1253. package/dist/field-errors-DIe9XYWL.d.ts +0 -109
  1254. package/dist/format-DTXdu8ya.d.ts +0 -70
  1255. package/dist/framework-148t1m3C.d.ts +0 -25
  1256. package/dist/framework-3ey3QmrO.js +0 -51
  1257. package/dist/function-contract-BcZenXMO.d.ts +0 -8
  1258. package/dist/gateway-S9vicgeo.d.ts +0 -130
  1259. package/dist/graph-BGyLLFLX.js +0 -265
  1260. package/dist/hooks-Bhza9Hnr.js +0 -277
  1261. package/dist/http-sbmBe5d2.js +0 -25
  1262. package/dist/impersonation-DcqaTBHx.js +0 -148
  1263. package/dist/inbox-Cd1KCEBL.d.ts +0 -384
  1264. package/dist/index-B72Rvv_j.d.ts +0 -89
  1265. package/dist/index-BCHR4Ucl.d.ts +0 -300
  1266. package/dist/index-BUK7jUzR.d.ts +0 -82
  1267. package/dist/index-Ba1SI-uO.d.ts +0 -1331
  1268. package/dist/index-BfxOaOYs.d.ts +0 -245
  1269. package/dist/index-CicIyqOe.d.ts +0 -55
  1270. package/dist/index-D69h4QqD.d.ts +0 -74
  1271. package/dist/index-DG2SUXDQ.d.ts +0 -58
  1272. package/dist/index-DoNVLHOU.d.ts +0 -206
  1273. package/dist/index-R274XFlg.d.ts +0 -138
  1274. package/dist/index-_4R4b01v.d.ts +0 -257
  1275. package/dist/json-schema-CT4tvrkA.js +0 -548
  1276. package/dist/kit-BhHr9T9v.js +0 -104
  1277. package/dist/kit-W99LCPBS.d.ts +0 -66
  1278. package/dist/knowledge-CAReFpRA.d.ts +0 -176
  1279. package/dist/knowledge-DnHtb64A.js +0 -256
  1280. package/dist/list-query-D3JQeEL7.d.ts +0 -164
  1281. package/dist/list-query-gl808ac1.js +0 -459
  1282. package/dist/live-CTAZQkwl.js +0 -257
  1283. package/dist/messages-CJoHHCWT.js +0 -514
  1284. package/dist/mfa-SZc9YYyb.d.ts +0 -54
  1285. package/dist/model-OgBxvk3N.d.ts +0 -300
  1286. package/dist/model-messages-Cxw_Up4f.js +0 -206
  1287. package/dist/modules-DksjZyMW.js +0 -77
  1288. package/dist/modules-DpPwzC7E.d.ts +0 -192
  1289. package/dist/onboarding-LZvlK1P4.d.ts +0 -62
  1290. package/dist/optional-peer-D1pi-skw.js +0 -24
  1291. package/dist/outbox-DZfAvfzC.d.ts +0 -161
  1292. package/dist/plugin-CPK2HsbY.d.ts +0 -190
  1293. package/dist/pool-gkhbGp2E.d.ts +0 -89
  1294. package/dist/postgrest-BUqLag2Q.d.ts +0 -53
  1295. package/dist/problem-CJvFeGu7.js +0 -126
  1296. package/dist/problem-TvGdxO1t.d.ts +0 -73
  1297. package/dist/provider-DxRTex4x.js +0 -57
  1298. package/dist/provider-ib9wzUDz.d.ts +0 -113
  1299. package/dist/rate-limit-Bw7HgmFj.js +0 -260
  1300. package/dist/react-Bmpo59D7.js +0 -409
  1301. package/dist/react-topic-seAWjL3_.js +0 -38
  1302. package/dist/read-set-DAeWhqPf.js +0 -314
  1303. package/dist/refusal-CFI8-5nf.d.ts +0 -18
  1304. package/dist/refusal-K78A1Vmq.js +0 -61
  1305. package/dist/replicas-CwrYp5Zj.js +0 -94
  1306. package/dist/resolve-Bvgf3ut_.js +0 -786
  1307. package/dist/resolve-MxXVWyhd.d.ts +0 -173
  1308. package/dist/resource--vTrBe6I.d.ts +0 -103
  1309. package/dist/resource-BqNqlYg9.js +0 -91
  1310. package/dist/resource-DA811u_4.js +0 -463
  1311. package/dist/resource-execute-rbKvuCsY.d.ts +0 -12
  1312. package/dist/resource-types-CqB6GWGT.d.ts +0 -141
  1313. package/dist/resources-BVYPnuLo.js +0 -56
  1314. package/dist/resources-DZSk8tXJ.d.ts +0 -7
  1315. package/dist/respond-Cw-zanCm.d.ts +0 -93
  1316. package/dist/respond-volM3ByS.js +0 -91
  1317. package/dist/result-BchM1XZn.d.ts +0 -288
  1318. package/dist/result-DEqHCMKP.js +0 -128
  1319. package/dist/scope-CDHcS7dE.js +0 -90
  1320. package/dist/search-CUWCRYKL.js +0 -9
  1321. package/dist/server-types-CrAmZ8jv.d.ts +0 -614
  1322. package/dist/session-ChiXDZdZ.d.ts +0 -72
  1323. package/dist/shared-CBxosKK3.js +0 -75
  1324. package/dist/shared-DHjhfRdV.js +0 -60
  1325. package/dist/shared-DTneRoxi.js +0 -14
  1326. package/dist/sign-in-D_yoP0PF.js +0 -86
  1327. package/dist/signatures-BRS_p3WD.d.ts +0 -34
  1328. package/dist/signatures-DsWv_bYR.js +0 -103
  1329. package/dist/signers-cpdmZYrv.d.ts +0 -166
  1330. package/dist/spec-pins-CwzDY25w.d.ts +0 -44
  1331. package/dist/spec-pins-DsLfUH7l.js +0 -40
  1332. package/dist/sql-CwuqaQ4Y.js +0 -388
  1333. package/dist/standard-DkzZUneg.js +0 -25
  1334. package/dist/standard-lmkbOtPB.d.ts +0 -7
  1335. package/dist/stats-DhU78Ctf.js +0 -1127
  1336. package/dist/storage-api-CB7Zl1Ci.d.ts +0 -582
  1337. package/dist/store-DsIYEBnv.d.ts +0 -68
  1338. package/dist/stripe-D04h-QBT.d.ts +0 -136
  1339. package/dist/stripe-v-Y2lmop.js +0 -32
  1340. package/dist/supabase-mcp-Cpn5A4i-.js +0 -28
  1341. package/dist/support-D1pFFouF.js +0 -350
  1342. package/dist/support-view-scqMgtOo.d.ts +0 -17
  1343. package/dist/table-schema-htM_SbCW.js +0 -286
  1344. package/dist/tags-BO9LjtWG.d.ts +0 -30
  1345. package/dist/tee-Cb98Vn3b.js +0 -101
  1346. package/dist/template-lPVh-EwW.js +0 -123
  1347. package/dist/temporal-BJGitm-h.js +0 -79
  1348. package/dist/temporal-required-BtynQtM-.js +0 -20
  1349. package/dist/tenant-CM368LXb.d.ts +0 -17
  1350. package/dist/tenant-I1TEZ_BX.js +0 -27
  1351. package/dist/timing-CyTQPubY.js +0 -92
  1352. package/dist/types-6cYK9pbJ.js +0 -29
  1353. package/dist/types-Bb_4-vdW.d.ts +0 -220
  1354. package/dist/types-CD6yCDx3.d.ts +0 -359
  1355. package/dist/types-CbOUc5IH.d.ts +0 -156
  1356. package/dist/types-CoE5Zwy4.d.ts +0 -348
  1357. package/dist/types-DSJ3-m9X.d.ts +0 -192
  1358. package/dist/types-D__3EN0q.d.ts +0 -425
  1359. package/dist/usage-D0NNUFfr.d.ts +0 -177
  1360. package/dist/vault-BpmApxxW.d.ts +0 -50
  1361. package/dist/verify-C91Wyp40.d.ts +0 -142
  1362. package/dist/verify-CJbYfADA.js +0 -124
  1363. package/dist/version-Cq8gfDbd.js +0 -4
  1364. package/dist/view-D5ryq3gz.js +0 -99
  1365. package/dist/view-TpXEUcVN.d.ts +0 -87
  1366. package/dist/watch-BcvtAHOd.js +0 -122
  1367. package/dist/watch-COzRWvVN.d.ts +0 -74
  1368. package/dist/wire-Df3EWkG8.js +0 -45
  1369. package/dist/workflow-builder-CHqHpAVt.js +0 -399
  1370. package/dist/workflow-sdk-C2WJ_G2O.js +0 -173
  1371. package/dist/workflow-sdk-DTZyrvNo.d.ts +0 -98
  1372. package/dist/workflow-sdk-world-CMV1ahFW.js +0 -1399
  1373. package/dist/workflows-CcpCBfIe.d.ts +0 -185
  1374. package/dist/workflows-IvxzG2cl.js +0 -217
@@ -1,18 +1,66 @@
1
- import { n as dbError } from "../../errors-2M6CKMP4.js";
2
- import { t as temporal } from "../../temporal-required-BtynQtM-.js";
3
- import { a as ok, r as err, s as toDbError, t as AsyncResult } from "../../result-DEqHCMKP.js";
1
+ import { t as DbException } from "../../db-exception-CnWcYPxL.js";
2
+ import { n as dbError } from "../../errors-8i6tSICm.js";
3
+ import { t as temporal } from "../../temporal-required-DqRzr7i0.js";
4
+ import { a as ok, r as err, s as toDbError, t as AsyncResult } from "../../result-BlgnMB0H.js";
4
5
  import { n as isRecord } from "../../guards-6F2bCtQR.js";
5
- import { i as toBase64 } from "../../base64-D2gsioCY.js";
6
- import { a as methodNotAllowed, o as problemResponse } from "../../problem-CJvFeGu7.js";
6
+ import { i as toBase64, r as fromBase64 } from "../../base64-BmeCBgGo.js";
7
+ import { a as methodNotAllowed, o as problemResponse } from "../../problem-pIiL3WbE.js";
7
8
  import { a as stripTypePrefix } from "../../cloud-event-CTh9Sr5w.js";
8
- import { r as blockEmitter } from "../../block-events-DTxU5tfr.js";
9
+ import { n as credentialRefInTenant, r as foreignCredentialRef } from "../../provider-DKh2xFZb.js";
10
+ import { n as event, t as defineEvents } from "../../event-map-Dy2vKHai.js";
11
+ import { r as blockEmitter } from "../../block-events-DD9Q_NUz.js";
9
12
  import { n as hmacHex, r as timingSafeEqual } from "../../hmac-DCud0myt.js";
10
- import { a as verifyWebhook, i as verifySharedSecret, n as signWebhook } from "../../signatures-DsWv_bYR.js";
11
- import { t as cronRoute } from "../../cron-route-D2AN9SA1.js";
12
- import { i as sqlTransport, r as rpcTransport, t as dbTransport } from "../../block-transport-bAKh-dGc.js";
13
- import { M as toBlockError, N as toInstant, a as budget, l as errorText, n as applyTemporal, r as asDbError, v as optionalText, x as readBodyCapped } from "../../block-helpers-Cy3pB96I.js";
14
- import { a as receiveWebhook, n as hitRateLimit } from "../../rate-limit-Bw7HgmFj.js";
15
- import { a as signStripeWebhook, i as isDatabaseWebhook, n as databaseChange, o as stripeInboxVerify, r as hookError, s as verifyStripeWebhook, t as authHook } from "../../verify-CJbYfADA.js";
13
+ import { i as signWebhook, o as verifySharedSecret, s as verifyWebhook, t as PUBLIC_KEY_PREFIX } from "../../signatures-B41ApWXA.js";
14
+ import { t as cronRoute } from "../../cron-route-CoL-By8Z.js";
15
+ import { i as sqlTransport, r as rpcTransport, t as dbTransport } from "../../block-transport-G4t1umrR.js";
16
+ import { C as optionalText, D as recordOf, E as readBodyCapped, L as toBlockError, M as seconds, R as toInstant, c as chunksOf, f as errorText, i as batchResultsOf, k as recordsOf, n as applyTemporal, o as blockCall, r as asDbError, s as budget } from "../../block-helpers-CfG_MvDR.js";
17
+ import { t as subjectReaders } from "../../subject-readers-DiePmaYP.js";
18
+ import { r as withBlockHooks } from "../../block-hooks-BsXncUlZ.js";
19
+ import { n as hitRateLimit, o as receiveWebhook } from "../../rate-limit--QSiFA6D.js";
20
+ import { n as defineBlock } from "../../define-block-B6Gjs57G.js";
21
+ import { t as MAX_BATCH } from "../../batch-limit-DKVQDz4o.js";
22
+ import { a as signStripeWebhook, i as isDatabaseWebhook, n as databaseChange, o as stripeInboxVerify, r as hookError, s as verifyStripeWebhook, t as authHook } from "../../verify-EQcC3Khp.js";
23
+ import { toHttp } from "../../events/index.js";
24
+ import { n as webhooksOutSqlOptions, t as webhooksInSqlOptions } from "../../options-D7f2VKzj.js";
25
+ //#region src/blocks/webhooks/destinations.ts
26
+ /**
27
+ * Stores deliveries in the webhook inbox under `source` (the delivery's
28
+ * source when unset), with the endpoint's tenant and the id
29
+ * `<endpoint id>:<message id>`. The default destination of
30
+ * `createIncomingWebhooks`.
31
+ */
32
+ function inboxDestination(sql, options = {}) {
33
+ return {
34
+ apiVersion: 1,
35
+ name: "inbox",
36
+ deliver: (delivery) => receiveWebhook(sql, {
37
+ source: options.source ?? delivery.source,
38
+ id: `${delivery.endpoint.id}:${delivery.messageId}`,
39
+ type: delivery.type,
40
+ payload: delivery.payload,
41
+ headers: delivery.headers,
42
+ tenant: delivery.endpoint.tenant
43
+ })
44
+ };
45
+ }
46
+ /**
47
+ * Enqueues each delivery once on a jobs queue (`jobs.enqueueOnce`) with the
48
+ * dedupe key `<endpoint id>:<message id>` and the endpoint's tenant as the
49
+ * job's tenant. A repeat is a duplicate while the job waits, runs or stays
50
+ * archived; `jobs.purge` ends that window.
51
+ */
52
+ function jobsDestination(jobs, options) {
53
+ return {
54
+ apiVersion: 1,
55
+ name: "jobs",
56
+ deliver: (delivery) => jobs.enqueueOnce(options.queue, options.payload?.(delivery) ?? delivery, {
57
+ dedupeKey: `${delivery.endpoint.id}:${delivery.messageId}`,
58
+ context: { tenant: delivery.endpoint.tenant },
59
+ ...options.maxAttempts === void 0 ? {} : { maxAttempts: options.maxAttempts }
60
+ }).orThrow()
61
+ };
62
+ }
63
+ //#endregion
16
64
  //#region src/blocks/webhooks/incoming.ts
17
65
  /** The header that carries an endpoint's id on stored deliveries. */
18
66
  const INCOMING_ENDPOINT_HEADER = "x-bs-endpoint-id";
@@ -28,29 +76,22 @@ function verifyOf(value) {
28
76
  if (mode === void 0) throw new TypeError(`Unknown verification mode ${String(value)}`);
29
77
  return mode;
30
78
  }
31
- const attempt = (fn) => AsyncResult.from(async () => {
32
- try {
33
- return ok(await fn());
34
- } catch (cause) {
35
- return err(asDbError(cause));
36
- }
37
- });
38
79
  /**
39
80
  * Tenant-owned trigger URLs over the `webhooks-in` SQL module: create
40
81
  * endpoints, then route `/hooks/<token>` to `receive`. Deliveries land in
41
- * the webhook inbox (`createWebhookInbox`), where a worker processes them.
82
+ * the webhook inbox (`createWebhookInbox`), where a worker processes them,
83
+ * or in `options.destination`.
42
84
  */
43
- function createIncomingWebhooks(sql, options = {}) {
85
+ function createIncomingWebhooks(options) {
44
86
  applyTemporal(options);
87
+ const { sql } = options;
45
88
  const schema = options.schema ?? "better_supabase";
46
89
  if (!IDENT.test(schema)) throw new TypeError(`createIncomingWebhooks: "${schema}" is not a schema name`);
47
90
  const source = options.source ?? "webhook-in";
91
+ const destination = options.destination ?? inboxDestination(sql);
48
92
  const fn = (name) => `"${schema}"."${name}"`;
49
- const value = async (text, params) => {
50
- const [row] = await sql.queryRaw(text, params);
51
- return row.value;
52
- };
53
- return {
93
+ const call = blockCall(options.transport ?? sqlTransport(sql), schema, options.mappers);
94
+ return withBlockHooks({
54
95
  async receive(request, token) {
55
96
  const instance = new URL(request.url).pathname;
56
97
  if (request.method !== "POST") return methodNotAllowed(["POST"]);
@@ -112,13 +153,17 @@ function createIncomingWebhooks(sql, options = {}) {
112
153
  return header === null ? [] : [[name.toLowerCase(), header]];
113
154
  });
114
155
  const headers = Object.fromEntries([...kept, [INCOMING_ENDPOINT_HEADER, endpoint.id]]);
115
- const stored = await receiveWebhook(sql, {
156
+ const stored = await destination.deliver({
157
+ endpoint: {
158
+ id: endpoint.id,
159
+ tenant: endpoint.tenant,
160
+ metadata: isRecord(endpoint.metadata) ? endpoint.metadata : {}
161
+ },
116
162
  source,
117
- id: `${endpoint.id}:${messageId}`,
163
+ messageId,
118
164
  type: typeof payload === "object" && payload !== null && "type" in payload && typeof payload.type === "string" ? payload.type : null,
119
165
  payload,
120
- headers,
121
- tenant: endpoint.tenant
166
+ headers
122
167
  });
123
168
  const status = stored.duplicate ? 200 : 202;
124
169
  await sql.queryRaw(`select ${fn("record_incoming_webhook")}($1, $2)`, [endpoint.id, status]);
@@ -133,74 +178,84 @@ function createIncomingWebhooks(sql, options = {}) {
133
178
  });
134
179
  }
135
180
  },
136
- create: (input) => attempt(async () => {
137
- const created = await value(`select ${fn("create_incoming_webhook")}($1, $2, $3, $4, $5, $6, $7) as value`, [
138
- input.tenant,
139
- input.name,
140
- input.verify ?? "none",
141
- JSON.stringify(input.metadata ?? {}),
142
- input.signatureHeader ?? null,
143
- input.subject?.type ?? null,
144
- input.subject?.id ?? null
145
- ]);
146
- const { subjectType, subjectId, ...rest } = created;
181
+ create: (input) => call("create_incoming_webhook", {
182
+ tenant: input.tenant,
183
+ name: input.name,
184
+ verify: input.verify ?? "none",
185
+ metadata: input.metadata ?? {},
186
+ signature_header: input.signatureHeader ?? null,
187
+ subject_type: input.subject?.type ?? null,
188
+ subject_id: input.subject?.id ?? null
189
+ }, (value) => {
190
+ const created = recordOf(value, "create_incoming_webhook");
191
+ const subjectType = optionalText(created["subjectType"]);
192
+ const subjectId = optionalText(created["subjectId"]);
147
193
  return {
148
- ...rest,
149
- tenant: String(created.tenant),
194
+ id: String(created["id"]),
195
+ tenant: String(created["tenant"]),
196
+ name: String(created["name"]),
197
+ verify: verifyOf(created["verify"]),
198
+ token: String(created["token"]),
199
+ secret: optionalText(created["secret"]) ?? null,
200
+ signatureHeader: optionalText(created["signatureHeader"]) ?? null,
150
201
  subject: subjectType && subjectId ? {
151
202
  type: subjectType,
152
203
  id: subjectId
153
204
  } : null
154
205
  };
155
206
  }),
156
- list: (tenant, subject) => attempt(async () => {
157
- return (await value(`select ${fn("list_incoming_webhooks")}($1, $2, $3) as value`, [
158
- tenant,
159
- subject?.type ?? null,
160
- subject?.id ?? null
161
- ])).map((row) => ({
162
- id: String(row["id"]),
163
- tenant: String(row["tenant"]),
164
- name: String(row["name"]),
165
- verify: row["verify"],
166
- signatureHeader: optionalText(row["signature_header"]) ?? null,
167
- enabled: row["enabled"] === true,
168
- maxBodyBytes: Number(row["max_body_bytes"]),
169
- receiveCount: Number(row["receive_count"]),
170
- lastReceivedAt: optionalText(row["last_received_at"]) ?? null,
171
- lastStatus: row["last_status"] === null ? null : Number(row["last_status"]),
172
- metadata: isRecord(row["metadata"]) ? row["metadata"] : {},
173
- subject: typeof row["subject_type"] === "string" && typeof row["subject_id"] === "string" ? {
174
- type: row["subject_type"],
175
- id: row["subject_id"]
176
- } : null,
177
- createdBy: optionalText(row["created_by"]) ?? null,
178
- createdAt: String(row["created_at"])
179
- }));
180
- }),
181
- rotate: (id, rotateOptions = {}) => attempt(async () => {
182
- const rotated = await value(`select ${fn("rotate_incoming_webhook")}($1, $2) as value`, [id, rotateOptions.rotateSecret ?? false]);
207
+ list: (tenant, subject) => call("list_incoming_webhooks", {
208
+ tenant,
209
+ subject_type: subject?.type ?? null,
210
+ subject_id: subject?.id ?? null
211
+ }, (value) => recordsOf(value, "list_incoming_webhooks").map((row) => ({
212
+ id: String(row["id"]),
213
+ tenant: String(row["tenant"]),
214
+ name: String(row["name"]),
215
+ verify: row["verify"],
216
+ signatureHeader: optionalText(row["signature_header"]) ?? null,
217
+ enabled: row["enabled"] === true,
218
+ maxBodyBytes: Number(row["max_body_bytes"]),
219
+ receiveCount: Number(row["receive_count"]),
220
+ lastReceivedAt: optionalText(row["last_received_at"]) ?? null,
221
+ lastStatus: row["last_status"] === null ? null : Number(row["last_status"]),
222
+ metadata: isRecord(row["metadata"]) ? row["metadata"] : {},
223
+ subject: typeof row["subject_type"] === "string" && typeof row["subject_id"] === "string" ? {
224
+ type: row["subject_type"],
225
+ id: row["subject_id"]
226
+ } : null,
227
+ createdBy: optionalText(row["created_by"]) ?? null,
228
+ createdAt: String(row["created_at"])
229
+ }))),
230
+ rotate: (id, rotateOptions = {}) => call("rotate_incoming_webhook", {
231
+ endpoint: id,
232
+ rotate_secret: rotateOptions.rotateSecret ?? false
233
+ }, (value) => {
234
+ const rotated = recordOf(value, "rotate_incoming_webhook");
183
235
  return {
184
- token: rotated.token,
185
- secret: rotated.secret
236
+ token: String(rotated["token"]),
237
+ secret: optionalText(rotated["secret"]) ?? null
186
238
  };
187
239
  }),
188
- rotateSecret: (id, rotateOptions = {}) => attempt(async () => {
189
- const rotated = await value(`select ${fn("rotate_incoming_webhook_secret")}($1, $2::interval) as value`, [id, rotateOptions.grace === void 0 ? null : String(rotateOptions.grace)]);
240
+ rotateSecret: (id, rotateOptions = {}) => call("rotate_incoming_webhook_secret", {
241
+ endpoint: id,
242
+ grace: rotateOptions.grace === void 0 ? null : String(rotateOptions.grace)
243
+ }, (value) => {
244
+ const rotated = recordOf(value, "rotate_incoming_webhook_secret");
190
245
  const expires = optionalText(rotated["previousSecretExpiresAt"]);
191
246
  return {
192
247
  secret: String(rotated["secret"]),
193
248
  previousSecretExpiresAt: expires === void 0 ? null : toInstant(expires)
194
249
  };
195
250
  }),
196
- update: (id, input) => attempt(async () => {
197
- const updated = await value(`select ${fn("update_incoming_webhook")}($1, $2, $3, $4, $5) as value`, [
198
- id,
199
- input.name ?? null,
200
- input.metadata === void 0 ? null : JSON.stringify(input.metadata),
201
- input.verify ?? null,
202
- input.signatureHeader ?? null
203
- ]);
251
+ update: (id, input) => call("update_incoming_webhook", {
252
+ endpoint: id,
253
+ name: input.name ?? null,
254
+ metadata: input.metadata ?? null,
255
+ verify: input.verify ?? null,
256
+ signature_header: input.signatureHeader ?? null
257
+ }, (value) => {
258
+ const updated = recordOf(value, "update_incoming_webhook");
204
259
  return {
205
260
  id: String(updated["id"]),
206
261
  tenant: String(updated["tenant"]),
@@ -211,10 +266,252 @@ function createIncomingWebhooks(sql, options = {}) {
211
266
  metadata: isRecord(updated["metadata"]) ? updated["metadata"] : {}
212
267
  };
213
268
  }),
214
- setEnabled: (id, enabled) => attempt(() => value(`select ${fn("set_incoming_webhook_enabled")}($1, $2) as value`, [id, enabled])),
215
- remove: (id) => attempt(() => value(`select ${fn("delete_incoming_webhook")}($1) as value`, [id]))
269
+ setEnabled: (id, enabled) => call("set_incoming_webhook_enabled", {
270
+ endpoint: id,
271
+ enabled
272
+ }, (value) => value === true),
273
+ remove: (id) => call("delete_incoming_webhook", { endpoint: id }, (value) => value === true)
274
+ }, options.hooks, {
275
+ block: "incoming-webhooks",
276
+ ...options.logger ? { logger: options.logger } : {}
277
+ });
278
+ }
279
+ //#endregion
280
+ //#region src/blocks/webhooks/encoders.ts
281
+ /** The default format: CloudEvents over HTTP, structured or batched per endpoint. */
282
+ function cloudEvents() {
283
+ return {
284
+ apiVersion: 1,
285
+ name: "cloudevents",
286
+ signed: true,
287
+ encode(events, target) {
288
+ const [message] = target.batch ? toHttp(events, "batch") : toHttp(events[0]);
289
+ return message;
290
+ }
291
+ };
292
+ }
293
+ /**
294
+ * The 0.8 body, `{ type, timestamp, data }`, with `data` from `transform`;
295
+ * a batch is a JSON array of them. Signed with Standard Webhooks like
296
+ * `cloudevents`.
297
+ */
298
+ function standardEnvelope() {
299
+ return {
300
+ apiVersion: 1,
301
+ name: "standard",
302
+ signed: true,
303
+ encode(events, target) {
304
+ const envelopes = events.map((event) => ({
305
+ type: event.type,
306
+ timestamp: event.time,
307
+ data: event.data
308
+ }));
309
+ return {
310
+ body: JSON.stringify(target.batch ? envelopes : envelopes[0]),
311
+ headers: { "content-type": "application/json" }
312
+ };
313
+ }
314
+ };
315
+ }
316
+ /** A JSON value as an OTLP `AnyValue`; 64-bit integers are strings in OTLP/JSON. */
317
+ function anyValue(value) {
318
+ if (value === null || value === void 0) return {};
319
+ if (typeof value === "string") return { stringValue: value };
320
+ if (typeof value === "boolean") return { boolValue: value };
321
+ if (typeof value === "bigint") return { intValue: value.toString() };
322
+ if (typeof value === "number") return Number.isSafeInteger(value) ? { intValue: String(value) } : { doubleValue: value };
323
+ if (Array.isArray(value)) return { arrayValue: { values: value.map(anyValue) } };
324
+ if (isRecord(value)) return { kvlistValue: { values: attributes(value) } };
325
+ return { stringValue: String(value) };
326
+ }
327
+ function attributes(record) {
328
+ return Object.entries(record).flatMap(([key, value]) => value === void 0 ? [] : [{
329
+ key,
330
+ value: anyValue(value)
331
+ }]);
332
+ }
333
+ const nanos = (time) => (time === void 0 ? temporal().Now.instant() : temporal().Instant.from(time)).epochNanoseconds.toString();
334
+ const SEVERITY_TEXT = [
335
+ "TRACE",
336
+ "DEBUG",
337
+ "INFO",
338
+ "WARN",
339
+ "ERROR",
340
+ "FATAL"
341
+ ];
342
+ /** OTLP/HTTP retries 429, 502, 503 and 504 only. */
343
+ const OTLP_RETRYABLE = /* @__PURE__ */ new Set([
344
+ 429,
345
+ 502,
346
+ 503,
347
+ 504
348
+ ]);
349
+ /**
350
+ * OTLP/HTTP logs in the JSON encoding: one `ExportLogsServiceRequest` per
351
+ * request, a log record per event with the CloudEvents attributes. Point
352
+ * the endpoint at a collector's `/v1/logs`.
353
+ */
354
+ function otlpLogs(options = {}) {
355
+ const resource = attributes({
356
+ "service.name": options.serviceName ?? "better-supabase",
357
+ ...options.resource
358
+ });
359
+ return {
360
+ apiVersion: 1,
361
+ name: "otlp-logs",
362
+ signed: false,
363
+ encode(events) {
364
+ const observed = nanos(void 0);
365
+ const logRecords = events.map((event) => {
366
+ const severity = options.severity?.(event) ?? 9;
367
+ return {
368
+ timeUnixNano: nanos(event.time),
369
+ observedTimeUnixNano: observed,
370
+ severityNumber: severity,
371
+ severityText: SEVERITY_TEXT[Math.min(Math.max(Math.ceil(severity / 4), 1), 6) - 1],
372
+ eventName: event.type,
373
+ body: anyValue(event.data),
374
+ attributes: attributes({
375
+ "cloudevents.event_id": event.id,
376
+ "cloudevents.event_source": event.source,
377
+ "cloudevents.event_spec_version": event.specversion,
378
+ "cloudevents.event_type": event.type,
379
+ "cloudevents.event_subject": event.subject
380
+ })
381
+ };
382
+ });
383
+ return {
384
+ body: JSON.stringify({ resourceLogs: [{
385
+ resource: { attributes: resource },
386
+ scopeLogs: [{
387
+ scope: { name: "better-supabase/webhooks" },
388
+ logRecords
389
+ }]
390
+ }] }),
391
+ headers: { "content-type": "application/json" }
392
+ };
393
+ },
394
+ classify(response) {
395
+ if (response.status < 200 || response.status >= 300) return OTLP_RETRYABLE.has(response.status) ? {
396
+ outcome: "retry",
397
+ error: `HTTP ${String(response.status)}`
398
+ } : {
399
+ outcome: "dead",
400
+ error: `HTTP ${String(response.status)}`
401
+ };
402
+ const partial = jsonOf(response.body)?.["partialSuccess"];
403
+ if (!isRecord(partial)) return;
404
+ const rejected = Number(partial["rejectedLogRecords"] ?? 0);
405
+ if (!(rejected > 0)) return;
406
+ const message = partial["errorMessage"];
407
+ return {
408
+ outcome: "succeeded",
409
+ error: `The collector rejected ${String(rejected)} log records${typeof message === "string" && message !== "" ? `: ${message}` : ""}`
410
+ };
411
+ }
216
412
  };
217
413
  }
414
+ function jsonOf(body) {
415
+ try {
416
+ const value = JSON.parse(body);
417
+ return isRecord(value) ? value : void 0;
418
+ } catch {
419
+ return;
420
+ }
421
+ }
422
+ /** HEC codes worth a retry: internal error and server busy. */
423
+ const HEC_RETRYABLE = /* @__PURE__ */ new Set([8, 9]);
424
+ /**
425
+ * The Splunk HTTP Event Collector's event format: one JSON object per
426
+ * event, the CloudEvent as `event`. Point the endpoint at
427
+ * `/services/collector/event` and set `credential_ref` to the HEC token.
428
+ */
429
+ function splunkHec(options = {}) {
430
+ return {
431
+ apiVersion: 1,
432
+ name: "splunk-hec",
433
+ signed: false,
434
+ encode(events) {
435
+ return {
436
+ body: events.map((event) => JSON.stringify({
437
+ time: (event.time === void 0 ? temporal().Now.instant() : temporal().Instant.from(event.time)).epochMilliseconds / 1e3,
438
+ ...options.host === void 0 ? {} : { host: options.host },
439
+ source: options.source ?? event.source,
440
+ sourcetype: options.sourcetype ?? "_json",
441
+ ...options.index === void 0 ? {} : { index: options.index },
442
+ event
443
+ })).join("\n"),
444
+ headers: { "content-type": "application/json" }
445
+ };
446
+ },
447
+ authorize: (token) => ({ authorization: `Splunk ${token.token}` }),
448
+ classify(response) {
449
+ const reply = jsonOf(response.body);
450
+ const code = reply?.["code"];
451
+ if (typeof code !== "number") return;
452
+ if (code === 0) return response.status >= 200 && response.status < 300 ? { outcome: "succeeded" } : void 0;
453
+ const text = reply?.["text"];
454
+ return {
455
+ outcome: HEC_RETRYABLE.has(code) ? "retry" : "dead",
456
+ error: `HEC ${String(code)}${typeof text === "string" ? `: ${text}` : ""}`
457
+ };
458
+ }
459
+ };
460
+ }
461
+ /** RFC 8935 error codes a transmitter can't fix by sending the SET again. */
462
+ const SET_RETRYABLE = /* @__PURE__ */ new Set(["invalid_key"]);
463
+ /**
464
+ * RFC 8935 push delivery of Security Event Tokens: the body is the compact
465
+ * SET from the delivery's `data.set`, one per request. The shared-signals
466
+ * block creates these endpoints (`format: 'set'`) and dispatches to them.
467
+ */
468
+ function securityEvents() {
469
+ return {
470
+ apiVersion: 1,
471
+ name: "set",
472
+ signed: false,
473
+ encode(events) {
474
+ const data = events[0]?.data;
475
+ const set = isRecord(data) ? data["set"] : void 0;
476
+ if (typeof set !== "string" || set.split(".").length !== 3) throw new TypeError("A set delivery carries a compact SET in data.set");
477
+ return {
478
+ body: set,
479
+ headers: {
480
+ "content-type": "application/secevent+jwt",
481
+ accept: "application/json"
482
+ }
483
+ };
484
+ },
485
+ classify(response) {
486
+ if (response.status === 202 || response.status === 200) return { outcome: "succeeded" };
487
+ if (response.status !== 400) return;
488
+ const reply = jsonOf(response.body);
489
+ const code = typeof reply?.["err"] === "string" ? reply["err"] : "";
490
+ const description = typeof reply?.["description"] === "string" ? `: ${reply["description"]}` : "";
491
+ return {
492
+ outcome: SET_RETRYABLE.has(code) ? "retry" : "dead",
493
+ error: `SET rejected (${code || "HTTP 400"})${description}`
494
+ };
495
+ }
496
+ };
497
+ }
498
+ /** An endpoint `format`: what the `format` column's check allows. */
499
+ const WEBHOOK_FORMAT = /^[a-z][a-z0-9-]{0,39}$/;
500
+ /** The built-in encoders by format, with `encoders` replacing any by name. */
501
+ function encoderRegistry(encoders = []) {
502
+ const registry = new Map([
503
+ cloudEvents(),
504
+ standardEnvelope(),
505
+ otlpLogs(),
506
+ splunkHec(),
507
+ securityEvents()
508
+ ].map((encoder) => [encoder.name, encoder]));
509
+ for (const encoder of encoders) {
510
+ if (!WEBHOOK_FORMAT.test(encoder.name)) throw new TypeError(`createWebhooks: encoder name "${encoder.name}" must match ${String(WEBHOOK_FORMAT)}`);
511
+ registry.set(encoder.name, encoder);
512
+ }
513
+ return registry;
514
+ }
218
515
  //#endregion
219
516
  //#region src/blocks/webhooks/url-policy.ts
220
517
  const PRIVATE_V4 = [
@@ -235,12 +532,12 @@ const PRIVATE_V4 = [
235
532
  ];
236
533
  function v4(address) {
237
534
  const parts = address.split(".");
238
- if (parts.length !== 4) return void 0;
535
+ if (parts.length !== 4) return;
239
536
  let value = 0;
240
537
  for (const part of parts) {
241
- if (!/^\d{1,3}$/.test(part)) return void 0;
538
+ if (!/^\d{1,3}$/.test(part)) return;
242
539
  const octet = Number(part);
243
- if (octet > 255) return void 0;
540
+ if (octet > 255) return;
244
541
  value = value * 256 + octet;
245
542
  }
246
543
  return value;
@@ -253,19 +550,19 @@ function v6(address) {
253
550
  if (text.includes(".")) {
254
551
  const colon = text.lastIndexOf(":");
255
552
  const embedded = v4(text.slice(colon + 1));
256
- if (embedded === void 0) return void 0;
553
+ if (embedded === void 0) return;
257
554
  const high = Math.floor(embedded / 65536).toString(16);
258
555
  const low = (embedded % 65536).toString(16);
259
556
  text = `${text.slice(0, colon + 1)}${high}:${low}`;
260
557
  }
261
558
  const halves = text.split("::");
262
- if (halves.length > 2) return void 0;
559
+ if (halves.length > 2) return;
263
560
  const groups = (part) => part === "" ? [] : part.split(":");
264
561
  const head = groups(halves[0]);
265
562
  const rest = halves.length === 2 ? groups(halves[1]) : [];
266
- if (![...head, ...rest].every((group) => /^[0-9a-f]{1,4}$/.test(group))) return void 0;
563
+ if (![...head, ...rest].every((group) => /^[0-9a-f]{1,4}$/.test(group))) return;
267
564
  const known = head.length + rest.length;
268
- if (halves.length === 1 ? known !== 8 : known > 7) return void 0;
565
+ if (halves.length === 1 ? known !== 8 : known > 7) return;
269
566
  return [
270
567
  ...head,
271
568
  ...Array.from({ length: 8 - known }, () => "0"),
@@ -308,7 +605,7 @@ const LOCAL_HOST = /(^|\.)(localhost|local|internal|home\.arpa)$/;
308
605
  /** `node:dns` without importing it, so this entry stays runtime-neutral. */
309
606
  function builtinResolver() {
310
607
  const dns = globalThis.process?.getBuiltinModule?.("node:dns");
311
- if (typeof dns !== "object" || dns === null || !("promises" in dns)) return void 0;
608
+ if (typeof dns !== "object" || dns === null || !("promises" in dns)) return;
312
609
  const { promises } = dns;
313
610
  return async (hostname) => (await promises.lookup(hostname, {
314
611
  all: true,
@@ -440,11 +737,11 @@ const REDIRECTS = /* @__PURE__ */ new Set([
440
737
  ]);
441
738
  /** `Retry-After` as seconds from now: delta-seconds or an HTTP date. */
442
739
  function parseRetryAfter(value, now = Date.now()) {
443
- if (value === null) return void 0;
740
+ if (value === null) return;
444
741
  const text = value.trim();
445
742
  if (/^\d+$/.test(text)) return Number(text);
446
743
  const at = Date.parse(text);
447
- if (Number.isNaN(at)) return void 0;
744
+ if (Number.isNaN(at)) return;
448
745
  return Math.max(0, Math.ceil((at - now) / 1e3));
449
746
  }
450
747
  /** Reads at most `limit` bytes of the body, then cancels the stream. */
@@ -572,6 +869,44 @@ function standardWebhooks(options = {}) {
572
869
  }
573
870
  };
574
871
  }
872
+ /**
873
+ * Signs with the Standard Webhooks asymmetric scheme: one `v1a,` Ed25519
874
+ * signature over `id.timestamp.body` in `webhook-signature`. Receivers
875
+ * verify it with the `whpk_` key `webhookPublicKey` returns, through
876
+ * `verifyWebhook`. Endpoints opt in with `signing = 'v1a'`.
877
+ */
878
+ function standardWebhooksAsymmetric(options) {
879
+ const names = {
880
+ id: options.headers?.id ?? "webhook-id",
881
+ timestamp: options.headers?.timestamp ?? "webhook-timestamp",
882
+ signature: options.headers?.signature ?? "webhook-signature"
883
+ };
884
+ return {
885
+ apiVersion: 1,
886
+ name: "standard-webhooks-v1a",
887
+ async sign({ id, body, timestamp, secrets }) {
888
+ const seconds = String(Math.floor(timestamp.epochMilliseconds / 1e3));
889
+ const result = await options.signer.sign(encoder.encode(`${id}.${seconds}.${body}`));
890
+ if (!result.ok) throw new Error(result.error.message);
891
+ if (result.data.alg !== "EdDSA" && result.data.alg !== "Ed25519") throw new TypeError(`v1a signatures need an Ed25519 key, not ${result.data.alg}`);
892
+ const symmetric = options.hmac ? await Promise.all(secrets.map(async (secret) => (await signWebhook(secret, {
893
+ id,
894
+ body,
895
+ timestamp
896
+ }))["webhook-signature"])) : [];
897
+ return {
898
+ [names.id]: id,
899
+ [names.timestamp]: seconds,
900
+ [names.signature]: [`v1a,${toBase64(result.data.signature)}`, ...symmetric].join(" ")
901
+ };
902
+ }
903
+ };
904
+ }
905
+ /** The `whpk_` public key of an Ed25519 JWK, for receivers of `v1a` signatures. */
906
+ function webhookPublicKey(jwk) {
907
+ if (jwk.kty !== "OKP" || jwk.crv !== "Ed25519" || jwk.x === void 0) throw new TypeError("A v1a public key is an Ed25519 JWK");
908
+ return `${PUBLIC_KEY_PREFIX}${toBase64(fromBase64(jwk.x))}`;
909
+ }
575
910
  const encoder = /* @__PURE__ */ new TextEncoder();
576
911
  const hex = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
577
912
  /**
@@ -611,8 +946,24 @@ function hmacSigner(options) {
611
946
  }
612
947
  //#endregion
613
948
  //#region src/blocks/webhooks/outgoing.ts
949
+ /** `publish_webhook_event`'s named arguments for one event. */
950
+ function publishArgs(event) {
951
+ return {
952
+ event_type: event.type,
953
+ payload: event.data ?? {},
954
+ tenant: event.tenant ?? null,
955
+ event_id: event.id ?? null,
956
+ ...event.subject === void 0 ? {} : { subject: event.subject },
957
+ ...event.readPermission === void 0 ? {} : { read_permission: event.readPermission }
958
+ };
959
+ }
614
960
  const textOf = (value) => value === null || value === void 0 ? null : String(value);
615
- function toDelivery(row) {
961
+ const textsOf = (value) => Array.isArray(value) ? value.map(String) : null;
962
+ const credentialRefOf = (value) => isRecord(value) && typeof value["provider"] === "string" ? {
963
+ ...value,
964
+ provider: value["provider"]
965
+ } : null;
966
+ function toDelivery(row, defaultFormat) {
616
967
  return {
617
968
  id: String(row["id"]),
618
969
  endpointId: String(row["endpoint_id"]),
@@ -623,6 +974,14 @@ function toDelivery(row) {
623
974
  tenant: textOf(row["tenant"]),
624
975
  eventId: textOf(row["event_id"]),
625
976
  runId: textOf(row["run_id"]),
977
+ subject: textOf(row["subject"]),
978
+ owner: textOf(row["owner"]),
979
+ principal: textOf(row["principal"]),
980
+ permissions: textsOf(row["permissions"]),
981
+ batch: row["batch"] === true,
982
+ signing: row["signing"] === "v1a" ? "v1a" : "v1",
983
+ format: typeof row["format"] === "string" ? row["format"] : defaultFormat,
984
+ credentialRef: credentialRefOf(row["credential_ref"]),
626
985
  createdAt: typeof row["created_at"] === "string" ? temporal().Instant.from(row["created_at"]) : temporal().Now.instant()
627
986
  };
628
987
  }
@@ -634,9 +993,44 @@ const SCHEDULE = [
634
993
  18e3,
635
994
  36e3
636
995
  ];
637
- const defaultBackoff = (attempt) => Math.round(Math.random() * SCHEDULE[Math.min(Math.max(attempt, 1), SCHEDULE.length) - 1]);
996
+ /** Equal jitter: at least half the step, and never under a second. */
997
+ const defaultBackoff = (attempt) => {
998
+ const step = SCHEDULE[Math.min(Math.max(attempt, 1), SCHEDULE.length) - 1];
999
+ return Math.max(1, Math.round(step / 2 + Math.random() * step / 2));
1000
+ };
638
1001
  const MAX_RETRY_AFTER = 86400;
1002
+ /** Token errors a retry can't fix. */
1003
+ const PERMANENT_CREDENTIAL_ERRORS = /* @__PURE__ */ new Set([
1004
+ "invalid_input",
1005
+ "not_found",
1006
+ "forbidden",
1007
+ "unauthorized"
1008
+ ]);
639
1009
  const defaultRetryable = (status) => status === 408 || status === 429 || status >= 500;
1010
+ /** W3C Trace Context, version 00 and the forward-compatible later versions. */
1011
+ const TRACEPARENT = /^(?!ff)[0-9a-f]{2}-(?!0{32})[0-9a-f]{32}-(?!0{16})[0-9a-f]{16}-[0-9a-f]{2}$/;
1012
+ function absoluteUri(where, value) {
1013
+ if (!URL.canParse(value)) throw new TypeError(`${where} must be an absolute URI, not "${value}"`);
1014
+ return value;
1015
+ }
1016
+ /** The CloudEvents `source`: the `source` option, else `/webhooks` on `appUrl`. */
1017
+ function sourceOf(options) {
1018
+ if (options.source !== void 0) return absoluteUri("createWebhooks: source", options.source);
1019
+ if (options.appUrl !== void 0) return new URL("/webhooks", absoluteUri("createWebhooks: appUrl", options.appUrl)).href;
1020
+ return "urn:better-supabase:webhooks";
1021
+ }
1022
+ /** The `actorId` a block event or the outbox put in the payload, if any. */
1023
+ function actorOf(payload) {
1024
+ if (!isRecord(payload)) return null;
1025
+ const actor = payload["actorId"];
1026
+ return typeof actor === "string" ? actor : null;
1027
+ }
1028
+ /** A stable `webhook-id` for a batch: the same deliveries give the same id. */
1029
+ async function batchId(deliveries) {
1030
+ const ids = deliveries.map((delivery) => delivery.id).toSorted();
1031
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(ids.join("\n")));
1032
+ return `batch_${Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join("").slice(0, 32)}`;
1033
+ }
640
1034
  function createWebhooks(options) {
641
1035
  applyTemporal(options);
642
1036
  const { transport } = options;
@@ -644,22 +1038,21 @@ function createWebhooks(options) {
644
1038
  const mappers = options.mappers ?? [];
645
1039
  const store = options.secrets ?? sqlSecretStore(transport, { schema });
646
1040
  const signer = options.signer ?? standardWebhooks();
1041
+ const encoders = encoderRegistry(options.encoders);
1042
+ const defaultFormat = options.defaultFormat ?? "cloudevents";
1043
+ if (!WEBHOOK_FORMAT.test(defaultFormat)) throw new TypeError(`createWebhooks: defaultFormat "${defaultFormat}" must match ${String(WEBHOOK_FORMAT)}`);
647
1044
  const maxAttempts = options.retry?.maxAttempts ?? 8;
648
1045
  const backoff = options.retry?.backoff ?? defaultBackoff;
649
1046
  const retryable = options.retry?.retryable ?? defaultRetryable;
650
1047
  const bodyLimit = options.responseBodyLimit ?? 2e3;
1048
+ const source = sourceOf(options);
1049
+ const dataschema = typeof options.dataschema === "string" ? absoluteUri("createWebhooks: dataschema", options.dataschema) : options.dataschema;
1050
+ const subscribers = options.subscribers ?? options.authorization?.delivery?.subscribers ?? (options.authorization === void 0 ? void 0 : subjectReaders(transport, { schema }));
651
1051
  let http = options.http;
652
1052
  const httpTransport = () => http ??= fetchTransport({ allowUrl: options.allowUrl ?? publicUrl() });
653
- const call = (fn, args) => transport.call(schema, fn, args);
654
- function run(fn, then) {
655
- return AsyncResult.from(async () => {
656
- try {
657
- return ok(then(await fn()));
658
- } catch (cause) {
659
- return err(toBlockError(cause, mappers));
660
- }
661
- });
662
- }
1053
+ const db = blockCall(transport, schema, mappers);
1054
+ /** A call the worker needs to go on: it throws the mapped `DbError`. */
1055
+ const call = (fn, args) => db(fn, args, (value) => value).orThrow();
663
1056
  const emitEvent = blockEmitter(options);
664
1057
  function emit(type, delivery, extra = {}) {
665
1058
  emitEvent(type, {
@@ -689,79 +1082,186 @@ function createWebhooks(options) {
689
1082
  });
690
1083
  }
691
1084
  const failure = (delivery) => delivery.attempt >= maxAttempts ? "dead" : "retrying";
692
- async function attempt(delivery) {
693
- if (options.shouldDeliver) {
694
- let send;
695
- try {
696
- send = await options.shouldDeliver(delivery);
697
- } catch (cause) {
698
- return {
699
- outcome: "canceled",
700
- error: errorText(cause)
701
- };
702
- }
703
- if (!send) return {
704
- outcome: "canceled",
705
- error: "Canceled by shouldDeliver"
706
- };
707
- }
1085
+ async function cloudEvent(delivery) {
1086
+ const schema = typeof dataschema === "function" ? dataschema(delivery) : dataschema;
1087
+ const traceparent = options.traceparent?.(delivery);
1088
+ return {
1089
+ specversion: "1.0",
1090
+ id: delivery.id,
1091
+ source,
1092
+ type: options.typePrefix ? `${options.typePrefix.replace(/\.$/, "")}.${delivery.type}` : delivery.type,
1093
+ ...delivery.subject ? { subject: delivery.subject } : {},
1094
+ time: delivery.createdAt.toString(),
1095
+ datacontenttype: "application/json",
1096
+ ...schema === void 0 ? {} : { dataschema: absoluteUri("createWebhooks: dataschema", schema) },
1097
+ data: options.transform ? await options.transform(delivery) : delivery.payload,
1098
+ ...traceparent !== void 0 && TRACEPARENT.test(traceparent) ? { traceparent } : {}
1099
+ };
1100
+ }
1101
+ /** The headers the endpoint's `credential_ref` token becomes. */
1102
+ async function authorization(delivery, encoder) {
1103
+ const ref = delivery.credentialRef;
1104
+ if (ref === null) return ok({});
1105
+ if (!credentialRefInTenant(ref, delivery.tenant ?? void 0)) return err({
1106
+ outcome: "dead",
1107
+ error: foreignCredentialRef(delivery.tenant ?? void 0).message
1108
+ });
1109
+ if (options.credentials === void 0) return err({
1110
+ outcome: "dead",
1111
+ error: "The endpoint has a credential_ref, but no credentials provider is set"
1112
+ });
1113
+ const token = await options.credentials.getToken(ref, { subject: { type: "app" } });
1114
+ if (!token.ok) return err({
1115
+ outcome: PERMANENT_CREDENTIAL_ERRORS.has(token.error.kind) ? "dead" : "failed",
1116
+ error: token.error.message
1117
+ });
1118
+ return ok(encoder.authorize?.(token.data) ?? token.data.headers);
1119
+ }
1120
+ /** The Standard Webhooks headers, from the endpoint's secrets or `asymmetricSigner`. */
1121
+ async function signatureHeaders(deliveries, body) {
1122
+ const first = deliveries[0];
1123
+ const sign = first.signing === "v1a" ? options.asymmetricSigner : signer;
1124
+ if (sign === void 0) return err({
1125
+ outcome: "dead",
1126
+ error: "The endpoint signs with v1a, but no asymmetricSigner is set"
1127
+ });
1128
+ const secrets = await store.secrets(first.endpointId);
1129
+ if (secrets.length === 0 && first.signing === "v1") return err({
1130
+ outcome: "dead",
1131
+ error: "The endpoint has no signing secret"
1132
+ });
1133
+ return ok(await sign.sign({
1134
+ id: first.batch ? await batchId(deliveries) : first.id,
1135
+ body,
1136
+ timestamp: temporal().Now.instant(),
1137
+ secrets
1138
+ }));
1139
+ }
1140
+ /** Sends one delivery, or one batch for an endpoint that takes batches. */
1141
+ async function attempt(deliveries) {
1142
+ const first = deliveries[0];
1143
+ const encoder = encoders.get(first.format);
1144
+ if (encoder === void 0) return {
1145
+ outcome: "dead",
1146
+ error: `No encoder for the endpoint format "${first.format}"`
1147
+ };
708
1148
  let body;
709
1149
  let headers;
710
1150
  try {
711
- const secrets = await store.secrets(delivery.endpointId);
712
- if (secrets.length === 0) return {
713
- outcome: "dead",
714
- error: "The endpoint has no signing secret"
715
- };
716
- body = JSON.stringify(options.transform ? await options.transform(delivery) : {
717
- type: delivery.type,
718
- timestamp: delivery.createdAt.toString(),
719
- data: delivery.payload
1151
+ const auth = await authorization(first, encoder);
1152
+ if (!auth.ok) return auth.error;
1153
+ const events = await Promise.all(deliveries.map(cloudEvent));
1154
+ const message = await encoder.encode(events, {
1155
+ url: first.url,
1156
+ batch: first.batch,
1157
+ tenant: first.tenant
720
1158
  });
1159
+ body = message.body;
1160
+ const signature = encoder.signed ? await signatureHeaders(deliveries, body) : ok({});
1161
+ if (!signature.ok) return signature.error;
721
1162
  headers = {
722
- "content-type": "application/json",
1163
+ ...message.headers,
723
1164
  "user-agent": "better-supabase-webhooks",
724
- ...options.headers?.(delivery),
725
- ...await signer.sign({
726
- id: delivery.id,
727
- body,
728
- timestamp: temporal().Now.instant(),
729
- secrets
730
- })
1165
+ ...options.headers?.(first),
1166
+ ...auth.data,
1167
+ ...signature.data
731
1168
  };
732
1169
  } catch (cause) {
733
1170
  return {
734
- outcome: failure(delivery),
1171
+ outcome: "failed",
735
1172
  error: errorText(cause)
736
1173
  };
737
1174
  }
738
1175
  const started = Date.now();
739
1176
  try {
740
1177
  const response = await httpTransport().send({
741
- url: delivery.url,
1178
+ url: first.url,
742
1179
  headers,
743
1180
  body
744
1181
  });
745
1182
  const durationMs = Date.now() - started;
1183
+ const verdict = encoder.classify?.(response);
1184
+ if (verdict !== void 0) return {
1185
+ outcome: verdict.outcome === "retry" ? "failed" : verdict.outcome,
1186
+ response,
1187
+ durationMs,
1188
+ ...verdict.error === void 0 ? {} : { error: verdict.error }
1189
+ };
746
1190
  if (response.status >= 200 && response.status < 300) return {
747
1191
  outcome: "succeeded",
748
1192
  response,
749
1193
  durationMs
750
1194
  };
751
1195
  return {
752
- outcome: retryable(response.status) ? failure(delivery) : "dead",
1196
+ outcome: retryable(response.status) ? "failed" : "dead",
753
1197
  response,
754
1198
  durationMs,
755
1199
  error: `HTTP ${String(response.status)}`
756
1200
  };
757
1201
  } catch (cause) {
758
1202
  return {
759
- outcome: cause instanceof WebhookPolicyError ? "dead" : failure(delivery),
1203
+ outcome: cause instanceof WebhookPolicyError ? "dead" : "failed",
760
1204
  durationMs: Date.now() - started,
761
1205
  error: errorText(cause)
762
1206
  };
763
1207
  }
764
1208
  }
1209
+ /** `false` (or a throw) from `shouldDeliver` cancels the delivery. */
1210
+ async function vetoed(delivery) {
1211
+ if (!options.shouldDeliver) return;
1212
+ try {
1213
+ if (await options.shouldDeliver(delivery)) return;
1214
+ } catch (cause) {
1215
+ return {
1216
+ outcome: "canceled",
1217
+ error: errorText(cause)
1218
+ };
1219
+ }
1220
+ return {
1221
+ outcome: "canceled",
1222
+ error: "Canceled by shouldDeliver"
1223
+ };
1224
+ }
1225
+ /**
1226
+ * Runs `subscribers` once per event and stored subject over its claimed
1227
+ * deliveries. A delivery it leaves out is canceled; a throw fails every
1228
+ * delivery of the event, which then retries.
1229
+ */
1230
+ async function screen(queue) {
1231
+ const refused = /* @__PURE__ */ new Map();
1232
+ if (!subscribers) return refused;
1233
+ const byEvent = Map.groupBy(queue, (delivery) => `${delivery.eventId ?? `delivery:${delivery.id}`}\u0000${delivery.subject ?? ""}`);
1234
+ await Promise.all([...byEvent.values()].map(async (deliveries) => {
1235
+ const first = deliveries[0];
1236
+ const event = {
1237
+ type: first.type,
1238
+ tenant: first.tenant,
1239
+ actorId: actorOf(first.payload),
1240
+ payload: first.payload,
1241
+ subject: first.subject
1242
+ };
1243
+ const candidates = deliveries.map((delivery) => ({
1244
+ principal: delivery.owner ?? delivery.principal ?? delivery.endpointId,
1245
+ kind: delivery.owner ? "user" : "service",
1246
+ delivery
1247
+ }));
1248
+ let kept;
1249
+ try {
1250
+ kept = new Set(await subscribers(event, candidates));
1251
+ } catch (cause) {
1252
+ for (const delivery of deliveries) refused.set(delivery, {
1253
+ outcome: "failed",
1254
+ error: `Subscriber policy failed: ${errorText(cause)}`
1255
+ });
1256
+ return;
1257
+ }
1258
+ for (const candidate of candidates) if (!kept.has(candidate)) refused.set(candidate.delivery, {
1259
+ outcome: "canceled",
1260
+ error: "Refused by the subscriber policy"
1261
+ });
1262
+ }));
1263
+ return refused;
1264
+ }
765
1265
  async function deliver(deliverOptions = {}) {
766
1266
  const counts = {
767
1267
  succeeded: 0,
@@ -773,18 +1273,18 @@ function createWebhooks(options) {
773
1273
  const spent = budget(deliverOptions.budgetMs);
774
1274
  const batch = deliverOptions.batch ?? 25;
775
1275
  const concurrency = Math.max(1, deliverOptions.concurrency ?? 10);
776
- async function handle(delivery) {
777
- const result = await attempt(delivery);
778
- const state = await complete(delivery, result.outcome, result);
1276
+ async function finish(delivery, result) {
1277
+ const outcome = result.outcome === "failed" ? failure(delivery) : result.outcome;
1278
+ const state = await complete(delivery, outcome, result);
779
1279
  if (state === "stale") return;
780
- switch (result.outcome) {
1280
+ switch (outcome) {
781
1281
  case "succeeded":
782
1282
  counts.succeeded += 1;
783
1283
  emit("webhook.delivered", delivery, { status: result.response?.status ?? 200 });
784
1284
  break;
785
1285
  case "retrying":
786
1286
  case "dead":
787
- if (result.outcome === "retrying") counts.retrying += 1;
1287
+ if (outcome === "retrying") counts.retrying += 1;
788
1288
  else counts.dead += 1;
789
1289
  emit("webhook.failed", delivery, {
790
1290
  ...result.response ? { status: result.response.status } : {},
@@ -794,50 +1294,73 @@ function createWebhooks(options) {
794
1294
  case "canceled":
795
1295
  counts.canceled += 1;
796
1296
  break;
797
- default: {
798
- const unknown = result.outcome;
799
- throw new TypeError(`Unknown outcome ${String(unknown)}`);
800
- }
1297
+ default: throw new TypeError(`Unknown outcome ${String(outcome)}`);
801
1298
  }
802
1299
  if (state === "disabled") {
803
1300
  counts.disabled += 1;
804
1301
  emit("webhook.disabled", delivery);
805
1302
  }
806
1303
  }
1304
+ async function handle(deliveries) {
1305
+ const send = [];
1306
+ for (const delivery of deliveries) {
1307
+ const veto = await vetoed(delivery);
1308
+ if (veto) await finish(delivery, veto);
1309
+ else send.push(delivery);
1310
+ }
1311
+ if (send.length === 0) return;
1312
+ const result = await attempt(send);
1313
+ for (const delivery of send) await finish(delivery, result);
1314
+ }
807
1315
  while (!spent.expired()) {
808
1316
  const claimed = await call("claim_webhook_deliveries", {
809
1317
  max_items: batch,
810
1318
  lease: deliverOptions.lease ?? "2 minutes",
811
1319
  max_attempts: maxAttempts
812
1320
  });
813
- const queue = (Array.isArray(claimed) ? claimed : []).filter(isRecord).map(toDelivery);
814
- const size = queue.length;
815
- await Promise.all(Array.from({ length: Math.min(concurrency, size) }, async () => {
1321
+ const deliveries = (Array.isArray(claimed) ? claimed : []).filter(isRecord).map((row) => toDelivery(row, defaultFormat));
1322
+ const size = deliveries.length;
1323
+ const refused = await screen(deliveries);
1324
+ for (const [delivery, result] of refused) await finish(delivery, result);
1325
+ const allowed = deliveries.filter((delivery) => !refused.has(delivery));
1326
+ const batched = Map.groupBy(allowed.filter((delivery) => delivery.batch), (delivery) => delivery.endpointId);
1327
+ const queue = [...allowed.filter((delivery) => !delivery.batch).map((delivery) => [delivery]), ...batched.values()];
1328
+ await Promise.all(Array.from({ length: Math.min(concurrency, queue.length) }, async () => {
816
1329
  for (let next = queue.shift(); next; next = queue.shift()) await handle(next);
817
1330
  }));
818
1331
  if (size < batch) break;
819
1332
  }
820
1333
  return counts;
821
1334
  }
822
- return {
823
- publish: (event) => run(() => call("publish_webhook_event", {
824
- event_type: event.type,
825
- payload: event.data ?? {},
826
- tenant: event.tenant ?? null,
827
- event_id: event.id ?? null
828
- }), Number),
829
- dispatch: (input) => run(() => call("dispatch_webhook", {
1335
+ const purge = (purgeOptions = {}) => db("purge_webhook_deliveries", {
1336
+ older_than: purgeOptions.olderThan === void 0 ? void 0 : seconds(purgeOptions.olderThan),
1337
+ include_dead: purgeOptions.includeDead,
1338
+ batch: purgeOptions.batch
1339
+ }, (value) => Number(value ?? 0));
1340
+ const publishMany = (events) => events.length === 0 ? AsyncResult.ok([]) : db("publish_webhook_events", { events: events.map(publishArgs) }, (value) => batchResultsOf(value, events.length, "count", Number, mappers));
1341
+ return withBlockHooks({
1342
+ purge,
1343
+ purgeJob: (jobOptions) => async () => purge(jobOptions).orThrow(),
1344
+ publish: (event) => db("publish_webhook_event", publishArgs(event), Number),
1345
+ publishMany,
1346
+ dispatch: (input) => db("dispatch_webhook", {
830
1347
  endpoint: input.endpointId,
831
1348
  event_type: input.type,
832
1349
  payload: input.data ?? {},
833
1350
  run_id: input.runId ?? null,
834
1351
  event_id: input.eventId ?? null
835
- }), String),
836
- redeliver: (deliveryId) => run(() => call("redeliver_webhook", { delivery: deliveryId }), String),
1352
+ }, String),
1353
+ redeliver: (deliveryId) => db("redeliver_webhook", { delivery: deliveryId }, String),
837
1354
  rotateSecret(endpointId, rotateOptions) {
838
1355
  if (!store.rotate) return AsyncResult.err(dbError("unexpected", "The secret store can't rotate secrets"));
839
1356
  const rotate = store.rotate.bind(store);
840
- return run(() => rotate(endpointId, rotateOptions), String);
1357
+ return AsyncResult.from(async () => {
1358
+ try {
1359
+ return ok(await rotate(endpointId, rotateOptions));
1360
+ } catch (cause) {
1361
+ return err(toBlockError(cause, mappers));
1362
+ }
1363
+ });
841
1364
  },
842
1365
  deliver,
843
1366
  deliverRoute(routeOptions) {
@@ -860,20 +1383,70 @@ function createWebhooks(options) {
860
1383
  }
861
1384
  });
862
1385
  },
863
- sink: (sinkOptions = {}) => {
864
- return { async send(events) {
865
- for (const event of events) {
1386
+ sink: (sinkOptions = {}) => ({ async send(events) {
1387
+ let failure;
1388
+ for (const chunk of chunksOf(events, MAX_BATCH)) {
1389
+ const results = await publishMany(chunk.map((event) => {
866
1390
  const tenant = event["partitionkey"];
867
- await call("publish_webhook_event", {
868
- event_type: stripTypePrefix(event.type, sinkOptions.typePrefix),
869
- payload: event.data ?? {},
870
- tenant: typeof tenant === "string" ? tenant : null,
871
- event_id: event.id
872
- });
1391
+ return {
1392
+ type: stripTypePrefix(event.type, sinkOptions.typePrefix),
1393
+ data: event.data ?? {},
1394
+ ...typeof tenant === "string" ? { tenant } : {},
1395
+ id: event.id,
1396
+ ...event.subject === void 0 ? {} : { subject: event.subject }
1397
+ };
1398
+ }));
1399
+ if (!results.ok) {
1400
+ failure ??= new DbException(results.error);
1401
+ continue;
873
1402
  }
874
- } };
875
- }
876
- };
1403
+ for (const result of results.data) if (!result.ok) failure ??= new DbException(result.error);
1404
+ }
1405
+ if (failure !== void 0) throw failure;
1406
+ } })
1407
+ }, options.hooks, {
1408
+ block: "webhooks",
1409
+ ...options.events ? { logger: options.events.logger } : {}
1410
+ });
877
1411
  }
878
1412
  //#endregion
879
- export { INCOMING_ENDPOINT_HEADER, UnsafeUrlError, UrlCheckError, WebhookPolicyError, authHook, createIncomingWebhooks, createSafeFetch, createWebhooks, databaseChange, dbTransport, fetchTransport, hmacSigner, hookError, isDatabaseWebhook, isPublicAddress, publicUrl, rpcTransport, signStripeWebhook, signWebhook, sqlSecretStore, sqlTransport, standardWebhooks, stripeInboxVerify, timingSafeEqual, verifySharedSecret, verifyStripeWebhook, verifyWebhook };
1413
+ //#region src/blocks/webhooks/events.ts
1414
+ /** The `webhooks` block's event types, for its manifest and `onBlockEvent`. */
1415
+ const webhooksEvents = defineEvents({
1416
+ "webhook.delivered": event(),
1417
+ "webhook.failed": event(),
1418
+ "webhook.disabled": event(),
1419
+ "webhook.secret_rotated": event()
1420
+ });
1421
+ /** The `incoming-webhooks` block's event types, for its manifest and `onBlockEvent`. */
1422
+ const incomingWebhooksEvents = defineEvents({
1423
+ "incoming_webhook.created": event(),
1424
+ "incoming_webhook.updated": event(),
1425
+ "incoming_webhook.enabled_set": event(),
1426
+ "incoming_webhook.token_rotated": event(),
1427
+ "incoming_webhook.secret_rotated": event(),
1428
+ "incoming_webhook.deleted": event()
1429
+ });
1430
+ //#endregion
1431
+ //#region src/blocks/webhooks/manifest.ts
1432
+ /** The `webhooks` block's manifest (ADR 0029). */
1433
+ const webhooksBlock = defineBlock({
1434
+ name: "webhooks",
1435
+ sql: ["webhooks-out"],
1436
+ options: { "webhooks-out": webhooksOutSqlOptions },
1437
+ events: webhooksEvents,
1438
+ create: createWebhooks,
1439
+ category: "developer",
1440
+ recipes: ["webhook-endpoints"]
1441
+ });
1442
+ /** The `incoming-webhooks` block's manifest (ADR 0029). */
1443
+ const incomingWebhooksBlock = defineBlock({
1444
+ name: "incoming-webhooks",
1445
+ sql: ["webhooks-in"],
1446
+ options: { "webhooks-in": webhooksInSqlOptions },
1447
+ events: incomingWebhooksEvents,
1448
+ create: createIncomingWebhooks,
1449
+ category: "developer"
1450
+ });
1451
+ //#endregion
1452
+ export { INCOMING_ENDPOINT_HEADER, UnsafeUrlError, UrlCheckError, WebhookPolicyError, authHook, cloudEvents, createIncomingWebhooks, createSafeFetch, createWebhooks, databaseChange, dbTransport, fetchTransport, hmacSigner, hookError, inboxDestination, incomingWebhooksBlock, incomingWebhooksEvents, isDatabaseWebhook, isPublicAddress, jobsDestination, otlpLogs, publicUrl, rpcTransport, securityEvents, signStripeWebhook, signWebhook, splunkHec, sqlSecretStore, sqlTransport, standardEnvelope, standardWebhooks, standardWebhooksAsymmetric, stripeInboxVerify, timingSafeEqual, verifySharedSecret, verifyStripeWebhook, verifyWebhook, webhookPublicKey, webhooksBlock, webhooksEvents };