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,17 +1,23 @@
1
1
  import { t as DbException } from "../../db-exception-CnWcYPxL.js";
2
- import { n as dbError } from "../../errors-2M6CKMP4.js";
3
- import { s as nowInstant } from "../../temporal-BJGitm-h.js";
4
- import { t as temporal } from "../../temporal-required-BtynQtM-.js";
5
- import { a as ok, r as err, s as toDbError, t as AsyncResult } from "../../result-DEqHCMKP.js";
2
+ import { n as dbError } from "../../errors-8i6tSICm.js";
3
+ import { s as nowInstant } from "../../temporal-CB5Fpo5d.js";
4
+ import { t as temporal } from "../../temporal-required-DqRzr7i0.js";
5
+ import { a as ok, r as err, s as toDbError, t as AsyncResult } from "../../result-COkvI9t5.js";
6
+ import { n as isRecord } from "../../guards-6F2bCtQR.js";
6
7
  import { n as allTenantsContext } from "../../plugin-tfXW1-qO.js";
7
- import { n as validate } from "../../standard-DkzZUneg.js";
8
- import { o as problemResponse } from "../../problem-CJvFeGu7.js";
8
+ import { n as validate } from "../../standard-DZmwmIhV.js";
9
+ import { o as problemResponse } from "../../problem-pIiL3WbE.js";
9
10
  import { o as tenantFrom, s as tenantPathsFor } from "../../claims-PqzCxaTD.js";
10
- import { t as cronRoute } from "../../cron-route-D2AN9SA1.js";
11
- import { n as nextCronRun, t as assertCron } from "../../cron-D25Ukpxy.js";
12
- import { D as seconds, E as run, N as toInstant, a as budget, f as leaseHeartbeat, k as sleep, l as errorText, n as applyTemporal, y as pageOf } from "../../block-helpers-Cy3pB96I.js";
13
- import { i as createWebhookInbox, r as rateLimited, t as createRateLimit } from "../../rate-limit-Bw7HgmFj.js";
14
- import { n as withContext, t as unwrap } from "../../envelope-DqnYGRw7.js";
11
+ import { n as rateLimitSqlOptions, r as webhookInboxSqlOptions, t as jobsSqlOptions } from "../../options-OJ5zmgr8.js";
12
+ import { t as cronRoute } from "../../cron-route-BsgbJ-g4.js";
13
+ import { i as sqlTransport, r as rpcTransport, t as dbTransport } from "../../block-transport-G4t1umrR.js";
14
+ import { M as seconds, P as sleep, R as toInstant, f as errorText, g as leaseHeartbeat, j as run, n as applyTemporal, o as blockCall, s as budget, w as pageOf } from "../../block-helpers-BfVCR5Fc.js";
15
+ import { n as periodSeconds } from "../../ratelimit-headers-Bsxx0Tj2.js";
16
+ import { n as nextCronRun, t as assertCron } from "../../cron-CUaKTjWC.js";
17
+ import { r as withBlockHooks } from "../../block-hooks-ByKlh8Qy.js";
18
+ import { a as purgeWebhookInbox, i as createWebhookInbox, r as rateLimited, t as createRateLimit } from "../../rate-limit-ByfWNX9N.js";
19
+ import { r as wrapPayload, t as unwrap } from "../../envelope--7d0Q3Se.js";
20
+ import { n as defineBlock } from "../../define-block-B6Gjs57G.js";
15
21
  //#region src/blocks/jobs/dev.ts
16
22
  function devDrainSecret(env, name = "CRON_SECRET") {
17
23
  const current = env[name];
@@ -56,178 +62,6 @@ function devDrain(options) {
56
62
  };
57
63
  }
58
64
  //#endregion
59
- //#region src/blocks/jobs/idempotency.ts
60
- async function sha256(text) {
61
- const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text));
62
- return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join("");
63
- }
64
- const AUTH_COOKIE = /^sb-.+-auth-token(?:\.\d+)?$/;
65
- /** A hash of the credentials the request carries, or `''` without any. */
66
- async function callerScope(request) {
67
- const authorization = request.headers.get("authorization");
68
- const cookies = (request.headers.get("cookie") ?? "").split(";").map((pair) => pair.trim()).filter((pair) => AUTH_COOKIE.test(pair.split("=", 1)[0] ?? "")).sort();
69
- const credential = authorization ?? cookies.join(";");
70
- return credential === "" ? "" : `caller:${await sha256(credential)}`;
71
- }
72
- /** HTTP idempotency keys (IETF `Idempotency-Key` header) over the `idempotency` SQL module. */
73
- function createIdempotency(sql, options = {}) {
74
- applyTemporal(options);
75
- const headerName = options.header ?? "idempotency-key";
76
- const format = options.problem;
77
- const ttl = seconds(options.ttl ?? "24 hours");
78
- const lock = seconds(options.lock ?? "1 minute");
79
- const begin = (key, fingerprint, scope = "") => run(async () => {
80
- const [row] = await sql.queryRaw("select * from better_supabase.begin_idempotent($1, $2, $3, $4::interval, $5::interval)", [
81
- scope,
82
- key,
83
- fingerprint,
84
- ttl,
85
- lock
86
- ]);
87
- return {
88
- state: row.state,
89
- status: row.status_code,
90
- body: row.response,
91
- holder: row.holder ?? void 0
92
- };
93
- });
94
- const complete = (key, holder, status, body, scope = "") => run(async () => {
95
- const [row] = await sql.queryRaw("select better_supabase.complete_idempotent($1, $2, $3, $4, $5) as done", [
96
- scope,
97
- key,
98
- holder,
99
- status,
100
- JSON.stringify(body)
101
- ]);
102
- return row?.done === true;
103
- });
104
- const release = (key, holder, scope = "") => run(async () => {
105
- const [row] = await sql.queryRaw("select better_supabase.release_idempotent($1, $2, $3) as done", [
106
- scope,
107
- key,
108
- holder
109
- ]);
110
- return row?.done === true;
111
- });
112
- return {
113
- begin,
114
- complete,
115
- release,
116
- async handle(request, handler) {
117
- const key = request.headers.get(headerName);
118
- const instance = new URL(request.url).pathname;
119
- if (!key) return options.required ? problemResponse(dbError("invalid_request", `The ${headerName} header is required`, { code: "IDEMPOTENCY_KEY_MISSING" }), {
120
- instance,
121
- format
122
- }) : handler(request);
123
- if (key.length > 255) return problemResponse(dbError("invalid_request", `The ${headerName} header is too long`, { code: "IDEMPOTENCY_KEY_INVALID" }), {
124
- instance,
125
- format
126
- });
127
- const scope = typeof options.scope === "function" ? options.scope(request) : options.scope ?? await callerScope(request);
128
- const body = await request.clone().text();
129
- const fingerprint = await sha256(`${request.method} ${instance}\n${body}`);
130
- const started = await begin(key, fingerprint, scope);
131
- if (!started.ok) return problemResponse(started.error, {
132
- instance,
133
- format
134
- });
135
- const { state, holder = "" } = started.data;
136
- switch (state) {
137
- case "replay": {
138
- const stored = started.data.body;
139
- return new Response(stored.body, {
140
- status: started.data.status ?? 200,
141
- headers: {
142
- ...stored.contentType ? { "content-type": stored.contentType } : {},
143
- "idempotency-replayed": "true"
144
- }
145
- });
146
- }
147
- case "running": return problemResponse(dbError("conflict", "A request with this idempotency key is still running", { code: "IDEMPOTENCY_KEY_IN_USE" }), {
148
- instance,
149
- format,
150
- headers: { "retry-after": "1" }
151
- });
152
- case "mismatch": return problemResponse(dbError("validation", "This idempotency key was used for a different request", {
153
- code: "IDEMPOTENCY_KEY_REUSED",
154
- issues: [{
155
- message: "Use a new key for a new request",
156
- path: [headerName]
157
- }]
158
- }), {
159
- instance,
160
- format
161
- });
162
- case "started": break;
163
- default: throw new TypeError(`Unknown idempotency state ${String(state)}`);
164
- }
165
- let response;
166
- try {
167
- response = await handler(request);
168
- } catch (cause) {
169
- await release(key, holder, scope);
170
- throw cause;
171
- }
172
- if (response.status >= 500) {
173
- await release(key, holder, scope);
174
- return response;
175
- }
176
- const stored = {
177
- body: await response.clone().text(),
178
- contentType: response.headers.get("content-type")
179
- };
180
- await complete(key, holder, response.status, stored, scope);
181
- return response;
182
- }
183
- };
184
- }
185
- //#endregion
186
- //#region src/blocks/jobs/lease.ts
187
- /**
188
- * Runs `fn` while holding the lease on `key`, one holder at a time, and
189
- * releases it afterwards, also when `fn` throws. `{ acquired: false }` while
190
- * another holder has it. A lease that expires mid-run is taken by the next
191
- * caller; call `lease.extend()` for long work.
192
- */
193
- function withLease(sql, key, fn, options = {}) {
194
- const scope = options.scope ?? "";
195
- const ttl = options.seconds ?? 60;
196
- return run(async () => {
197
- const [row] = await sql.queryRaw("select better_supabase.acquire_lease($1, $2, $3) as holder", [
198
- key,
199
- ttl,
200
- scope
201
- ]);
202
- const holder = row?.holder;
203
- if (!holder) return { acquired: false };
204
- const lease = {
205
- holder,
206
- extend: (next = ttl) => run(async () => {
207
- const [extended] = await sql.queryRaw("select better_supabase.extend_lease($1, $2, $3, $4) as done", [
208
- key,
209
- holder,
210
- next,
211
- scope
212
- ]);
213
- return extended?.done === true;
214
- })
215
- };
216
- try {
217
- return {
218
- acquired: true,
219
- value: await fn(lease)
220
- };
221
- } finally {
222
- await sql.queryRaw("select better_supabase.release_lease($1, $2, $3)", [
223
- key,
224
- holder,
225
- scope
226
- ]);
227
- }
228
- });
229
- }
230
- //#endregion
231
65
  //#region src/blocks/jobs/backends.ts
232
66
  const instantOrNull = (value) => value === null ? null : toInstant(value);
233
67
  /** Schedule times are stored to the millisecond, the precision `Date` reads back. */
@@ -244,8 +78,64 @@ function firstRun(row, now) {
244
78
  }
245
79
  }
246
80
  /**
81
+ * The due schedules among claimed rows. A row written in SQL without a next
82
+ * run gets its first run here; one not due yet is moved to it with `advance`.
83
+ */
84
+ async function dueOf(rows, now, advance) {
85
+ const due = [];
86
+ for (const row of rows) {
87
+ const schedule = {
88
+ name: row.job_name,
89
+ cron: row.schedule,
90
+ timeZone: row.timezone,
91
+ queue: row.queue,
92
+ payload: row.payload
93
+ };
94
+ if (row.next_run !== null) {
95
+ due.push({
96
+ ...schedule,
97
+ nextRun: toInstant(row.next_run)
98
+ });
99
+ continue;
100
+ }
101
+ const first = firstRun(row, now);
102
+ if (first === void 0) continue;
103
+ if (temporal().Instant.compare(first, now()) <= 0) due.push({
104
+ ...schedule,
105
+ nextRun: first
106
+ });
107
+ else await advance(row.job_name, first);
108
+ }
109
+ return due;
110
+ }
111
+ const scheduleInfo = (row) => ({
112
+ name: row.job_name,
113
+ cron: row.schedule,
114
+ timeZone: row.timezone,
115
+ queue: row.queue,
116
+ tenant: row.tenant,
117
+ nextRun: instantOrNull(row.next_run),
118
+ lastRun: instantOrNull(row.last_run),
119
+ leasedUntil: instantOrNull(row.locked_until),
120
+ createdAt: instantOrNull(row.created_at)
121
+ });
122
+ const statsOf = (row) => ({
123
+ ready: Number(row?.ready ?? 0),
124
+ inFlight: Number(row?.in_flight ?? 0),
125
+ delayed: Number(row?.delayed ?? 0),
126
+ dead: Number(row?.dead ?? 0),
127
+ oldestAgeSeconds: row?.oldest_age_seconds === null || row?.oldest_age_seconds === void 0 ? null : Number(row.oldest_age_seconds)
128
+ });
129
+ const onceOf = (row) => {
130
+ if (!row) throw new TypeError("enqueue_job_once returned no row");
131
+ return {
132
+ id: Number(row.id),
133
+ duplicate: row.duplicate
134
+ };
135
+ };
136
+ /**
247
137
  * The `jobs` SQL module over a service SQL connection. The same
248
- * functions back both `sql.modules.jobs.options.backend` values (pgmq and table)
138
+ * functions back both `blocks.jobs.options.backend` values (pgmq and table)
249
139
  * and both schedulers. `now` dates a schedule's first run.
250
140
  */
251
141
  function sqlQueueBackend(sql, now = nowInstant) {
@@ -264,6 +154,16 @@ function sqlQueueBackend(sql, now = nowInstant) {
264
154
  ]);
265
155
  return Number(row.id);
266
156
  },
157
+ async sendOnce(queue, payload, delay, maxAttempts, dedupeKey) {
158
+ const [row] = await sql.queryRaw("select * from better_supabase.enqueue_job_once($1, $2, $3, $4, $5)", [
159
+ queue,
160
+ JSON.stringify(payload ?? {}),
161
+ dedupeKey,
162
+ delay,
163
+ maxAttempts
164
+ ]);
165
+ return onceOf(row);
166
+ },
267
167
  read: (queue, lease, batch) => sql.queryRaw("select * from better_supabase.claim_jobs($1, $2, $3)", [
268
168
  queue,
269
169
  lease,
@@ -302,13 +202,7 @@ function sqlQueueBackend(sql, now = nowInstant) {
302
202
  },
303
203
  async stats(queue) {
304
204
  const [row] = await sql.queryRaw("select * from better_supabase.job_queue_stats($1)", [queue]);
305
- return {
306
- ready: Number(row?.ready ?? 0),
307
- inFlight: Number(row?.in_flight ?? 0),
308
- delayed: Number(row?.delayed ?? 0),
309
- dead: Number(row?.dead ?? 0),
310
- oldestAgeSeconds: row?.oldest_age_seconds === null || row?.oldest_age_seconds === void 0 ? null : Number(row.oldest_age_seconds)
311
- };
205
+ return statsOf(row);
312
206
  },
313
207
  listDead: (queue, limit, before) => sql.queryRaw("select * from better_supabase.list_dead_jobs($1, $2, $3)", [
314
208
  queue,
@@ -323,6 +217,15 @@ function sqlQueueBackend(sql, now = nowInstant) {
323
217
  ]);
324
218
  return row?.retried ?? 0;
325
219
  },
220
+ async purge(queue, args) {
221
+ const named = Object.entries({
222
+ older_than: args.olderThan,
223
+ batch: args.batch,
224
+ dead_older_than: args.deadOlderThan
225
+ }).filter(([, value]) => value !== void 0);
226
+ const [row] = await sql.queryRaw(`select better_supabase.purge_job_archive(${["queue => $1", ...named.map(([name], index) => `${name} => $${String(index + 2)}`)].join(", ")}) as purged`, [queue, ...named.map(([, value]) => value)]);
227
+ return row?.purged ?? 0;
228
+ },
326
229
  async schedule(name, cron, queue, payload, timeZone, nextRun, tenant) {
327
230
  await sql.queryRaw("select better_supabase.schedule_job($1, $2, $3, $4, $5, $6, $7)", [
328
231
  name,
@@ -335,17 +238,7 @@ function sqlQueueBackend(sql, now = nowInstant) {
335
238
  ]);
336
239
  },
337
240
  async listSchedules(filter) {
338
- return (await sql.queryRaw("select * from better_supabase.list_schedules($1, $2)", [filter.prefix ?? null, filter.tenant ?? null])).map((row) => ({
339
- name: row.job_name,
340
- cron: row.schedule,
341
- timeZone: row.timezone,
342
- queue: row.queue,
343
- tenant: row.tenant,
344
- nextRun: instantOrNull(row.next_run),
345
- lastRun: instantOrNull(row.last_run),
346
- leasedUntil: instantOrNull(row.locked_until),
347
- createdAt: instantOrNull(row.created_at)
348
- }));
241
+ return (await sql.queryRaw("select * from better_supabase.list_schedules($1, $2)", [filter.prefix ?? null, filter.tenant ?? null])).map(scheduleInfo);
349
242
  },
350
243
  async unscheduleTenant(tenant) {
351
244
  const [row] = await sql.queryRaw("select better_supabase.unschedule_tenant($1) as removed", [tenant]);
@@ -356,32 +249,9 @@ function sqlQueueBackend(sql, now = nowInstant) {
356
249
  return row?.done ?? false;
357
250
  },
358
251
  async dueSchedules(lease, batch) {
359
- const rows = await sql.queryRaw("select * from better_supabase.claim_due_schedules($1, $2)", [lease, batch]);
360
- const due = [];
361
- for (const row of rows) {
362
- const schedule = {
363
- name: row.job_name,
364
- cron: row.schedule,
365
- timeZone: row.timezone,
366
- queue: row.queue,
367
- payload: row.payload
368
- };
369
- if (row.next_run !== null) {
370
- due.push({
371
- ...schedule,
372
- nextRun: toInstant(row.next_run)
373
- });
374
- continue;
375
- }
376
- const first = firstRun(row, now);
377
- if (first === void 0) continue;
378
- if (temporal().Instant.compare(first, now()) <= 0) due.push({
379
- ...schedule,
380
- nextRun: first
381
- });
382
- else await sql.queryRaw("select better_supabase.advance_schedule($1, null, $2)", [row.job_name, first.toString()]);
383
- }
384
- return due;
252
+ return dueOf(await sql.queryRaw("select * from better_supabase.claim_due_schedules($1, $2)", [lease, batch]), now, async (name, first) => {
253
+ await sql.queryRaw("select better_supabase.advance_schedule($1, null, $2)", [name, first.toString()]);
254
+ });
385
255
  },
386
256
  async advanceSchedule(name, ran, next) {
387
257
  const [row] = await sql.queryRaw("select better_supabase.advance_schedule($1, $2, $3) as advanced", [
@@ -393,6 +263,142 @@ function sqlQueueBackend(sql, now = nowInstant) {
393
263
  }
394
264
  };
395
265
  }
266
+ /** The named arguments of each `jobs` function, in call order. */
267
+ const PARAMS = {
268
+ enqueue_job: [
269
+ "queue",
270
+ "payload",
271
+ "delay",
272
+ "max_attempts",
273
+ "dedupe_key",
274
+ "dedupe_running"
275
+ ],
276
+ enqueue_job_once: [
277
+ "queue",
278
+ "payload",
279
+ "dedupe_key",
280
+ "delay",
281
+ "max_attempts"
282
+ ],
283
+ claim_jobs: [
284
+ "queue",
285
+ "lease",
286
+ "batch"
287
+ ],
288
+ complete_job: [
289
+ "queue",
290
+ "job_id",
291
+ "attempt"
292
+ ],
293
+ fail_job: [
294
+ "queue",
295
+ "job_id",
296
+ "attempt",
297
+ "error",
298
+ "retry_in"
299
+ ],
300
+ extend_job_lease: [
301
+ "queue",
302
+ "job_id",
303
+ "attempt",
304
+ "lease"
305
+ ],
306
+ replay_dead_job: ["queue", "job_id"],
307
+ job_queue_stats: ["queue"],
308
+ list_dead_jobs: [
309
+ "queue",
310
+ "max_rows",
311
+ "before_id"
312
+ ],
313
+ retry_dead_jobs: [
314
+ "queue",
315
+ "ids",
316
+ "batch"
317
+ ],
318
+ schedule_job: [
319
+ "job_name",
320
+ "schedule",
321
+ "queue",
322
+ "payload",
323
+ "timezone",
324
+ "next_run",
325
+ "tenant"
326
+ ],
327
+ unschedule_job: ["job_name"],
328
+ list_schedules: ["name_prefix", "for_tenant"],
329
+ unschedule_tenant: ["tenant"],
330
+ claim_due_schedules: ["lease", "batch"],
331
+ advance_schedule: [
332
+ "job_name",
333
+ "ran",
334
+ "next_run"
335
+ ],
336
+ purge_job_archive: [
337
+ "queue",
338
+ "older_than",
339
+ "batch",
340
+ "dead_older_than"
341
+ ]
342
+ };
343
+ /**
344
+ * The rows a set-returning function answered with. PostgREST and `dbTransport`
345
+ * return an array; a single object is one row.
346
+ */
347
+ function transportRows(fn, value) {
348
+ if (value === null || value === void 0) return [];
349
+ if (Array.isArray(value)) return value;
350
+ if (isRecord(value)) return [value];
351
+ throw new TypeError(`${fn} returned ${typeof value}, not rows: pass a SqlClient instead of sqlTransport for set-returning functions`);
352
+ }
353
+ /**
354
+ * The `jobs` SQL module over a `BlockTransport`, with named arguments: a
355
+ * service-role `rpcTransport(supabase, { schema: "api" })` reaches the
356
+ * wrappers `blocks.jobs.api` writes, so stats, dead letters, replays
357
+ * and schedules work without a direct Postgres connection. Over Postgres,
358
+ * pass the `SqlClient` to `createJobs` instead.
359
+ */
360
+ function transportQueueBackend(transport, options = {}) {
361
+ const schema = options.schema ?? "better_supabase";
362
+ const now = options.now ?? nowInstant;
363
+ const call = (fn, ...args) => transport.call(schema, fn, Object.fromEntries(PARAMS[fn].flatMap((name, index) => index < args.length ? [[name, args[index]]] : [])));
364
+ const rows = async (fn, ...args) => transportRows(fn, await call(fn, ...args));
365
+ const bool = async (fn, ...args) => await call(fn, ...args) === true;
366
+ const count = async (fn, ...args) => Number(await call(fn, ...args) ?? 0);
367
+ const id = (value) => value === null || value === void 0 ? null : Number(value);
368
+ return {
369
+ apiVersion: 1,
370
+ name: "transport",
371
+ leases: true,
372
+ async send(queue, payload, delay, maxAttempts, dedupeKey, dedupe) {
373
+ const sent = id(await call("enqueue_job", queue, payload ?? {}, delay, maxAttempts, dedupeKey ?? null, dedupe !== "waiting"));
374
+ if (sent === null) throw new TypeError("enqueue_job returned no id");
375
+ return sent;
376
+ },
377
+ sendOnce: async (queue, payload, delay, maxAttempts, dedupeKey) => onceOf((await rows("enqueue_job_once", queue, payload ?? {}, dedupeKey, delay, maxAttempts))[0]),
378
+ read: (queue, lease, batch) => rows("claim_jobs", queue, lease, batch),
379
+ complete: (job) => bool("complete_job", job.queue, job.id, job.attempts),
380
+ async fail(job, error, retryIn) {
381
+ const status = await call("fail_job", job.queue, job.id, job.attempts, error, retryIn ?? null);
382
+ return status === "queued" || status === "dead" ? status : null;
383
+ },
384
+ extend: (job, lease) => bool("extend_job_lease", job.queue, job.id, job.attempts, lease),
385
+ replay: async (queue, jobId) => id(await call("replay_dead_job", queue, jobId)),
386
+ stats: async (queue) => statsOf((await rows("job_queue_stats", queue))[0]),
387
+ listDead: (queue, limit, before) => rows("list_dead_jobs", queue, limit, before ?? null),
388
+ retryDead: (queue, ids, limit) => count("retry_dead_jobs", queue, ids === void 0 ? null : [...ids], limit),
389
+ purge: (queue, args) => count("purge_job_archive", queue, args.olderThan, args.batch, args.deadOlderThan),
390
+ async schedule(name, cron, queue, payload, timeZone, nextRun, tenant) {
391
+ await call("schedule_job", name, cron, queue, payload ?? {}, timeZone, nextRun.toString(), tenant ?? null);
392
+ },
393
+ unschedule: (name) => bool("unschedule_job", name),
394
+ listSchedules: async (filter) => (await rows("list_schedules", filter.prefix ?? null, filter.tenant ?? null)).map(scheduleInfo),
395
+ unscheduleTenant: (tenant) => count("unschedule_tenant", tenant),
396
+ dueSchedules: async (lease, batch) => dueOf(await rows("claim_due_schedules", lease, batch), now, async (name, first) => {
397
+ await call("advance_schedule", name, null, first.toString());
398
+ }),
399
+ advanceSchedule: (name, ran, next) => bool("advance_schedule", name, ran.toString(), next.toString())
400
+ };
401
+ }
396
402
  /** Throws for a feature the transport doesn't support. */
397
403
  function sqlOnly(feature) {
398
404
  throw new DbException(dbError("invalid_request", `${feature} needs a SQL connection; pgmq_public (PostgREST) does not support it`));
@@ -438,12 +444,12 @@ function pgmqPublicBackend(client) {
438
444
  sleep_seconds: lease,
439
445
  n: batch
440
446
  });
441
- const live = [];
442
- for (const row of rows) if (row.read_ct > (row.message?.max_attempts ?? 5)) await call("archive", {
447
+ const dead = (row) => row.read_ct > (row.message?.max_attempts ?? 5);
448
+ const live = rows.filter((row) => !dead(row));
449
+ await Promise.all(rows.filter(dead).map((row) => call("archive", {
443
450
  queue_name: queue,
444
451
  message_id: row.msg_id
445
- });
446
- else live.push(row);
452
+ })));
447
453
  return live.map((row) => ({
448
454
  id: row.msg_id,
449
455
  attempts: row.read_ct,
@@ -464,9 +470,300 @@ function pgmqPublicBackend(client) {
464
470
  };
465
471
  }
466
472
  //#endregion
473
+ //#region src/blocks/jobs/idempotency.ts
474
+ async function sha256(text) {
475
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text));
476
+ return Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join("");
477
+ }
478
+ const AUTH_COOKIE = /^sb-.+-auth-token(?:\.\d+)?$/;
479
+ /** A hash of the credentials the request carries, or `''` without any. */
480
+ async function callerScope(request) {
481
+ const authorization = request.headers.get("authorization");
482
+ const cookies = (request.headers.get("cookie") ?? "").split(";").map((pair) => pair.trim()).filter((pair) => AUTH_COOKIE.test(pair.split("=", 1)[0] ?? "")).sort();
483
+ const credential = authorization ?? cookies.join(";");
484
+ return credential === "" ? "" : `caller:${await sha256(credential)}`;
485
+ }
486
+ function sqlCalls$1(sql) {
487
+ return {
488
+ begin: (scope, key, fingerprint, ttl, lock) => run(async () => {
489
+ const [row] = await sql.queryRaw("select * from better_supabase.begin_idempotent($1, $2, $3, $4::interval, $5::interval)", [
490
+ scope,
491
+ key,
492
+ fingerprint,
493
+ ttl,
494
+ lock
495
+ ]);
496
+ return row;
497
+ }),
498
+ complete: (scope, key, holder, status, body) => run(async () => {
499
+ const [row] = await sql.queryRaw("select better_supabase.complete_idempotent($1, $2, $3, $4, $5) as done", [
500
+ scope,
501
+ key,
502
+ holder,
503
+ status,
504
+ JSON.stringify(body)
505
+ ]);
506
+ return row?.done === true;
507
+ }),
508
+ extend: (scope, key, holder, lock) => run(async () => {
509
+ const [row] = await sql.queryRaw("select better_supabase.extend_idempotent($1, $2, $3, $4::interval) as done", [
510
+ scope,
511
+ key,
512
+ holder,
513
+ lock
514
+ ]);
515
+ return row?.done === true;
516
+ }),
517
+ release: (scope, key, holder) => run(async () => {
518
+ const [row] = await sql.queryRaw("select better_supabase.release_idempotent($1, $2, $3) as done", [
519
+ scope,
520
+ key,
521
+ holder
522
+ ]);
523
+ return row?.done === true;
524
+ }),
525
+ purge: () => run(async () => {
526
+ const [row] = await sql.queryRaw("select better_supabase.purge_idempotency_keys() as purged");
527
+ return row?.purged ?? 0;
528
+ })
529
+ };
530
+ }
531
+ function transportCalls$1(transport, schema, mappers) {
532
+ const call = blockCall(transport, schema, mappers);
533
+ return {
534
+ begin: (scope, key, fingerprint, ttl, lock) => call("begin_idempotent", {
535
+ scope,
536
+ key,
537
+ request_hash: fingerprint,
538
+ ttl,
539
+ lock
540
+ }, (value) => transportRows("begin_idempotent", value)[0]),
541
+ complete: (scope, key, holder, status, body) => call("complete_idempotent", {
542
+ scope,
543
+ key,
544
+ holder,
545
+ status_code: status,
546
+ response: body
547
+ }, (value) => value === true),
548
+ extend: (scope, key, holder, lock) => call("extend_idempotent", {
549
+ scope,
550
+ key,
551
+ holder,
552
+ lock
553
+ }, (value) => value === true),
554
+ release: (scope, key, holder) => call("release_idempotent", {
555
+ scope,
556
+ key,
557
+ holder
558
+ }, (value) => value === true),
559
+ purge: () => call("purge_idempotency_keys", {}, (value) => Number(value ?? 0))
560
+ };
561
+ }
562
+ /**
563
+ * HTTP idempotency keys (IETF `Idempotency-Key` header) over the
564
+ * `idempotency` SQL module: a service SQL connection, or a service-role
565
+ * `rpcTransport` over the wrappers `blocks.idempotency.api` writes.
566
+ */
567
+ function createIdempotency(options) {
568
+ applyTemporal(options);
569
+ const headerName = options.header ?? "idempotency-key";
570
+ const format = options.problem;
571
+ const ttl = seconds(options.ttl ?? "24 hours");
572
+ const lock = seconds(options.lock ?? "1 minute");
573
+ const lockSeconds = periodSeconds(options.lock ?? 60) ?? 2;
574
+ const calls = options.transport === void 0 ? sqlCalls$1(options.sql) : transportCalls$1(options.transport, options.schema, options.mappers);
575
+ const hooked = withBlockHooks({
576
+ purge: () => calls.purge(),
577
+ purgeJob: () => async () => hooked.purge().orThrow(),
578
+ begin: (key, fingerprint, scope = "") => calls.begin(scope, key, fingerprint, ttl, lock).andThen((row) => row ? AsyncResult.ok({
579
+ state: row.state,
580
+ status: row.status_code,
581
+ body: row.response,
582
+ holder: row.holder ?? void 0
583
+ }) : AsyncResult.err(dbError("unexpected", "begin_idempotent returned no row"))),
584
+ extend: (key, holder, scope = "") => calls.extend(scope, key, holder, lock),
585
+ complete: (key, holder, status, body, scope = "") => calls.complete(scope, key, holder, status, body),
586
+ release: (key, holder, scope = "") => calls.release(scope, key, holder),
587
+ async handle(request, handler) {
588
+ const key = request.headers.get(headerName);
589
+ const url = new URL(request.url);
590
+ const instance = url.pathname;
591
+ if (!key) return options.required ? problemResponse(dbError("invalid_request", `The ${headerName} header is required`, { code: "IDEMPOTENCY_KEY_MISSING" }), {
592
+ instance,
593
+ format
594
+ }) : handler(request);
595
+ if (key.length > 255) return problemResponse(dbError("invalid_request", `The ${headerName} header is too long`, { code: "IDEMPOTENCY_KEY_INVALID" }), {
596
+ instance,
597
+ format
598
+ });
599
+ const scope = typeof options.scope === "function" ? options.scope(request) : options.scope ?? await callerScope(request);
600
+ const body = await request.clone().text();
601
+ const fingerprint = await sha256(`${request.method} ${instance}${url.search}\n${body}`);
602
+ const started = await hooked.begin(key, fingerprint, scope);
603
+ if (!started.ok) return problemResponse(started.error, {
604
+ instance,
605
+ format
606
+ });
607
+ const { state, holder = "" } = started.data;
608
+ switch (state) {
609
+ case "replay": {
610
+ const stored = started.data.body;
611
+ return new Response(stored.body, {
612
+ status: started.data.status ?? 200,
613
+ headers: {
614
+ ...stored.contentType ? { "content-type": stored.contentType } : {},
615
+ "idempotency-replayed": "true"
616
+ }
617
+ });
618
+ }
619
+ case "running": return problemResponse(dbError("conflict", "A request with this idempotency key is still running", { code: "IDEMPOTENCY_KEY_IN_USE" }), {
620
+ instance,
621
+ format,
622
+ headers: { "retry-after": "1" }
623
+ });
624
+ case "mismatch": return problemResponse(dbError("validation", "This idempotency key was used for a different request", {
625
+ code: "IDEMPOTENCY_KEY_REUSED",
626
+ issues: [{
627
+ message: "Use a new key for a new request",
628
+ path: [headerName]
629
+ }]
630
+ }), {
631
+ instance,
632
+ format
633
+ });
634
+ case "started": break;
635
+ default: throw new TypeError(`Unknown idempotency state ${String(state)}`);
636
+ }
637
+ let renewing = true;
638
+ const stopHeartbeat = leaseHeartbeat(lockSeconds, () => {
639
+ if (!renewing) return;
640
+ hooked.extend(key, holder, scope).then((extended) => {
641
+ if (extended.ok && !extended.data) renewing = false;
642
+ });
643
+ });
644
+ try {
645
+ let response;
646
+ try {
647
+ response = await handler(request);
648
+ } catch (cause) {
649
+ await hooked.release(key, holder, scope);
650
+ throw cause;
651
+ }
652
+ if (response.status >= 500) {
653
+ await hooked.release(key, holder, scope);
654
+ return response;
655
+ }
656
+ const stored = {
657
+ body: await response.clone().text(),
658
+ contentType: response.headers.get("content-type")
659
+ };
660
+ const completed = await hooked.complete(key, holder, response.status, stored, scope);
661
+ if (!completed.ok || !completed.data) return problemResponse(completed.ok ? dbError("conflict", "The idempotency key's lock expired before the response was saved", { code: "IDEMPOTENCY_KEY_LOST" }) : completed.error, {
662
+ instance,
663
+ format,
664
+ headers: { "retry-after": "1" }
665
+ });
666
+ return response;
667
+ } finally {
668
+ stopHeartbeat();
669
+ }
670
+ }
671
+ }, options.hooks, {
672
+ block: "idempotency",
673
+ ...options.logger ? { logger: options.logger } : {}
674
+ });
675
+ return hooked;
676
+ }
677
+ //#endregion
678
+ //#region src/blocks/jobs/lease.ts
679
+ function sqlCalls(sql) {
680
+ return {
681
+ async acquire(key, ttl, scope) {
682
+ const [row] = await sql.queryRaw("select better_supabase.acquire_lease($1, $2, $3) as holder", [
683
+ key,
684
+ ttl,
685
+ scope
686
+ ]);
687
+ return row?.holder ?? null;
688
+ },
689
+ async extend(key, holder, ttl, scope) {
690
+ const [row] = await sql.queryRaw("select better_supabase.extend_lease($1, $2, $3, $4) as done", [
691
+ key,
692
+ holder,
693
+ ttl,
694
+ scope
695
+ ]);
696
+ return row?.done === true;
697
+ },
698
+ async release(key, holder, scope) {
699
+ await sql.queryRaw("select better_supabase.release_lease($1, $2, $3)", [
700
+ key,
701
+ holder,
702
+ scope
703
+ ]);
704
+ }
705
+ };
706
+ }
707
+ function transportCalls(transport, schema) {
708
+ return {
709
+ async acquire(key, ttl, scope) {
710
+ const holder = await transport.call(schema, "acquire_lease", {
711
+ key,
712
+ seconds: ttl,
713
+ scope
714
+ });
715
+ return typeof holder === "string" ? holder : null;
716
+ },
717
+ extend: async (key, holder, ttl, scope) => await transport.call(schema, "extend_lease", {
718
+ key,
719
+ holder,
720
+ seconds: ttl,
721
+ scope
722
+ }) === true,
723
+ async release(key, holder, scope) {
724
+ await transport.call(schema, "release_lease", {
725
+ key,
726
+ holder,
727
+ scope
728
+ });
729
+ }
730
+ };
731
+ }
732
+ /**
733
+ * Runs `fn` while holding the lease on `key`, one holder at a time, and
734
+ * releases it afterwards, also when `fn` throws. `{ acquired: false }` while
735
+ * another holder has it. A lease that expires mid-run is taken by the next
736
+ * caller; call `lease.extend()` for long work. Takes a service SQL
737
+ * connection, or a service-role `rpcTransport` over the wrappers
738
+ * `blocks.idempotency.api` writes.
739
+ */
740
+ function withLease(source, key, fn, options = {}) {
741
+ const scope = options.scope ?? "";
742
+ const ttl = options.seconds ?? 60;
743
+ const calls = "call" in source ? transportCalls(source, options.schema ?? "better_supabase") : sqlCalls(source);
744
+ return run(async () => {
745
+ const holder = await calls.acquire(key, ttl, scope);
746
+ if (!holder) return { acquired: false };
747
+ const lease = {
748
+ holder,
749
+ extend: (next = ttl) => run(() => calls.extend(key, holder, next, scope))
750
+ };
751
+ try {
752
+ return {
753
+ acquired: true,
754
+ value: await fn(lease)
755
+ };
756
+ } finally {
757
+ await calls.release(key, holder, scope);
758
+ }
759
+ });
760
+ }
761
+ //#endregion
467
762
  //#region src/blocks/jobs/queue.ts
468
763
  /** Transient claim errors in a row a lane retries, with backoff, before the loop throws. */
469
764
  const CLAIM_RETRIES = 3;
765
+ /** The abort reason of a job whose lease couldn't be extended. */
766
+ const LEASE_LOST = Symbol("lease lost");
470
767
  const TRANSIENT = /* @__PURE__ */ new Set([
471
768
  "network",
472
769
  "timeout",
@@ -489,31 +786,48 @@ function toJob(queue, row) {
489
786
  };
490
787
  }
491
788
  const QUEUE_NAME = /^[a-z_][a-z0-9_]{0,46}$/;
492
- function isBackend(source) {
493
- return "apiVersion" in source;
494
- }
495
- function isSqlClient(source) {
496
- return typeof source.queryRaw === "function";
789
+ /**
790
+ * `transport` with every call made through `blockCall`, so a rejection is
791
+ * mapped to a `DbError` (with the app's `mappers` first), as in every block.
792
+ */
793
+ function mappedTransport(transport, mappers) {
794
+ return { async call(schema, fn, args) {
795
+ const result = await blockCall(transport, schema, mappers)(fn, args, (value) => value);
796
+ if (!result.ok) throw new DbException(result.error);
797
+ return result.data;
798
+ } };
497
799
  }
498
- function backendOf(source, now) {
499
- if (isBackend(source)) return source;
500
- return isSqlClient(source) ? sqlQueueBackend(source, now) : pgmqPublicBackend(source);
800
+ function backendOf(options, now) {
801
+ if (options.backend) return options.backend;
802
+ if (options.sql) return sqlQueueBackend(options.sql, now);
803
+ if (options.client && options.schema) return transportQueueBackend(mappedTransport(rpcTransport(options.client, { schema: options.schema }), options.mappers), {
804
+ now,
805
+ schema: options.schema
806
+ });
807
+ if (options.client) return pgmqPublicBackend(options.client);
808
+ if (options.transport) return transportQueueBackend(mappedTransport(options.transport, options.mappers), {
809
+ now,
810
+ ...options.schema ? { schema: options.schema } : {}
811
+ });
812
+ throw new TypeError("createJobs needs a backend, sql, client or transport to store jobs");
501
813
  }
502
814
  const later = (a, b) => temporal().Instant.compare(a, b) >= 0 ? a : b;
503
815
  /**
504
816
  * Typed jobs on Supabase Queues (pgmq), over the `jobs` SQL module.
505
817
  *
506
818
  * Pass a service SQL connection (`postgres.admin`, `ctx.sql`) for the full
507
- * feature set, a service-role Supabase client to go through the
508
- * `pgmq_public` RPCs where no direct connection exists (edge functions), or
509
- * any `QueueBackend`. Queue names are lowercase letters, digits and
510
- * underscores.
819
+ * feature set, a service-role `rpcTransport` over the wrappers
820
+ * `blocks.jobs.api` writes for the same features over the Data API (or a
821
+ * service-role Supabase client with `schema` set to that schema), a
822
+ * service-role Supabase client to go through the `pgmq_public` RPCs, or any
823
+ * `QueueBackend`. Queue names are lowercase letters, digits and underscores.
511
824
  */
512
- function createJobs(source, queues, options = {}) {
825
+ function createJobs(options) {
513
826
  applyTemporal(options);
827
+ const queues = options.queues ?? {};
514
828
  const now = options.now ?? nowInstant;
515
829
  for (const name of Object.keys(queues)) if (!QUEUE_NAME.test(name)) throw new TypeError(`Queue "${name}": pgmq queue names are lowercase letters, digits and underscores (at most 47)`);
516
- const transport = backendOf(source, now);
830
+ const transport = backendOf(options, now);
517
831
  const schemaOf = (queue) => {
518
832
  const schema = queues[queue];
519
833
  if (!schema) throw new TypeError(`Unknown queue "${queue}". Queues: ${Object.keys(queues).join(", ")}`);
@@ -528,12 +842,20 @@ function createJobs(source, queues, options = {}) {
528
842
  /**
529
843
  * Extends the lease of every job in `held` at half the lease, so jobs
530
844
  * waiting their turn in a claimed batch don't expire before they run.
845
+ * A job whose lease can't be extended is aborted: another worker may
846
+ * already hold it.
531
847
  */
532
848
  const heartbeat = (held, lease) => transport.leases ? leaseHeartbeat(lease, () => {
533
- for (const job of held) run(() => transport.extend(job, lease));
849
+ for (const [job, controller] of held) run(() => transport.extend(job, lease)).then((extended) => {
850
+ if (!extended.ok || !extended.data) controller.abort(LEASE_LOST);
851
+ });
534
852
  }) : void 0;
535
- const handle = async (job, handler, workOptions) => {
536
- const controller = new AbortController();
853
+ const leaseLost = (job, workOptions) => {
854
+ workOptions.onError?.(dbError("conflict", `The lease on job ${String(job.id)} in "${job.queue}" was lost, so another worker may run it`, { code: "JOB_LEASE_LOST" }), job);
855
+ return false;
856
+ };
857
+ const handle = async (job, handler, workOptions, controller = new AbortController()) => {
858
+ if (controller.signal.reason === LEASE_LOST) return leaseLost(job, workOptions);
537
859
  try {
538
860
  const payload = await validate(schemaOf(job.queue), job.payload, "payload");
539
861
  if (!payload.ok) {
@@ -548,9 +870,15 @@ function createJobs(source, queues, options = {}) {
548
870
  context
549
871
  }, controller.signal);
550
872
  if (typeof outcome === "object" && outcome !== null && "ok" in outcome && outcome.ok === false && "error" in outcome) throw outcome.error;
551
- await complete(job);
552
- return true;
873
+ if (controller.signal.reason === LEASE_LOST) return leaseLost(job, workOptions);
874
+ const completed = await complete(job);
875
+ if (!completed.ok) {
876
+ workOptions.onError?.(completed.error, job);
877
+ return false;
878
+ }
879
+ return completed.data || leaseLost(job, workOptions);
553
880
  } catch (cause) {
881
+ if (controller.signal.reason === LEASE_LOST) return leaseLost(job, workOptions);
554
882
  controller.abort();
555
883
  await fail(job, cause);
556
884
  workOptions.onError?.(typeof cause === "object" && cause !== null && "kind" in cause ? cause : toDbError(cause), job);
@@ -592,11 +920,11 @@ function createJobs(source, queues, options = {}) {
592
920
  continue;
593
921
  }
594
922
  wait = firstWait;
595
- const held = new Set(claimed.data);
923
+ const held = new Map(claimed.data.map((job) => [job, new AbortController()]));
596
924
  const stopHeartbeat = heartbeat(held, lease);
597
925
  try {
598
926
  for (const job of claimed.data) {
599
- if (await handle(job, handler, workOptions)) succeeded += 1;
927
+ if (await handle(job, handler, workOptions, held.get(job))) succeeded += 1;
600
928
  else failed += 1;
601
929
  held.delete(job);
602
930
  }
@@ -635,23 +963,70 @@ function createJobs(source, queues, options = {}) {
635
963
  path: [name, "cron"]
636
964
  }] }));
637
965
  }
966
+ const wrapped = wrapPayload(valid.data, scheduleOptions.context);
967
+ if (!wrapped.ok) return wrapped;
638
968
  return ok({
639
969
  name,
640
970
  cron,
641
971
  queue,
642
- payload: withContext(valid.data, scheduleOptions.context),
972
+ payload: wrapped.data,
643
973
  timeZone,
644
974
  tenant: scheduleOptions.tenant ?? (scheduleOptions.context ? tenantFrom(scheduleOptions.context, tenantPathsFor(void 0)) : void 0) ?? tenantDefault
645
975
  });
646
976
  };
647
977
  const write = (prepared) => transport.schedule(prepared.name, prepared.cron, prepared.queue, prepared.payload, prepared.timeZone, millis(nextCronRun(prepared.cron, prepared.timeZone, now())), prepared.tenant);
648
- return {
978
+ const purge = (purgeOptions = {}) => run(async () => {
979
+ if (!transport.purge) sqlOnly("purge");
980
+ const backendPurge = transport.purge.bind(transport);
981
+ const interval = (value) => value === void 0 ? void 0 : seconds(value);
982
+ return (await Promise.all((purgeOptions.queues ?? Object.keys(queues)).map((queue) => {
983
+ schemaOf(queue);
984
+ return backendPurge(queue, {
985
+ olderThan: interval(purgeOptions.olderThan),
986
+ deadOlderThan: interval(purgeOptions.deadOlderThan),
987
+ batch: purgeOptions.batch
988
+ });
989
+ }))).reduce((sum, count) => sum + count, 0);
990
+ });
991
+ const delayOf = (enqueueOptions) => {
992
+ const delay = enqueueOptions.delay;
993
+ if (delay !== void 0 && (!Number.isInteger(delay) || delay < 0)) return err(dbError("validation", "delay is a whole number of seconds", { issues: [{
994
+ message: "Expected a non-negative integer",
995
+ path: ["delay"]
996
+ }] }));
997
+ return ok(delay ?? (enqueueOptions.runAt ? Math.max(0, Math.ceil((enqueueOptions.runAt.epochMilliseconds - now().epochMilliseconds) / 1e3)) : 0));
998
+ };
999
+ /** The validated payload in its envelope, and the delay, for `enqueue` and `enqueueOnce`. */
1000
+ const prepareSend = async (queue, payload, enqueueOptions) => {
1001
+ const valid = await validate(schemaOf(queue), payload, "payload");
1002
+ if (!valid.ok) return valid;
1003
+ const delay = delayOf(enqueueOptions);
1004
+ if (!delay.ok) return delay;
1005
+ const message = wrapPayload(valid.data, enqueueOptions.context, { ...enqueueOptions.ticket === void 0 ? {} : { ticket: enqueueOptions.ticket } });
1006
+ if (!message.ok) return message;
1007
+ return ok({
1008
+ message: message.data,
1009
+ delay: delay.data
1010
+ });
1011
+ };
1012
+ return withBlockHooks({
649
1013
  enqueue(queue, payload, enqueueOptions = {}) {
650
1014
  return AsyncResult.from(async () => {
651
- const valid = await validate(schemaOf(queue), payload, "payload");
652
- if (!valid.ok) return valid;
653
- const delay = enqueueOptions.delay ?? (enqueueOptions.runAt ? Math.max(0, Math.ceil((enqueueOptions.runAt.epochMilliseconds - now().epochMilliseconds) / 1e3)) : 0);
654
- return run(() => transport.send(queue, withContext(valid.data, enqueueOptions.context), delay, enqueueOptions.maxAttempts ?? 5, enqueueOptions.dedupeKey, enqueueOptions.dedupe));
1015
+ const prepared = await prepareSend(queue, payload, enqueueOptions);
1016
+ if (!prepared.ok) return prepared;
1017
+ const { message, delay } = prepared.data;
1018
+ return run(() => transport.send(queue, message, delay, enqueueOptions.maxAttempts ?? 5, enqueueOptions.dedupeKey, enqueueOptions.dedupe));
1019
+ });
1020
+ },
1021
+ enqueueOnce(queue, payload, enqueueOptions) {
1022
+ return AsyncResult.from(async () => {
1023
+ const prepared = await prepareSend(queue, payload, enqueueOptions);
1024
+ if (!prepared.ok) return prepared;
1025
+ const { message, delay } = prepared.data;
1026
+ return run(() => {
1027
+ if (!transport.sendOnce) sqlOnly("enqueueOnce");
1028
+ return transport.sendOnce(queue, message, delay, enqueueOptions.maxAttempts ?? 5, enqueueOptions.dedupeKey);
1029
+ });
655
1030
  });
656
1031
  },
657
1032
  claim,
@@ -691,6 +1066,8 @@ function createJobs(source, queues, options = {}) {
691
1066
  schemaOf(queue);
692
1067
  return transport.retryDead(queue, retryOptions.ids, retryOptions.limit ?? 1e3);
693
1068
  }),
1069
+ purge,
1070
+ purgeJob: (purgeOptions) => async () => purge(purgeOptions).orThrow(),
694
1071
  replay: (queue, id) => run(() => {
695
1072
  if (!transport.replay) sqlOnly("replay");
696
1073
  return transport.replay(queue, id);
@@ -802,7 +1179,44 @@ function createJobs(source, queues, options = {}) {
802
1179
  return Response.json(result);
803
1180
  });
804
1181
  }
805
- };
1182
+ }, options.hooks, {
1183
+ block: "jobs",
1184
+ ...options.logger ? { logger: options.logger } : {}
1185
+ });
806
1186
  }
807
1187
  //#endregion
808
- export { assertCron, createIdempotency, createJobs, createRateLimit, createWebhookInbox, devDrain, devDrainSecret, nextCronRun, pgmqPublicBackend, rateLimited, sqlQueueBackend, withLease };
1188
+ //#region src/blocks/jobs/manifest.ts
1189
+ /** The `jobs` block's manifest (ADR 0029). */
1190
+ const jobsBlock = defineBlock({
1191
+ name: "jobs",
1192
+ sql: ["jobs"],
1193
+ options: { jobs: jobsSqlOptions },
1194
+ create: createJobs,
1195
+ category: "automation",
1196
+ recipes: ["job-runs-table"]
1197
+ });
1198
+ /** The `idempotency` block's manifest (ADR 0029). */
1199
+ const idempotencyBlock = defineBlock({
1200
+ name: "idempotency",
1201
+ sql: ["idempotency"],
1202
+ create: createIdempotency,
1203
+ category: "developer"
1204
+ });
1205
+ /** The `rate-limit` block's manifest (ADR 0029). */
1206
+ const rateLimitBlock = defineBlock({
1207
+ name: "rate-limit",
1208
+ sql: ["rate-limit"],
1209
+ options: { "rate-limit": rateLimitSqlOptions },
1210
+ create: createRateLimit,
1211
+ category: "developer"
1212
+ });
1213
+ /** The `webhook-inbox` block's manifest (ADR 0029). */
1214
+ const webhookInboxBlock = defineBlock({
1215
+ name: "webhook-inbox",
1216
+ sql: ["webhook-inbox"],
1217
+ options: { "webhook-inbox": webhookInboxSqlOptions },
1218
+ create: createWebhookInbox,
1219
+ category: "developer"
1220
+ });
1221
+ //#endregion
1222
+ export { assertCron, createIdempotency, createJobs, createRateLimit, createWebhookInbox, dbTransport, devDrain, devDrainSecret, idempotencyBlock, jobsBlock, nextCronRun, pgmqPublicBackend, purgeWebhookInbox, rateLimitBlock, rateLimited, rpcTransport, sqlQueueBackend, sqlTransport, transportQueueBackend, webhookInboxBlock, withLease };