better-supabase 0.8.0 → 0.10.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 (1392) hide show
  1. package/README.md +147 -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-rmWaLNe3.js +1984 -0
  7. package/dist/agents-ByYUSZxT.d.ts +111 -0
  8. package/dist/ai-cache-CkxtAt4P.d.ts +70 -0
  9. package/dist/ai-cache-DPiuJ-zJ.js +84 -0
  10. package/dist/ai-chat-al8b3spK.d.ts +608 -0
  11. package/dist/ai-files-BXtV3ygd.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-Di0gmJOX.d.ts +157 -0
  34. package/dist/announcements-HF7LuFw5.js +128 -0
  35. package/dist/api-CFjuYKFY.js +680 -0
  36. package/dist/api-XJcQON_7.d.ts +411 -0
  37. package/dist/api-keys-C1IZF7p8.js +318 -0
  38. package/dist/api-keys-EdSNjGIZ.d.ts +205 -0
  39. package/dist/app-tables-BRjMcWhW.js +819 -0
  40. package/dist/app-tables-DVidEHOI.d.ts +35 -0
  41. package/dist/approvals-DqlPHBHI.d.ts +124 -0
  42. package/dist/arazzo/index.d.ts +5 -5
  43. package/dist/arazzo/index.js +6 -6
  44. package/dist/assistant-BZyhQ8bd.d.ts +148 -0
  45. package/dist/astro/index.d.ts +9 -8
  46. package/dist/astro/index.js +10 -7
  47. package/dist/asyncapi/index.d.ts +4 -4
  48. package/dist/asyncapi/index.js +6 -6
  49. package/dist/attachments-C8FEBBKE.js +264 -0
  50. package/dist/attributes-D4mA7WhI.js +38 -0
  51. package/dist/audit-log-CRgiHlRh.js +786 -0
  52. package/dist/auth-CdBKt0CS.js +20 -0
  53. package/dist/auth-reply-B_dW4jHJ.js +31 -0
  54. package/dist/auth-reply-Dj124sbX.d.ts +11 -0
  55. package/dist/authorization-CdJRoZgV.d.ts +1435 -0
  56. package/dist/authorization-hooks-Do5djkpz.d.ts +214 -0
  57. package/dist/authorizer-dVVN05Un.js +126 -0
  58. package/dist/base64-BmeCBgGo.js +42 -0
  59. package/dist/batch-limit-DKVQDz4o.js +5 -0
  60. package/dist/before-route-B98js9m_.js +30 -0
  61. package/dist/better-result/index.d.ts +5 -5
  62. package/dist/better-result/index.js +1 -1
  63. package/dist/bind-DkaP_0iS.d.ts +70 -0
  64. package/dist/block-env-CBd_SoL5.js +29 -0
  65. package/dist/block-env-Dxl7rsI0.d.ts +10 -0
  66. package/dist/block-events-DD9Q_NUz.js +96 -0
  67. package/dist/block-fields-5UA84ZUg.d.ts +55 -0
  68. package/dist/block-fields-BANwJ9Y_.js +139 -0
  69. package/dist/block-helpers-7pMBVsE6.d.ts +37 -0
  70. package/dist/block-helpers-BfVCR5Fc.js +264 -0
  71. package/dist/block-hooks-ByKlh8Qy.js +114 -0
  72. package/dist/block-hooks-C_WaodoA.d.ts +107 -0
  73. package/dist/block-transport-G4t1umrR.js +85 -0
  74. package/dist/block-transport-NbUJygA7.d.ts +70 -0
  75. package/dist/blocks/access-requests/index.d.ts +98 -0
  76. package/dist/blocks/access-requests/index.js +99 -0
  77. package/dist/blocks/agents/index.d.ts +21 -3
  78. package/dist/blocks/agents/index.js +64 -18
  79. package/dist/blocks/ai-cache/index.d.ts +7 -2
  80. package/dist/blocks/ai-cache/index.js +15 -3
  81. package/dist/blocks/ai-chat/index.d.ts +22 -3
  82. package/dist/blocks/ai-chat/index.js +29 -3
  83. package/dist/blocks/ai-chat/react/index.d.ts +12 -46
  84. package/dist/blocks/ai-chat/react/index.js +43 -335
  85. package/dist/blocks/ai-chat/solid/index.d.ts +34 -0
  86. package/dist/blocks/ai-chat/solid/index.js +41 -0
  87. package/dist/blocks/ai-chat/svelte/index.d.ts +34 -0
  88. package/dist/blocks/ai-chat/svelte/index.js +41 -0
  89. package/dist/blocks/ai-chat/vue/index.d.ts +34 -0
  90. package/dist/blocks/ai-chat/vue/index.js +41 -0
  91. package/dist/blocks/ai-files/index.d.ts +10 -3
  92. package/dist/blocks/ai-files/index.js +16 -3
  93. package/dist/blocks/ai-providers/index.d.ts +18 -3
  94. package/dist/blocks/ai-providers/index.js +40 -15
  95. package/dist/blocks/ai-tasks/index.d.ts +9 -2
  96. package/dist/blocks/ai-tasks/index.js +70 -21
  97. package/dist/blocks/announcements/index.d.ts +18 -3
  98. package/dist/blocks/announcements/index.js +27 -3
  99. package/dist/blocks/announcements/react/index.d.ts +4 -14
  100. package/dist/blocks/announcements/react/index.js +22 -70
  101. package/dist/blocks/announcements/solid/index.d.ts +13 -0
  102. package/dist/blocks/announcements/solid/index.js +14 -0
  103. package/dist/blocks/announcements/svelte/index.d.ts +13 -0
  104. package/dist/blocks/announcements/svelte/index.js +14 -0
  105. package/dist/blocks/announcements/vue/index.d.ts +13 -0
  106. package/dist/blocks/announcements/vue/index.js +14 -0
  107. package/dist/blocks/api-keys/index.d.ts +24 -7
  108. package/dist/blocks/api-keys/index.js +29 -294
  109. package/dist/blocks/api-keys/react/index.d.ts +29 -0
  110. package/dist/blocks/api-keys/react/index.js +43 -0
  111. package/dist/blocks/api-keys/react/server.d.ts +7 -0
  112. package/dist/blocks/api-keys/react/server.js +7 -0
  113. package/dist/blocks/api-keys/solid/index.d.ts +13 -0
  114. package/dist/blocks/api-keys/solid/index.js +14 -0
  115. package/dist/blocks/api-keys/svelte/index.d.ts +13 -0
  116. package/dist/blocks/api-keys/svelte/index.js +14 -0
  117. package/dist/blocks/api-keys/vue/index.d.ts +13 -0
  118. package/dist/blocks/api-keys/vue/index.js +14 -0
  119. package/dist/blocks/approvals/index.d.ts +22 -0
  120. package/dist/blocks/approvals/index.js +189 -0
  121. package/dist/blocks/attachments/index.d.ts +18 -227
  122. package/dist/blocks/attachments/index.js +26 -242
  123. package/dist/blocks/audit/index.d.ts +72 -365
  124. package/dist/blocks/audit/index.js +91 -714
  125. package/dist/blocks/audit/react/index.d.ts +26 -0
  126. package/dist/blocks/audit/react/index.js +44 -0
  127. package/dist/blocks/audit/react/server.d.ts +7 -0
  128. package/dist/blocks/audit/react/server.js +7 -0
  129. package/dist/blocks/audit/solid/index.d.ts +13 -0
  130. package/dist/blocks/audit/solid/index.js +14 -0
  131. package/dist/blocks/audit/svelte/index.d.ts +13 -0
  132. package/dist/blocks/audit/svelte/index.js +14 -0
  133. package/dist/blocks/audit/vue/index.d.ts +13 -0
  134. package/dist/blocks/audit/vue/index.js +14 -0
  135. package/dist/blocks/billing/index.d.ts +37 -12
  136. package/dist/blocks/billing/index.js +43 -12
  137. package/dist/blocks/billing/react/index.d.ts +34 -0
  138. package/dist/blocks/billing/react/index.js +36 -0
  139. package/dist/blocks/billing/react/server.d.ts +7 -0
  140. package/dist/blocks/billing/react/server.js +7 -0
  141. package/dist/blocks/billing/solid/index.d.ts +15 -0
  142. package/dist/blocks/billing/solid/index.js +14 -0
  143. package/dist/blocks/billing/svelte/index.d.ts +15 -0
  144. package/dist/blocks/billing/svelte/index.js +14 -0
  145. package/dist/blocks/billing/vue/index.d.ts +15 -0
  146. package/dist/blocks/billing/vue/index.js +14 -0
  147. package/dist/blocks/bookings/index.d.ts +36 -0
  148. package/dist/blocks/bookings/index.js +28 -0
  149. package/dist/blocks/bookings/react/index.d.ts +31 -0
  150. package/dist/blocks/bookings/react/index.js +59 -0
  151. package/dist/blocks/bookings/react/server.d.ts +6 -0
  152. package/dist/blocks/bookings/react/server.js +7 -0
  153. package/dist/blocks/bookings/solid/index.d.ts +13 -0
  154. package/dist/blocks/bookings/solid/index.js +14 -0
  155. package/dist/blocks/bookings/svelte/index.d.ts +13 -0
  156. package/dist/blocks/bookings/svelte/index.js +14 -0
  157. package/dist/blocks/bookings/vue/index.d.ts +13 -0
  158. package/dist/blocks/bookings/vue/index.js +14 -0
  159. package/dist/blocks/bulk/index.d.ts +146 -0
  160. package/dist/blocks/bulk/index.js +154 -0
  161. package/dist/blocks/calendar/index.d.ts +20 -0
  162. package/dist/blocks/calendar/index.js +33 -0
  163. package/dist/blocks/calendar/react/index.d.ts +26 -0
  164. package/dist/blocks/calendar/react/index.js +58 -0
  165. package/dist/blocks/calendar/react/server.d.ts +6 -0
  166. package/dist/blocks/calendar/react/server.js +7 -0
  167. package/dist/blocks/calendar/solid/index.d.ts +13 -0
  168. package/dist/blocks/calendar/solid/index.js +14 -0
  169. package/dist/blocks/calendar/svelte/index.d.ts +13 -0
  170. package/dist/blocks/calendar/svelte/index.js +14 -0
  171. package/dist/blocks/calendar/vue/index.d.ts +13 -0
  172. package/dist/blocks/calendar/vue/index.js +14 -0
  173. package/dist/blocks/catalog/index.d.ts +224 -0
  174. package/dist/blocks/catalog/index.js +292 -0
  175. package/dist/blocks/collections/index.d.ts +184 -0
  176. package/dist/blocks/collections/index.js +208 -0
  177. package/dist/blocks/comments/index.d.ts +19 -166
  178. package/dist/blocks/comments/index.js +26 -207
  179. package/dist/blocks/comments/react/index.d.ts +27 -0
  180. package/dist/blocks/comments/react/index.js +45 -0
  181. package/dist/blocks/comments/react/server.d.ts +7 -0
  182. package/dist/blocks/comments/react/server.js +7 -0
  183. package/dist/blocks/comments/solid/index.d.ts +13 -0
  184. package/dist/blocks/comments/solid/index.js +14 -0
  185. package/dist/blocks/comments/svelte/index.d.ts +13 -0
  186. package/dist/blocks/comments/svelte/index.js +14 -0
  187. package/dist/blocks/comments/vue/index.d.ts +13 -0
  188. package/dist/blocks/comments/vue/index.js +14 -0
  189. package/dist/blocks/connectors/index.d.ts +21 -3
  190. package/dist/blocks/connectors/index.js +53 -18
  191. package/dist/blocks/custom-fields/index.d.ts +62 -0
  192. package/dist/blocks/custom-fields/index.js +85 -0
  193. package/dist/blocks/data-lifecycle/index.d.ts +114 -9
  194. package/dist/blocks/data-lifecycle/index.js +98 -12
  195. package/dist/blocks/deals/index.d.ts +262 -0
  196. package/dist/blocks/deals/index.js +380 -0
  197. package/dist/blocks/documents/index.d.ts +17 -0
  198. package/dist/blocks/documents/index.js +118 -0
  199. package/dist/blocks/domains/index.d.ts +117 -0
  200. package/dist/blocks/domains/index.js +118 -0
  201. package/dist/blocks/drive/index.d.ts +296 -0
  202. package/dist/blocks/drive/index.js +483 -0
  203. package/dist/blocks/employees/index.d.ts +205 -0
  204. package/dist/blocks/employees/index.js +289 -0
  205. package/dist/blocks/engagements/index.d.ts +125 -0
  206. package/dist/blocks/engagements/index.js +143 -0
  207. package/dist/blocks/entitlements/index.d.ts +40 -4
  208. package/dist/blocks/entitlements/index.js +14 -24
  209. package/dist/blocks/entitlements/react/index.d.ts +24 -0
  210. package/dist/blocks/entitlements/react/index.js +35 -0
  211. package/dist/blocks/entitlements/react/server.d.ts +6 -0
  212. package/dist/blocks/entitlements/react/server.js +7 -0
  213. package/dist/blocks/entitlements/solid/index.d.ts +13 -0
  214. package/dist/blocks/entitlements/solid/index.js +14 -0
  215. package/dist/blocks/entitlements/svelte/index.d.ts +13 -0
  216. package/dist/blocks/entitlements/svelte/index.js +14 -0
  217. package/dist/blocks/entitlements/vue/index.d.ts +13 -0
  218. package/dist/blocks/entitlements/vue/index.js +14 -0
  219. package/dist/blocks/flags/index.d.ts +61 -187
  220. package/dist/blocks/flags/index.js +65 -253
  221. package/dist/blocks/forms/index.d.ts +302 -0
  222. package/dist/blocks/forms/index.js +341 -0
  223. package/dist/blocks/forms/react/index.d.ts +16 -0
  224. package/dist/blocks/forms/react/index.js +25 -0
  225. package/dist/blocks/forms/react/server.d.ts +6 -0
  226. package/dist/blocks/forms/react/server.js +7 -0
  227. package/dist/blocks/forms/solid/index.d.ts +13 -0
  228. package/dist/blocks/forms/solid/index.js +14 -0
  229. package/dist/blocks/forms/svelte/index.d.ts +13 -0
  230. package/dist/blocks/forms/svelte/index.js +14 -0
  231. package/dist/blocks/forms/vue/index.d.ts +13 -0
  232. package/dist/blocks/forms/vue/index.js +14 -0
  233. package/dist/blocks/hiring/index.d.ts +154 -0
  234. package/dist/blocks/hiring/index.js +180 -0
  235. package/dist/blocks/identities/index.d.ts +83 -0
  236. package/dist/blocks/identities/index.js +103 -0
  237. package/dist/blocks/imports/index.d.ts +159 -0
  238. package/dist/blocks/imports/index.js +227 -0
  239. package/dist/blocks/inbox/index.d.ts +22 -3
  240. package/dist/blocks/inbox/index.js +77 -4
  241. package/dist/blocks/inbox/react/index.d.ts +3 -2
  242. package/dist/blocks/inbox/react/index.js +55 -199
  243. package/dist/blocks/inbox/react/server.d.ts +2 -1
  244. package/dist/blocks/inbox/solid/index.d.ts +27 -0
  245. package/dist/blocks/inbox/solid/index.js +32 -0
  246. package/dist/blocks/inbox/svelte/index.d.ts +27 -0
  247. package/dist/blocks/inbox/svelte/index.js +32 -0
  248. package/dist/blocks/inbox/vue/index.d.ts +27 -0
  249. package/dist/blocks/inbox/vue/index.js +32 -0
  250. package/dist/blocks/index.d.ts +25 -61
  251. package/dist/blocks/index.js +192 -56
  252. package/dist/blocks/inventory/index.d.ts +181 -0
  253. package/dist/blocks/inventory/index.js +219 -0
  254. package/dist/blocks/invoices/index.d.ts +154 -0
  255. package/dist/blocks/invoices/index.js +216 -0
  256. package/dist/blocks/jobs/index.d.ts +156 -33
  257. package/dist/blocks/jobs/index.js +675 -261
  258. package/dist/blocks/knowledge/index.d.ts +10 -3
  259. package/dist/blocks/knowledge/index.js +17 -3
  260. package/dist/blocks/leave/index.d.ts +241 -0
  261. package/dist/blocks/leave/index.js +209 -0
  262. package/dist/blocks/memory/index.d.ts +9 -4
  263. package/dist/blocks/memory/index.js +48 -12
  264. package/dist/blocks/metrics/index.d.ts +174 -0
  265. package/dist/blocks/metrics/index.js +217 -0
  266. package/dist/blocks/mfa/index.d.ts +7 -0
  267. package/dist/blocks/mfa/index.js +12 -0
  268. package/dist/blocks/mfa/react/index.d.ts +30 -0
  269. package/dist/blocks/mfa/react/index.js +45 -0
  270. package/dist/blocks/mfa/react/server.d.ts +9 -0
  271. package/dist/blocks/mfa/react/server.js +12 -0
  272. package/dist/blocks/mfa/solid/index.d.ts +20 -0
  273. package/dist/blocks/mfa/solid/index.js +23 -0
  274. package/dist/blocks/mfa/svelte/index.d.ts +20 -0
  275. package/dist/blocks/mfa/svelte/index.js +23 -0
  276. package/dist/blocks/mfa/vue/index.d.ts +20 -0
  277. package/dist/blocks/mfa/vue/index.js +23 -0
  278. package/dist/blocks/notifications/index.d.ts +342 -25
  279. package/dist/blocks/notifications/index.js +733 -104
  280. package/dist/blocks/notifications/react/index.d.ts +7 -32
  281. package/dist/blocks/notifications/react/index.js +23 -49
  282. package/dist/blocks/notifications/react/server.d.ts +2 -1
  283. package/dist/blocks/notifications/solid/index.d.ts +13 -0
  284. package/dist/blocks/notifications/solid/index.js +14 -0
  285. package/dist/blocks/notifications/svelte/index.d.ts +13 -0
  286. package/dist/blocks/notifications/svelte/index.js +14 -0
  287. package/dist/blocks/notifications/vue/index.d.ts +13 -0
  288. package/dist/blocks/notifications/vue/index.js +14 -0
  289. package/dist/blocks/number-sequences/index.d.ts +45 -0
  290. package/dist/blocks/number-sequences/index.js +49 -0
  291. package/dist/blocks/oauth-server/index.d.ts +228 -0
  292. package/dist/blocks/oauth-server/index.js +309 -0
  293. package/dist/blocks/onboarding/index.d.ts +8 -3
  294. package/dist/blocks/onboarding/index.js +17 -63
  295. package/dist/blocks/onboarding/react/index.d.ts +3 -12
  296. package/dist/blocks/onboarding/react/index.js +18 -60
  297. package/dist/blocks/onboarding/react/server.d.ts +2 -2
  298. package/dist/blocks/onboarding/react/server.js +2 -2
  299. package/dist/blocks/onboarding/solid/index.d.ts +13 -0
  300. package/dist/blocks/onboarding/solid/index.js +14 -0
  301. package/dist/blocks/onboarding/svelte/index.d.ts +13 -0
  302. package/dist/blocks/onboarding/svelte/index.js +14 -0
  303. package/dist/blocks/onboarding/vue/index.d.ts +13 -0
  304. package/dist/blocks/onboarding/vue/index.js +14 -0
  305. package/dist/blocks/orders/index.d.ts +264 -0
  306. package/dist/blocks/orders/index.js +589 -0
  307. package/dist/blocks/organizations/index.d.ts +31 -238
  308. package/dist/blocks/organizations/index.js +49 -392
  309. package/dist/blocks/organizations/react/index.d.ts +108 -0
  310. package/dist/blocks/organizations/react/index.js +113 -0
  311. package/dist/blocks/organizations/react/server.d.ts +11 -0
  312. package/dist/blocks/organizations/react/server.js +15 -0
  313. package/dist/blocks/organizations/solid/index.d.ts +34 -0
  314. package/dist/blocks/organizations/solid/index.js +32 -0
  315. package/dist/blocks/organizations/svelte/index.d.ts +34 -0
  316. package/dist/blocks/organizations/svelte/index.js +32 -0
  317. package/dist/blocks/organizations/vue/index.d.ts +34 -0
  318. package/dist/blocks/organizations/vue/index.js +32 -0
  319. package/dist/blocks/outbox/index.d.ts +12 -3
  320. package/dist/blocks/outbox/index.js +85 -46
  321. package/dist/blocks/parties/index.d.ts +181 -0
  322. package/dist/blocks/parties/index.js +258 -0
  323. package/dist/blocks/pipelines/index.d.ts +189 -0
  324. package/dist/blocks/pipelines/index.js +204 -0
  325. package/dist/blocks/profiles/index.d.ts +13 -8
  326. package/dist/blocks/profiles/index.js +19 -6
  327. package/dist/blocks/promotions/index.d.ts +125 -0
  328. package/dist/blocks/promotions/index.js +123 -0
  329. package/dist/blocks/push/index.d.ts +48 -28
  330. package/dist/blocks/push/index.js +45 -16
  331. package/dist/blocks/quotes/index.d.ts +152 -0
  332. package/dist/blocks/quotes/index.js +209 -0
  333. package/dist/blocks/rank/index.d.ts +71 -0
  334. package/dist/blocks/rank/index.js +53 -0
  335. package/dist/blocks/reactions/index.d.ts +18 -0
  336. package/dist/blocks/reactions/index.js +26 -0
  337. package/dist/blocks/reactions/react/index.d.ts +23 -0
  338. package/dist/blocks/reactions/react/index.js +46 -0
  339. package/dist/blocks/reactions/react/server.d.ts +6 -0
  340. package/dist/blocks/reactions/react/server.js +7 -0
  341. package/dist/blocks/reactions/solid/index.d.ts +13 -0
  342. package/dist/blocks/reactions/solid/index.js +14 -0
  343. package/dist/blocks/reactions/svelte/index.d.ts +13 -0
  344. package/dist/blocks/reactions/svelte/index.js +14 -0
  345. package/dist/blocks/reactions/vue/index.d.ts +13 -0
  346. package/dist/blocks/reactions/vue/index.js +14 -0
  347. package/dist/blocks/relations/index.d.ts +180 -0
  348. package/dist/blocks/relations/index.js +254 -0
  349. package/dist/blocks/reminders/index.d.ts +177 -0
  350. package/dist/blocks/reminders/index.js +171 -0
  351. package/dist/blocks/reviews/index.d.ts +148 -0
  352. package/dist/blocks/reviews/index.js +139 -0
  353. package/dist/blocks/rules/index.d.ts +169 -0
  354. package/dist/blocks/rules/index.js +163 -0
  355. package/dist/blocks/rules/react/index.d.ts +34 -0
  356. package/dist/blocks/rules/react/index.js +55 -0
  357. package/dist/blocks/rules/react/server.d.ts +6 -0
  358. package/dist/blocks/rules/react/server.js +7 -0
  359. package/dist/blocks/rules/solid/index.d.ts +13 -0
  360. package/dist/blocks/rules/solid/index.js +14 -0
  361. package/dist/blocks/rules/svelte/index.d.ts +13 -0
  362. package/dist/blocks/rules/svelte/index.js +14 -0
  363. package/dist/blocks/rules/vue/index.d.ts +13 -0
  364. package/dist/blocks/rules/vue/index.js +14 -0
  365. package/dist/blocks/saved-views/index.d.ts +17 -0
  366. package/dist/blocks/saved-views/index.js +29 -0
  367. package/dist/blocks/saved-views/react/index.d.ts +34 -0
  368. package/dist/blocks/saved-views/react/index.js +57 -0
  369. package/dist/blocks/saved-views/react/server.d.ts +7 -0
  370. package/dist/blocks/saved-views/react/server.js +7 -0
  371. package/dist/blocks/saved-views/solid/index.d.ts +13 -0
  372. package/dist/blocks/saved-views/solid/index.js +14 -0
  373. package/dist/blocks/saved-views/svelte/index.d.ts +13 -0
  374. package/dist/blocks/saved-views/svelte/index.js +14 -0
  375. package/dist/blocks/saved-views/vue/index.d.ts +13 -0
  376. package/dist/blocks/saved-views/vue/index.js +14 -0
  377. package/dist/blocks/search/index.d.ts +31 -0
  378. package/dist/blocks/search/index.js +61 -0
  379. package/dist/blocks/search/react/index.d.ts +36 -0
  380. package/dist/blocks/search/react/index.js +49 -0
  381. package/dist/blocks/search/react/server.d.ts +7 -0
  382. package/dist/blocks/search/react/server.js +8 -0
  383. package/dist/blocks/search/solid/index.d.ts +13 -0
  384. package/dist/blocks/search/solid/index.js +14 -0
  385. package/dist/blocks/search/svelte/index.d.ts +13 -0
  386. package/dist/blocks/search/svelte/index.js +14 -0
  387. package/dist/blocks/search/vue/index.d.ts +13 -0
  388. package/dist/blocks/search/vue/index.js +14 -0
  389. package/dist/blocks/service-principals/index.d.ts +126 -0
  390. package/dist/blocks/service-principals/index.js +107 -0
  391. package/dist/blocks/sessions/index.d.ts +7 -0
  392. package/dist/blocks/sessions/index.js +14 -0
  393. package/dist/blocks/sessions/react/index.d.ts +31 -0
  394. package/dist/blocks/sessions/react/index.js +51 -0
  395. package/dist/blocks/sessions/react/server.d.ts +9 -0
  396. package/dist/blocks/sessions/react/server.js +11 -0
  397. package/dist/blocks/sessions/solid/index.d.ts +20 -0
  398. package/dist/blocks/sessions/solid/index.js +23 -0
  399. package/dist/blocks/sessions/svelte/index.d.ts +20 -0
  400. package/dist/blocks/sessions/svelte/index.js +23 -0
  401. package/dist/blocks/sessions/vue/index.d.ts +20 -0
  402. package/dist/blocks/sessions/vue/index.js +23 -0
  403. package/dist/blocks/settings/index.d.ts +20 -86
  404. package/dist/blocks/settings/index.js +28 -102
  405. package/dist/blocks/settings/react/index.d.ts +25 -0
  406. package/dist/blocks/settings/react/index.js +37 -0
  407. package/dist/blocks/settings/react/server.d.ts +7 -0
  408. package/dist/blocks/settings/react/server.js +7 -0
  409. package/dist/blocks/settings/solid/index.d.ts +13 -0
  410. package/dist/blocks/settings/solid/index.js +14 -0
  411. package/dist/blocks/settings/svelte/index.d.ts +13 -0
  412. package/dist/blocks/settings/svelte/index.js +14 -0
  413. package/dist/blocks/settings/vue/index.d.ts +13 -0
  414. package/dist/blocks/settings/vue/index.js +14 -0
  415. package/dist/blocks/share-links/index.d.ts +106 -0
  416. package/dist/blocks/share-links/index.js +102 -0
  417. package/dist/blocks/shared-signals/index.d.ts +395 -0
  418. package/dist/blocks/shared-signals/index.js +880 -0
  419. package/dist/blocks/signing-keys/index.d.ts +29 -0
  420. package/dist/blocks/signing-keys/index.js +161 -0
  421. package/dist/blocks/sla/index.d.ts +114 -0
  422. package/dist/blocks/sla/index.js +122 -0
  423. package/dist/blocks/sso/index.d.ts +169 -147
  424. package/dist/blocks/sso/index.js +258 -321
  425. package/dist/blocks/state-machine/index.d.ts +105 -0
  426. package/dist/blocks/state-machine/index.js +116 -0
  427. package/dist/blocks/tags/index.d.ts +20 -0
  428. package/dist/blocks/tags/index.js +28 -0
  429. package/dist/blocks/tags/react/index.d.ts +28 -0
  430. package/dist/blocks/tags/react/index.js +47 -0
  431. package/dist/blocks/tags/react/server.d.ts +7 -0
  432. package/dist/blocks/tags/react/server.js +7 -0
  433. package/dist/blocks/tags/solid/index.d.ts +13 -0
  434. package/dist/blocks/tags/solid/index.js +14 -0
  435. package/dist/blocks/tags/svelte/index.d.ts +13 -0
  436. package/dist/blocks/tags/svelte/index.js +14 -0
  437. package/dist/blocks/tags/vue/index.d.ts +13 -0
  438. package/dist/blocks/tags/vue/index.js +14 -0
  439. package/dist/blocks/targets/index.d.ts +82 -0
  440. package/dist/blocks/targets/index.js +73 -0
  441. package/dist/blocks/teams/index.d.ts +61 -0
  442. package/dist/blocks/teams/index.js +83 -0
  443. package/dist/blocks/templates/index.d.ts +362 -0
  444. package/dist/blocks/templates/index.js +483 -0
  445. package/dist/blocks/time-tracking/index.d.ts +250 -0
  446. package/dist/blocks/time-tracking/index.js +317 -0
  447. package/dist/blocks/trash/index.d.ts +78 -0
  448. package/dist/blocks/trash/index.js +79 -0
  449. package/dist/blocks/undo/index.d.ts +9 -0
  450. package/dist/blocks/undo/index.js +14 -0
  451. package/dist/blocks/undo/react/index.d.ts +17 -0
  452. package/dist/blocks/undo/react/index.js +24 -0
  453. package/dist/blocks/undo/react/server.d.ts +7 -0
  454. package/dist/blocks/undo/react/server.js +7 -0
  455. package/dist/blocks/undo/solid/index.d.ts +13 -0
  456. package/dist/blocks/undo/solid/index.js +14 -0
  457. package/dist/blocks/undo/svelte/index.d.ts +13 -0
  458. package/dist/blocks/undo/svelte/index.js +14 -0
  459. package/dist/blocks/undo/vue/index.d.ts +13 -0
  460. package/dist/blocks/undo/vue/index.js +14 -0
  461. package/dist/blocks/usage/index.d.ts +10 -4
  462. package/dist/blocks/usage/index.js +16 -233
  463. package/dist/blocks/usage/react/index.d.ts +23 -0
  464. package/dist/blocks/usage/react/index.js +38 -0
  465. package/dist/blocks/usage/react/server.d.ts +7 -0
  466. package/dist/blocks/usage/react/server.js +7 -0
  467. package/dist/blocks/usage/solid/index.d.ts +13 -0
  468. package/dist/blocks/usage/solid/index.js +14 -0
  469. package/dist/blocks/usage/svelte/index.d.ts +13 -0
  470. package/dist/blocks/usage/svelte/index.js +14 -0
  471. package/dist/blocks/usage/vue/index.d.ts +13 -0
  472. package/dist/blocks/usage/vue/index.js +14 -0
  473. package/dist/blocks/versions/index.d.ts +169 -0
  474. package/dist/blocks/versions/index.js +288 -0
  475. package/dist/blocks/waitlist/index.d.ts +57 -19
  476. package/dist/blocks/waitlist/index.js +46 -12
  477. package/dist/blocks/webhooks/index.d.ts +269 -137
  478. package/dist/blocks/webhooks/index.js +752 -179
  479. package/dist/blocks/work-items/index.d.ts +208 -0
  480. package/dist/blocks/work-items/index.js +305 -0
  481. package/dist/blocks/workflow-builder/index.d.ts +26 -6
  482. package/dist/blocks/workflow-builder/index.js +30 -5
  483. package/dist/blocks/workflow-builder/react/index.d.ts +4 -19
  484. package/dist/blocks/workflow-builder/react/index.js +45 -89
  485. package/dist/blocks/workflow-builder/solid/index.d.ts +20 -0
  486. package/dist/blocks/workflow-builder/solid/index.js +23 -0
  487. package/dist/blocks/workflow-builder/svelte/index.d.ts +20 -0
  488. package/dist/blocks/workflow-builder/svelte/index.js +23 -0
  489. package/dist/blocks/workflow-builder/vue/index.d.ts +20 -0
  490. package/dist/blocks/workflow-builder/vue/index.js +23 -0
  491. package/dist/blocks/workflows/index.d.ts +20 -3
  492. package/dist/blocks/workflows/index.js +27 -3
  493. package/dist/blocks/workflows/react/index.d.ts +5 -20
  494. package/dist/blocks/workflows/react/index.js +41 -113
  495. package/dist/blocks/workflows/solid/index.d.ts +20 -0
  496. package/dist/blocks/workflows/solid/index.js +23 -0
  497. package/dist/blocks/workflows/svelte/index.d.ts +20 -0
  498. package/dist/blocks/workflows/svelte/index.js +23 -0
  499. package/dist/blocks/workflows/vue/index.d.ts +20 -0
  500. package/dist/blocks/workflows/vue/index.js +23 -0
  501. package/dist/blocks-D2WQ63PI.js +84 -0
  502. package/dist/bookings-EJAVAuVz.js +181 -0
  503. package/dist/build-6jmaPAgx.js +689 -0
  504. package/dist/build-Cm0T5MVG.js +1815 -0
  505. package/dist/calendar-1J1E5dLq.js +801 -0
  506. package/dist/channel-D-LHCY11.d.ts +78 -0
  507. package/dist/channels-C-GCoNLd.js +114 -0
  508. package/dist/chat-sdk/index.d.ts +131 -7
  509. package/dist/chat-sdk/index.js +154 -6
  510. package/dist/chat-sdk/react/index.d.ts +2 -1
  511. package/dist/chat-sdk/react/index.js +1 -2
  512. package/dist/chat-sdk/react/server.d.ts +2 -1
  513. package/dist/chat-sdk/react/server.js +1 -2
  514. package/dist/cli/add-BhI_nXAo.js +75 -0
  515. package/dist/cli/add-CUS0AiBh.js +651 -0
  516. package/dist/cli/add-ojbcMxyp.js +1 -0
  517. package/dist/cli/adopt-D0ASVx2G.js +1 -0
  518. package/dist/cli/adopt-DwcU6CJd.js +412 -0
  519. package/dist/cli/agent-CCrTYK3W.js +176 -0
  520. package/dist/cli/apply-DBXC0Z5I.js +332 -0
  521. package/dist/cli/bin.js +40 -20
  522. package/dist/cli/blocks-B15ltTFn.js +124 -0
  523. package/dist/cli/blocks-BXeqIzWN.js +1 -0
  524. package/dist/cli/cache-CPBYJAkb.js +502 -0
  525. package/dist/cli/catalog-Di15TkM2.js +187 -0
  526. package/dist/cli/codemod-CrI33UR2.js +985 -0
  527. package/dist/cli/command-D_HI1mp1.js +853 -0
  528. package/dist/cli/completion-DzYo025z.js +205 -0
  529. package/dist/cli/completion-En43UcyJ.js +30 -0
  530. package/dist/cli/completion-Vry-Wjw8.js +1 -0
  531. package/dist/cli/config-Bi_UBxXl.js +1451 -0
  532. package/dist/cli/config-DsqQr5z3.js +1 -0
  533. package/dist/cli/config-DyJgo2d9.js +39 -0
  534. package/dist/cli/config-edit-Ct1lXe8a.js +603 -0
  535. package/dist/cli/db-DT1bGB02.js +78 -0
  536. package/dist/cli/design-edit-B-WsnhUF.js +175 -0
  537. package/dist/cli/detect-BeLVeNpA.js +84 -0
  538. package/dist/cli/dist-D_VbPAMR.js +129 -0
  539. package/dist/cli/dist-DuiMMRbJ.js +1112 -0
  540. package/dist/cli/doctor-wACp5w6N.js +3508 -0
  541. package/dist/cli/emit-j0zZ6NE_.js +1061 -0
  542. package/dist/cli/env-2v9JrxSr.js +142 -0
  543. package/dist/cli/env-Cf5OTqbK.js +1087 -0
  544. package/dist/cli/env-Ch99nTQw.js +1 -0
  545. package/dist/cli/env-DkBe35Rv.js +1 -0
  546. package/dist/cli/errors-Caiz_0so.js +98 -0
  547. package/dist/cli/fastest-levenshtein-dhRRvrM2.js +120 -0
  548. package/dist/cli/files-DDvAwTko.js +963 -0
  549. package/dist/cli/gen-BhquLu7l.js +304 -0
  550. package/dist/cli/guards-CUlDNYZs.js +8 -0
  551. package/dist/cli/index.d.ts +260 -129
  552. package/dist/cli/index.js +13 -10
  553. package/dist/cli/init-BwLTO6XG.js +400 -0
  554. package/dist/cli/introspect-B-gXAIqs.js +51 -0
  555. package/dist/cli/io-BiPX-_J1.js +37 -0
  556. package/dist/cli/jsonc-C8M0EhHB.js +1 -0
  557. package/dist/cli/keys-hwtdwdkT.js +106 -0
  558. package/dist/cli/live-BFfYoE0_.js +329 -0
  559. package/dist/cli/mcp-Bdm2oGmL.js +237 -0
  560. package/dist/cli/metadata-DikbSOE0.js +138 -0
  561. package/dist/cli/migration-safety-LaGVPPuD.js +206 -0
  562. package/dist/cli/module-migration-CLkZ8jpw.js +592 -0
  563. package/dist/cli/moved-B7UFO_OM.js +152 -0
  564. package/dist/cli/parse-CwV5a6dA.js +170 -0
  565. package/dist/cli/preset-DQ1DxMtI.js +129 -0
  566. package/dist/cli/prompts-Bvg_DBpe.js +1137 -0
  567. package/dist/cli/redact-PjNswZOs.js +35 -0
  568. package/dist/cli/rolldown-runtime-kJ_i4yPo.js +26 -0
  569. package/dist/cli/run-BLJj7SuM.js +685 -0
  570. package/dist/cli/run-DliGNdjI.js +1507 -0
  571. package/dist/cli/scaffold-6bv24GSP.js +898 -0
  572. package/dist/cli/scaffold-DUz5fa-k.js +1 -0
  573. package/dist/cli/seed-CIJaL1Ao.js +113 -0
  574. package/dist/cli/seed-ClGWseBT.js +1 -0
  575. package/dist/cli/shared-CNcvDOLt.js +145 -0
  576. package/dist/cli/shell-Btv_4Yhe.js +10 -0
  577. package/dist/cli/skills-CaxIQhzW.js +121 -0
  578. package/dist/cli/snapshot-Dvcx0BSl.js +347 -0
  579. package/dist/cli/source-args-BNhagtpw.js +47 -0
  580. package/dist/cli/spec-BewE6r6J.js +7501 -0
  581. package/dist/cli/spec-DRDaIq8f.js +1 -0
  582. package/dist/cli/sql-BBkchli4.js +326 -0
  583. package/dist/cli/sql-BCQt5TDs.js +2 -0
  584. package/dist/cli/stack-status-LeEoCtV1.js +456 -0
  585. package/dist/cli/style-2JfIPVMQ.js +29 -0
  586. package/dist/cli/supabase-toml-DjLgBYEo.js +1153 -0
  587. package/dist/cli/sync-CJ-ft-tl.js +88 -0
  588. package/dist/cli/topics-BBE1-Vrg.js +30 -0
  589. package/dist/cli/trace-VbdO6bcN.js +7 -0
  590. package/dist/cli/typegen--TfvOPLh.js +494 -0
  591. package/dist/cli/typegen-version-BNBPI4Eu.js +9 -0
  592. package/dist/cli/validate-BfWNKvxy.js +7522 -0
  593. package/dist/cli/version-D1wM9DNb.js +4 -0
  594. package/dist/cli/write-Dp1XlAVM.js +198 -0
  595. package/dist/client/index.d.ts +7 -4
  596. package/dist/client/index.js +152 -6
  597. package/dist/client/native/index.d.ts +71 -4
  598. package/dist/client/native/index.js +65 -6
  599. package/dist/client-13Ii0c0P.js +84 -0
  600. package/dist/client-9zIKhf5D.d.ts +58 -0
  601. package/dist/client-AxwF58Eo.js +98 -0
  602. package/dist/client-B0rvMvA8.d.ts +52 -0
  603. package/dist/client-B5nnqDmz.d.ts +39 -0
  604. package/dist/client-B7LCXnnY.d.ts +59 -0
  605. package/dist/client-B9CqzgPO.js +75 -0
  606. package/dist/client-B9H4BZJh.d.ts +455 -0
  607. package/dist/client-BGnJ5WJi.js +438 -0
  608. package/dist/client-BLKpcAs0.d.ts +34 -0
  609. package/dist/client-BO9fQgBB.d.ts +155 -0
  610. package/dist/client-B_r4denm.d.ts +135 -0
  611. package/dist/client-BaynD5V-.d.ts +388 -0
  612. package/dist/client-BfgwocyT.js +155 -0
  613. package/dist/client-BpS8a6Fm.js +51 -0
  614. package/dist/client-BtBkVSk2.d.ts +108 -0
  615. package/dist/client-ByGlM0YF.d.ts +101 -0
  616. package/dist/client-BzCv4kKE.js +65 -0
  617. package/dist/client-C-2ajnhM.js +89 -0
  618. package/dist/client-C3dLIsJv.d.ts +122 -0
  619. package/dist/client-C597NIlL.d.ts +277 -0
  620. package/dist/client-C5mUEb2n.js +55 -0
  621. package/dist/client-CFeWXNXy.js +133 -0
  622. package/dist/client-CWs3X4g1.js +120 -0
  623. package/dist/client-Cgxj38RS.d.ts +419 -0
  624. package/dist/client-CjyTNdt1.d.ts +65 -0
  625. package/dist/client-CmHsfDHU.js +438 -0
  626. package/dist/client-CpMv4-v5.d.ts +100 -0
  627. package/dist/client-CsRpAyIv.d.ts +68 -0
  628. package/dist/client-CvITjt-9.js +310 -0
  629. package/dist/client-D0502FgY.js +1051 -0
  630. package/dist/client-D727oIVC.js +169 -0
  631. package/dist/client-D9zBl9PT.d.ts +103 -0
  632. package/dist/client-DG7FwgZD.js +104 -0
  633. package/dist/client-DNq8xYb-.js +52 -0
  634. package/dist/client-DR_YEGnc.d.ts +130 -0
  635. package/dist/client-DZXFDaQE.d.ts +157 -0
  636. package/dist/client-Diu2lPbg.d.ts +218 -0
  637. package/dist/client-Dk8gY9hi.d.ts +34 -0
  638. package/dist/client-Ezlbskjq.js +60 -0
  639. package/dist/client-Fi8CoJcs.d.ts +263 -0
  640. package/dist/client-LVa6yC9u.d.ts +107 -0
  641. package/dist/client-WXJwUhr1.d.ts +162 -0
  642. package/dist/client-WgrPIHH-.js +213 -0
  643. package/dist/client-ZTtSV3l8.js +40 -0
  644. package/dist/client-ckXfdy1k.js +38 -0
  645. package/dist/client-fpvgtQKE.js +128 -0
  646. package/dist/client-iB5axfa0.js +209 -0
  647. package/dist/client-jvtwGFy4.js +137 -0
  648. package/dist/client-kI6vCKVI.js +288 -0
  649. package/dist/client-kKdkLGPB.d.ts +131 -0
  650. package/dist/client-pxjbgOz6.js +376 -0
  651. package/dist/client-rp7YfOg1.js +67 -0
  652. package/dist/cloud-event-bwsBwVNG.d.ts +64 -0
  653. package/dist/codecs-Bm46sVxr.d.ts +215 -0
  654. package/dist/codecs-C7E_OoiC.js +358 -0
  655. package/dist/codegen-2m4SKVdi.d.ts +1654 -0
  656. package/dist/comments-N7Bi-oTW.js +230 -0
  657. package/dist/commerce/index.d.ts +211 -0
  658. package/dist/commerce/index.js +517 -0
  659. package/dist/compiler-C6E3WwIi.d.ts +14 -0
  660. package/dist/compose-CO_cljl3.js +53 -0
  661. package/dist/composite-CPV0thLs.js +130 -0
  662. package/dist/composite-DMMA_Whg.d.ts +67 -0
  663. package/dist/config/index.d.ts +7 -5
  664. package/dist/config/index.js +7 -4
  665. package/dist/config-C4RQDF6t.js +3896 -0
  666. package/dist/config-CkyahUjo.js +558 -0
  667. package/dist/connector-Cp8CqssJ.d.ts +107 -0
  668. package/dist/connectors-CZdfZcIg.d.ts +141 -0
  669. package/dist/context-B8_p3MXo.js +11 -0
  670. package/dist/context-BDDgjoxz.js +41 -0
  671. package/dist/context-C-bHOtoD.js +5 -0
  672. package/dist/context-CCfX2szU.d.ts +377 -0
  673. package/dist/context-D6ZMKc2L.js +19 -0
  674. package/dist/context-wDKxSl9x.js +9 -0
  675. package/dist/controller-CCb9tHw_.d.ts +46 -0
  676. package/dist/controller-D6NyNrlZ.js +79 -0
  677. package/dist/create/index.d.ts +597 -0
  678. package/dist/create/index.js +2049 -0
  679. package/dist/create/lite/index.d.ts +85 -0
  680. package/dist/create/lite/index.js +126 -0
  681. package/dist/create/supabase/index.d.ts +68 -0
  682. package/dist/create/supabase/index.js +312 -0
  683. package/dist/credentials/index.d.ts +15 -5
  684. package/dist/credentials/index.js +16 -8
  685. package/dist/cron-CUaKTjWC.js +145 -0
  686. package/dist/cron-route-BsgbJ-g4.js +24 -0
  687. package/dist/csv-CVfXqaAu.js +89 -0
  688. package/dist/csv-D3eKxV1T.d.ts +28 -0
  689. package/dist/define-CMcokcZz.js +1896 -0
  690. package/dist/define-DXTC706J.d.ts +1005 -0
  691. package/dist/define-block-B6Gjs57G.js +52 -0
  692. package/dist/define-block-BlHQxDIQ.d.ts +256 -0
  693. package/dist/delegation-Dt8hMJWu.js +140 -0
  694. package/dist/delivery-B1mKaOen.js +30 -0
  695. package/dist/delivery-BeHgwS3k.d.ts +69 -0
  696. package/dist/documents-BYM2viS0.d.ts +96 -0
  697. package/dist/edge/index.d.ts +16 -14
  698. package/dist/edge/index.js +24 -18
  699. package/dist/elysia/index.d.ts +1 -1
  700. package/dist/elysia/index.js +2 -2
  701. package/dist/email-BcmbIWOX.d.ts +42 -0
  702. package/dist/embeddings-CVeOoufZ.js +128 -0
  703. package/dist/embeddings-Da0w4A_0.d.ts +78 -0
  704. package/dist/ended-EcTtzzQJ.d.ts +70 -0
  705. package/dist/entitlements-AmYp2KHX.js +45 -0
  706. package/dist/entitlements-Bn7BTnbg.d.ts +53 -0
  707. package/dist/env/index.d.ts +1 -1
  708. package/dist/env/index.js +9 -4
  709. package/dist/envelope--7d0Q3Se.js +90 -0
  710. package/dist/errors-7MqM7bbV.js +44 -0
  711. package/dist/errors-8i6tSICm.js +301 -0
  712. package/dist/escape-like-AUEPn-C5.d.ts +15 -0
  713. package/dist/eve/index.d.ts +5 -5
  714. package/dist/eve/index.js +9 -9
  715. package/dist/eve-BcEr_hPo.d.ts +151 -0
  716. package/dist/event-calendar-DJXXMJ3x.d.ts +217 -0
  717. package/dist/event-map-Dy2vKHai.js +19 -0
  718. package/dist/events/index.d.ts +4 -4
  719. package/dist/events/index.js +10 -7
  720. package/dist/events-CtAHxPal.d.ts +800 -0
  721. package/dist/events-xbpHkcK9.js +82 -0
  722. package/dist/executor-BicyP8Nl.d.ts +272 -0
  723. package/dist/executor-CHRwEYqt.d.ts +95 -0
  724. package/dist/executor-CIxyatuB.d.ts +174 -0
  725. package/dist/executor-Cex-1PFp.js +735 -0
  726. package/dist/executor-D3K3tycZ.js +147 -0
  727. package/dist/executor-DzJQVTE2.d.ts +39 -0
  728. package/dist/executor-aKUo_Xyb.js +206 -0
  729. package/dist/expo/index.d.ts +4 -4
  730. package/dist/expo/index.js +6 -6
  731. package/dist/expo-sqlite/index.d.ts +3 -3
  732. package/dist/expo-sqlite/index.js +2 -2
  733. package/dist/field-errors-nFnYWvB0.d.ts +113 -0
  734. package/dist/field-formats-Cif5gr7c.js +102 -0
  735. package/dist/field-formats-DCvOQlOy.d.ts +39 -0
  736. package/dist/filter-evaluate-C0ULNfS7.js +214 -0
  737. package/dist/filter-evaluate-CEm52E5s.d.ts +34 -0
  738. package/dist/filter-query-B3lhckKX.js +518 -0
  739. package/dist/filter-query-D3wOD1P_.d.ts +121 -0
  740. package/dist/flags-CtSrkVuW.js +279 -0
  741. package/dist/flags-Dz5PIzFU.d.ts +230 -0
  742. package/dist/flags-sdk/index.d.ts +143 -0
  743. package/dist/flags-sdk/index.js +175 -0
  744. package/dist/form-definition-GVZTILhS.js +311 -0
  745. package/dist/form-definition-sagoefQr.d.ts +95 -0
  746. package/dist/format-CNwSjXUU.d.ts +70 -0
  747. package/dist/framework-C2oL4OaO.d.ts +26 -0
  748. package/dist/framework-Cfm0IspZ.js +51 -0
  749. package/dist/function-contract-B4c0XuTU.d.ts +21 -0
  750. package/dist/function-contract-DmkBg19r.js +5 -0
  751. package/dist/gateway-CJL6ZG17.d.ts +109 -0
  752. package/dist/gateway-options-ClvvfuuU.d.ts +29 -0
  753. package/dist/gateway-options-DcLcWL5_.js +27 -0
  754. package/dist/graph-Cs28bOlK.js +360 -0
  755. package/dist/groups-CxonH3u5.js +16 -0
  756. package/dist/h3/index.d.ts +7 -3
  757. package/dist/h3/index.js +3 -3
  758. package/dist/h3/v1/index.d.ts +1 -1
  759. package/dist/h3/v1/index.js +2 -2
  760. package/dist/hono/index.d.ts +24 -10
  761. package/dist/hono/index.js +50 -22
  762. package/dist/http-BF-V0CUF.js +25 -0
  763. package/dist/impersonation-CDeCzZP6.js +62 -0
  764. package/dist/impersonation-D5chOkrO.d.ts +25 -0
  765. package/dist/inbox-BaUJgHOF.d.ts +400 -0
  766. package/dist/index-8xwnaWHY.d.ts +344 -0
  767. package/dist/index-BurdFUXr.d.ts +131 -0
  768. package/dist/index-Cckxs8IE.d.ts +206 -0
  769. package/dist/index-Ck4oK5vV.d.ts +258 -0
  770. package/dist/index-Co0YsJTk.d.ts +58 -0
  771. package/dist/index-CxmVzT-3.d.ts +86 -0
  772. package/dist/index-D1kMyNc7.d.ts +245 -0
  773. package/dist/index-DL8z_oDo.d.ts +227 -0
  774. package/dist/index-DMONTkSf.d.ts +202 -0
  775. package/dist/index-DTQbC3CW.d.ts +58 -0
  776. package/dist/index-DcijDfh1.d.ts +97 -0
  777. package/dist/index-MCXVzkXs.d.ts +722 -0
  778. package/dist/index-gXy3R1Uq.d.ts +138 -0
  779. package/dist/index.d.ts +15 -15
  780. package/dist/index.js +15 -14
  781. package/dist/iso4217-A8ev-CNW.js +176 -0
  782. package/dist/json-schema-CpYINXG8.js +548 -0
  783. package/dist/jws-35a8VhFV.d.ts +60 -0
  784. package/dist/jws-milwSg7E.js +191 -0
  785. package/dist/kit-BlcEFQql.d.ts +66 -0
  786. package/dist/kit-gqwkVhGU.js +104 -0
  787. package/dist/knowledge-BYtgA52P.d.ts +187 -0
  788. package/dist/knowledge-CSNKLX-s.js +272 -0
  789. package/dist/lint/index.js +9 -9
  790. package/dist/list/index.d.ts +4 -2
  791. package/dist/list/index.js +4 -2
  792. package/dist/list-query-CBXNfJt4.js +549 -0
  793. package/dist/list-query-DWJIiVz_.d.ts +194 -0
  794. package/dist/live-DwDreq1n.js +239 -0
  795. package/dist/management-D1gG89z2.d.ts +53 -0
  796. package/dist/mcp/index.d.ts +59 -17
  797. package/dist/mcp/index.js +202 -98
  798. package/dist/mcp/sdk/index.d.ts +6 -6
  799. package/dist/mcp/sdk/index.js +7 -7
  800. package/dist/messages-Cx4ttLJJ.js +493 -0
  801. package/dist/methods-7u6vSgz_.js +11 -0
  802. package/dist/metric-definition-95HFoW1V.d.ts +70 -0
  803. package/dist/metric-definition-BjxVn4R5.js +117 -0
  804. package/dist/mfa-DtflCXEt.d.ts +30 -0
  805. package/dist/model-lUafmeBQ.d.ts +311 -0
  806. package/dist/model-messages-CTu-6kBu.js +206 -0
  807. package/dist/money-95Rff2vT.js +185 -0
  808. package/dist/money-DFpWzQvk.d.ts +76 -0
  809. package/dist/money-codec-DCGgzO26.js +41 -0
  810. package/dist/nestjs/index.d.ts +2 -2
  811. package/dist/nestjs/index.js +2 -2
  812. package/dist/next/index.d.ts +26 -16
  813. package/dist/next/index.js +17 -16
  814. package/dist/node/index.d.ts +2 -2
  815. package/dist/node/index.js +3 -3
  816. package/dist/nuxt/index.d.ts +2 -2
  817. package/dist/nuxt/index.js +3 -2
  818. package/dist/onboarding-viTTNWUp.js +68 -0
  819. package/dist/openapi/index.d.ts +3 -3
  820. package/dist/openapi/index.js +2 -2
  821. package/dist/operations-BtuQRwTJ.d.ts +6 -0
  822. package/dist/operations-CsIfMED7.js +29 -0
  823. package/dist/optional-peer-Dx8TaYXw.js +29 -0
  824. package/dist/options-B0FcEKtH.js +5 -0
  825. package/dist/options-B5BU2Yg7.js +11 -0
  826. package/dist/options-B5woz53h.js +5 -0
  827. package/dist/options-B7EJaOX-.js +5 -0
  828. package/dist/options-B9q8CROT.js +9 -0
  829. package/dist/options-BA6jV6py.js +10 -0
  830. package/dist/options-BAW2ZlZ8.js +8 -0
  831. package/dist/options-BMjcVuaI.js +82 -0
  832. package/dist/options-BOOEzor9.js +5 -0
  833. package/dist/options-BZsoPJGX.js +5 -0
  834. package/dist/options-BesyRBnM.js +16 -0
  835. package/dist/options-Bf96aVk5.js +10 -0
  836. package/dist/options-BlOPivzq.js +8 -0
  837. package/dist/options-Blg8lAkz.js +9 -0
  838. package/dist/options-Bn4cu0gt.js +5 -0
  839. package/dist/options-BnoJOwXK.js +8 -0
  840. package/dist/options-Bp7sgKvl.js +30 -0
  841. package/dist/options-BxcFLL1G.js +8 -0
  842. package/dist/options-C1HR4UZd.js +13 -0
  843. package/dist/options-C239TLRF.js +14 -0
  844. package/dist/options-C2HesT4A.js +9 -0
  845. package/dist/options-C3EzJATk.js +10 -0
  846. package/dist/options-C3hZ1fbC.js +10 -0
  847. package/dist/options-C6rEL6U5.js +8 -0
  848. package/dist/options-CAzVf-1T.js +8 -0
  849. package/dist/options-CGKSUFUq.js +5 -0
  850. package/dist/options-CGjGE8xS.js +12 -0
  851. package/dist/options-CK5WiFwG.js +11 -0
  852. package/dist/options-CN7PHkhU.js +8 -0
  853. package/dist/options-CTZNpb2n.js +5 -0
  854. package/dist/options-CUqQ9pm7.js +9 -0
  855. package/dist/options-CVSWgZpY.js +8 -0
  856. package/dist/options-CXFz0xxS.js +8 -0
  857. package/dist/options-CZk_fbbg.js +9 -0
  858. package/dist/options-C_pb1Nd3.js +5 -0
  859. package/dist/options-CbSOj53r.d.ts +52 -0
  860. package/dist/options-ChD15QxJ.js +9 -0
  861. package/dist/options-CkScQRJR.js +12 -0
  862. package/dist/options-CljDnQt2.js +25 -0
  863. package/dist/options-CmraJhd9.js +5 -0
  864. package/dist/options-CoX6VKGb.js +8 -0
  865. package/dist/options-CrC78Tee.js +5 -0
  866. package/dist/options-Ctac2R0Q.js +11 -0
  867. package/dist/options-CyD7OObW.js +17 -0
  868. package/dist/options-D1blDihM.js +9 -0
  869. package/dist/options-D2Gd6VfS.js +8 -0
  870. package/dist/options-D2d1fFuw.js +11 -0
  871. package/dist/options-D40CQzji.js +8 -0
  872. package/dist/options-D7f2VKzj.js +25 -0
  873. package/dist/options-DARkpk2P.js +8 -0
  874. package/dist/options-DCduTMST.js +17 -0
  875. package/dist/options-DDzggjN7.js +8 -0
  876. package/dist/options-DMR68VAC.js +5 -0
  877. package/dist/options-DNKyN5uq.js +20 -0
  878. package/dist/options-DTDxFT6J.js +13 -0
  879. package/dist/options-DWpz3V3F.js +8 -0
  880. package/dist/options-DXqcJyOP.js +10 -0
  881. package/dist/options-DYBQ973I.js +8 -0
  882. package/dist/options-Dh4wu9Ks.js +15 -0
  883. package/dist/options-Dmg1Da9P.js +25 -0
  884. package/dist/options-DsUgamiy.js +5 -0
  885. package/dist/options-EsUh744F.js +13 -0
  886. package/dist/options-Fz6xqu-b.js +5 -0
  887. package/dist/options-HSv8R6h5.js +13 -0
  888. package/dist/options-I8zVkB_y.js +8 -0
  889. package/dist/options-MHhjOoWz.js +5 -0
  890. package/dist/options-MLxMkd5B.js +11 -0
  891. package/dist/options-OJ5zmgr8.js +10 -0
  892. package/dist/options-QKP9FFcK.js +8 -0
  893. package/dist/options-SViK_2x2.js +12 -0
  894. package/dist/options-XgfTctbI.js +5 -0
  895. package/dist/options-_9arpsX9.js +11 -0
  896. package/dist/options-eBPsk4WI.js +11 -0
  897. package/dist/options-kLKILdIu.js +10 -0
  898. package/dist/options-n22NK3PL.js +8 -0
  899. package/dist/options-oeAq4Ho5.js +12 -0
  900. package/dist/options-qU8vgxhO.js +18 -0
  901. package/dist/options-vXMBEWSH.js +5 -0
  902. package/dist/options-wFnK3qWl.js +9 -0
  903. package/dist/options-xVAy3UsV.js +9 -0
  904. package/dist/organizations-Bxrm32IG.js +398 -0
  905. package/dist/orpc/index.d.ts +26 -10
  906. package/dist/orpc/index.js +54 -33
  907. package/dist/otel/index.d.ts +3 -3
  908. package/dist/otel/index.js +42 -7
  909. package/dist/outbox-BCGHl9X6.d.ts +181 -0
  910. package/dist/overlay/index.d.ts +1 -1
  911. package/dist/overlay/index.js +3 -3
  912. package/dist/payments-h45bswA-.js +16 -0
  913. package/dist/pg-error-BV_X8Isq.js +26 -0
  914. package/dist/plugin-D5OIaP93.d.ts +190 -0
  915. package/dist/plugins/actor/index.d.ts +1 -1
  916. package/dist/plugins/actor/index.js +1 -1
  917. package/dist/plugins/rules/index.d.ts +2 -2
  918. package/dist/plugins/rules/index.js +2 -2
  919. package/dist/plugins/soft-delete/index.d.ts +3 -3
  920. package/dist/plugins/soft-delete/index.js +4 -4
  921. package/dist/plugins/tenant/index.d.ts +4 -3
  922. package/dist/plugins/tenant/index.js +3 -3
  923. package/dist/plugins/timestamps/index.d.ts +1 -1
  924. package/dist/plugins/timestamps/index.js +1 -1
  925. package/dist/plugins/validation/index.d.ts +2 -2
  926. package/dist/plugins/validation/index.js +3 -3
  927. package/dist/pool-BBi4mot3.d.ts +117 -0
  928. package/dist/pool-errors-C94tPR_G.js +27 -0
  929. package/dist/ports-B53rB7zg.d.ts +285 -0
  930. package/dist/ports-Bcdppx0G.js +133 -0
  931. package/dist/ports-Dcnuo3HT.d.ts +86 -0
  932. package/dist/postgres/index.d.ts +28 -6
  933. package/dist/postgres/index.js +62 -25
  934. package/dist/postgrest-D6fEMsp4.d.ts +53 -0
  935. package/dist/powersync/index.d.ts +4 -4
  936. package/dist/powersync/index.js +4 -4
  937. package/dist/powersync/react/index.d.ts +8 -3
  938. package/dist/powersync/react/index.js +11 -3
  939. package/dist/preset/index.d.ts +4 -0
  940. package/dist/preset/index.js +4 -0
  941. package/dist/preset-BBrL6_Ln.js +648 -0
  942. package/dist/problem-CEjyhV5T.d.ts +76 -0
  943. package/dist/problem-pIiL3WbE.js +159 -0
  944. package/dist/provider-CQ1SrhLa.d.ts +113 -0
  945. package/dist/provider-DKh2xFZb.js +57 -0
  946. package/dist/push-token-CDMgWT13.d.ts +24 -0
  947. package/dist/push-token-D6REHMMw.js +16 -0
  948. package/dist/query/index.d.ts +2 -2
  949. package/dist/range-DwpWe8e7.js +7 -0
  950. package/dist/range-p5V4rBhZ.d.ts +8 -0
  951. package/dist/rank-keys-DcPMt_Jk.js +60 -0
  952. package/dist/rank-result-Dngpt2n5.d.ts +14 -0
  953. package/dist/rank-result-oUF1DYBm.js +18 -0
  954. package/dist/rate-limit-BtbddDnE.js +49 -0
  955. package/dist/rate-limit-ByfWNX9N.js +325 -0
  956. package/dist/rate-limit-C88MEAOm.d.ts +41 -0
  957. package/dist/ratelimit-headers-Bsxx0Tj2.js +62 -0
  958. package/dist/react/index.d.ts +9 -9
  959. package/dist/react/index.js +3 -4
  960. package/dist/react/native/index.d.ts +1 -1
  961. package/dist/react/native/index.js +2 -2
  962. package/dist/react/server.d.ts +10 -10
  963. package/dist/react/server.js +3 -3
  964. package/dist/react/session.d.ts +2 -2
  965. package/dist/react-BcKACxsj.js +410 -0
  966. package/dist/react-controller-Xn-IU44p.js +40 -0
  967. package/dist/react-env-Cc7Vf6eb.js +13 -0
  968. package/dist/react-router/index.d.ts +6 -6
  969. package/dist/react-router/index.js +7 -7
  970. package/dist/read-set-PWiJfv6S.js +314 -0
  971. package/dist/realtime/index.d.ts +8 -4
  972. package/dist/realtime/index.js +5 -327
  973. package/dist/realtime-status-D2dw1hOE.js +12 -0
  974. package/dist/realtime-status-DcsO00Gw.d.ts +8 -0
  975. package/dist/refusal-Bdr1k47u.d.ts +18 -0
  976. package/dist/refusal-Ch-u9dVd.js +61 -0
  977. package/dist/replicas-BvIL4_jL.js +94 -0
  978. package/dist/resolve-7atr-wWr.d.ts +266 -0
  979. package/dist/resolve-CAR9oaKW.js +869 -0
  980. package/dist/resource-CHGOmg1O.js +463 -0
  981. package/dist/resource-DO4gbVi5.js +91 -0
  982. package/dist/resource-DxcgtHq6.d.ts +106 -0
  983. package/dist/resource-execute-C45ICrN9.d.ts +12 -0
  984. package/dist/resource-types-CC59gMHE.d.ts +141 -0
  985. package/dist/resources-B71O7EVQ.d.ts +7 -0
  986. package/dist/resources-B7htXQeg.js +64 -0
  987. package/dist/respond-Cdg5ibH5.d.ts +93 -0
  988. package/dist/respond-Dpx48ATq.js +95 -0
  989. package/dist/result-COkvI9t5.js +134 -0
  990. package/dist/result-Cj3yWhjH.d.ts +298 -0
  991. package/dist/rrule-zBh3CA1r.js +290 -0
  992. package/dist/rules-4of_Fq-6.js +287 -0
  993. package/dist/run-watch-CQRdpy-f.js +53 -0
  994. package/dist/runtime-BOXURhEW.js +45 -0
  995. package/dist/sales-lines-C6gafAwg.d.ts +28 -0
  996. package/dist/sales-lines-CymdiwYd.js +41 -0
  997. package/dist/sales-shared-DAAGwQwN.d.ts +8 -0
  998. package/dist/sales-shared-DjCuN8xG.js +22 -0
  999. package/dist/scope-DgWjuXUw.js +90 -0
  1000. package/dist/search-BtoWY6n_.js +9 -0
  1001. package/dist/search-LbjCylX5.js +106 -0
  1002. package/dist/server/index.d.ts +157 -51
  1003. package/dist/server/index.js +295 -20
  1004. package/dist/server-types-fXwJoFjt.d.ts +737 -0
  1005. package/dist/session-Djo5t4KQ.d.ts +95 -0
  1006. package/dist/settings-DxXfDUmh.js +90 -0
  1007. package/dist/shared-9B02lczf.js +14 -0
  1008. package/dist/shared-BmMcMoW9.js +89 -0
  1009. package/dist/shared-as0EG51f.js +60 -0
  1010. package/dist/sign-in-D0xN6E_l.js +360 -0
  1011. package/dist/signatures-BMdJ7neI.d.ts +43 -0
  1012. package/dist/signatures-C9CGYZS1.js +145 -0
  1013. package/dist/signers-BjSgNAXP.d.ts +385 -0
  1014. package/dist/signing-keys-Ccr86Y2C.d.ts +90 -0
  1015. package/dist/solid/index.d.ts +8 -8
  1016. package/dist/solid/index.js +3 -8
  1017. package/dist/solid-controller-CZrt1Tg6.d.ts +11 -0
  1018. package/dist/solid-controller-DLsmrczT.js +33 -0
  1019. package/dist/solid-start/index.d.ts +8 -12
  1020. package/dist/solid-start/index.js +8 -7
  1021. package/dist/spec/index.d.ts +25 -5
  1022. package/dist/spec/index.js +37 -4
  1023. package/dist/spec-pins-Dqpml2dZ.d.ts +84 -0
  1024. package/dist/spec-pins-S4PymRxp.js +60 -0
  1025. package/dist/sql/index.d.ts +5 -548
  1026. package/dist/sql/index.js +5 -38398
  1027. package/dist/sql-BQshMgmB.js +422 -0
  1028. package/dist/sql-CgTZOQZ7.js +87439 -0
  1029. package/dist/sso-B5ZoEsXE.d.ts +131 -0
  1030. package/dist/sso-CwAnve68.js +217 -0
  1031. package/dist/ssr/index.d.ts +5 -6
  1032. package/dist/ssr/index.js +4 -4
  1033. package/dist/standard-C3_AAF3g.d.ts +7 -0
  1034. package/dist/standard-DZmwmIhV.js +25 -0
  1035. package/dist/stats-CUhqw6Ev.js +1128 -0
  1036. package/dist/storage/index.d.ts +3 -3
  1037. package/dist/storage/index.js +14 -10
  1038. package/dist/storage-api-B4Ib2Zpo.d.ts +582 -0
  1039. package/dist/store-B5qYKsTh.d.ts +68 -0
  1040. package/dist/streams/index.d.ts +4 -4
  1041. package/dist/streams/index.js +4 -4
  1042. package/dist/streams/redis/index.d.ts +1 -1
  1043. package/dist/streams/redis/index.js +4 -4
  1044. package/dist/stripe/index.d.ts +16 -0
  1045. package/dist/stripe/index.js +14 -0
  1046. package/dist/stripe-NVcNOhHy.d.ts +140 -0
  1047. package/dist/stripe-XZrSmDTf.js +32 -0
  1048. package/dist/subject-readers-81xiWh4M.d.ts +21 -0
  1049. package/dist/subject-readers-DDyPTIOr.js +46 -0
  1050. package/dist/subjects-DP-fvFkk.d.ts +77 -0
  1051. package/dist/subscribers-Cq--DL1E.js +34 -0
  1052. package/dist/supabase-mcp-DomZ-amK.js +28 -0
  1053. package/dist/support-BsqhV6jP.js +522 -0
  1054. package/dist/support-view-CznLe4jq.d.ts +17 -0
  1055. package/dist/svelte/index.d.ts +7 -7
  1056. package/dist/svelte/index.js +2 -2
  1057. package/dist/svelte-controller-CDAujo-_.js +50 -0
  1058. package/dist/svelte-controller-DDbju9CW.d.ts +10 -0
  1059. package/dist/sveltekit/index.d.ts +11 -13
  1060. package/dist/sveltekit/index.js +9 -9
  1061. package/dist/table-schema-pQlER3jj.js +283 -0
  1062. package/dist/tags-7NHyD1P8.d.ts +30 -0
  1063. package/dist/tags-DGldvcA4.js +84 -0
  1064. package/dist/tanstack-db/index.d.ts +2 -2
  1065. package/dist/tanstack-db/index.js +1 -1
  1066. package/dist/tanstack-db/supabase/index.d.ts +5 -6
  1067. package/dist/tanstack-db/supabase/index.js +180 -9
  1068. package/dist/tanstack-start/index.d.ts +7 -7
  1069. package/dist/tanstack-start/index.js +6 -6
  1070. package/dist/tax-DDZUB_oc.d.ts +273 -0
  1071. package/dist/tax-DZDpMMRw.js +140 -0
  1072. package/dist/tee-CdRV1tcj.js +101 -0
  1073. package/dist/template-DdgYjIZ5.js +123 -0
  1074. package/dist/temporal-CB5Fpo5d.js +79 -0
  1075. package/dist/temporal-required-DqRzr7i0.js +20 -0
  1076. package/dist/tenant-B-fiItlJ.js +27 -0
  1077. package/dist/tenant-DW_GmsW4.d.ts +17 -0
  1078. package/dist/tenant-naming-Bsj3Uvap.js +27 -0
  1079. package/dist/testing/index.d.ts +235 -32
  1080. package/dist/testing/index.js +1133 -76
  1081. package/dist/timing-BMCWgpdZ.js +92 -0
  1082. package/dist/topic-DB-1YTMj.js +561 -0
  1083. package/dist/topic-Dgs-eSYQ.d.ts +373 -0
  1084. package/dist/types-BO8lVTun.d.ts +363 -0
  1085. package/dist/types-C_GN-4ed.d.ts +162 -0
  1086. package/dist/types-DGHfTW8_.d.ts +9 -0
  1087. package/dist/types-DM8q3IOr.d.ts +240 -0
  1088. package/dist/types-DOaUIJxW.d.ts +205 -0
  1089. package/dist/types-DZj8CZMH.d.ts +649 -0
  1090. package/dist/types-P1S1cj6N.d.ts +564 -0
  1091. package/dist/types-R6syp1el.js +29 -0
  1092. package/dist/undo-0qM13zul.js +44 -0
  1093. package/dist/undo-D42sPjCf.d.ts +43 -0
  1094. package/dist/usage-BrJGPvCq.js +250 -0
  1095. package/dist/usage-CnQHSM_r.d.ts +202 -0
  1096. package/dist/vault-EnOQJWjn.d.ts +50 -0
  1097. package/dist/vercel-connect/index.d.ts +1 -1
  1098. package/dist/vercel-connect/index.js +4 -4
  1099. package/dist/verify-3NLjUIER.d.ts +142 -0
  1100. package/dist/verify-C9D_jjsQ.js +126 -0
  1101. package/dist/version-Bxj_xcUY.js +4 -0
  1102. package/dist/view-DZ63nqwt.js +105 -0
  1103. package/dist/view-SuASaomx.d.ts +90 -0
  1104. package/dist/vue/index.d.ts +8 -8
  1105. package/dist/vue/index.js +3 -16
  1106. package/dist/vue-controller-C9tFzqAc.js +32 -0
  1107. package/dist/vue-controller-D_ohttBZ.d.ts +11 -0
  1108. package/dist/watch-Blj1mQ9n.js +139 -0
  1109. package/dist/watch-D1wwzZ04.d.ts +84 -0
  1110. package/dist/watch-topic-D-rpUg5n.d.ts +28 -0
  1111. package/dist/watch-topic-miuymrli.js +57 -0
  1112. package/dist/wire-DEY0ajW9.js +45 -0
  1113. package/dist/workflow-builder-C5DBN7yq.js +697 -0
  1114. package/dist/workflow-sdk/builder/index.d.ts +46 -15
  1115. package/dist/workflow-sdk/builder/index.js +69 -21
  1116. package/dist/workflow-sdk/index.d.ts +75 -2
  1117. package/dist/workflow-sdk/index.js +83 -3
  1118. package/dist/workflow-sdk/world/index.d.ts +29 -4
  1119. package/dist/workflow-sdk/world/index.js +137 -59
  1120. package/dist/workflow-sdk-Di5pmCAu.d.ts +161 -0
  1121. package/dist/workflow-sdk-vjDWlnfX.js +243 -0
  1122. package/dist/workflow-sdk-world-DPMdBfzn.js +2103 -0
  1123. package/dist/workflows-DJXoxDZH.d.ts +243 -0
  1124. package/dist/workflows-DzdX28KN.js +282 -0
  1125. package/dist/yjs/index.d.ts +67 -0
  1126. package/dist/yjs/index.js +212 -0
  1127. package/package.json +800 -46
  1128. package/schemas/cli-commands-v1.json +220 -0
  1129. package/schemas/cli-result-v1.json +138 -0
  1130. package/schemas/config-v1.json +4503 -909
  1131. package/schemas/doctor-report-v1.json +30 -0
  1132. package/schemas/snapshot-v2.json +271 -0
  1133. package/skills/better-supabase/SKILL.md +12 -4
  1134. package/skills/better-supabase/references/plugins.md +2 -2
  1135. package/skills/better-supabase/references/ui-recipes.md +19324 -0
  1136. package/skills/better-supabase-api/SKILL.md +14 -14
  1137. package/skills/better-supabase-api/references/adapters.md +12 -2
  1138. package/skills/better-supabase-api/references/ai.md +4 -4
  1139. package/skills/better-supabase-api/references/expo.md +1 -1
  1140. package/skills/better-supabase-api/references/powersync.md +1 -1
  1141. package/skills/better-supabase-api/references/streams-credentials.md +8 -5
  1142. package/skills/better-supabase-auth/SKILL.md +18 -11
  1143. package/skills/better-supabase-auth/references/authorization-providers.md +5 -5
  1144. package/skills/better-supabase-testing/SKILL.md +2 -2
  1145. package/testing/act-cases.json +370 -0
  1146. package/dist/access-sql-CrSbK1q-.js +0 -181
  1147. package/dist/actor-CQTlc1Hh.d.ts +0 -43
  1148. package/dist/adapter-CN45ibbV.js +0 -1691
  1149. package/dist/agents-BY_LQXtQ.d.ts +0 -94
  1150. package/dist/ai-cache-Dfgk8nBT.js +0 -81
  1151. package/dist/ai-cache-DrUMMgp6.d.ts +0 -64
  1152. package/dist/ai-chat-CVLRWbtS.js +0 -744
  1153. package/dist/ai-chat-DXkMy74O.d.ts +0 -590
  1154. package/dist/ai-files-CioLu5du.js +0 -320
  1155. package/dist/ai-tasks-BRQ6iQLc.d.ts +0 -131
  1156. package/dist/announcements-Bouy0Ski.d.ts +0 -72
  1157. package/dist/announcements-p_BFofiR.js +0 -107
  1158. package/dist/api-Dnf2q-Ht.d.ts +0 -370
  1159. package/dist/api-DtHFC037.js +0 -676
  1160. package/dist/api-keys-C8BlF3L2.d.ts +0 -156
  1161. package/dist/assistant-DBlFDZsi.d.ts +0 -147
  1162. package/dist/attributes-5dYul0u0.js +0 -13
  1163. package/dist/authorization-BFCqamMs.d.ts +0 -172
  1164. package/dist/authorizer-ayxUDXXP.js +0 -126
  1165. package/dist/base64-D2gsioCY.js +0 -42
  1166. package/dist/before-route-CnR0C0Jr.js +0 -30
  1167. package/dist/bind-ButSzrHe.js +0 -97
  1168. package/dist/bind-CQ5mPyX1.d.ts +0 -62
  1169. package/dist/block-events-DTxU5tfr.js +0 -91
  1170. package/dist/block-fields-CroxUuF2.js +0 -49
  1171. package/dist/block-fields-D1pfrcIY.d.ts +0 -31
  1172. package/dist/block-helpers-C0Xj8War.d.ts +0 -37
  1173. package/dist/block-helpers-Cy3pB96I.js +0 -222
  1174. package/dist/block-hooks-BPNMIlLl.js +0 -114
  1175. package/dist/block-hooks-DaOVC7SC.d.ts +0 -107
  1176. package/dist/block-transport-bAKh-dGc.js +0 -85
  1177. package/dist/block-transport-inD4fFq-.d.ts +0 -70
  1178. package/dist/build-hPwk3_X5.js +0 -1296
  1179. package/dist/build-meLuYGri.js +0 -689
  1180. package/dist/channel-_2Mx1Oyu.d.ts +0 -70
  1181. package/dist/channels-CkgQ_X60.js +0 -114
  1182. package/dist/cli/add-1dc5wM5k.js +0 -69
  1183. package/dist/cli/bin.d.ts +0 -1
  1184. package/dist/cli/cache-CIfA-jBV.js +0 -483
  1185. package/dist/cli/codemod-JVlTQQG2.js +0 -491
  1186. package/dist/cli/command-DV-StG1x.js +0 -507
  1187. package/dist/cli/config-C2Pz2_4A.js +0 -52
  1188. package/dist/cli/config-DpbF8ML3.js +0 -2
  1189. package/dist/cli/config-M-WzL9O2.js +0 -1175
  1190. package/dist/cli/db-BkcfOlyB.js +0 -53
  1191. package/dist/cli/diff-D1jGdb3Y.js +0 -752
  1192. package/dist/cli/dist-DBPdlPYK.js +0 -1112
  1193. package/dist/cli/dist-DRAVaE6w.js +0 -842
  1194. package/dist/cli/dist-DreZ24Sz.js +0 -129
  1195. package/dist/cli/doctor-VcDtuusV.js +0 -3686
  1196. package/dist/cli/emit-BHHfwUoT.js +0 -1136
  1197. package/dist/cli/env-B--LMhEe.js +0 -514
  1198. package/dist/cli/env-vzBG90Um.js +0 -2
  1199. package/dist/cli/env-zHJtMIBo.js +0 -116
  1200. package/dist/cli/errors-CqTLXe2M.js +0 -72
  1201. package/dist/cli/fastest-levenshtein-CF7BCi9l.js +0 -120
  1202. package/dist/cli/files-BVupXPIC.js +0 -34
  1203. package/dist/cli/gen-DmVj3u4L.js +0 -322
  1204. package/dist/cli/glue-C1UE8gQN.js +0 -468
  1205. package/dist/cli/init-CVZ3s5kl.js +0 -258
  1206. package/dist/cli/introspect-BToGNfm-.js +0 -81
  1207. package/dist/cli/io-CFzJVJ68.js +0 -37
  1208. package/dist/cli/jsonc-BUniUpOk.js +0 -2
  1209. package/dist/cli/keys-CJhtIxJ3.js +0 -85
  1210. package/dist/cli/metadata-DSRKCaf-.js +0 -133
  1211. package/dist/cli/openapi-DWa4Ir1q.js +0 -60
  1212. package/dist/cli/project-DZRaBaY7.js +0 -75
  1213. package/dist/cli/prompts-BdeVmVpg.js +0 -2
  1214. package/dist/cli/prompts-DZJB1nTw.js +0 -1142
  1215. package/dist/cli/read-sets-DjJrm8Wj.js +0 -223
  1216. package/dist/cli/rolldown-runtime-CMFfr-1z.js +0 -26
  1217. package/dist/cli/run-DA6_lg3w.js +0 -389
  1218. package/dist/cli/run-DuN1MX-7.js +0 -705
  1219. package/dist/cli/scaffold-5DenHSxF.js +0 -292
  1220. package/dist/cli/scaffold-CwQUMFRb.js +0 -2
  1221. package/dist/cli/seed-CzBmrGON.js +0 -96
  1222. package/dist/cli/seed-DOmit9Hq.js +0 -2
  1223. package/dist/cli/skills-CnO8QFS7.js +0 -139
  1224. package/dist/cli/snapshot-Bstk6ulj.js +0 -287
  1225. package/dist/cli/source-args-BYfq6imV.js +0 -31
  1226. package/dist/cli/spec-CzosTYm3.js +0 -7438
  1227. package/dist/cli/spec-T_0Bcyw7.js +0 -2
  1228. package/dist/cli/sql-BKOOQAX3.js +0 -517
  1229. package/dist/cli/sql-DJrNDxQm.js +0 -3
  1230. package/dist/cli/sql-layout-D6cphHT3.js +0 -69
  1231. package/dist/cli/style-CB3vxgh0.js +0 -29
  1232. package/dist/cli/supabase-toml-B-bIukQF.js +0 -1095
  1233. package/dist/cli/typegen-Demi5-VQ.js +0 -486
  1234. package/dist/cli/typegen-version-DeFbtzYI.js +0 -8
  1235. package/dist/cli/validate-Ca13ktgz.js +0 -7522
  1236. package/dist/cli/version-B4k0aUxS.js +0 -4
  1237. package/dist/client-wxeTQFtB.js +0 -310
  1238. package/dist/cloud-event-Dune0KI7.d.ts +0 -64
  1239. package/dist/compiler-V1qvcST1.d.ts +0 -14
  1240. package/dist/compose-BHej1acw.js +0 -53
  1241. package/dist/composite-CWAJTRBF.d.ts +0 -146
  1242. package/dist/composite-zTe0TCqj.js +0 -130
  1243. package/dist/config-DlKvtt95.js +0 -540
  1244. package/dist/connector-CySQEFcW.d.ts +0 -107
  1245. package/dist/connectors--PGhmiu0.d.ts +0 -120
  1246. package/dist/context-DsV2SueA.d.ts +0 -246
  1247. package/dist/context-nPDvQ-Zl.js +0 -41
  1248. package/dist/cron-D25Ukpxy.js +0 -145
  1249. package/dist/cron-route-D2AN9SA1.js +0 -24
  1250. package/dist/csv-BZnHA1Py.js +0 -25
  1251. package/dist/define-CFQcvM20.js +0 -1949
  1252. package/dist/define-DmcfoNXB.d.ts +0 -1005
  1253. package/dist/embeddings-4ZvFzjsU.js +0 -127
  1254. package/dist/embeddings-B4vhS-dY.d.ts +0 -68
  1255. package/dist/ended-CcvcRqEd.d.ts +0 -69
  1256. package/dist/entitlements-BYFf0Cdh.js +0 -24
  1257. package/dist/entitlements-Ds8qoYZ-.d.ts +0 -51
  1258. package/dist/envelope-DqnYGRw7.js +0 -47
  1259. package/dist/errors-2M6CKMP4.js +0 -271
  1260. package/dist/errors-rZ7VIqp6.js +0 -44
  1261. package/dist/escape-like-DDWoHzh_.d.ts +0 -15
  1262. package/dist/eve-CoAIcCkq.d.ts +0 -151
  1263. package/dist/events-D1BOCll8.d.ts +0 -551
  1264. package/dist/executor-B-fD7DLt.js +0 -735
  1265. package/dist/executor-B_Hfobee.js +0 -162
  1266. package/dist/executor-C-R4pucm.js +0 -83
  1267. package/dist/executor-CpxLPCiz.d.ts +0 -36
  1268. package/dist/executor-DfEtf0cq.d.ts +0 -164
  1269. package/dist/executor-Drzu3dBK.d.ts +0 -261
  1270. package/dist/executor-ngjKL_Pe.d.ts +0 -30
  1271. package/dist/field-errors-DIe9XYWL.d.ts +0 -109
  1272. package/dist/format-DTXdu8ya.d.ts +0 -70
  1273. package/dist/framework-148t1m3C.d.ts +0 -25
  1274. package/dist/framework-3ey3QmrO.js +0 -51
  1275. package/dist/function-contract-BcZenXMO.d.ts +0 -8
  1276. package/dist/gateway-S9vicgeo.d.ts +0 -130
  1277. package/dist/graph-BGyLLFLX.js +0 -265
  1278. package/dist/hooks-Bhza9Hnr.js +0 -277
  1279. package/dist/http-sbmBe5d2.js +0 -25
  1280. package/dist/impersonation-DcqaTBHx.js +0 -148
  1281. package/dist/inbox-Cd1KCEBL.d.ts +0 -384
  1282. package/dist/index-B72Rvv_j.d.ts +0 -89
  1283. package/dist/index-BCHR4Ucl.d.ts +0 -300
  1284. package/dist/index-BUK7jUzR.d.ts +0 -82
  1285. package/dist/index-Ba1SI-uO.d.ts +0 -1331
  1286. package/dist/index-BfxOaOYs.d.ts +0 -245
  1287. package/dist/index-CicIyqOe.d.ts +0 -55
  1288. package/dist/index-D69h4QqD.d.ts +0 -74
  1289. package/dist/index-DG2SUXDQ.d.ts +0 -58
  1290. package/dist/index-DoNVLHOU.d.ts +0 -206
  1291. package/dist/index-R274XFlg.d.ts +0 -138
  1292. package/dist/index-_4R4b01v.d.ts +0 -257
  1293. package/dist/json-schema-CT4tvrkA.js +0 -548
  1294. package/dist/kit-BhHr9T9v.js +0 -104
  1295. package/dist/kit-W99LCPBS.d.ts +0 -66
  1296. package/dist/knowledge-CAReFpRA.d.ts +0 -176
  1297. package/dist/knowledge-DnHtb64A.js +0 -256
  1298. package/dist/list-query-D3JQeEL7.d.ts +0 -164
  1299. package/dist/list-query-gl808ac1.js +0 -459
  1300. package/dist/live-CTAZQkwl.js +0 -257
  1301. package/dist/messages-CJoHHCWT.js +0 -514
  1302. package/dist/mfa-SZc9YYyb.d.ts +0 -54
  1303. package/dist/model-OgBxvk3N.d.ts +0 -300
  1304. package/dist/model-messages-Cxw_Up4f.js +0 -206
  1305. package/dist/modules-DksjZyMW.js +0 -77
  1306. package/dist/modules-DpPwzC7E.d.ts +0 -192
  1307. package/dist/onboarding-LZvlK1P4.d.ts +0 -62
  1308. package/dist/optional-peer-D1pi-skw.js +0 -24
  1309. package/dist/outbox-DZfAvfzC.d.ts +0 -161
  1310. package/dist/plugin-CPK2HsbY.d.ts +0 -190
  1311. package/dist/pool-gkhbGp2E.d.ts +0 -89
  1312. package/dist/postgrest-BUqLag2Q.d.ts +0 -53
  1313. package/dist/problem-CJvFeGu7.js +0 -126
  1314. package/dist/problem-TvGdxO1t.d.ts +0 -73
  1315. package/dist/provider-DxRTex4x.js +0 -57
  1316. package/dist/provider-ib9wzUDz.d.ts +0 -113
  1317. package/dist/rate-limit-Bw7HgmFj.js +0 -260
  1318. package/dist/react-Bmpo59D7.js +0 -409
  1319. package/dist/react-topic-seAWjL3_.js +0 -38
  1320. package/dist/read-set-DAeWhqPf.js +0 -314
  1321. package/dist/refusal-CFI8-5nf.d.ts +0 -18
  1322. package/dist/refusal-K78A1Vmq.js +0 -61
  1323. package/dist/replicas-CwrYp5Zj.js +0 -94
  1324. package/dist/resolve-Bvgf3ut_.js +0 -786
  1325. package/dist/resolve-MxXVWyhd.d.ts +0 -173
  1326. package/dist/resource--vTrBe6I.d.ts +0 -103
  1327. package/dist/resource-BqNqlYg9.js +0 -91
  1328. package/dist/resource-DA811u_4.js +0 -463
  1329. package/dist/resource-execute-rbKvuCsY.d.ts +0 -12
  1330. package/dist/resource-types-CqB6GWGT.d.ts +0 -141
  1331. package/dist/resources-BVYPnuLo.js +0 -56
  1332. package/dist/resources-DZSk8tXJ.d.ts +0 -7
  1333. package/dist/respond-Cw-zanCm.d.ts +0 -93
  1334. package/dist/respond-volM3ByS.js +0 -91
  1335. package/dist/result-BchM1XZn.d.ts +0 -288
  1336. package/dist/result-DEqHCMKP.js +0 -128
  1337. package/dist/scope-CDHcS7dE.js +0 -90
  1338. package/dist/search-CUWCRYKL.js +0 -9
  1339. package/dist/server-types-CrAmZ8jv.d.ts +0 -614
  1340. package/dist/session-ChiXDZdZ.d.ts +0 -72
  1341. package/dist/shared-CBxosKK3.js +0 -75
  1342. package/dist/shared-DHjhfRdV.js +0 -60
  1343. package/dist/shared-DTneRoxi.js +0 -14
  1344. package/dist/sign-in-D_yoP0PF.js +0 -86
  1345. package/dist/signatures-BRS_p3WD.d.ts +0 -34
  1346. package/dist/signatures-DsWv_bYR.js +0 -103
  1347. package/dist/signers-cpdmZYrv.d.ts +0 -166
  1348. package/dist/spec-pins-CwzDY25w.d.ts +0 -44
  1349. package/dist/spec-pins-DsLfUH7l.js +0 -40
  1350. package/dist/sql-CwuqaQ4Y.js +0 -388
  1351. package/dist/standard-DkzZUneg.js +0 -25
  1352. package/dist/standard-lmkbOtPB.d.ts +0 -7
  1353. package/dist/stats-DhU78Ctf.js +0 -1127
  1354. package/dist/storage-api-CB7Zl1Ci.d.ts +0 -582
  1355. package/dist/store-DsIYEBnv.d.ts +0 -68
  1356. package/dist/stripe-D04h-QBT.d.ts +0 -136
  1357. package/dist/stripe-v-Y2lmop.js +0 -32
  1358. package/dist/supabase-mcp-Cpn5A4i-.js +0 -28
  1359. package/dist/support-D1pFFouF.js +0 -350
  1360. package/dist/support-view-scqMgtOo.d.ts +0 -17
  1361. package/dist/table-schema-htM_SbCW.js +0 -286
  1362. package/dist/tags-BO9LjtWG.d.ts +0 -30
  1363. package/dist/tee-Cb98Vn3b.js +0 -101
  1364. package/dist/template-lPVh-EwW.js +0 -123
  1365. package/dist/temporal-BJGitm-h.js +0 -79
  1366. package/dist/temporal-required-BtynQtM-.js +0 -20
  1367. package/dist/tenant-CM368LXb.d.ts +0 -17
  1368. package/dist/tenant-I1TEZ_BX.js +0 -27
  1369. package/dist/timing-CyTQPubY.js +0 -92
  1370. package/dist/types-6cYK9pbJ.js +0 -29
  1371. package/dist/types-Bb_4-vdW.d.ts +0 -220
  1372. package/dist/types-CD6yCDx3.d.ts +0 -359
  1373. package/dist/types-CbOUc5IH.d.ts +0 -156
  1374. package/dist/types-CoE5Zwy4.d.ts +0 -348
  1375. package/dist/types-DSJ3-m9X.d.ts +0 -192
  1376. package/dist/types-D__3EN0q.d.ts +0 -425
  1377. package/dist/usage-D0NNUFfr.d.ts +0 -177
  1378. package/dist/vault-BpmApxxW.d.ts +0 -50
  1379. package/dist/verify-C91Wyp40.d.ts +0 -142
  1380. package/dist/verify-CJbYfADA.js +0 -124
  1381. package/dist/version-Cq8gfDbd.js +0 -4
  1382. package/dist/view-D5ryq3gz.js +0 -99
  1383. package/dist/view-TpXEUcVN.d.ts +0 -87
  1384. package/dist/watch-BcvtAHOd.js +0 -122
  1385. package/dist/watch-COzRWvVN.d.ts +0 -74
  1386. package/dist/wire-Df3EWkG8.js +0 -45
  1387. package/dist/workflow-builder-CHqHpAVt.js +0 -399
  1388. package/dist/workflow-sdk-C2WJ_G2O.js +0 -173
  1389. package/dist/workflow-sdk-DTZyrvNo.d.ts +0 -98
  1390. package/dist/workflow-sdk-world-CMV1ahFW.js +0 -1399
  1391. package/dist/workflows-CcpCBfIe.d.ts +0 -185
  1392. 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-COkvI9t5.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";
8
+ import { t as MAX_BATCH } from "../../batch-limit-DKVQDz4o.js";
9
+ import { n as webhooksOutSqlOptions, t as webhooksInSqlOptions } from "../../options-D7f2VKzj.js";
7
10
  import { a as stripTypePrefix } from "../../cloud-event-CTh9Sr5w.js";
8
- import { r as blockEmitter } from "../../block-events-DTxU5tfr.js";
11
+ import { n as credentialRefInTenant, r as foreignCredentialRef } from "../../provider-DKh2xFZb.js";
12
+ import { n as event, t as defineEvents } from "../../event-map-Dy2vKHai.js";
13
+ import { r as blockEmitter } from "../../block-events-DD9Q_NUz.js";
9
14
  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";
15
+ import { i as signWebhook, o as verifySharedSecret, s as verifyWebhook, t as PUBLIC_KEY_PREFIX } from "../../signatures-C9CGYZS1.js";
16
+ import { t as cronRoute } from "../../cron-route-BsgbJ-g4.js";
17
+ import { i as sqlTransport, r as rpcTransport, t as dbTransport } from "../../block-transport-G4t1umrR.js";
18
+ 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-BfVCR5Fc.js";
19
+ import { t as subjectReaders } from "../../subject-readers-DDyPTIOr.js";
20
+ import { r as withBlockHooks } from "../../block-hooks-ByKlh8Qy.js";
21
+ import { n as hitRateLimit, o as receiveWebhook } from "../../rate-limit-ByfWNX9N.js";
22
+ import { n as defineBlock } from "../../define-block-B6Gjs57G.js";
23
+ import { a as signStripeWebhook, i as isDatabaseWebhook, n as databaseChange, o as stripeInboxVerify, r as hookError, s as verifyStripeWebhook, t as authHook } from "../../verify-C9D_jjsQ.js";
24
+ import { toHttp } from "../../events/index.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 };