better-supabase 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/README.md +1 -0
  2. package/dist/{access-sql-DUSSMaC3.js → access-sql-CTJPHjCL.js} +1 -1
  3. package/dist/{actor-KHDOKGb1.js → actor-CAL8mMih.js} +1 -1
  4. package/dist/{adapter-rmWaLNe3.js → adapter-CRNH2aX_.js} +390 -267
  5. package/dist/{agents-ByYUSZxT.d.ts → agents-CGP2AQge.d.ts} +7 -7
  6. package/dist/{ai-cache-CkxtAt4P.d.ts → ai-cache-BdeJKlrV.d.ts} +5 -5
  7. package/dist/{ai-cache-DPiuJ-zJ.js → ai-cache-CLninP-F.js} +2 -2
  8. package/dist/{ai-chat-al8b3spK.d.ts → ai-chat-D-2MH1sU.d.ts} +7 -7
  9. package/dist/{ai-files-BXtV3ygd.js → ai-files-ChFDkMLN.js} +18 -10
  10. package/dist/ai-sdk/agents/index.d.ts +6 -6
  11. package/dist/ai-sdk/agents/index.js +2 -2
  12. package/dist/ai-sdk/batches/index.d.ts +4 -4
  13. package/dist/ai-sdk/batches/index.js +4 -4
  14. package/dist/ai-sdk/cache/index.d.ts +2 -2
  15. package/dist/ai-sdk/cache/index.js +1 -1
  16. package/dist/ai-sdk/chat/index.d.ts +1 -1
  17. package/dist/ai-sdk/chat/index.js +5 -5
  18. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  19. package/dist/ai-sdk/files/index.d.ts +2 -2
  20. package/dist/ai-sdk/files/index.js +4 -4
  21. package/dist/ai-sdk/index.d.ts +6 -6
  22. package/dist/ai-sdk/index.js +2 -2
  23. package/dist/ai-sdk/mcp/index.d.ts +4 -4
  24. package/dist/ai-sdk/mcp/index.js +4 -4
  25. package/dist/ai-sdk/memory/index.d.ts +3 -3
  26. package/dist/ai-sdk/workflow/index.d.ts +4 -4
  27. package/dist/ai-sdk/workflow/index.js +6 -6
  28. package/dist/{ai-tasks-Di0gmJOX.d.ts → ai-tasks-ZvPnNudQ.d.ts} +8 -8
  29. package/dist/{announcements-HF7LuFw5.js → announcements-BNxTW5HJ.js} +4 -4
  30. package/dist/{api-CFjuYKFY.js → api-C43_FYDp.js} +1 -1
  31. package/dist/{api-XJcQON_7.d.ts → api-DoWK3dTw.d.ts} +6 -6
  32. package/dist/{api-keys-EdSNjGIZ.d.ts → api-keys-AgDXbcql.d.ts} +7 -7
  33. package/dist/{api-keys-C1IZF7p8.js → api-keys-BSXwI2jF.js} +6 -6
  34. package/dist/{app-tables-DVidEHOI.d.ts → app-tables-BrMBjyuq.d.ts} +1 -1
  35. package/dist/{approvals-DqlPHBHI.d.ts → approvals-CyX709B-.d.ts} +7 -7
  36. package/dist/arazzo/index.d.ts +2 -2
  37. package/dist/arazzo/index.js +2 -2
  38. package/dist/{assistant-BZyhQ8bd.d.ts → assistant-DZsHsYIx.d.ts} +4 -4
  39. package/dist/astro/index.d.ts +12 -12
  40. package/dist/astro/index.js +5 -5
  41. package/dist/asyncapi/index.d.ts +1 -1
  42. package/dist/asyncapi/index.js +2 -2
  43. package/dist/{attachments-C8FEBBKE.js → attachments-CK8D8bIV.js} +14 -8
  44. package/dist/{audit-log-CRgiHlRh.js → audit-log-ovUlF4Mk.js} +7 -7
  45. package/dist/auth-module-DbZv2WrR.js +10 -0
  46. package/dist/{auth-reply-B_dW4jHJ.js → auth-reply-Daq72lY4.js} +2 -2
  47. package/dist/{authorization-CdJRoZgV.d.ts → authorization-ClWBcXJi.d.ts} +23 -2
  48. package/dist/{authorization-hooks-Do5djkpz.d.ts → authorization-hooks-WDQMKIsc.d.ts} +2 -2
  49. package/dist/{authorizer-dVVN05Un.js → authorizer-B3yyCVUF.js} +2 -2
  50. package/dist/{base64-BmeCBgGo.js → base64-D4aqdnDR.js} +4 -4
  51. package/dist/better-result/index.d.ts +5 -5
  52. package/dist/better-result/index.js +1 -1
  53. package/dist/{bind-DkaP_0iS.d.ts → bind-Bfo40o63.d.ts} +4 -4
  54. package/dist/{block-fields-BANwJ9Y_.js → block-fields-Bv1hV855.js} +3 -3
  55. package/dist/{block-fields-5UA84ZUg.d.ts → block-fields-DnaDbgZS.d.ts} +2 -2
  56. package/dist/{block-helpers-7pMBVsE6.d.ts → block-helpers-CjcQM1yA.d.ts} +2 -2
  57. package/dist/{block-helpers-BfVCR5Fc.js → block-helpers-DkVZNDrj.js} +4 -4
  58. package/dist/{block-hooks-ByKlh8Qy.js → block-hooks-C22vuIUd.js} +3 -3
  59. package/dist/{block-hooks-C_WaodoA.d.ts → block-hooks-DcPJHztl.d.ts} +3 -3
  60. package/dist/{block-transport-NbUJygA7.d.ts → block-transport-DezJPPA0.d.ts} +2 -2
  61. package/dist/{block-transport-G4t1umrR.js → block-transport-J7ZepTq2.js} +1 -1
  62. package/dist/blocks/access-requests/index.d.ts +8 -8
  63. package/dist/blocks/access-requests/index.js +6 -6
  64. package/dist/blocks/agents/index.d.ts +4 -4
  65. package/dist/blocks/agents/index.js +5 -5
  66. package/dist/blocks/ai-cache/index.d.ts +3 -3
  67. package/dist/blocks/ai-cache/index.js +2 -2
  68. package/dist/blocks/ai-chat/index.d.ts +5 -5
  69. package/dist/blocks/ai-chat/index.js +2 -2
  70. package/dist/blocks/ai-chat/react/index.d.ts +2 -2
  71. package/dist/blocks/ai-chat/react/index.js +2 -2
  72. package/dist/blocks/ai-chat/solid/index.d.ts +2 -2
  73. package/dist/blocks/ai-chat/solid/index.js +1 -1
  74. package/dist/blocks/ai-chat/svelte/index.d.ts +2 -2
  75. package/dist/blocks/ai-chat/svelte/index.js +1 -1
  76. package/dist/blocks/ai-chat/vue/index.d.ts +2 -2
  77. package/dist/blocks/ai-chat/vue/index.js +1 -1
  78. package/dist/blocks/ai-files/index.d.ts +5 -5
  79. package/dist/blocks/ai-files/index.js +2 -2
  80. package/dist/blocks/ai-providers/index.d.ts +4 -4
  81. package/dist/blocks/ai-providers/index.js +7 -7
  82. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  83. package/dist/blocks/ai-tasks/index.js +7 -7
  84. package/dist/blocks/announcements/index.d.ts +4 -4
  85. package/dist/blocks/announcements/index.js +2 -2
  86. package/dist/blocks/announcements/react/index.d.ts +1 -1
  87. package/dist/blocks/announcements/react/index.js +2 -2
  88. package/dist/blocks/announcements/solid/index.d.ts +2 -2
  89. package/dist/blocks/announcements/svelte/index.d.ts +2 -2
  90. package/dist/blocks/announcements/vue/index.d.ts +2 -2
  91. package/dist/blocks/api-keys/index.d.ts +7 -7
  92. package/dist/blocks/api-keys/index.js +5 -5
  93. package/dist/blocks/api-keys/react/index.d.ts +1 -1
  94. package/dist/blocks/api-keys/react/index.js +3 -3
  95. package/dist/blocks/api-keys/react/server.d.ts +1 -1
  96. package/dist/blocks/api-keys/solid/index.d.ts +2 -2
  97. package/dist/blocks/api-keys/solid/index.js +1 -1
  98. package/dist/blocks/api-keys/svelte/index.d.ts +2 -2
  99. package/dist/blocks/api-keys/svelte/index.js +1 -1
  100. package/dist/blocks/api-keys/vue/index.d.ts +2 -2
  101. package/dist/blocks/api-keys/vue/index.js +1 -1
  102. package/dist/blocks/approvals/index.d.ts +4 -4
  103. package/dist/blocks/approvals/index.js +6 -6
  104. package/dist/blocks/attachments/index.d.ts +4 -4
  105. package/dist/blocks/attachments/index.js +2 -2
  106. package/dist/blocks/audit/index.d.ts +6 -6
  107. package/dist/blocks/audit/index.js +6 -6
  108. package/dist/blocks/audit/react/index.d.ts +1 -1
  109. package/dist/blocks/audit/react/index.js +2 -2
  110. package/dist/blocks/audit/react/server.d.ts +1 -1
  111. package/dist/blocks/audit/solid/index.d.ts +2 -2
  112. package/dist/blocks/audit/svelte/index.d.ts +2 -2
  113. package/dist/blocks/audit/vue/index.d.ts +2 -2
  114. package/dist/blocks/billing/index.d.ts +26 -10
  115. package/dist/blocks/billing/index.js +43 -10
  116. package/dist/blocks/billing/react/index.d.ts +2 -2
  117. package/dist/blocks/billing/react/index.js +1 -1
  118. package/dist/blocks/billing/react/server.d.ts +1 -1
  119. package/dist/blocks/billing/solid/index.d.ts +2 -2
  120. package/dist/blocks/billing/solid/index.js +1 -1
  121. package/dist/blocks/billing/svelte/index.d.ts +2 -2
  122. package/dist/blocks/billing/svelte/index.js +1 -1
  123. package/dist/blocks/billing/vue/index.d.ts +2 -2
  124. package/dist/blocks/billing/vue/index.js +1 -1
  125. package/dist/blocks/bookings/index.d.ts +3 -3
  126. package/dist/blocks/bookings/index.js +2 -2
  127. package/dist/blocks/bookings/react/index.d.ts +1 -1
  128. package/dist/blocks/bookings/react/index.js +3 -3
  129. package/dist/blocks/bookings/solid/index.d.ts +2 -2
  130. package/dist/blocks/bookings/solid/index.js +1 -1
  131. package/dist/blocks/bookings/svelte/index.d.ts +2 -2
  132. package/dist/blocks/bookings/svelte/index.js +1 -1
  133. package/dist/blocks/bookings/vue/index.d.ts +2 -2
  134. package/dist/blocks/bookings/vue/index.js +1 -1
  135. package/dist/blocks/bulk/index.d.ts +5 -5
  136. package/dist/blocks/bulk/index.js +3 -3
  137. package/dist/blocks/calendar/index.d.ts +3 -3
  138. package/dist/blocks/calendar/index.js +2 -2
  139. package/dist/blocks/calendar/react/index.d.ts +1 -1
  140. package/dist/blocks/calendar/react/index.js +3 -3
  141. package/dist/blocks/calendar/solid/index.d.ts +2 -2
  142. package/dist/blocks/calendar/solid/index.js +1 -1
  143. package/dist/blocks/calendar/svelte/index.d.ts +2 -2
  144. package/dist/blocks/calendar/svelte/index.js +1 -1
  145. package/dist/blocks/calendar/vue/index.d.ts +2 -2
  146. package/dist/blocks/calendar/vue/index.js +1 -1
  147. package/dist/blocks/catalog/index.d.ts +10 -10
  148. package/dist/blocks/catalog/index.js +8 -8
  149. package/dist/blocks/collections/index.d.ts +10 -10
  150. package/dist/blocks/collections/index.js +6 -6
  151. package/dist/blocks/comments/index.d.ts +4 -4
  152. package/dist/blocks/comments/index.js +3 -3
  153. package/dist/blocks/comments/react/index.d.ts +1 -1
  154. package/dist/blocks/comments/react/index.js +3 -3
  155. package/dist/blocks/comments/react/server.d.ts +1 -1
  156. package/dist/blocks/comments/solid/index.d.ts +2 -2
  157. package/dist/blocks/comments/solid/index.js +1 -1
  158. package/dist/blocks/comments/svelte/index.d.ts +2 -2
  159. package/dist/blocks/comments/svelte/index.js +1 -1
  160. package/dist/blocks/comments/vue/index.d.ts +2 -2
  161. package/dist/blocks/comments/vue/index.js +1 -1
  162. package/dist/blocks/connectors/index.d.ts +4 -4
  163. package/dist/blocks/connectors/index.js +7 -7
  164. package/dist/blocks/custom-fields/index.d.ts +6 -6
  165. package/dist/blocks/custom-fields/index.js +4 -4
  166. package/dist/blocks/data-lifecycle/index.d.ts +9 -9
  167. package/dist/blocks/data-lifecycle/index.js +7 -7
  168. package/dist/blocks/deals/index.d.ts +9 -9
  169. package/dist/blocks/deals/index.js +9 -9
  170. package/dist/blocks/documents/index.d.ts +4 -4
  171. package/dist/blocks/documents/index.js +4 -4
  172. package/dist/blocks/domains/index.d.ts +7 -7
  173. package/dist/blocks/domains/index.js +6 -6
  174. package/dist/blocks/drive/index.d.ts +9 -10
  175. package/dist/blocks/drive/index.js +20 -11
  176. package/dist/blocks/employees/index.d.ts +9 -9
  177. package/dist/blocks/employees/index.js +8 -8
  178. package/dist/blocks/engagements/index.d.ts +9 -9
  179. package/dist/blocks/engagements/index.js +5 -5
  180. package/dist/blocks/entitlements/index.d.ts +7 -7
  181. package/dist/blocks/entitlements/index.js +2 -2
  182. package/dist/blocks/entitlements/react/index.d.ts +2 -2
  183. package/dist/blocks/entitlements/solid/index.d.ts +2 -2
  184. package/dist/blocks/entitlements/svelte/index.d.ts +2 -2
  185. package/dist/blocks/entitlements/vue/index.d.ts +2 -2
  186. package/dist/blocks/flags/index.d.ts +8 -8
  187. package/dist/blocks/flags/index.js +6 -6
  188. package/dist/blocks/forms/index.d.ts +9 -9
  189. package/dist/blocks/forms/index.js +5 -5
  190. package/dist/blocks/forms/react/index.d.ts +1 -1
  191. package/dist/blocks/forms/solid/index.d.ts +2 -2
  192. package/dist/blocks/forms/svelte/index.d.ts +2 -2
  193. package/dist/blocks/forms/vue/index.d.ts +2 -2
  194. package/dist/blocks/hiring/index.d.ts +9 -9
  195. package/dist/blocks/hiring/index.js +6 -6
  196. package/dist/blocks/identities/index.d.ts +6 -6
  197. package/dist/blocks/identities/index.js +3 -3
  198. package/dist/blocks/imports/index.d.ts +6 -6
  199. package/dist/blocks/imports/index.js +3 -3
  200. package/dist/blocks/inbox/index.d.ts +5 -5
  201. package/dist/blocks/inbox/index.js +3 -3
  202. package/dist/blocks/inbox/react/index.d.ts +2 -2
  203. package/dist/blocks/inbox/react/server.d.ts +2 -2
  204. package/dist/blocks/inbox/solid/index.d.ts +2 -2
  205. package/dist/blocks/inbox/svelte/index.d.ts +2 -2
  206. package/dist/blocks/inbox/vue/index.d.ts +2 -2
  207. package/dist/blocks/index.d.ts +8 -8
  208. package/dist/blocks/index.js +3 -3
  209. package/dist/blocks/inventory/index.d.ts +9 -9
  210. package/dist/blocks/inventory/index.js +6 -6
  211. package/dist/blocks/invoices/index.d.ts +9 -9
  212. package/dist/blocks/invoices/index.js +8 -8
  213. package/dist/blocks/jobs/index.d.ts +61 -11
  214. package/dist/blocks/jobs/index.js +126 -13
  215. package/dist/blocks/knowledge/index.d.ts +3 -3
  216. package/dist/blocks/knowledge/index.js +2 -2
  217. package/dist/blocks/leave/index.d.ts +8 -8
  218. package/dist/blocks/leave/index.js +5 -5
  219. package/dist/blocks/memory/index.d.ts +4 -4
  220. package/dist/blocks/memory/index.js +6 -6
  221. package/dist/blocks/metrics/index.d.ts +7 -7
  222. package/dist/blocks/metrics/index.js +5 -5
  223. package/dist/blocks/mfa/index.d.ts +2 -2
  224. package/dist/blocks/mfa/index.js +1 -1
  225. package/dist/blocks/mfa/react/index.d.ts +1 -1
  226. package/dist/blocks/mfa/react/index.js +1 -1
  227. package/dist/blocks/mfa/react/server.d.ts +1 -1
  228. package/dist/blocks/mfa/react/server.js +1 -1
  229. package/dist/blocks/mfa/solid/index.d.ts +2 -2
  230. package/dist/blocks/mfa/solid/index.js +1 -1
  231. package/dist/blocks/mfa/svelte/index.d.ts +2 -2
  232. package/dist/blocks/mfa/svelte/index.js +1 -1
  233. package/dist/blocks/mfa/vue/index.d.ts +2 -2
  234. package/dist/blocks/mfa/vue/index.js +1 -1
  235. package/dist/blocks/notifications/index.d.ts +13 -13
  236. package/dist/blocks/notifications/index.js +11 -11
  237. package/dist/blocks/notifications/react/index.d.ts +1 -1
  238. package/dist/blocks/notifications/react/server.d.ts +1 -1
  239. package/dist/blocks/notifications/solid/index.d.ts +2 -2
  240. package/dist/blocks/notifications/svelte/index.d.ts +2 -2
  241. package/dist/blocks/notifications/vue/index.d.ts +2 -2
  242. package/dist/blocks/number-sequences/index.d.ts +5 -5
  243. package/dist/blocks/number-sequences/index.js +2 -2
  244. package/dist/blocks/oauth-server/index.d.ts +28 -8
  245. package/dist/blocks/oauth-server/index.js +24 -15
  246. package/dist/blocks/onboarding/index.d.ts +3 -3
  247. package/dist/blocks/onboarding/index.js +2 -2
  248. package/dist/blocks/onboarding/react/index.d.ts +1 -1
  249. package/dist/blocks/onboarding/react/index.js +2 -2
  250. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  251. package/dist/blocks/onboarding/solid/index.d.ts +2 -2
  252. package/dist/blocks/onboarding/svelte/index.d.ts +2 -2
  253. package/dist/blocks/onboarding/vue/index.d.ts +2 -2
  254. package/dist/blocks/orders/index.d.ts +12 -12
  255. package/dist/blocks/orders/index.js +10 -10
  256. package/dist/blocks/organizations/index.d.ts +5 -5
  257. package/dist/blocks/organizations/index.js +4 -4
  258. package/dist/blocks/organizations/react/index.d.ts +1 -1
  259. package/dist/blocks/organizations/react/index.js +3 -3
  260. package/dist/blocks/organizations/react/server.d.ts +1 -1
  261. package/dist/blocks/organizations/solid/index.d.ts +2 -2
  262. package/dist/blocks/organizations/solid/index.js +1 -1
  263. package/dist/blocks/organizations/svelte/index.d.ts +2 -2
  264. package/dist/blocks/organizations/svelte/index.js +1 -1
  265. package/dist/blocks/organizations/vue/index.d.ts +2 -2
  266. package/dist/blocks/organizations/vue/index.js +1 -1
  267. package/dist/blocks/outbox/index.d.ts +4 -4
  268. package/dist/blocks/outbox/index.js +5 -5
  269. package/dist/blocks/parties/index.d.ts +9 -9
  270. package/dist/blocks/parties/index.js +4 -4
  271. package/dist/blocks/pipelines/index.d.ts +10 -10
  272. package/dist/blocks/pipelines/index.js +7 -7
  273. package/dist/blocks/profiles/index.d.ts +7 -7
  274. package/dist/blocks/profiles/index.js +5 -5
  275. package/dist/blocks/promotions/index.d.ts +9 -9
  276. package/dist/blocks/promotions/index.js +7 -7
  277. package/dist/blocks/push/index.d.ts +9 -9
  278. package/dist/blocks/push/index.js +4 -4
  279. package/dist/blocks/quotes/index.d.ts +9 -9
  280. package/dist/blocks/quotes/index.js +8 -8
  281. package/dist/blocks/rank/index.d.ts +6 -6
  282. package/dist/blocks/rank/index.js +3 -3
  283. package/dist/blocks/reactions/index.d.ts +4 -4
  284. package/dist/blocks/reactions/index.js +2 -2
  285. package/dist/blocks/reactions/react/index.d.ts +1 -1
  286. package/dist/blocks/reactions/react/index.js +2 -2
  287. package/dist/blocks/reactions/solid/index.d.ts +2 -2
  288. package/dist/blocks/reactions/solid/index.js +1 -1
  289. package/dist/blocks/reactions/svelte/index.d.ts +2 -2
  290. package/dist/blocks/reactions/svelte/index.js +1 -1
  291. package/dist/blocks/reactions/vue/index.d.ts +2 -2
  292. package/dist/blocks/reactions/vue/index.js +1 -1
  293. package/dist/blocks/relations/index.d.ts +8 -8
  294. package/dist/blocks/relations/index.js +4 -4
  295. package/dist/blocks/reminders/index.d.ts +10 -10
  296. package/dist/blocks/reminders/index.js +8 -8
  297. package/dist/blocks/reviews/index.d.ts +8 -8
  298. package/dist/blocks/reviews/index.js +5 -5
  299. package/dist/blocks/rules/index.d.ts +9 -9
  300. package/dist/blocks/rules/index.js +5 -5
  301. package/dist/blocks/rules/react/index.d.ts +2 -2
  302. package/dist/blocks/rules/react/index.js +2 -2
  303. package/dist/blocks/rules/solid/index.d.ts +2 -2
  304. package/dist/blocks/rules/svelte/index.d.ts +2 -2
  305. package/dist/blocks/rules/vue/index.d.ts +2 -2
  306. package/dist/blocks/saved-views/index.d.ts +3 -3
  307. package/dist/blocks/saved-views/index.js +1 -1
  308. package/dist/blocks/saved-views/react/index.d.ts +1 -1
  309. package/dist/blocks/saved-views/react/index.js +1 -1
  310. package/dist/blocks/saved-views/react/server.d.ts +1 -1
  311. package/dist/blocks/saved-views/solid/index.d.ts +2 -2
  312. package/dist/blocks/saved-views/solid/index.js +1 -1
  313. package/dist/blocks/saved-views/svelte/index.d.ts +2 -2
  314. package/dist/blocks/saved-views/svelte/index.js +1 -1
  315. package/dist/blocks/saved-views/vue/index.d.ts +2 -2
  316. package/dist/blocks/saved-views/vue/index.js +1 -1
  317. package/dist/blocks/search/index.d.ts +4 -4
  318. package/dist/blocks/search/index.js +3 -3
  319. package/dist/blocks/search/react/index.d.ts +1 -1
  320. package/dist/blocks/search/react/index.js +2 -2
  321. package/dist/blocks/search/react/server.d.ts +1 -1
  322. package/dist/blocks/search/solid/index.d.ts +2 -2
  323. package/dist/blocks/search/svelte/index.d.ts +2 -2
  324. package/dist/blocks/search/vue/index.d.ts +2 -2
  325. package/dist/blocks/service-principals/index.d.ts +8 -8
  326. package/dist/blocks/service-principals/index.js +6 -6
  327. package/dist/blocks/sessions/index.d.ts +2 -2
  328. package/dist/blocks/sessions/index.js +1 -1
  329. package/dist/blocks/sessions/react/index.d.ts +1 -1
  330. package/dist/blocks/sessions/react/index.js +1 -1
  331. package/dist/blocks/sessions/react/server.d.ts +1 -1
  332. package/dist/blocks/sessions/solid/index.d.ts +2 -2
  333. package/dist/blocks/sessions/solid/index.js +1 -1
  334. package/dist/blocks/sessions/svelte/index.d.ts +2 -2
  335. package/dist/blocks/sessions/svelte/index.js +1 -1
  336. package/dist/blocks/sessions/vue/index.d.ts +2 -2
  337. package/dist/blocks/sessions/vue/index.js +1 -1
  338. package/dist/blocks/settings/index.d.ts +4 -4
  339. package/dist/blocks/settings/index.js +3 -3
  340. package/dist/blocks/settings/react/index.d.ts +1 -1
  341. package/dist/blocks/settings/react/index.js +3 -3
  342. package/dist/blocks/settings/react/server.d.ts +1 -1
  343. package/dist/blocks/settings/solid/index.d.ts +2 -2
  344. package/dist/blocks/settings/solid/index.js +1 -1
  345. package/dist/blocks/settings/svelte/index.d.ts +2 -2
  346. package/dist/blocks/settings/svelte/index.js +1 -1
  347. package/dist/blocks/settings/vue/index.d.ts +2 -2
  348. package/dist/blocks/settings/vue/index.js +1 -1
  349. package/dist/blocks/share-links/index.d.ts +7 -7
  350. package/dist/blocks/share-links/index.js +3 -3
  351. package/dist/blocks/shared-signals/index.d.ts +8 -8
  352. package/dist/blocks/shared-signals/index.js +7 -7
  353. package/dist/blocks/signing-keys/index.d.ts +5 -5
  354. package/dist/blocks/signing-keys/index.js +47 -21
  355. package/dist/blocks/sla/index.d.ts +9 -9
  356. package/dist/blocks/sla/index.js +5 -5
  357. package/dist/blocks/sso/index.d.ts +7 -7
  358. package/dist/blocks/sso/index.js +4 -4
  359. package/dist/blocks/state-machine/index.d.ts +5 -5
  360. package/dist/blocks/state-machine/index.js +2 -2
  361. package/dist/blocks/tags/index.d.ts +3 -3
  362. package/dist/blocks/tags/index.js +2 -2
  363. package/dist/blocks/tags/react/index.d.ts +1 -1
  364. package/dist/blocks/tags/react/index.js +3 -3
  365. package/dist/blocks/tags/react/server.d.ts +1 -1
  366. package/dist/blocks/tags/solid/index.d.ts +2 -2
  367. package/dist/blocks/tags/solid/index.js +1 -1
  368. package/dist/blocks/tags/svelte/index.d.ts +2 -2
  369. package/dist/blocks/tags/svelte/index.js +1 -1
  370. package/dist/blocks/tags/vue/index.d.ts +2 -2
  371. package/dist/blocks/tags/vue/index.js +1 -1
  372. package/dist/blocks/targets/index.d.ts +7 -7
  373. package/dist/blocks/targets/index.js +5 -5
  374. package/dist/blocks/teams/index.d.ts +7 -7
  375. package/dist/blocks/teams/index.js +3 -3
  376. package/dist/blocks/templates/index.d.ts +10 -10
  377. package/dist/blocks/templates/index.js +7 -7
  378. package/dist/blocks/time-tracking/index.d.ts +9 -9
  379. package/dist/blocks/time-tracking/index.js +7 -7
  380. package/dist/blocks/trash/index.d.ts +8 -8
  381. package/dist/blocks/trash/index.js +4 -4
  382. package/dist/blocks/undo/index.d.ts +4 -4
  383. package/dist/blocks/undo/index.js +2 -2
  384. package/dist/blocks/undo/react/index.d.ts +1 -1
  385. package/dist/blocks/undo/react/server.d.ts +1 -1
  386. package/dist/blocks/undo/solid/index.d.ts +2 -2
  387. package/dist/blocks/undo/svelte/index.d.ts +2 -2
  388. package/dist/blocks/undo/vue/index.d.ts +2 -2
  389. package/dist/blocks/usage/index.d.ts +4 -4
  390. package/dist/blocks/usage/index.js +2 -2
  391. package/dist/blocks/usage/react/index.d.ts +1 -1
  392. package/dist/blocks/usage/react/index.js +2 -2
  393. package/dist/blocks/usage/react/server.d.ts +1 -1
  394. package/dist/blocks/usage/solid/index.d.ts +2 -2
  395. package/dist/blocks/usage/svelte/index.d.ts +2 -2
  396. package/dist/blocks/usage/vue/index.d.ts +2 -2
  397. package/dist/blocks/vercel-marketplace/index.d.ts +193 -0
  398. package/dist/blocks/vercel-marketplace/index.js +300 -0
  399. package/dist/blocks/versions/index.d.ts +8 -8
  400. package/dist/blocks/versions/index.js +4 -4
  401. package/dist/blocks/waitlist/index.d.ts +9 -9
  402. package/dist/blocks/waitlist/index.js +5 -5
  403. package/dist/blocks/webhooks/index.d.ts +16 -16
  404. package/dist/blocks/webhooks/index.js +15 -15
  405. package/dist/blocks/work-items/index.d.ts +9 -9
  406. package/dist/blocks/work-items/index.js +6 -6
  407. package/dist/blocks/workflow-builder/index.d.ts +8 -8
  408. package/dist/blocks/workflow-builder/index.js +2 -2
  409. package/dist/blocks/workflow-builder/react/index.d.ts +2 -2
  410. package/dist/blocks/workflow-builder/react/index.js +3 -3
  411. package/dist/blocks/workflow-builder/solid/index.d.ts +2 -2
  412. package/dist/blocks/workflow-builder/svelte/index.d.ts +2 -2
  413. package/dist/blocks/workflow-builder/vue/index.d.ts +2 -2
  414. package/dist/blocks/workflows/index.d.ts +5 -5
  415. package/dist/blocks/workflows/index.js +2 -2
  416. package/dist/blocks/workflows/react/index.d.ts +2 -2
  417. package/dist/blocks/workflows/react/index.js +2 -2
  418. package/dist/blocks/workflows/solid/index.d.ts +2 -2
  419. package/dist/blocks/workflows/svelte/index.d.ts +2 -2
  420. package/dist/blocks/workflows/vue/index.d.ts +2 -2
  421. package/dist/{bookings-EJAVAuVz.js → bookings-DQ7P888X.js} +5 -5
  422. package/dist/{storage-api-B4Ib2Zpo.d.ts → bucket-BbePDVwc.d.ts} +235 -219
  423. package/dist/{build-6jmaPAgx.js → build-C-D_vn0U.js} +7 -2
  424. package/dist/{build-Cm0T5MVG.js → build-CT6SPZkI.js} +1 -1
  425. package/dist/{calendar-1J1E5dLq.js → calendar-eqyuQAoy.js} +7 -7
  426. package/dist/chat-sdk/index.d.ts +6 -6
  427. package/dist/chat-sdk/index.js +3 -3
  428. package/dist/chat-sdk/react/index.d.ts +2 -2
  429. package/dist/chat-sdk/react/server.d.ts +2 -2
  430. package/dist/cli/{add-BhI_nXAo.js → add-BcOHumvq.js} +2 -2
  431. package/dist/cli/add-DnAyR9w_.js +1 -0
  432. package/dist/cli/{add-CUS0AiBh.js → add-TT72pQk6.js} +5 -5
  433. package/dist/cli/adopt-BuS-DC7_.js +1 -0
  434. package/dist/cli/{adopt-DwcU6CJd.js → adopt-mbB1bcIG.js} +6 -6
  435. package/dist/cli/{apply-DBXC0Z5I.js → apply-CiBFOFGw.js} +16 -22
  436. package/dist/cli/bin.js +1 -1
  437. package/dist/cli/{blocks-B15ltTFn.js → blocks-5-JGzwXX.js} +1 -1
  438. package/dist/cli/{blocks-BXeqIzWN.js → blocks-DeLQOlUK.js} +1 -1
  439. package/dist/cli/{cache-CPBYJAkb.js → cache-DQwgb3rg.js} +8 -3
  440. package/dist/cli/{catalog-Di15TkM2.js → catalog-Cm6BtquM.js} +2 -1
  441. package/dist/cli/{codemod-CrI33UR2.js → codemod-BzAMX4el.js} +2 -2
  442. package/dist/cli/{command-D_HI1mp1.js → command-dfdVhU_2.js} +39 -1
  443. package/dist/cli/{completion-Vry-Wjw8.js → completion-4lLjtI49.js} +1 -1
  444. package/dist/cli/{completion-En43UcyJ.js → completion-D4InNrxw.js} +2 -2
  445. package/dist/cli/{completion-DzYo025z.js → completion-zsp5s0zI.js} +2 -2
  446. package/dist/cli/{config-DsqQr5z3.js → config-CCyweX7Y.js} +1 -1
  447. package/dist/cli/{config-DyJgo2d9.js → config-DI6ielsx.js} +1 -1
  448. package/dist/cli/{config-Bi_UBxXl.js → config-yZ55rsKZ.js} +17 -5
  449. package/dist/cli/db-TRymMyAW.js +90 -0
  450. package/dist/cli/{design-edit-B-WsnhUF.js → design-edit-0U9iCTiS.js} +29 -2
  451. package/dist/cli/{detect-BeLVeNpA.js → detect-DQsVeBHg.js} +1 -1
  452. package/dist/cli/{doctor-wACp5w6N.js → doctor-DOfy6kjt.js} +332 -108
  453. package/dist/cli/{emit-j0zZ6NE_.js → emit-56LAG_Px.js} +11 -5
  454. package/dist/cli/{env-Ch99nTQw.js → env-B7TWPEt0.js} +1 -1
  455. package/dist/cli/{env-Cf5OTqbK.js → env-C8R7Nf0a.js} +2 -1
  456. package/dist/cli/env-Cmu99uKR.js +1 -0
  457. package/dist/cli/{env-2v9JrxSr.js → env-Dh5K5t2U.js} +33 -32
  458. package/dist/cli/{gen-BhquLu7l.js → gen-D3sC5jDn.js} +11 -11
  459. package/dist/cli/index.d.ts +3 -1
  460. package/dist/cli/index.js +10 -9
  461. package/dist/cli/{init-BwLTO6XG.js → init-DNomoycJ.js} +16 -22
  462. package/dist/cli/{introspect-B-gXAIqs.js → introspect-kYX06Q2g.js} +3 -3
  463. package/dist/cli/{keys-hwtdwdkT.js → keys-B8dIJwwi.js} +2 -2
  464. package/dist/cli/{live-BFfYoE0_.js → live-CkV3d3yp.js} +2 -2
  465. package/dist/cli/{mcp-Bdm2oGmL.js → mcp-DrxB2Wuw.js} +4 -4
  466. package/dist/cli/{metadata-DikbSOE0.js → metadata-BGkle6WM.js} +2 -2
  467. package/dist/cli/{migration-safety-LaGVPPuD.js → migration-safety-DjVpz2D6.js} +1 -1
  468. package/dist/cli/{module-migration-CLkZ8jpw.js → module-migration-CPhuiY8C.js} +1 -1
  469. package/dist/cli/{moved-B7UFO_OM.js → moved-BMQu1YNY.js} +1 -1
  470. package/dist/cli/{parse-CwV5a6dA.js → parse-QzDvMpXH.js} +1 -1
  471. package/dist/cli/{preset-DQ1DxMtI.js → preset-CfIs24cc.js} +1 -1
  472. package/dist/cli/run-Bck-p0MI.js +63 -0
  473. package/dist/cli/{run-DliGNdjI.js → run-BhJKAanr.js} +26 -5
  474. package/dist/cli/{run-BLJj7SuM.js → run-DRZ10srj.js} +52 -43
  475. package/dist/cli/{scaffold-6bv24GSP.js → scaffold-DoURlDEI.js} +3 -3
  476. package/dist/cli/{scaffold-DUz5fa-k.js → scaffold-mzy3OsN5.js} +1 -1
  477. package/dist/cli/seed-C5q4UUIL.js +1 -0
  478. package/dist/cli/{seed-CIJaL1Ao.js → seed-CIdg6s7m.js} +6 -5
  479. package/dist/cli/{shared-CNcvDOLt.js → shared-DKLuA1Tp.js} +2 -2
  480. package/dist/cli/{skills-CaxIQhzW.js → skills-D3zwIlGA.js} +1 -1
  481. package/dist/cli/{snapshot-Dvcx0BSl.js → snapshot-BBKFojqM.js} +4 -4
  482. package/dist/cli/{source-args-BNhagtpw.js → source-args-Cwo7zwvq.js} +8 -2
  483. package/dist/cli/{spec-DRDaIq8f.js → spec-DOgQUZwM.js} +1 -1
  484. package/dist/cli/{spec-BewE6r6J.js → spec-DZeIP9ta.js} +3 -3
  485. package/dist/cli/{sql-BCQt5TDs.js → sql-CL_Lbhwl.js} +2 -2
  486. package/dist/cli/{sql-BBkchli4.js → sql-DLOvvnBV.js} +5 -5
  487. package/dist/cli/stack-env-_uWWNHWq.js +87 -0
  488. package/dist/cli/{stack-status-LeEoCtV1.js → stack-status-_NUgd-g5.js} +43 -3
  489. package/dist/cli/{supabase-toml-DjLgBYEo.js → supabase-toml-BC5sNVKU.js} +1 -1
  490. package/dist/cli/{sync-CJ-ft-tl.js → sync-DBvknfOK.js} +2 -2
  491. package/dist/cli/{version-D1wM9DNb.js → version-B7akdvDv.js} +1 -1
  492. package/dist/cli/{write-Dp1XlAVM.js → write-VZljwoTB.js} +2 -2
  493. package/dist/client/index.d.ts +6 -6
  494. package/dist/client/index.js +4 -4
  495. package/dist/client/native/index.d.ts +6 -6
  496. package/dist/client/native/index.js +4 -4
  497. package/dist/{client-ByGlM0YF.d.ts → client-BAOZuBhz.d.ts} +4 -4
  498. package/dist/{client-fpvgtQKE.js → client-BDO6i2Oe.js} +2 -2
  499. package/dist/{client-Dk8gY9hi.d.ts → client-BJN0IMEp.d.ts} +2 -2
  500. package/dist/{client-Fi8CoJcs.d.ts → client-BMcjLG0V.d.ts} +13 -13
  501. package/dist/{client-B5nnqDmz.d.ts → client-BN_fXOs7.d.ts} +2 -2
  502. package/dist/{client-CpMv4-v5.d.ts → client-BONsuFYf.d.ts} +4 -4
  503. package/dist/{client-Diu2lPbg.d.ts → client-BPn9XhAM.d.ts} +7 -7
  504. package/dist/{client-B0rvMvA8.d.ts → client-BtC-r4hE.d.ts} +3 -3
  505. package/dist/{client-Cgxj38RS.d.ts → client-BuneNd-C.d.ts} +9 -9
  506. package/dist/{client-D0502FgY.js → client-CFKONrrU.js} +4 -4
  507. package/dist/{client-CvITjt-9.js → client-CHR8IBNG.js} +10 -2
  508. package/dist/{client-B9H4BZJh.d.ts → client-CHwNV8Kz.d.ts} +12 -12
  509. package/dist/{client-kKdkLGPB.d.ts → client-CLQHsa-2.d.ts} +2 -2
  510. package/dist/{client-C3dLIsJv.d.ts → client-CMxxwT3N.d.ts} +9 -9
  511. package/dist/{client-C597NIlL.d.ts → client-CU7aNN_B.d.ts} +8 -8
  512. package/dist/{client-DZXFDaQE.d.ts → client-CYEdJKjk.d.ts} +6 -6
  513. package/dist/{client-LVa6yC9u.d.ts → client-CYhSGlCN.d.ts} +5 -5
  514. package/dist/{client-CWs3X4g1.js → client-C_-NZRrg.js} +1 -1
  515. package/dist/{client-kI6vCKVI.js → client-CcPxbHeT.js} +2 -2
  516. package/dist/{client-AxwF58Eo.js → client-CosiUrUb.js} +1 -1
  517. package/dist/{client-CsRpAyIv.d.ts → client-D3gRTNSi.d.ts} +2 -2
  518. package/dist/{client-D727oIVC.js → client-D7T7OLiw.js} +4 -4
  519. package/dist/{client-9zIKhf5D.d.ts → client-DB34f_7i.d.ts} +3 -3
  520. package/dist/{client-CjyTNdt1.d.ts → client-DCawyopp.d.ts} +5 -5
  521. package/dist/{client-BtBkVSk2.d.ts → client-Dqa4XyJ5.d.ts} +7 -7
  522. package/dist/{client-BLKpcAs0.d.ts → client-Dr5h2r9r.d.ts} +3 -3
  523. package/dist/{client-BO9fQgBB.d.ts → client-DrTqKgvy.d.ts} +4 -4
  524. package/dist/{client-13Ii0c0P.js → client-DyfWYU8S.js} +2 -2
  525. package/dist/{client-iB5axfa0.js → client-Dz1jWDA2.js} +3 -3
  526. package/dist/{client-jvtwGFy4.js → client-DzTtOVRR.js} +2 -2
  527. package/dist/{client-B_r4denm.d.ts → client-GCCRI9ge.d.ts} +3 -3
  528. package/dist/{client-DR_YEGnc.d.ts → client-P6v3h7vh.d.ts} +2 -2
  529. package/dist/{client-D9zBl9PT.d.ts → client-P8l8ncxV.d.ts} +7 -7
  530. package/dist/{client-CFeWXNXy.js → client-UnM3e32l.js} +2 -2
  531. package/dist/{client-DG7FwgZD.js → client-arq4daO_.js} +1 -1
  532. package/dist/{client-CmHsfDHU.js → client-eCDPjOMo.js} +6 -6
  533. package/dist/{client-rp7YfOg1.js → client-iaFm0aVf.js} +1 -1
  534. package/dist/{client-WXJwUhr1.d.ts → client-kWg4OqIr.d.ts} +5 -5
  535. package/dist/{client-B7LCXnnY.d.ts → client-tvG258_1.d.ts} +6 -6
  536. package/dist/{client-BaynD5V-.d.ts → client-wKmX-f3r.d.ts} +7 -7
  537. package/dist/{cloud-event-bwsBwVNG.d.ts → cloud-event-DXkNoI6v.d.ts} +1 -1
  538. package/dist/{codecs-C7E_OoiC.js → codecs-D-rpDifG.js} +3 -3
  539. package/dist/{codecs-Bm46sVxr.d.ts → codecs-RwFNK8Jh.d.ts} +2 -2
  540. package/dist/{codegen-2m4SKVdi.d.ts → codegen-C64C0NZG.d.ts} +13 -2
  541. package/dist/{comments-N7Bi-oTW.js → comments-CV5O8q50.js} +5 -5
  542. package/dist/commerce/index.d.ts +2 -2
  543. package/dist/commerce/index.js +6 -6
  544. package/dist/{compiler-C6E3WwIi.d.ts → compiler-D_Gjpw_O.d.ts} +2 -2
  545. package/dist/{compose-CO_cljl3.js → compose-CP0ss-cQ.js} +3 -3
  546. package/dist/{composite-CPV0thLs.js → composite-1kPAxXto.js} +3 -3
  547. package/dist/{composite-DMMA_Whg.d.ts → composite-DzvBL5nb.d.ts} +13 -13
  548. package/dist/config/index.d.ts +4 -4
  549. package/dist/config/index.js +2 -2
  550. package/dist/{config-C4RQDF6t.js → config-DHhQmmuD.js} +22 -1
  551. package/dist/{config-CkyahUjo.js → config-NQmw_wsk.js} +1 -1
  552. package/dist/{connector-Cp8CqssJ.d.ts → connector-D9NMNkv0.d.ts} +1 -1
  553. package/dist/{connectors-CZdfZcIg.d.ts → connectors-BwPNt-ZG.d.ts} +7 -7
  554. package/dist/{context-BDDgjoxz.js → context-BiwgsycK.js} +1 -1
  555. package/dist/{context-CCfX2szU.d.ts → context-Cv3KlxWY.d.ts} +2 -2
  556. package/dist/{controller-CCb9tHw_.d.ts → controller-BZhiIb-N.d.ts} +1 -1
  557. package/dist/cors-h_v7TPxl.js +24 -0
  558. package/dist/cors-kLq6VM06.d.ts +15 -0
  559. package/dist/create/index.d.ts +25 -3
  560. package/dist/create/index.js +1002 -915
  561. package/dist/create/supabase/index.d.ts +1 -1
  562. package/dist/credentials/index.d.ts +5 -5
  563. package/dist/credentials/index.js +8 -8
  564. package/dist/{cron-CUaKTjWC.js → cron-BHdXZFsJ.js} +1 -1
  565. package/dist/{cron-route-BsgbJ-g4.js → cron-route-mTvWhork.js} +3 -3
  566. package/dist/{define-CMcokcZz.js → define-Bu1v781m.js} +82 -16
  567. package/dist/{define-DXTC706J.d.ts → define-DYZnvAbs.d.ts} +96 -43
  568. package/dist/{define-block-BlHQxDIQ.d.ts → define-block-BHxLHLys.d.ts} +7 -7
  569. package/dist/{delegation-Dt8hMJWu.js → delegation-B7uNnz6z.js} +2 -2
  570. package/dist/{documents-BYM2viS0.d.ts → documents-CqtVr2fg.d.ts} +4 -4
  571. package/dist/edge/index.d.ts +27 -38
  572. package/dist/edge/index.js +12 -32
  573. package/dist/elysia/index.d.ts +1 -1
  574. package/dist/elysia/index.js +1 -1
  575. package/dist/{embeddings-Da0w4A_0.d.ts → embeddings-CKhygw4C.d.ts} +1 -1
  576. package/dist/{ended-EcTtzzQJ.d.ts → ended-De6H52nX.d.ts} +2 -2
  577. package/dist/{entitlements-AmYp2KHX.js → entitlements-C8UvF1Rz.js} +3 -3
  578. package/dist/{entitlements-Bn7BTnbg.d.ts → entitlements-CtBGXb3B.d.ts} +2 -2
  579. package/dist/{envelope--7d0Q3Se.js → envelope-C4Z55LKW.js} +4 -4
  580. package/dist/{errors-8i6tSICm.js → errors-BV1SKTVs.js} +15 -1
  581. package/dist/{errors-7MqM7bbV.js → errors-D3BR8iUk.js} +2 -2
  582. package/dist/{escape-like-AUEPn-C5.d.ts → escape-like-B339PlP-.d.ts} +1 -1
  583. package/dist/eve/index.d.ts +5 -5
  584. package/dist/eve/index.js +2 -2
  585. package/dist/{eve-BcEr_hPo.d.ts → eve-B6ru2Bt4.d.ts} +2 -2
  586. package/dist/events/index.d.ts +3 -3
  587. package/dist/{events-CtAHxPal.d.ts → events-P3raDX2E.d.ts} +3 -3
  588. package/dist/{executor-CHRwEYqt.d.ts → executor-BWgJNbGh.d.ts} +1 -1
  589. package/dist/{executor-Cex-1PFp.js → executor-BiB0wMBA.js} +4 -4
  590. package/dist/{executor-BicyP8Nl.d.ts → executor-BnMC0lj3.d.ts} +2 -2
  591. package/dist/{executor-CIxyatuB.d.ts → executor-CvsNcQsa.d.ts} +3 -3
  592. package/dist/{executor-aKUo_Xyb.js → executor-CxGQiQN_.js} +3 -3
  593. package/dist/{executor-DzJQVTE2.d.ts → executor-D1hECPGG.d.ts} +1 -1
  594. package/dist/expo/index.d.ts +11 -9
  595. package/dist/expo/index.js +42 -7
  596. package/dist/expo-sqlite/index.d.ts +3 -3
  597. package/dist/expo-sqlite/index.js +2 -2
  598. package/dist/{field-errors-nFnYWvB0.d.ts → field-errors-Z-sgsdoN.d.ts} +7 -7
  599. package/dist/{filter-evaluate-CEm52E5s.d.ts → filter-evaluate-BJcaL3o1.d.ts} +1 -1
  600. package/dist/{filter-query-D3wOD1P_.d.ts → filter-query-Bc_Qa8V_.d.ts} +1 -1
  601. package/dist/{flags-Dz5PIzFU.d.ts → flags-6KK6Vqkr.d.ts} +3 -3
  602. package/dist/{flags-CtSrkVuW.js → flags-aUR7Rod6.js} +1 -1
  603. package/dist/flags-sdk/index.d.ts +1 -1
  604. package/dist/flags-sdk/index.js +2 -2
  605. package/dist/{framework-C2oL4OaO.d.ts → framework-BQhTsLX-.d.ts} +7 -7
  606. package/dist/{framework-Cfm0IspZ.js → framework-C6PKBgme.js} +2 -2
  607. package/dist/{function-contract-B4c0XuTU.d.ts → function-contract-DWqFl_QO.d.ts} +1 -1
  608. package/dist/{gateway-CJL6ZG17.d.ts → gateway-Bq_tWwxE.d.ts} +4 -4
  609. package/dist/h3/index.d.ts +1 -1
  610. package/dist/h3/index.js +1 -1
  611. package/dist/h3/v1/index.d.ts +1 -1
  612. package/dist/h3/v1/index.js +1 -1
  613. package/dist/{hmac-DCud0myt.js → hmac-BgpThYQW.js} +2 -1
  614. package/dist/hono/index.d.ts +34 -25
  615. package/dist/hono/index.js +18 -12
  616. package/dist/{http-BF-V0CUF.js → http-C7trc6uN.js} +2 -2
  617. package/dist/{impersonation-CDeCzZP6.js → impersonation-DxU6yHJV.js} +1 -1
  618. package/dist/{inbox-BaUJgHOF.d.ts → inbox-Du5aPwKB.d.ts} +4 -4
  619. package/dist/{index-DTQbC3CW.d.ts → index-1Vsg-7YV.d.ts} +1 -1
  620. package/dist/{index-8xwnaWHY.d.ts → index-BJLPQr2s.d.ts} +38 -5
  621. package/dist/{index-DL8z_oDo.d.ts → index-BpyBH5O2.d.ts} +4 -4
  622. package/dist/{index-Ck4oK5vV.d.ts → index-C-_fs7EI.d.ts} +8 -8
  623. package/dist/{index-BurdFUXr.d.ts → index-CXFf-c-j.d.ts} +7 -7
  624. package/dist/{index-MCXVzkXs.d.ts → index-Cm2-g_4H.d.ts} +5 -5
  625. package/dist/{index-DcijDfh1.d.ts → index-DTQSeHx2.d.ts} +4 -4
  626. package/dist/{index-D1kMyNc7.d.ts → index-Hc4tetmB.d.ts} +2 -2
  627. package/dist/{index-gXy3R1Uq.d.ts → index-QWTq2o31.d.ts} +1 -1
  628. package/dist/{index-Cckxs8IE.d.ts → index-XcTBR4Gb.d.ts} +3 -3
  629. package/dist/{index-DMONTkSf.d.ts → index-k-rrfG1g.d.ts} +2 -2
  630. package/dist/{index-Co0YsJTk.d.ts → index-wTnPJUhv.d.ts} +2 -2
  631. package/dist/index.d.ts +13 -13
  632. package/dist/index.js +10 -10
  633. package/dist/jwks-cache-C4rA69hD.js +49 -0
  634. package/dist/{jws-milwSg7E.js → jws-CwBB5QAT.js} +5 -3
  635. package/dist/{kit-BlcEFQql.d.ts → kit-De-EVRhw.d.ts} +4 -4
  636. package/dist/{kit-gqwkVhGU.js → kit-LTbHrWWD.js} +6 -6
  637. package/dist/{knowledge-BYtgA52P.d.ts → knowledge-B5zdpDD-.d.ts} +6 -6
  638. package/dist/{knowledge-CSNKLX-s.js → knowledge-BbdXOJvY.js} +4 -4
  639. package/dist/lint/index.d.ts +1 -1
  640. package/dist/lint/index.js +47 -2
  641. package/dist/list/index.d.ts +3 -3
  642. package/dist/{list-query-DWJIiVz_.d.ts → list-query-aXr2WkGA.d.ts} +5 -5
  643. package/dist/mcp/index.d.ts +21 -21
  644. package/dist/mcp/index.js +10 -10
  645. package/dist/mcp/sdk/index.d.ts +17 -17
  646. package/dist/mcp/sdk/index.js +5 -5
  647. package/dist/{messages-Cx4ttLJJ.js → messages-D5nIfCCf.js} +2 -2
  648. package/dist/{mfa-DtflCXEt.d.ts → mfa-YzkRjNad.d.ts} +1 -1
  649. package/dist/{model-messages-CTu-6kBu.js → model-messages-CIdqdUtk.js} +1 -1
  650. package/dist/{money-codec-DCGgzO26.js → money-codec-C21MWw50.js} +2 -2
  651. package/dist/nestjs/index.d.ts +2 -2
  652. package/dist/nestjs/index.js +1 -1
  653. package/dist/next/index.d.ts +34 -29
  654. package/dist/next/index.js +14 -14
  655. package/dist/node/index.d.ts +2 -2
  656. package/dist/node/index.js +1 -1
  657. package/dist/{onboarding-viTTNWUp.js → onboarding-Du6kCmhF.js} +2 -2
  658. package/dist/openapi/index.d.ts +2 -2
  659. package/dist/openapi/index.js +2 -2
  660. package/dist/{operations-BtuQRwTJ.d.ts → operations-DQCWqkt3.d.ts} +1 -1
  661. package/dist/{options-CZk_fbbg.js → options-BCrqe3HH.js} +2 -1
  662. package/dist/options-CEMawFrr.js +5 -0
  663. package/dist/options-RKYdmIdV.js +5 -0
  664. package/dist/{options-CbSOj53r.d.ts → options-ZQzNKKBS.d.ts} +1 -1
  665. package/dist/{organizations-Bxrm32IG.js → organizations-CO2qg44D.js} +6 -6
  666. package/dist/orpc/index.d.ts +18 -18
  667. package/dist/orpc/index.js +7 -7
  668. package/dist/otel/index.d.ts +2 -2
  669. package/dist/otel/index.js +5 -5
  670. package/dist/{outbox-BCGHl9X6.d.ts → outbox-B1hZ7PPY.d.ts} +6 -6
  671. package/dist/{payments-h45bswA-.js → payments-CzjCdIcz.js} +1 -1
  672. package/dist/{plugin-D5OIaP93.d.ts → plugin-D-95Q0w0.d.ts} +3 -3
  673. package/dist/plugins/actor/index.d.ts +1 -1
  674. package/dist/plugins/actor/index.js +1 -1
  675. package/dist/plugins/rules/index.d.ts +2 -2
  676. package/dist/plugins/rules/index.js +1 -1
  677. package/dist/plugins/soft-delete/index.d.ts +3 -3
  678. package/dist/plugins/soft-delete/index.js +2 -2
  679. package/dist/plugins/tenant/index.d.ts +2 -2
  680. package/dist/plugins/tenant/index.js +2 -2
  681. package/dist/plugins/timestamps/index.d.ts +1 -1
  682. package/dist/plugins/timestamps/index.js +1 -1
  683. package/dist/plugins/validation/index.d.ts +2 -2
  684. package/dist/plugins/validation/index.js +3 -3
  685. package/dist/{pool-BBi4mot3.d.ts → pool-cM3rpOQr.d.ts} +3 -3
  686. package/dist/{pool-errors-C94tPR_G.js → pool-errors-CGqvTQOC.js} +2 -2
  687. package/dist/{ports-Dcnuo3HT.d.ts → ports-BCDIbC_U.d.ts} +2 -2
  688. package/dist/{ports-B53rB7zg.d.ts → ports-P0A5wo_-.d.ts} +11 -11
  689. package/dist/{ports-Bcdppx0G.js → ports-aALjot-D.js} +11 -7
  690. package/dist/postgres/index.d.ts +5 -5
  691. package/dist/postgres/index.js +3 -3
  692. package/dist/{postgrest-D6fEMsp4.d.ts → postgrest-CjnO1hbr.d.ts} +1 -1
  693. package/dist/powersync/index.d.ts +4 -4
  694. package/dist/powersync/index.js +4 -4
  695. package/dist/powersync/react/index.d.ts +3 -3
  696. package/dist/powersync/react/index.js +1 -1
  697. package/dist/preset/index.d.ts +4 -4
  698. package/dist/preset/index.js +3 -3
  699. package/dist/{preset-BBrL6_Ln.js → preset-Cf0T9GRt.js} +49 -6
  700. package/dist/{problem-CEjyhV5T.d.ts → problem-DCDIQiTA.d.ts} +1 -1
  701. package/dist/{problem-pIiL3WbE.js → problem-JRCohp1j.js} +1 -1
  702. package/dist/{provider-DKh2xFZb.js → provider-C-Ti38J6.js} +1 -1
  703. package/dist/{provider-CQ1SrhLa.d.ts → provider-DXgx5oSA.d.ts} +2 -2
  704. package/dist/{push-token-CDMgWT13.d.ts → push-token-y1Gnz5bQ.d.ts} +1 -1
  705. package/dist/query/index.d.ts +2 -2
  706. package/dist/{rank-result-Dngpt2n5.d.ts → rank-result-BcYfDA0x.d.ts} +1 -1
  707. package/dist/{rank-result-oUF1DYBm.js → rank-result-DtQuIvob.js} +2 -2
  708. package/dist/{rate-limit-BtbddDnE.js → rate-limit-DVZ7qIzW.js} +1 -1
  709. package/dist/{rate-limit-ByfWNX9N.js → rate-limit-I3AncmM8.js} +8 -8
  710. package/dist/{rate-limit-C88MEAOm.d.ts → rate-limit-c6c1mB6R.d.ts} +2 -2
  711. package/dist/react/index.d.ts +8 -8
  712. package/dist/react/index.js +2 -2
  713. package/dist/react/native/index.d.ts +1 -1
  714. package/dist/react/native/index.js +1 -1
  715. package/dist/react/server.d.ts +9 -9
  716. package/dist/react/server.js +2 -2
  717. package/dist/react/session.d.ts +2 -2
  718. package/dist/{react-BcKACxsj.js → react-DzukE6Wp.js} +3 -3
  719. package/dist/react-router/index.d.ts +11 -11
  720. package/dist/react-router/index.js +6 -6
  721. package/dist/{read-set-PWiJfv6S.js → read-set-DeesfeL_.js} +2 -2
  722. package/dist/realtime/index.d.ts +6 -6
  723. package/dist/realtime/index.js +2 -2
  724. package/dist/{refusal-Bdr1k47u.d.ts → refusal-C7geIBRl.d.ts} +1 -1
  725. package/dist/{refusal-Ch-u9dVd.js → refusal-CFpfmjcS.js} +4 -4
  726. package/dist/{resolve-CAR9oaKW.js → resolve-AtncaPTU.js} +17 -9
  727. package/dist/{resolve-7atr-wWr.d.ts → resolve-Ceft-18-.d.ts} +9 -5
  728. package/dist/{resource-CHGOmg1O.js → resource-Bdkqi8jo.js} +6 -6
  729. package/dist/{resource-DxcgtHq6.d.ts → resource-DYEtc-KN.d.ts} +1 -1
  730. package/dist/{resource-execute-C45ICrN9.d.ts → resource-execute-Bxvgmx-n.d.ts} +2 -2
  731. package/dist/{resource-types-CC59gMHE.d.ts → resource-types-LW1i5-h3.d.ts} +6 -6
  732. package/dist/{resources-B7htXQeg.js → resources-Ck7itNeX.js} +3 -3
  733. package/dist/{resources-B71O7EVQ.d.ts → resources-D3_FAz_H.d.ts} +2 -2
  734. package/dist/{respond-Cdg5ibH5.d.ts → respond-BSL36dQp.d.ts} +3 -3
  735. package/dist/{respond-Dpx48ATq.js → respond-Bhp3G__q.js} +5 -5
  736. package/dist/{result-Cj3yWhjH.d.ts → result-BREt7qOh.d.ts} +15 -1
  737. package/dist/{result-COkvI9t5.js → result-DIeYscA3.js} +1 -1
  738. package/dist/{rrule-zBh3CA1r.js → rrule-Cw4x4Pf_.js} +1 -1
  739. package/dist/{rules-4of_Fq-6.js → rules-BiQgmZ_U.js} +4 -4
  740. package/dist/{sales-lines-CymdiwYd.js → sales-lines-CQ1iC6QM.js} +3 -3
  741. package/dist/{sales-shared-DjCuN8xG.js → sales-shared-CDSytDEn.js} +2 -2
  742. package/dist/{search-LbjCylX5.js → search-ZP13UTT4.js} +3 -3
  743. package/dist/server/index.d.ts +38 -30
  744. package/dist/server/index.js +19 -64
  745. package/dist/{server-types-fXwJoFjt.d.ts → server-types-fLdep4gb.d.ts} +50 -30
  746. package/dist/{session-Djo5t4KQ.d.ts → session-DObioXpX.d.ts} +11 -11
  747. package/dist/{settings-DxXfDUmh.js → settings-BiHDFglz.js} +5 -5
  748. package/dist/{shared-9B02lczf.js → shared-C9zvURqC.js} +1 -1
  749. package/dist/{shared-as0EG51f.js → shared-D5Djh43x.js} +1 -1
  750. package/dist/{sign-in-D0xN6E_l.js → sign-in-z2BaBdps.js} +10 -3
  751. package/dist/{signatures-BMdJ7neI.d.ts → signatures-BXlDXV3D.d.ts} +1 -1
  752. package/dist/{signatures-C9CGYZS1.js → signatures-CeIoAelK.js} +5 -5
  753. package/dist/{signers-BjSgNAXP.d.ts → signers-BwKV-9S6.d.ts} +6 -6
  754. package/dist/{signing-keys-Ccr86Y2C.d.ts → signing-keys-v2MRYkDF.d.ts} +20 -5
  755. package/dist/solid/index.d.ts +8 -8
  756. package/dist/solid/index.js +1 -1
  757. package/dist/{solid-controller-CZrt1Tg6.d.ts → solid-controller-CWotGxcG.d.ts} +1 -1
  758. package/dist/solid-start/index.d.ts +11 -11
  759. package/dist/solid-start/index.js +5 -5
  760. package/dist/spec/index.d.ts +3 -3
  761. package/dist/spec/index.js +3 -3
  762. package/dist/sql/index.d.ts +4 -4
  763. package/dist/sql/index.js +2 -2
  764. package/dist/{sql-BQshMgmB.js → sql-BPKRNutj.js} +3 -3
  765. package/dist/{sql-CgTZOQZ7.js → sql-CT1Jnwp8.js} +1919 -698
  766. package/dist/{sso-CwAnve68.js → sso-BaU_6ePE.js} +4 -4
  767. package/dist/{sso-B5ZoEsXE.d.ts → sso-Bu0mVh0V.d.ts} +4 -4
  768. package/dist/ssr/index.d.ts +4 -4
  769. package/dist/ssr/index.js +3 -3
  770. package/dist/{standard-DZmwmIhV.js → standard-B1BigegP.js} +2 -2
  771. package/dist/{standard-C3_AAF3g.d.ts → standard-BcUQuUgu.d.ts} +1 -1
  772. package/dist/{stats-CUhqw6Ev.js → stats-Di5VAsYU.js} +4 -4
  773. package/dist/storage/index.d.ts +3 -3
  774. package/dist/storage/index.js +17 -6
  775. package/dist/{store-B5qYKsTh.d.ts → store-B18bIvKc.d.ts} +1 -1
  776. package/dist/streams/index.d.ts +3 -3
  777. package/dist/streams/index.js +3 -3
  778. package/dist/streams/redis/index.d.ts +1 -1
  779. package/dist/streams/redis/index.js +2 -2
  780. package/dist/{subject-readers-81xiWh4M.d.ts → subject-readers-BUChuOxL.d.ts} +2 -2
  781. package/dist/{subject-readers-DDyPTIOr.js → subject-readers-BpwUFJtp.js} +1 -1
  782. package/dist/{support-BsqhV6jP.js → support-C2wPYwD7.js} +8 -8
  783. package/dist/{support-view-CznLe4jq.d.ts → support-view-Bj_lZ8Wr.d.ts} +1 -1
  784. package/dist/svelte/index.d.ts +7 -7
  785. package/dist/svelte/index.js +1 -1
  786. package/dist/{svelte-controller-DDbju9CW.d.ts → svelte-controller-sS4X66yL.d.ts} +1 -1
  787. package/dist/sveltekit/index.d.ts +13 -13
  788. package/dist/sveltekit/index.js +7 -7
  789. package/dist/{tags-DGldvcA4.js → tags-BqgaxCnv.js} +5 -5
  790. package/dist/{tags-7NHyD1P8.d.ts → tags-BrGopDVG.d.ts} +1 -1
  791. package/dist/tanstack-db/index.d.ts +2 -2
  792. package/dist/tanstack-db/supabase/index.d.ts +2 -2
  793. package/dist/tanstack-start/index.d.ts +11 -11
  794. package/dist/tanstack-start/index.js +5 -5
  795. package/dist/{tax-DDZUB_oc.d.ts → tax-DMWDUzKt.d.ts} +2 -2
  796. package/dist/{tax-DZDpMMRw.js → tax-wm9g2mD2.js} +2 -2
  797. package/dist/{tee-CdRV1tcj.js → tee-Cw-iJAWL.js} +1 -1
  798. package/dist/{template-DdgYjIZ5.js → template-Dw3dTmKe.js} +1 -1
  799. package/dist/{temporal-required-DqRzr7i0.js → temporal-required-nfZ87U-0.js} +1 -1
  800. package/dist/{tenant-DW_GmsW4.d.ts → tenant-DZMLVuyQ.d.ts} +2 -2
  801. package/dist/testing/index.d.ts +134 -60
  802. package/dist/testing/index.js +251 -120
  803. package/dist/{topic-Dgs-eSYQ.d.ts → topic-DAY_HOX2.d.ts} +20 -6
  804. package/dist/{topic-DB-1YTMj.js → topic-mee21pux.js} +85 -17
  805. package/dist/{types-C_GN-4ed.d.ts → types-BA1eTvy4.d.ts} +5 -5
  806. package/dist/{types-P1S1cj6N.d.ts → types-BEEFkNFY.d.ts} +7 -7
  807. package/dist/{types-DZj8CZMH.d.ts → types-Bels39_u.d.ts} +10 -10
  808. package/dist/{types-BO8lVTun.d.ts → types-BrpW5ixT.d.ts} +8 -1
  809. package/dist/{types-DM8q3IOr.d.ts → types-DOC7wnh6.d.ts} +17 -8
  810. package/dist/{types-DOaUIJxW.d.ts → types-D_2rClz-.d.ts} +5 -5
  811. package/dist/{undo-0qM13zul.js → undo-B5LgpGLy.js} +4 -4
  812. package/dist/{undo-D42sPjCf.d.ts → undo-BsdYRox7.d.ts} +3 -3
  813. package/dist/upload-claim-BBFCZbBF.js +33 -0
  814. package/dist/{usage-CnQHSM_r.d.ts → usage-C504GF55.d.ts} +23 -5
  815. package/dist/{usage-BrJGPvCq.js → usage-DdqT13_X.js} +14 -3
  816. package/dist/{vault-EnOQJWjn.d.ts → vault-ClkzMGTP.d.ts} +3 -3
  817. package/dist/vercel-connect/index.d.ts +1 -1
  818. package/dist/vercel-connect/index.js +2 -2
  819. package/dist/{verify-3NLjUIER.d.ts → verify-DU4p9-Ve.d.ts} +4 -4
  820. package/dist/{verify-C9D_jjsQ.js → verify-DnU-uWU2.js} +5 -5
  821. package/dist/{version-Bxj_xcUY.js → version-DSWxci83.js} +1 -1
  822. package/dist/{view-DZ63nqwt.js → view-CYX1wsgp.js} +3 -3
  823. package/dist/{view-SuASaomx.d.ts → view-KQhe6eNc.d.ts} +3 -3
  824. package/dist/vue/index.d.ts +8 -8
  825. package/dist/vue/index.js +1 -1
  826. package/dist/{vue-controller-D_ohttBZ.d.ts → vue-controller-BUo1oove.d.ts} +1 -1
  827. package/dist/{watch-D1wwzZ04.d.ts → watch-5btote1y.d.ts} +6 -6
  828. package/dist/{watch-Blj1mQ9n.js → watch-BAuIzC2r.js} +1 -1
  829. package/dist/{watch-topic-D-rpUg5n.d.ts → watch-topic-C79ZW5-R.d.ts} +1 -1
  830. package/dist/{wire-DEY0ajW9.js → wire-BCJxCtHS.js} +2 -2
  831. package/dist/{workflow-builder-C5DBN7yq.js → workflow-builder-CynLqc6H.js} +7 -7
  832. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  833. package/dist/workflow-sdk/builder/index.js +1 -1
  834. package/dist/workflow-sdk/index.d.ts +1 -1
  835. package/dist/workflow-sdk/index.js +1 -1
  836. package/dist/workflow-sdk/world/index.d.ts +1 -1
  837. package/dist/workflow-sdk/world/index.js +6 -6
  838. package/dist/{workflow-sdk-Di5pmCAu.d.ts → workflow-sdk-CWdCWj7M.d.ts} +3 -3
  839. package/dist/{workflow-sdk-vjDWlnfX.js → workflow-sdk-QnnzIQRc.js} +2 -2
  840. package/dist/{workflow-sdk-world-DPMdBfzn.js → workflow-sdk-world-QzcxaaCD.js} +1 -1
  841. package/dist/{workflows-DJXoxDZH.d.ts → workflows-DQBCzrHC.d.ts} +4 -4
  842. package/dist/{workflows-DzdX28KN.js → workflows-H9qJge3f.js} +5 -5
  843. package/dist/yjs/index.d.ts +3 -3
  844. package/dist/yjs/index.js +3 -3
  845. package/package.json +10 -1
  846. package/schemas/cli-commands-v1.json +15 -0
  847. package/schemas/config-v1.json +47 -3
  848. package/schemas/doctor-report-v1.json +4 -0
  849. package/schemas/snapshot-v2.json +4 -0
  850. package/dist/cli/add-ojbcMxyp.js +0 -1
  851. package/dist/cli/adopt-D0ASVx2G.js +0 -1
  852. package/dist/cli/env-DkBe35Rv.js +0 -1
  853. package/dist/cli/seed-ClGWseBT.js +0 -1
@@ -1,27 +1,27 @@
1
1
  import { t as DbException } from "../db-exception-CnWcYPxL.js";
2
- import { n as dbError } from "../errors-8i6tSICm.js";
2
+ import { n as dbError } from "../errors-BV1SKTVs.js";
3
3
  import { d as temporalText } from "../temporal-CB5Fpo5d.js";
4
- import { t as temporal } from "../temporal-required-DqRzr7i0.js";
5
- import { a as ok } from "../result-COkvI9t5.js";
6
- import { t as BetterSupabase } from "../define-CMcokcZz.js";
4
+ import { t as temporal } from "../temporal-required-nfZ87U-0.js";
5
+ import { a as ok } from "../result-DIeYscA3.js";
6
+ import { t as BetterSupabase } from "../define-Bu1v781m.js";
7
7
  import { t as isList } from "../guards-6F2bCtQR.js";
8
- import { a as toBase64Url, r as fromBase64, t as base64ToText } from "../base64-BmeCBgGo.js";
9
- import { o as resolveConfig } from "../config-CkyahUjo.js";
10
- import { a as isScopeName, c as templateFunctions, l as templatePlaceholders, n as TEMPLATE_PLACEHOLDERS, s as scopeProblems, u as templateProblems } from "../access-sql-DUSSMaC3.js";
8
+ import { a as toBase64Url, r as fromBase64, t as base64ToText } from "../base64-D4aqdnDR.js";
9
+ import { o as resolveConfig } from "../config-NQmw_wsk.js";
10
+ import { a as isScopeName, c as templateFunctions, l as templatePlaceholders, n as TEMPLATE_PLACEHOLDERS, s as scopeProblems, u as templateProblems } from "../access-sql-CTJPHjCL.js";
11
11
  import { i as seedLite, n as loadLite, r as migrateLite, t as LITE_INSTALL } from "../runtime-BOXURhEW.js";
12
12
  import { ENV_VARIABLES } from "../env/index.js";
13
13
  import { t as defineController } from "../controller-D6NyNrlZ.js";
14
14
  import "../replicas-BvIL4_jL.js";
15
- import { a as tenantCredentialRef } from "../provider-DKh2xFZb.js";
16
- import { n as rawError } from "../block-transport-G4t1umrR.js";
17
- import { t as postgresExecutor } from "../executor-aKUo_Xyb.js";
18
- import { i as requestOf, n as checkPermission, r as defineAuthorizer } from "../authorizer-dVVN05Un.js";
15
+ import { a as tenantCredentialRef } from "../provider-C-Ti38J6.js";
16
+ import { n as rawError } from "../block-transport-J7ZepTq2.js";
17
+ import { t as postgresExecutor } from "../executor-CxGQiQN_.js";
18
+ import { i as requestOf, n as checkPermission, r as defineAuthorizer } from "../authorizer-B3yyCVUF.js";
19
19
  import { n as parseDbStats } from "../timing-BMCWgpdZ.js";
20
20
  import { t as mailHeaders } from "../delivery-B1mKaOen.js";
21
21
  import { toCloudEvents } from "../events/index.js";
22
22
  import { d as money, l as isRate } from "../money-95Rff2vT.js";
23
- import { t as SHIPPING_LINE } from "../tax-DZDpMMRw.js";
24
- import { t as buildApiModel } from "../build-Cm0T5MVG.js";
23
+ import { t as SHIPPING_LINE } from "../tax-wm9g2mD2.js";
24
+ import { t as buildApiModel } from "../build-CT6SPZkI.js";
25
25
  import { timestamps } from "../plugins/timestamps/index.js";
26
26
  import { softDelete } from "../plugins/soft-delete/index.js";
27
27
  import { tenant } from "../plugins/tenant/index.js";
@@ -185,7 +185,12 @@ async function signLocalJwt(claims, path) {
185
185
  //#region src/testing/as-user.ts
186
186
  /** The local CLI stack's default JWT secret. */
187
187
  const LOCAL_JWT_SECRET = "super-secret-jwt-token-with-at-least-32-characters-long";
188
- function env$1(...names) {
188
+ const internals = /* @__PURE__ */ new WeakMap();
189
+ /** The pool and identity behind a user from `asUser`, or `undefined` for any other object. */
190
+ function internalsOf(user) {
191
+ return internals.get(user);
192
+ }
193
+ function env$2(...names) {
189
194
  if (typeof process === "undefined") return;
190
195
  for (const name of names) {
191
196
  const value = process.env[name];
@@ -204,7 +209,7 @@ async function signFor(stack, url, claims) {
204
209
  case "ES256": return signTestJwtWithKey(stack.signingKey ?? await localSigningKey(stack.signingKeysPath), claims);
205
210
  case "HS256":
206
211
  if (!LOCAL_HOSTS.has(new URL(url).hostname)) throw new TypeError(`asUser signs HS256 tokens only for a local stack, not ${url}. Use the ES256 key from \`better-supabase keys\`.`);
207
- return signTestJwt(stack.jwtSecret ?? env$1("SUPABASE_JWT_SECRET") ?? "super-secret-jwt-token-with-at-least-32-characters-long", claims);
212
+ return signTestJwt(stack.jwtSecret ?? env$2("SUPABASE_JWT_SECRET") ?? "super-secret-jwt-token-with-at-least-32-characters-long", claims);
208
213
  default: throw new TypeError(`asUser: unknown alg "${String(alg)}"`);
209
214
  }
210
215
  }
@@ -220,8 +225,8 @@ async function signFor(stack, url, claims) {
220
225
  * ```
221
226
  */
222
227
  async function asUser(betterSupabase, claims, stack = {}) {
223
- const url = stack.url ?? env$1(...ENV_VARIABLES.url) ?? "http://127.0.0.1:54321";
224
- const publishableKey = stack.publishableKey ?? env$1(...ENV_VARIABLES.publishableKey, "SUPABASE_ANON_KEY");
228
+ const url = stack.url ?? env$2(...ENV_VARIABLES.url) ?? "http://127.0.0.1:54321";
229
+ const publishableKey = stack.publishableKey ?? env$2(...ENV_VARIABLES.publishableKey, "SUPABASE_ANON_KEY");
225
230
  if (!publishableKey) throw new TypeError("asUser needs publishableKey or $SUPABASE_PUBLISHABLE_KEY. Run `better-supabase env` to write it to .env.local.");
226
231
  const token = await signFor(stack, url, claims);
227
232
  const full = {
@@ -239,15 +244,24 @@ async function asUser(betterSupabase, claims, stack = {}) {
239
244
  };
240
245
  const supabase = createClient(url, publishableKey, {
241
246
  accessToken: () => Promise.resolve(token),
247
+ tracePropagation: stack.tracePropagation ?? false,
242
248
  ...stack.fetch ? { global: { fetch: stack.fetch } } : {}
243
249
  });
244
- return {
250
+ const user = {
245
251
  token,
246
252
  claims: full,
253
+ context,
247
254
  supabase,
248
255
  db: betterSupabase.connect(supabase, context),
249
256
  sql: stack.postgres ? betterSupabase.connect(postgresExecutor(stack.postgres.asUser(full)), context) : void 0
250
257
  };
258
+ internals.set(user, {
259
+ connect: (client) => betterSupabase.connect(postgresExecutor(client), context),
260
+ postgres: stack.postgres,
261
+ claims: full,
262
+ context
263
+ });
264
+ return user;
251
265
  }
252
266
  //#endregion
253
267
  //#region src/testing/lite.ts
@@ -499,6 +513,224 @@ async function expectInstant(page, expectation) {
499
513
  });
500
514
  }
501
515
  //#endregion
516
+ //#region src/testing/seed.ts
517
+ const SEED = Symbol.for("better-supabase.seed");
518
+ function isSeed(value) {
519
+ return typeof value === "object" && value !== null && SEED in value;
520
+ }
521
+ const quote = (text) => `'${text.replaceAll("'", "''")}'`;
522
+ function arrayLiteral(values) {
523
+ return `{${values.map((value) => {
524
+ if (value === null) return "NULL";
525
+ if (Array.isArray(value)) return arrayLiteral(value);
526
+ return `"${(temporalText(value) ?? String(value)).replaceAll(/[\\"]/g, "\\$&")}"`;
527
+ }).join(",")}}`;
528
+ }
529
+ function literal(value, column, where) {
530
+ if (value === null) return "null";
531
+ if (column.json) return quote(JSON.stringify(value));
532
+ if (Array.isArray(value)) return quote(arrayLiteral(value));
533
+ const temporalValue = temporalText(value);
534
+ if (temporalValue !== void 0) return quote(temporalValue);
535
+ const kind = typeof value;
536
+ switch (kind) {
537
+ case "string": return quote(value);
538
+ case "boolean":
539
+ case "bigint": return String(value);
540
+ case "number":
541
+ if (!Number.isFinite(value)) throw new TypeError(`${where}: ${String(value)} is not a finite number`);
542
+ return String(value);
543
+ case "object":
544
+ case "function":
545
+ case "symbol":
546
+ case "undefined": throw new TypeError(`${where}: unsupported value of type ${kind}`);
547
+ default: throw new TypeError(`${where}: unsupported value of type ${String(kind)}`);
548
+ }
549
+ }
550
+ const ident = (name) => `"${name.replaceAll("\"", "\"\"")}"`;
551
+ /** Parents first (by forward relations), otherwise in the order given. */
552
+ function order(meta, keys) {
553
+ const sorted = [];
554
+ const visiting = /* @__PURE__ */ new Set();
555
+ const visit = (key) => {
556
+ if (sorted.includes(key) || visiting.has(key)) return;
557
+ visiting.add(key);
558
+ for (const relation of Object.values(meta.tables[key]?.relations ?? {})) if (relation.direction === "forward" && relation.table !== key && keys.includes(relation.table)) visit(relation.table);
559
+ visiting.delete(key);
560
+ sorted.push(key);
561
+ };
562
+ for (const key of keys) visit(key);
563
+ return sorted;
564
+ }
565
+ function statement(table, rows) {
566
+ const entries = Object.entries(rows);
567
+ if (entries.length === 0) return;
568
+ const columns = [];
569
+ for (const [, row] of entries) for (const [key, value] of Object.entries(row)) {
570
+ if (value === void 0 || columns.includes(key)) continue;
571
+ const column = table.columns[key];
572
+ if (!column) throw new TypeError(`seed ${table.key}: unknown column "${key}"`);
573
+ if (column.generated) throw new TypeError(`seed ${table.key}: "${key}" is a generated column`);
574
+ columns.push(key);
575
+ }
576
+ const values = entries.map(([name, row]) => {
577
+ return ` (${columns.map((key) => row[key] === void 0 ? "default" : literal(row[key], table.columns[key], `seed ${table.key}.${name}.${key}`)).join(", ")})`;
578
+ });
579
+ return `insert into ${`${ident(table.schema)}.${ident(table.name)}`} (${columns.map((key) => ident(table.columns[key].db)).join(", ")}) values\n${values.join(",\n")}\non conflict do nothing;`;
580
+ }
581
+ /**
582
+ * Typed fixtures shared by `supabase/seeds` and your tests. Rows use app
583
+ * casing and Insert types; `better-supabase seed` renders them to SQL.
584
+ *
585
+ * ```ts
586
+ * export const seed = defineSeed(betterSupabase, {
587
+ * organizations: { acme: { id: ACME, name: 'Acme' } },
588
+ * customers: { first: { organizationId: ACME, name: 'First customer' } },
589
+ * });
590
+ * ```
591
+ */
592
+ function defineSeed(betterSupabase, fixtures) {
593
+ const meta = betterSupabase.meta;
594
+ const statements = () => {
595
+ const keys = Object.keys(fixtures).filter((key) => fixtures[key] !== void 0);
596
+ for (const key of keys) {
597
+ const table = meta.tables[key];
598
+ if (!table) throw new TypeError(`seed: unknown table "${key}"`);
599
+ if (table.kind === "view") throw new TypeError(`seed: "${key}" is a view`);
600
+ }
601
+ return order(meta, keys).flatMap((key) => {
602
+ const sql = statement(meta.tables[key], fixtures[key]);
603
+ return sql ? [sql] : [];
604
+ });
605
+ };
606
+ return {
607
+ [SEED]: true,
608
+ rows: fixtures,
609
+ statements,
610
+ sql: () => statements().join("\n\n"),
611
+ async insert(sql) {
612
+ for (const text of statements()) await sql.queryRaw(text);
613
+ }
614
+ };
615
+ }
616
+ //#endregion
617
+ //#region src/testing/scope.ts
618
+ function env$1(names) {
619
+ if (typeof process === "undefined") return;
620
+ for (const name of names) {
621
+ const value = process.env[name];
622
+ if (value) return value;
623
+ }
624
+ }
625
+ /**
626
+ * Fresh rows for one test, so tests that run at the same time never share
627
+ * data. It creates a new tenant id, inserts the fixtures that `build` returns
628
+ * through the service role (RLS and plugins don't apply), and hands back the
629
+ * inserted rows. Call `cleanup()` in `afterEach` (or `await using`) to delete
630
+ * them. A user from `asUser` then reads them over PostgREST like any other.
631
+ *
632
+ * ```ts
633
+ * const scope = await scopedSeed(
634
+ * betterSupabase,
635
+ * ({ tenant, id }) => ({
636
+ * customers: { first: { organizationId: tenant, name: `first-${id()}` } },
637
+ * }),
638
+ * { tenant: { table: 'organizations', row: (id) => ({ id, name: id, slug: id }) } },
639
+ * );
640
+ * const alice = await asUser(betterSupabase, { sub: aliceId, tenant_id: scope.tenant });
641
+ * expect(await alice.db.customers.count().orThrow()).toBe(1);
642
+ * await scope.cleanup();
643
+ * ```
644
+ */
645
+ async function scopedSeed(betterSupabase, build, options = {}) {
646
+ const stack = options.stack ?? {};
647
+ const url = stack.url ?? env$1(ENV_VARIABLES.url) ?? "http://127.0.0.1:54321";
648
+ const secretKey = stack.secretKey ?? env$1(ENV_VARIABLES.secretKey);
649
+ if (!secretKey) throw new TypeError("scopedSeed needs stack.secretKey or $SUPABASE_SECRET_KEY to insert rows.");
650
+ const bare = new BetterSupabase(betterSupabase.schema);
651
+ const admin = bare.connect(createClient(url, secretKey, { auth: {
652
+ persistSession: false,
653
+ autoRefreshToken: false
654
+ } }));
655
+ const tenant = crypto.randomUUID();
656
+ const fixtures = build({
657
+ tenant,
658
+ id: () => crypto.randomUUID()
659
+ });
660
+ const cleanup = [];
661
+ const insert = async (table, row) => {
662
+ const repository = admin[table];
663
+ if (!repository) throw new TypeError(`scopedSeed: unknown table "${table}"`);
664
+ const result = await repository.create(row);
665
+ if (!result.ok) throw new Error(`scopedSeed ${table}: ${result.error.message}`);
666
+ const meta = bare.meta.tables[table];
667
+ const created = result.data;
668
+ if (meta && meta.primaryKey.length > 0) {
669
+ const where = Object.fromEntries(meta.primaryKey.map((column) => [column, created[column]]));
670
+ cleanup.push(() => repository.deleteMany({ where }));
671
+ }
672
+ return created;
673
+ };
674
+ const remove = async () => {
675
+ const pending = cleanup.splice(0).reverse();
676
+ let failure;
677
+ for (const run of pending) try {
678
+ await run();
679
+ } catch (error) {
680
+ failure ??= error;
681
+ }
682
+ if (failure !== void 0) throw failure instanceof Error ? failure : new Error(String(failure));
683
+ };
684
+ const rows = {};
685
+ try {
686
+ if (options.tenant) await insert(options.tenant.table, options.tenant.row(tenant));
687
+ const byTable = fixtures;
688
+ for (const key of order(bare.meta, Object.keys(byTable).filter((name) => byTable[name] !== void 0))) {
689
+ rows[key] = {};
690
+ for (const [name, row] of Object.entries(byTable[key] ?? {})) rows[key][name] = await insert(key, row);
691
+ }
692
+ } catch (error) {
693
+ await remove().catch(() => void 0);
694
+ throw error;
695
+ }
696
+ return {
697
+ tenant,
698
+ rows,
699
+ cleanup: remove,
700
+ [Symbol.asyncDispose]: remove
701
+ };
702
+ }
703
+ /** The error `withRollback` throws to end its transaction; never reaches callers. */
704
+ var Rollback = class extends Error {};
705
+ /**
706
+ * Runs `fn` as the user over direct Postgres inside one transaction and
707
+ * always rolls it back, so the test leaves no rows behind. `fn` gets the same
708
+ * repositories as `user.sql`. Only the `sql` path rolls back: `user.db` talks
709
+ * to PostgREST over HTTP and commits on its own.
710
+ *
711
+ * ```ts
712
+ * const alice = await asUser(betterSupabase, claims, { postgres });
713
+ * await withRollback(alice, async (db) => {
714
+ * await db.customers.create({ organizationId, name: 'Temp' }).orThrow();
715
+ * expect(await db.customers.count().orThrow()).toBe(1);
716
+ * });
717
+ * ```
718
+ */
719
+ async function withRollback(user, fn) {
720
+ const internal = internalsOf(user);
721
+ if (!internal?.postgres) throw new TypeError("withRollback needs a user from asUser(betterSupabase, claims, { postgres }): it rolls back over direct Postgres, not PostgREST.");
722
+ let outcome;
723
+ try {
724
+ await internal.postgres.transaction(async (client) => {
725
+ outcome = { value: await fn(internal.connect(client)) };
726
+ throw new Rollback("rollback");
727
+ }, { claims: internal.claims });
728
+ } catch (error) {
729
+ if (!(error instanceof Rollback) || !outcome) throw error;
730
+ }
731
+ return outcome.value;
732
+ }
733
+ //#endregion
502
734
  //#region src/testing/conformance.ts
503
735
  /** Thrown by a conformance kit when any check fails. Lists every failure, not just the first. */
504
736
  var ConformanceError = class extends Error {
@@ -957,107 +1189,6 @@ const supabaseInvalidClaimFixtures = {
957
1189
  }
958
1190
  };
959
1191
  //#endregion
960
- //#region src/testing/seed.ts
961
- const SEED = Symbol.for("better-supabase.seed");
962
- function isSeed(value) {
963
- return typeof value === "object" && value !== null && SEED in value;
964
- }
965
- const quote = (text) => `'${text.replaceAll("'", "''")}'`;
966
- function arrayLiteral(values) {
967
- return `{${values.map((value) => {
968
- if (value === null) return "NULL";
969
- if (Array.isArray(value)) return arrayLiteral(value);
970
- return `"${(temporalText(value) ?? String(value)).replaceAll(/[\\"]/g, "\\$&")}"`;
971
- }).join(",")}}`;
972
- }
973
- function literal(value, column, where) {
974
- if (value === null) return "null";
975
- if (column.json) return quote(JSON.stringify(value));
976
- if (Array.isArray(value)) return quote(arrayLiteral(value));
977
- const temporalValue = temporalText(value);
978
- if (temporalValue !== void 0) return quote(temporalValue);
979
- const kind = typeof value;
980
- switch (kind) {
981
- case "string": return quote(value);
982
- case "boolean":
983
- case "bigint": return String(value);
984
- case "number":
985
- if (!Number.isFinite(value)) throw new TypeError(`${where}: ${String(value)} is not a finite number`);
986
- return String(value);
987
- case "object":
988
- case "function":
989
- case "symbol":
990
- case "undefined": throw new TypeError(`${where}: unsupported value of type ${kind}`);
991
- default: throw new TypeError(`${where}: unsupported value of type ${String(kind)}`);
992
- }
993
- }
994
- const ident = (name) => `"${name.replaceAll("\"", "\"\"")}"`;
995
- /** Parents first (by forward relations), otherwise in the order given. */
996
- function order(meta, keys) {
997
- const sorted = [];
998
- const visiting = /* @__PURE__ */ new Set();
999
- const visit = (key) => {
1000
- if (sorted.includes(key) || visiting.has(key)) return;
1001
- visiting.add(key);
1002
- for (const relation of Object.values(meta.tables[key]?.relations ?? {})) if (relation.direction === "forward" && relation.table !== key && keys.includes(relation.table)) visit(relation.table);
1003
- visiting.delete(key);
1004
- sorted.push(key);
1005
- };
1006
- for (const key of keys) visit(key);
1007
- return sorted;
1008
- }
1009
- function statement(table, rows) {
1010
- const entries = Object.entries(rows);
1011
- if (entries.length === 0) return;
1012
- const columns = [];
1013
- for (const [, row] of entries) for (const [key, value] of Object.entries(row)) {
1014
- if (value === void 0 || columns.includes(key)) continue;
1015
- const column = table.columns[key];
1016
- if (!column) throw new TypeError(`seed ${table.key}: unknown column "${key}"`);
1017
- if (column.generated) throw new TypeError(`seed ${table.key}: "${key}" is a generated column`);
1018
- columns.push(key);
1019
- }
1020
- const values = entries.map(([name, row]) => {
1021
- return ` (${columns.map((key) => row[key] === void 0 ? "default" : literal(row[key], table.columns[key], `seed ${table.key}.${name}.${key}`)).join(", ")})`;
1022
- });
1023
- return `insert into ${`${ident(table.schema)}.${ident(table.name)}`} (${columns.map((key) => ident(table.columns[key].db)).join(", ")}) values\n${values.join(",\n")}\non conflict do nothing;`;
1024
- }
1025
- /**
1026
- * Typed fixtures shared by `supabase/seeds` and your tests. Rows use app
1027
- * casing and Insert types; `better-supabase seed` renders them to SQL.
1028
- *
1029
- * ```ts
1030
- * export const seed = defineSeed(betterSupabase, {
1031
- * organizations: { acme: { id: ACME, name: 'Acme' } },
1032
- * customers: { first: { organizationId: ACME, name: 'First customer' } },
1033
- * });
1034
- * ```
1035
- */
1036
- function defineSeed(betterSupabase, fixtures) {
1037
- const meta = betterSupabase.meta;
1038
- const statements = () => {
1039
- const keys = Object.keys(fixtures).filter((key) => fixtures[key] !== void 0);
1040
- for (const key of keys) {
1041
- const table = meta.tables[key];
1042
- if (!table) throw new TypeError(`seed: unknown table "${key}"`);
1043
- if (table.kind === "view") throw new TypeError(`seed: "${key}" is a view`);
1044
- }
1045
- return order(meta, keys).flatMap((key) => {
1046
- const sql = statement(meta.tables[key], fixtures[key]);
1047
- return sql ? [sql] : [];
1048
- });
1049
- };
1050
- return {
1051
- [SEED]: true,
1052
- rows: fixtures,
1053
- statements,
1054
- sql: () => statements().join("\n\n"),
1055
- async insert(sql) {
1056
- for (const text of statements()) await sql.queryRaw(text);
1057
- }
1058
- };
1059
- }
1060
- //#endregion
1061
1192
  //#region src/testing/kits/executor.ts
1062
1193
  const recorder = (ops) => ({
1063
1194
  name: "recorder",
@@ -3955,4 +4086,4 @@ const actCases = {
3955
4086
  ]
3956
4087
  };
3957
4088
  //#endregion
3958
- export { ConformanceError, LOCAL_JWT_SECRET, PROBE_INITIAL, actCases, asUser, createTestSigner, defineSeed, expectDbBudget, expectInstant, expectTenantIsolation, isSeed, liteStack, localAuth, localSigningKey, signLocalJwt, signTestJwt, signTestJwtWithKey, staticAuthorizer, supabaseClaimFixtures, supabaseInvalidClaimFixtures, testAdapter, testAiTaskRunner, testAuthResolver, testAuthorizationHooks, testAuthorizationProvider, testAuthorizer, testBlockTransportMiddleware, testBuilderStarter, testCacheAdapter, testChatState, testControllerBinding, testCredentialProvider, testDeliveryTransport, testDocumentFormat, testEmbedder, testEveDocumentBackend, testEventSink, testExecutor, testGenerator, testGraphCompiler, testIncomingDestination, testNotificationChannel, testPaymentProvider, testPlugin, testQueueBackend, testStreamStore, testSupportSessionStore, testTaxProvider, testWebhookSecretStore, testWebhookSigner, testWebhookTransport };
4089
+ export { ConformanceError, LOCAL_JWT_SECRET, PROBE_INITIAL, actCases, asUser, createTestSigner, defineSeed, expectDbBudget, expectInstant, expectTenantIsolation, isSeed, liteStack, localAuth, localSigningKey, scopedSeed, signLocalJwt, signTestJwt, signTestJwtWithKey, staticAuthorizer, supabaseClaimFixtures, supabaseInvalidClaimFixtures, testAdapter, testAiTaskRunner, testAuthResolver, testAuthorizationHooks, testAuthorizationProvider, testAuthorizer, testBlockTransportMiddleware, testBuilderStarter, testCacheAdapter, testChatState, testControllerBinding, testCredentialProvider, testDeliveryTransport, testDocumentFormat, testEmbedder, testEveDocumentBackend, testEventSink, testExecutor, testGenerator, testGraphCompiler, testIncomingDestination, testNotificationChannel, testPaymentProvider, testPlugin, testQueueBackend, testStreamStore, testSupportSessionStore, testTaxProvider, testWebhookSecretStore, testWebhookSigner, testWebhookTransport, withRollback };
@@ -1,10 +1,10 @@
1
- import { E as ValidationIssue, b as DbError, t as AsyncResult } from "./result-Cj3yWhjH.js";
2
- import { M as Row, a as AnyModels, i as AnyFunctions, r as AccessTopicPolicy, z as TableKey } from "./types-BO8lVTun.js";
3
- import { t as AuthorizationFunctions } from "./authorization-CdJRoZgV.js";
1
+ import { D as ValidationIssue, b as DbError, t as AsyncResult } from "./result-BREt7qOh.js";
2
+ import { B as TableKey, N as Row, a as AnyModels, i as AnyFunctions, r as AccessTopicPolicy } from "./types-BrpW5ixT.js";
3
+ import { t as AuthorizationFunctions } from "./authorization-ClWBcXJi.js";
4
4
  import { t as RealtimeStatus } from "./realtime-status-DcsO00Gw.js";
5
- import { J as TemplateValues, q as TemplateParams } from "./storage-api-B4Ib2Zpo.js";
6
- import { t as BetterSupabase } from "./define-DXTC706J.js";
7
- import { g as SubscriberPolicy, h as SubscriberEvent, i as AuthorizationHooks, m as Subscriber } from "./authorization-hooks-Do5djkpz.js";
5
+ import { D as TemplateParams, O as TemplateValues } from "./bucket-BbePDVwc.js";
6
+ import { t as BetterSupabase } from "./define-DYZnvAbs.js";
7
+ import { g as SubscriberPolicy, h as SubscriberEvent, i as AuthorizationHooks, m as Subscriber } from "./authorization-hooks-WDQMKIsc.js";
8
8
  import { RealtimeChannel, SupabaseClient } from "@supabase/supabase-js";
9
9
  import { StandardSchemaV1 } from "@standard-schema/spec";
10
10
  //#region src/realtime/fan-out.d.ts
@@ -234,6 +234,13 @@ interface TriggerOptions<M extends AnyModels, T extends keyof M, P extends strin
234
234
  }>>;
235
235
  /** More topics the row change goes to, each with its own values. */
236
236
  readonly topics?: readonly TriggerTopic<TriggerValue<M, T>>[];
237
+ /**
238
+ * Send an UPDATE only when one of these columns changed. Inserts and
239
+ * deletes always send.
240
+ */
241
+ readonly when?: {
242
+ readonly changed: readonly Extract<keyof Row<M, T>, string>[];
243
+ };
237
244
  }
238
245
  interface TopicTriggerLookup {
239
246
  readonly from: string;
@@ -259,6 +266,13 @@ interface TopicTriggerOptions<P extends string> extends TriggerCommonOptions {
259
266
  }>>;
260
267
  /** More topics the row change goes to, each with its own values. */
261
268
  readonly topics?: readonly TriggerTopic<TopicTriggerValue>[];
269
+ /**
270
+ * Send an UPDATE only when one of these columns (database names)
271
+ * changed. Inserts and deletes always send.
272
+ */
273
+ readonly when?: {
274
+ readonly changed: readonly string[];
275
+ };
262
276
  }
263
277
  /** A row change sent with `payload: "row"`. */
264
278
  interface RowChange<R> {
@@ -1,8 +1,8 @@
1
- import { n as dbError } from "./errors-8i6tSICm.js";
2
- import { a as ok, r as err, t as AsyncResult } from "./result-COkvI9t5.js";
1
+ import { n as dbError } from "./errors-BV1SKTVs.js";
2
+ import { a as ok, r as err, t as AsyncResult } from "./result-DIeYscA3.js";
3
3
  import { a as tenantClaimPaths } from "./claims-PqzCxaTD.js";
4
- import { a as sqlString, i as sqlIdent, n as parseTemplate, r as slug, t as claimSql } from "./template-DdgYjIZ5.js";
5
- import { a as isScopeName, i as fillTemplate, o as resolveProviderSql, r as accessCheck } from "./access-sql-DUSSMaC3.js";
4
+ import { a as sqlString, i as sqlIdent, n as parseTemplate, r as slug, t as claimSql } from "./template-Dw3dTmKe.js";
5
+ import { a as isScopeName, i as fillTemplate, o as resolveProviderSql, r as accessCheck } from "./access-sql-CTJPHjCL.js";
6
6
  import { t as refreshRealtimeAuth } from "./auth-CdBKt0CS.js";
7
7
  import { t as allowedSubscribers } from "./subscribers-Cq--DL1E.js";
8
8
  import { t as joinTopic } from "./channels-C-GCoNLd.js";
@@ -86,13 +86,55 @@ function rawLookupTarget(value) {
86
86
  select: sqlIdent(value.select)
87
87
  };
88
88
  }
89
- /** A trigger value as SQL on `rec`, with one subquery per lookup. */
90
- function triggerValueSql(tables, meta, value, where, depth = 0) {
89
+ /**
90
+ * The lookups of one generated function. Each parent row is read once per
91
+ * changed row, with every column the topics, values and payload need from
92
+ * it, and a row comes before the rows that join through it.
93
+ */
94
+ var TriggerLookups = class {
95
+ #byRow = /* @__PURE__ */ new Map();
96
+ add(target) {
97
+ const row = [
98
+ target.relation,
99
+ target.key,
100
+ target.via
101
+ ].join("\0");
102
+ const known = this.#byRow.get(row);
103
+ if (known) {
104
+ if (!known.columns.includes(target.select)) known.columns.push(target.select);
105
+ return `${known.name}.${target.select}`;
106
+ }
107
+ const name = `lk_${String(this.#byRow.size)}`;
108
+ this.#byRow.set(row, {
109
+ name,
110
+ relation: target.relation,
111
+ key: target.key,
112
+ columns: [target.select],
113
+ via: target.via
114
+ });
115
+ return `${name}.${target.select}`;
116
+ }
117
+ get list() {
118
+ return [...this.#byRow.values()];
119
+ }
120
+ };
121
+ /** A trigger value as SQL on `rec`; each lookup becomes a variable in `lookups`. */
122
+ function triggerValueSql(tables, meta, value, where, lookups) {
91
123
  if (typeof value === "string") return `rec.${meta ? columnSql(meta, value, where) : sqlIdent(value)}`;
92
124
  const target = tables && meta ? lookupTarget(tables, value, where) : rawLookupTarget(value);
93
- const alias = `j${String(depth)}`;
94
- const via = triggerValueSql(tables, meta, value.via, where, depth + 1);
95
- return `(select ${alias}.${target.select} from ${target.relation} ${alias} where ${alias}.${target.key} = ${via} limit 1)`;
125
+ const via = triggerValueSql(tables, meta, value.via, where, lookups);
126
+ return lookups.add({
127
+ ...target,
128
+ via
129
+ });
130
+ }
131
+ /** The columns of `when.changed` as an `old`/`new` comparison. */
132
+ function changedSql(meta, changed, where) {
133
+ if (changed.length === 0) throw new TypeError(`${where}: when.changed lists no columns`);
134
+ return changed.map((column) => {
135
+ const db = meta ? columnSql(meta, column, "when.changed") : sqlIdent(column);
136
+ return `old.${db} is distinct from new.${db}`;
137
+ }).join(" or ");
96
138
  }
97
139
  /** The event name: one for every operation, one per operation, or the operation. */
98
140
  function eventSql(event) {
@@ -103,6 +145,9 @@ function eventSql(event) {
103
145
  }
104
146
  //#endregion
105
147
  //#region src/realtime/topic-trigger.ts
148
+ /** The start of the warning a delete raises when a lookup finds no row. */
149
+ const LOOKUP_WARNING = "better-supabase: realtime lookup found no row";
150
+ const LOOKUP_HINT = "The parent row was deleted in the same statement, such as a cascade, so the topic that reads it is skipped. Keep the topic value on the row itself, or add a topic trigger on the parent.";
106
151
  /** Marks a generated function that sends whole rows on purpose (doctor reads it). */
107
152
  const ROW_PAYLOAD_MARKER = "better-supabase: payload row";
108
153
  /** The primary key as `jsonb`, read from the catalog when the table's key isn't known. */
@@ -134,7 +179,16 @@ function payloadSql(payload) {
134
179
  */
135
180
  function triggerFunctionSql(input) {
136
181
  const fn = `${sqlIdent(input.functionSchema)}.${sqlIdent(input.functionName)}`;
137
- const payload = payloadSql(input.payload);
182
+ const payload = input.payload.kind === "custom" ? "body" : payloadSql(input.payload);
183
+ const declarations = input.lookups.map((lookup) => ` ${lookup.name} record;`);
184
+ const reads = input.lookups.flatMap((lookup) => [
185
+ ` select ${lookup.columns.map((column) => `j.${column}`).join(", ")} into ${lookup.name} from ${lookup.relation} j where j.${lookup.key} = ${lookup.via} limit 1;`,
186
+ ` if not found and tg_op = 'DELETE' and ${lookup.via} is not null then`,
187
+ ` raise warning '${LOOKUP_WARNING} for a delete on %.%: no % row where % = %', tg_table_schema, tg_table_name, ${sqlString(lookup.relation)}, ${sqlString(lookup.key)}, ${lookup.via}`,
188
+ ` using hint = ${sqlString(LOOKUP_HINT)};`,
189
+ " end if;"
190
+ ]);
191
+ const early = input.changed && !input.changed.when ? [` if tg_op = 'UPDATE' and not (${input.changed.sql}) then return null; end if;`] : [];
138
192
  const sends = input.topics.flatMap((topic) => {
139
193
  const entries = Object.entries(topic.values);
140
194
  const vals = entries.length === 0 ? "'{}'::jsonb" : `jsonb_build_object(${entries.map(([param, value]) => `${sqlString(param)}, (${value})::text`).join(", ")})`;
@@ -164,12 +218,17 @@ function triggerFunctionSql(input) {
164
218
  " rec record;",
165
219
  " vals jsonb;",
166
220
  " bad record;",
221
+ ...input.payload.kind === "custom" ? [" body jsonb;"] : [],
222
+ ...declarations,
167
223
  "begin",
168
224
  " if tg_when <> 'AFTER' then",
169
225
  " raise exception '% runs after the write; as a % trigger it would cancel the write', tg_name, lower(tg_when)",
170
226
  " using errcode = '39P01';",
171
227
  " end if;",
228
+ ...early,
172
229
  " if tg_op = 'DELETE' then rec := old; else rec := new; end if;",
230
+ ...reads,
231
+ ...input.payload.kind === "custom" ? [` body := ${input.payload.sql};`] : [],
173
232
  ...sends,
174
233
  " return null;",
175
234
  "end;",
@@ -179,7 +238,7 @@ function triggerFunctionSql(input) {
179
238
  "",
180
239
  `drop trigger if exists ${sqlIdent(input.triggerName)} on ${input.target};`,
181
240
  `create trigger ${sqlIdent(input.triggerName)} after ${input.events} on ${input.target}`,
182
- ` for each row execute function ${fn}();`,
241
+ ` for each row${input.changed?.when ? ` when (${input.changed.sql})` : ""} execute function ${fn}();`,
183
242
  ""
184
243
  ].join("\n");
185
244
  }
@@ -294,17 +353,23 @@ function defineTopic(template, options = {}) {
294
353
  const triggerName = `bs_broadcast_${name}`;
295
354
  const extra = trigger.topics ?? [];
296
355
  const { payload } = trigger;
297
- const events = (trigger.events ?? [
356
+ const operations = trigger.events ?? [
298
357
  "insert",
299
358
  "update",
300
359
  "delete"
301
- ]).join(" or ");
360
+ ];
361
+ const events = operations.join(" or ");
362
+ if (trigger.when && !operations.includes("update")) throw new TypeError(`${where}: when.changed filters updates, but events has no "update"`);
363
+ const changed = trigger.when ? {
364
+ sql: changedSql(meta, trigger.when.changed, where),
365
+ when: operations.length === 1
366
+ } : void 0;
302
367
  const checkKeys = (params, given, topic) => {
303
368
  for (const key of Object.keys(given ?? {})) if (!params.includes(key)) throw new TypeError(`${where}: "${key}" is not a placeholder of ${topic}`);
304
369
  };
305
370
  checkKeys(parsed.params, trigger.values, template);
306
371
  const columns = columnsOnly(trigger.values);
307
- if (!meta && columns !== void 0 && extra.length === 0 && typeof trigger.event !== "object" && (payload === void 0 || typeof payload === "string")) {
372
+ if (!meta && columns !== void 0 && extra.length === 0 && typeof trigger.event !== "object" && (payload === void 0 || typeof payload === "string") && (changed === void 0 || changed.when)) {
308
373
  const sqlTemplate = template.replaceAll(/\{([^}]+)\}/g, (_, param) => {
309
374
  const column = columns[param] ?? snakeCase(param);
310
375
  if (/[{}=]/.test(column)) throw new TypeError(`${where}: the column for {${param}} can't contain braces or =`);
@@ -317,11 +382,12 @@ function defineTopic(template, options = {}) {
317
382
  `-- better-supabase: broadcast ${schema}.${relation} changes to ${template}`,
318
383
  `drop trigger if exists ${sqlIdent(triggerName)} on ${target};`,
319
384
  `create trigger ${sqlIdent(triggerName)} after ${events} on ${target}`,
320
- ` for each row execute function better_supabase.broadcast_topic(${args.join(", ")});`,
385
+ ` for each row${changed ? ` when (${changed.sql})` : ""} execute function better_supabase.broadcast_topic(${args.join(", ")});`,
321
386
  ""
322
387
  ].join("\n");
323
388
  }
324
- const valueSql = (value, label) => triggerValueSql(tables, meta, value, label);
389
+ const lookups = new TriggerLookups();
390
+ const valueSql = (value, label) => triggerValueSql(tables, meta, value, label, lookups);
325
391
  const topicValues = (params, given, topic) => Object.fromEntries(params.map((param) => {
326
392
  const value = given?.[param] ?? (meta ? void 0 : snakeCase(param));
327
393
  if (value === void 0) throw new TypeError(`defineTopic: no column for {${param}} of ${topic} on "${table}"`);
@@ -355,7 +421,9 @@ function defineTopic(template, options = {}) {
355
421
  events,
356
422
  event: eventSql(trigger.event),
357
423
  topics,
358
- payload: payloadSql
424
+ payload: payloadSql,
425
+ lookups: lookups.list,
426
+ ...changed ? { changed } : {}
359
427
  });
360
428
  };
361
429
  const api = {