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,19 +1,19 @@
1
- import { c as mapDbError, n as dbError, o as isDbError, r as dbErrorOf } from "./errors-8i6tSICm.js";
2
- import { t as temporal } from "./temporal-required-DqRzr7i0.js";
3
- import { a as ok, r as err, s as toDbError, t as AsyncResult } from "./result-COkvI9t5.js";
1
+ import { c as mapDbError, n as dbError, o as isDbError, r as dbErrorOf } from "./errors-BV1SKTVs.js";
2
+ import { t as temporal } from "./temporal-required-nfZ87U-0.js";
3
+ import { a as ok, r as err, s as toDbError, t as AsyncResult } from "./result-DIeYscA3.js";
4
4
  import { n as isRecord } from "./guards-6F2bCtQR.js";
5
- import { a as postgrestExecutor, n as StatsRecorder } from "./stats-CUhqw6Ev.js";
6
- import { o as problemResponse } from "./problem-pIiL3WbE.js";
5
+ import { a as postgrestExecutor, n as StatsRecorder } from "./stats-Di5VAsYU.js";
6
+ import { o as problemResponse } from "./problem-JRCohp1j.js";
7
7
  import { loadEnv } from "./env/index.js";
8
- import { i as userContext, t as actClaim } from "./impersonation-CDeCzZP6.js";
8
+ import { i as userContext, t as actClaim } from "./impersonation-DxU6yHJV.js";
9
9
  import { t as fromPgError } from "./pg-error-BV_X8Isq.js";
10
10
  import { i as forwardBlockEvents, t as DEFAULT_TYPE_PREFIX } from "./cloud-event-CTh9Sr5w.js";
11
11
  import { a as replicaState, i as primaryCookieWrite, o as routedExecutor, r as pinnedUntil, s as withPrimaryPin } from "./replicas-BvIL4_jL.js";
12
- import { t as authContext } from "./context-BDDgjoxz.js";
13
- import { a as narrowCap, i as delegatedClaims, r as contextClaims } from "./delegation-Dt8hMJWu.js";
14
- import { d as parseCookies, h as sessionCookieName, m as serializeCookie, n as prefetchJwks, r as resolveAuth, s as AUTH_CACHE_HEADERS, u as clearSessionAtScopes } from "./resolve-CAR9oaKW.js";
15
- import { t as credentialProviderOf } from "./provider-DKh2xFZb.js";
16
- import { a as respond, n as defaultPrefetchJwks, r as guard, t as defaultExpose } from "./respond-Dpx48ATq.js";
12
+ import { t as authContext } from "./context-BiwgsycK.js";
13
+ import { a as narrowCap, i as delegatedClaims, r as contextClaims } from "./delegation-B7uNnz6z.js";
14
+ import { d as parseCookies, h as sessionCookieName, m as serializeCookie, n as prefetchJwks, r as resolveAuth, s as AUTH_CACHE_HEADERS, u as clearSessionAtScopes } from "./resolve-AtncaPTU.js";
15
+ import { t as credentialProviderOf } from "./provider-C-Ti38J6.js";
16
+ import { a as respond, n as defaultPrefetchJwks, r as guard, t as defaultExpose } from "./respond-Bhp3G__q.js";
17
17
  import { createClient } from "@supabase/supabase-js";
18
18
  import { defineMiddleware, getEnv, pipeline, seedContext } from "@supabase/middleware";
19
19
  import { PostgrestClient } from "@supabase/postgrest-js";
@@ -835,10 +835,19 @@ where bucket_id = $1 and name = $2 and user_metadata ->> 'supportSessionId' = $5
835
835
  const OWN_COPY = `update storage.objects
836
836
  set owner = $3::uuid, owner_id = $4, user_metadata = coalesce(user_metadata, '{}'::jsonb) || $5::jsonb
837
837
  where bucket_id = $1 and name = $2 and owner_id is null`;
838
+ const OWN_SIGNED_UPLOAD = `${OWN_COPY}
839
+ returning name`;
838
840
  const OWN_MOVE = `update storage.objects
839
841
  set owner = $3::uuid, owner_id = $4, user_metadata = coalesce(user_metadata, '{}'::jsonb) || $5::jsonb
840
842
  where bucket_id = $1 and name = $2 and owner_id is not distinct from $6`;
841
843
  const UUID = /^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i;
844
+ const OWNED = {
845
+ name: "StorageApiError",
846
+ message: "The object belongs to another user",
847
+ status: 403,
848
+ statusCode: "403",
849
+ code: "AccessDenied"
850
+ };
842
851
  const HIDDEN_URL = "Either the object does not exist or you do not have access to it";
843
852
  const LIST_SORT_COLUMNS = /* @__PURE__ */ new Set([
844
853
  "name",
@@ -1094,9 +1103,17 @@ function infoOf(row) {
1094
1103
  * decide as for the target's own request. Then the service client writes,
1095
1104
  * the admin connection makes the target the owner of the stored object,
1096
1105
  * and its `user_metadata` records the session id and the admin's id. A
1097
- * refused dry run resolves to Storage's `403`. Signed uploads resolve to a
1098
- * `403` `SUPPORT_STORAGE_WRITES` error, and every write in a read-only
1099
- * session to a `403` `SUPPORT_READ_ONLY` error.
1106
+ * refused dry run resolves to Storage's `403`.
1107
+ *
1108
+ * `createSignedUploadUrl` runs the same dry run as `upload` before the
1109
+ * service client signs the URL. The object a browser uploads there has no
1110
+ * owner, so `claimSignedUpload(bucket, path)` finishes the upload: it checks again
1111
+ * that the target may insert at the path, then makes the target the owner
1112
+ * of an object without one and stamps the session on its `user_metadata`.
1113
+ * An object another user owns is refused with a `403`. `uploadToSignedUrl`
1114
+ * claims what it stores. Every write in a read-only session resolves to a
1115
+ * `403` `SUPPORT_READ_ONLY` error, and without `adminSql`, `session` or a
1116
+ * `sql` client with `transaction` to a `403` `SUPPORT_STORAGE_WRITES` error.
1100
1117
  */
1101
1118
  function supportStorage(options) {
1102
1119
  const readOnly = options.readOnly ?? true;
@@ -1106,9 +1123,7 @@ function supportStorage(options) {
1106
1123
  session
1107
1124
  } : void 0;
1108
1125
  const refusal = readOnly ? apiError(403, "The support session is read-only", "SUPPORT_READ_ONLY") : apiError(403, "Storage writes in a support session need adminSql, session and a sql client with transaction", "SUPPORT_STORAGE_WRITES");
1109
- const signedRefusal = readOnly ? refusal : apiError(403, "Signed uploads are not available in a support session", "SUPPORT_STORAGE_WRITES");
1110
1126
  const refuse = () => Promise.resolve(failed(refusal));
1111
- const refuseSigned = () => Promise.resolve(failed(signedRefusal));
1112
1127
  const rows = (query, values) => sql.queryRaw(query, values);
1113
1128
  let versioned;
1114
1129
  const upsertStatement = () => (versioned ??= rows(CURRENT_VERSION_INDEX, []).then(([row]) => row?.["versioned"] === true).catch((cause) => {
@@ -1132,277 +1147,373 @@ function supportStorage(options) {
1132
1147
  throw cause;
1133
1148
  }
1134
1149
  };
1135
- return { from(bucket) {
1136
- const admin = () => options.admin.from(bucket);
1137
- const visible = async (path) => {
1138
- const [row] = await rows(VISIBLE_OBJECT, [bucket, path]);
1139
- return row?.["visible"] === true;
1150
+ const rehearseStore = (bucket, active, name, statement, metadata) => rehearse(async (client) => {
1151
+ await client.queryRaw(statement, [
1152
+ bucket,
1153
+ name,
1154
+ ownerOf(active.targetUserId),
1155
+ active.targetUserId,
1156
+ JSON.stringify(metadata)
1157
+ ]);
1158
+ return null;
1159
+ });
1160
+ const claimFor = async (bucket, { adminSql: ownerSql, session: active }, name) => {
1161
+ const [claimed] = await ownerSql.queryRaw(OWN_SIGNED_UPLOAD, [
1162
+ bucket,
1163
+ name,
1164
+ ownerOf(active.targetUserId),
1165
+ active.targetUserId,
1166
+ JSON.stringify(stampOf(active))
1167
+ ]);
1168
+ if (claimed) return {
1169
+ data: { path: name },
1170
+ error: null
1140
1171
  };
1141
- const checked = (path, read) => settled(async () => {
1172
+ const [found] = await ownerSql.queryRaw(SOURCE_OBJECT, [bucket, name]);
1173
+ if (!found) return failed(NOT_FOUND);
1174
+ return found["owner_id"] === active.targetUserId ? {
1175
+ data: { path: name },
1176
+ error: null
1177
+ } : failed(OWNED);
1178
+ };
1179
+ const claimSignedUpload = (bucket, path) => {
1180
+ if (!writer) return refuse();
1181
+ return settled(async () => {
1142
1182
  const name = normalizePath(path);
1143
- if (!await visible(name)) return failed(NOT_FOUND);
1144
- return read(name);
1145
- });
1146
- const list = (path, listOptions = {}) => settled(async () => {
1147
- const problem = listProblem(listOptions);
1148
- if (problem) return failed(invalid(problem));
1149
- let prefix = path ?? "";
1150
- if (prefix.length > 0 && !prefix.endsWith("/")) prefix = `${prefix}/`;
1151
- const column = listOptions.sortBy?.column ?? "name";
1152
- const escape = column !== "name";
1153
- const safePrefix = escape ? escapeLike(prefix) : prefix;
1154
- const search = listOptions.search ?? "";
1155
- const safeSearch = escape ? escapeLike(search) : search;
1156
- return {
1157
- data: (await rows(SEARCH, [
1158
- safePrefix,
1159
- bucket,
1160
- listOptions.limit ?? 100,
1161
- (safePrefix + safeSearch).split("/").length,
1162
- listOptions.offset ?? 0,
1163
- safeSearch,
1164
- column,
1165
- listOptions.sortBy?.order ?? "asc"
1166
- ])).map(listEntryOf),
1167
- error: null
1168
- };
1169
- });
1170
- const listV2 = (listOptions = {}) => settled(async () => {
1171
- const problem = listV2Problem(listOptions);
1172
- if (problem) return failed(invalid(problem));
1173
- const limit = Math.min(listOptions.limit ?? 1e3, 1e3);
1174
- const prefix = listOptions.prefix ?? "";
1175
- const cursor = listOptions.cursor ? decodeCursor(listOptions.cursor) : void 0;
1176
- if (listOptions.cursor && !cursor) return failed(apiError(400, "Invalid continuation token", "InvalidParameter"));
1177
- const sortOrder = filled(cursor?.sortOrder) ?? listOptions.sortBy?.order;
1178
- const sortColumn = filled(cursor?.sortColumn) ?? listOptions.sortBy?.column;
1179
- let found;
1180
- if (listOptions.with_delimiter) found = await rows(SEARCH_V2, [
1181
- prefix,
1182
- bucket,
1183
- limit + 1,
1184
- prefix ? prefix.split("/").length : 1,
1185
- cursor?.startAfter ?? "",
1186
- sortOrder ?? "asc",
1187
- sortColumn ?? "name",
1188
- filled(cursor?.sortColumnAfter) ?? null
1189
- ]);
1190
- else {
1191
- const page = flatPage(bucket, listOptions.prefix, limit + 1, cursor, sortColumn, sortOrder);
1192
- found = await rows(page.text, page.values);
1193
- }
1194
- const entries = listOptions.with_delimiter ? delimited(found, prefix) : found;
1195
- const hasNext = entries.length > limit;
1196
- const count = hasNext ? limit : entries.length;
1197
- const folders = [];
1198
- const objects = [];
1199
- for (const entry of entries.slice(0, count)) if (entry["id"] === null || entry["id"] === void 0) folders.push(folderOf(entry));
1200
- else objects.push(objectOf(entry));
1201
- const last = entries[count - 1];
1202
- const after = last && sortColumn && sortColumn !== "name" ? iso(last[sortColumn]) : void 0;
1203
- const nextCursor = hasNext && last ? encodeCursor({
1204
- startAfter: String(last["name"]),
1205
- ...sortOrder ? { sortOrder } : {},
1206
- ...sortColumn ? { sortColumn } : {},
1207
- ...typeof after === "string" ? { sortColumnAfter: new Date(after).toISOString() } : {}
1208
- }) : void 0;
1209
- return {
1210
- data: {
1211
- hasNext,
1212
- ...nextCursor === void 0 ? {} : { nextCursor },
1213
- folders,
1214
- objects
1215
- },
1216
- error: null
1217
- };
1218
- });
1219
- const store = (method) => (path, body, fileOptions = {}) => {
1220
- if (!writer) return refuse();
1221
- const { adminSql: ownerSql, session: active } = writer;
1222
- return settled(async () => {
1223
- const name = normalizePath(path);
1224
- const owner = ownerOf(active.targetUserId);
1225
- const metadata = {
1226
- ...fileOptions.metadata,
1227
- ...stampOf(active)
1228
- };
1229
- const statement = method === "update" || fileOptions.upsert === true ? await upsertStatement() : INSERT_OBJECT;
1230
- const refused = await rehearse(async (client) => {
1231
- await client.queryRaw(statement, [
1232
- bucket,
1233
- name,
1234
- owner,
1235
- active.targetUserId,
1236
- JSON.stringify(metadata)
1237
- ]);
1238
- return null;
1239
- });
1240
- if (refused) return failed(refused);
1241
- const reply = await admin()[method](name, body, {
1242
- ...fileOptions,
1243
- metadata
1244
- });
1245
- if (reply.error) return reply;
1183
+ const active = writer.session;
1184
+ const refused = await rehearse(async (client) => {
1246
1185
  try {
1247
- await ownerSql.queryRaw(OWN_UPLOAD, [
1186
+ await client.queryRaw(INSERT_OBJECT, [
1248
1187
  bucket,
1249
1188
  name,
1250
- owner,
1189
+ ownerOf(active.targetUserId),
1251
1190
  active.targetUserId,
1252
- active.id
1191
+ JSON.stringify(stampOf(active))
1253
1192
  ]);
1254
1193
  } catch (cause) {
1255
- await admin().remove([name]);
1256
- return failed(sqlFailure(cause));
1194
+ if (fromPgError(cause)?.code === "23505") return null;
1195
+ throw cause;
1257
1196
  }
1258
- return reply;
1197
+ return NOT_FOUND;
1259
1198
  });
1260
- };
1261
- const relocate = (method) => (from, to, destination = {}) => {
1262
- if (!writer) return refuse();
1263
- const { adminSql: ownerSql, session: active } = writer;
1264
- return settled(async () => {
1265
- const source = normalizePath(from);
1266
- const name = normalizePath(to);
1267
- const target = destination.destinationBucket ?? bucket;
1268
- const owner = ownerOf(active.targetUserId);
1269
- const stamp = JSON.stringify(stampOf(active));
1270
- let previousOwner = null;
1271
- const refused = await rehearse(async (client) => {
1272
- const [found] = await client.queryRaw(SOURCE_OBJECT, [bucket, source]);
1273
- if (!found) return NOT_FOUND;
1274
- previousOwner = text(found["owner_id"]) ?? null;
1275
- if (method === "copy") {
1276
- await client.queryRaw(INSERT_OBJECT, [
1277
- target,
1278
- name,
1279
- owner,
1280
- active.targetUserId,
1281
- stamp
1282
- ]);
1283
- return null;
1284
- }
1285
- const [moved] = await client.queryRaw(MOVE_OBJECT, [
1286
- bucket,
1287
- source,
1288
- target,
1289
- name,
1290
- owner,
1291
- active.targetUserId
1292
- ]);
1293
- return moved ? null : NOT_FOUND;
1294
- });
1295
- if (refused) return failed(refused);
1296
- const reply = await admin()[method](source, name, destination);
1297
- if (reply.error) return reply;
1298
- try {
1299
- await (method === "copy" ? ownerSql.queryRaw(OWN_COPY, [
1300
- target,
1301
- name,
1302
- owner,
1303
- active.targetUserId,
1304
- stamp
1305
- ]) : ownerSql.queryRaw(OWN_MOVE, [
1306
- target,
1307
- name,
1308
- owner,
1309
- active.targetUserId,
1310
- stamp,
1311
- previousOwner
1312
- ]));
1313
- } catch (cause) {
1314
- const written = options.admin.from(target);
1315
- await (method === "copy" ? written.remove([name]) : written.move(name, source, { destinationBucket: bucket }));
1316
- return failed(sqlFailure(cause));
1317
- }
1318
- return reply;
1199
+ if (refused) return failed(refused);
1200
+ return claimFor(bucket, writer, name);
1201
+ });
1202
+ };
1203
+ return {
1204
+ claimSignedUpload,
1205
+ from(bucket) {
1206
+ const admin = () => options.admin.from(bucket);
1207
+ const visible = async (path) => {
1208
+ const [row] = await rows(VISIBLE_OBJECT, [bucket, path]);
1209
+ return row?.["visible"] === true;
1210
+ };
1211
+ const checked = (path, read) => settled(async () => {
1212
+ const name = normalizePath(path);
1213
+ if (!await visible(name)) return failed(NOT_FOUND);
1214
+ return read(name);
1319
1215
  });
1320
- };
1321
- const remove = (paths) => {
1322
- if (!writer) return refuse();
1323
- return settled(async () => {
1324
- const entries = paths.map((entry) => typeof entry === "string" ? normalizePath(entry) : {
1325
- ...entry,
1326
- path: normalizePath(entry.path)
1327
- });
1328
- const names = entries.map((entry) => typeof entry === "string" ? entry : entry.path);
1329
- const removable = /* @__PURE__ */ new Set();
1330
- const refused = await rehearse(async (client) => {
1331
- await client.queryRaw(ALLOW_DELETE);
1332
- const deleted = await client.queryRaw(DELETE_OBJECTS, [bucket, [...new Set(names)]]);
1333
- for (const row of deleted) removable.add(String(row["name"]));
1334
- return null;
1335
- });
1336
- if (refused) return failed(refused);
1337
- const permitted = entries.filter((_, index) => removable.has(names[index] ?? ""));
1338
- if (permitted.length === 0) return {
1339
- data: [],
1216
+ const list = (path, listOptions = {}) => settled(async () => {
1217
+ const problem = listProblem(listOptions);
1218
+ if (problem) return failed(invalid(problem));
1219
+ let prefix = path ?? "";
1220
+ if (prefix.length > 0 && !prefix.endsWith("/")) prefix = `${prefix}/`;
1221
+ const column = listOptions.sortBy?.column ?? "name";
1222
+ const escape = column !== "name";
1223
+ const safePrefix = escape ? escapeLike(prefix) : prefix;
1224
+ const search = listOptions.search ?? "";
1225
+ const safeSearch = escape ? escapeLike(search) : search;
1226
+ return {
1227
+ data: (await rows(SEARCH, [
1228
+ safePrefix,
1229
+ bucket,
1230
+ listOptions.limit ?? 100,
1231
+ (safePrefix + safeSearch).split("/").length,
1232
+ listOptions.offset ?? 0,
1233
+ safeSearch,
1234
+ column,
1235
+ listOptions.sortBy?.order ?? "asc"
1236
+ ])).map(listEntryOf),
1340
1237
  error: null
1341
1238
  };
1342
- return admin().remove(permitted);
1343
1239
  });
1344
- };
1345
- return {
1346
- exists: (path) => settled(async () => ({
1347
- data: await visible(normalizePath(path)),
1348
- error: null
1349
- })).then((reply) => reply.error === null ? reply : {
1350
- data: false,
1351
- error: reply.error
1352
- }),
1353
- info: (path, infoOptions) => settled(async () => {
1354
- const versionId = infoOptions?.versionId;
1355
- const name = normalizePath(path);
1356
- const [row] = await rows(versionId === void 0 ? OBJECT_INFO : `${OBJECT_INFO} and o.version = $3`, versionId === void 0 ? [bucket, name] : [
1240
+ const listV2 = (listOptions = {}) => settled(async () => {
1241
+ const problem = listV2Problem(listOptions);
1242
+ if (problem) return failed(invalid(problem));
1243
+ const limit = Math.min(listOptions.limit ?? 1e3, 1e3);
1244
+ const prefix = listOptions.prefix ?? "";
1245
+ const cursor = listOptions.cursor ? decodeCursor(listOptions.cursor) : void 0;
1246
+ if (listOptions.cursor && !cursor) return failed(apiError(400, "Invalid continuation token", "InvalidParameter"));
1247
+ const sortOrder = filled(cursor?.sortOrder) ?? listOptions.sortBy?.order;
1248
+ const sortColumn = filled(cursor?.sortColumn) ?? listOptions.sortBy?.column;
1249
+ let found;
1250
+ if (listOptions.with_delimiter) found = await rows(SEARCH_V2, [
1251
+ prefix,
1357
1252
  bucket,
1358
- name,
1359
- versionId
1253
+ limit + 1,
1254
+ prefix ? prefix.split("/").length : 1,
1255
+ cursor?.startAfter ?? "",
1256
+ sortOrder ?? "asc",
1257
+ sortColumn ?? "name",
1258
+ filled(cursor?.sortColumnAfter) ?? null
1360
1259
  ]);
1361
- const object = row?.["object"];
1362
- return isRecord(object) ? {
1363
- data: infoOf(object),
1364
- error: null
1365
- } : failed(NOT_FOUND);
1366
- }),
1367
- download: (path, downloadOptions, parameters) => checked(path, (name) => admin().download(name, downloadOptions, parameters)),
1368
- createSignedUrl: (path, expiresIn, urlOptions) => checked(path, (name) => admin().createSignedUrl(name, expiresIn, urlOptions)),
1369
- createSignedUrls: (paths, expiresIn, urlOptions) => settled(async () => {
1370
- const names = paths.map(normalizePath);
1371
- const seen = new Set((await rows(VISIBLE_OBJECTS, [bucket, names])).map((row) => String(row["path"])));
1372
- const shown = [...new Set(names.filter((name) => seen.has(name)))];
1373
- const signed = /* @__PURE__ */ new Map();
1374
- if (shown.length > 0) {
1375
- const reply = await admin().createSignedUrls(shown, expiresIn, urlOptions);
1376
- if (reply.error) return failed(reply.error);
1377
- for (const entry of reply.data) if (entry.path !== null) signed.set(entry.path, entry);
1260
+ else {
1261
+ const page = flatPage(bucket, listOptions.prefix, limit + 1, cursor, sortColumn, sortOrder);
1262
+ found = await rows(page.text, page.values);
1378
1263
  }
1264
+ const entries = listOptions.with_delimiter ? delimited(found, prefix) : found;
1265
+ const hasNext = entries.length > limit;
1266
+ const count = hasNext ? limit : entries.length;
1267
+ const folders = [];
1268
+ const objects = [];
1269
+ for (const entry of entries.slice(0, count)) if (entry["id"] === null || entry["id"] === void 0) folders.push(folderOf(entry));
1270
+ else objects.push(objectOf(entry));
1271
+ const last = entries[count - 1];
1272
+ const after = last && sortColumn && sortColumn !== "name" ? iso(last[sortColumn]) : void 0;
1273
+ const nextCursor = hasNext && last ? encodeCursor({
1274
+ startAfter: String(last["name"]),
1275
+ ...sortOrder ? { sortOrder } : {},
1276
+ ...sortColumn ? { sortColumn } : {},
1277
+ ...typeof after === "string" ? { sortColumnAfter: new Date(after).toISOString() } : {}
1278
+ }) : void 0;
1379
1279
  return {
1380
- data: names.map((name) => signed.get(name) ?? {
1381
- error: HIDDEN_URL,
1382
- path: name,
1383
- signedUrl: null
1384
- }),
1280
+ data: {
1281
+ hasNext,
1282
+ ...nextCursor === void 0 ? {} : { nextCursor },
1283
+ folders,
1284
+ objects
1285
+ },
1385
1286
  error: null
1386
1287
  };
1387
- }),
1388
- getPublicUrl: (path, urlOptions) => admin().getPublicUrl(path, urlOptions),
1389
- list,
1390
- listV2,
1391
- upload: store("upload"),
1392
- update: store("update"),
1393
- createSignedUploadUrl: refuseSigned,
1394
- uploadToSignedUrl: refuseSigned,
1395
- remove,
1396
- copy: relocate("copy"),
1397
- move: relocate("move"),
1398
- purgeCache: (path, cacheOptions, parameters) => writer ? checked(path, (name) => admin().purgeCache(name, cacheOptions, parameters)) : refuse()
1399
- };
1400
- } };
1288
+ });
1289
+ const createSignedUploadUrl = (path, uploadOptions) => {
1290
+ if (!writer) return refuse();
1291
+ return settled(async () => {
1292
+ const name = normalizePath(path);
1293
+ const statement = uploadOptions?.upsert === true ? await upsertStatement() : INSERT_OBJECT;
1294
+ const refused = await rehearseStore(bucket, writer.session, name, statement, stampOf(writer.session));
1295
+ if (refused) return failed(refused);
1296
+ return admin().createSignedUploadUrl(name, uploadOptions);
1297
+ });
1298
+ };
1299
+ const uploadToSignedUrl = (path, token, body, fileOptions = {}) => {
1300
+ if (!writer) return refuse();
1301
+ return settled(async () => {
1302
+ const name = normalizePath(path);
1303
+ const metadata = {
1304
+ ...fileOptions.metadata,
1305
+ ...stampOf(writer.session)
1306
+ };
1307
+ const statement = fileOptions.upsert === true ? await upsertStatement() : INSERT_OBJECT;
1308
+ const refused = await rehearseStore(bucket, writer.session, name, statement, metadata);
1309
+ if (refused) return failed(refused);
1310
+ const reply = await admin().uploadToSignedUrl(name, token, body, {
1311
+ ...fileOptions,
1312
+ metadata
1313
+ });
1314
+ if (reply.error) return reply;
1315
+ try {
1316
+ const claimed = await claimFor(bucket, writer, name);
1317
+ return claimed.error ? claimed : reply;
1318
+ } catch (cause) {
1319
+ await admin().remove([name]);
1320
+ return failed(sqlFailure(cause));
1321
+ }
1322
+ });
1323
+ };
1324
+ const store = (method) => (path, body, fileOptions = {}) => {
1325
+ if (!writer) return refuse();
1326
+ const { adminSql: ownerSql, session: active } = writer;
1327
+ return settled(async () => {
1328
+ const name = normalizePath(path);
1329
+ const owner = ownerOf(active.targetUserId);
1330
+ const metadata = {
1331
+ ...fileOptions.metadata,
1332
+ ...stampOf(active)
1333
+ };
1334
+ const statement = method === "update" || fileOptions.upsert === true ? await upsertStatement() : INSERT_OBJECT;
1335
+ const refused = await rehearseStore(bucket, active, name, statement, metadata);
1336
+ if (refused) return failed(refused);
1337
+ const reply = await admin()[method](name, body, {
1338
+ ...fileOptions,
1339
+ metadata
1340
+ });
1341
+ if (reply.error) return reply;
1342
+ try {
1343
+ await ownerSql.queryRaw(OWN_UPLOAD, [
1344
+ bucket,
1345
+ name,
1346
+ owner,
1347
+ active.targetUserId,
1348
+ active.id
1349
+ ]);
1350
+ } catch (cause) {
1351
+ await admin().remove([name]);
1352
+ return failed(sqlFailure(cause));
1353
+ }
1354
+ return reply;
1355
+ });
1356
+ };
1357
+ const relocate = (method) => (from, to, destination = {}) => {
1358
+ if (!writer) return refuse();
1359
+ const { adminSql: ownerSql, session: active } = writer;
1360
+ return settled(async () => {
1361
+ const source = normalizePath(from);
1362
+ const name = normalizePath(to);
1363
+ const target = destination.destinationBucket ?? bucket;
1364
+ const owner = ownerOf(active.targetUserId);
1365
+ const stamp = JSON.stringify(stampOf(active));
1366
+ let previousOwner = null;
1367
+ const refused = await rehearse(async (client) => {
1368
+ const [found] = await client.queryRaw(SOURCE_OBJECT, [bucket, source]);
1369
+ if (!found) return NOT_FOUND;
1370
+ previousOwner = text(found["owner_id"]) ?? null;
1371
+ if (method === "copy") {
1372
+ await client.queryRaw(INSERT_OBJECT, [
1373
+ target,
1374
+ name,
1375
+ owner,
1376
+ active.targetUserId,
1377
+ stamp
1378
+ ]);
1379
+ return null;
1380
+ }
1381
+ const [moved] = await client.queryRaw(MOVE_OBJECT, [
1382
+ bucket,
1383
+ source,
1384
+ target,
1385
+ name,
1386
+ owner,
1387
+ active.targetUserId
1388
+ ]);
1389
+ return moved ? null : NOT_FOUND;
1390
+ });
1391
+ if (refused) return failed(refused);
1392
+ const reply = await admin()[method](source, name, destination);
1393
+ if (reply.error) return reply;
1394
+ try {
1395
+ await (method === "copy" ? ownerSql.queryRaw(OWN_COPY, [
1396
+ target,
1397
+ name,
1398
+ owner,
1399
+ active.targetUserId,
1400
+ stamp
1401
+ ]) : ownerSql.queryRaw(OWN_MOVE, [
1402
+ target,
1403
+ name,
1404
+ owner,
1405
+ active.targetUserId,
1406
+ stamp,
1407
+ previousOwner
1408
+ ]));
1409
+ } catch (cause) {
1410
+ const written = options.admin.from(target);
1411
+ await (method === "copy" ? written.remove([name]) : written.move(name, source, { destinationBucket: bucket }));
1412
+ return failed(sqlFailure(cause));
1413
+ }
1414
+ return reply;
1415
+ });
1416
+ };
1417
+ const remove = (paths) => {
1418
+ if (!writer) return refuse();
1419
+ return settled(async () => {
1420
+ const entries = paths.map((entry) => typeof entry === "string" ? normalizePath(entry) : {
1421
+ ...entry,
1422
+ path: normalizePath(entry.path)
1423
+ });
1424
+ const names = entries.map((entry) => typeof entry === "string" ? entry : entry.path);
1425
+ const removable = /* @__PURE__ */ new Set();
1426
+ const refused = await rehearse(async (client) => {
1427
+ await client.queryRaw(ALLOW_DELETE);
1428
+ const deleted = await client.queryRaw(DELETE_OBJECTS, [bucket, [...new Set(names)]]);
1429
+ for (const row of deleted) removable.add(String(row["name"]));
1430
+ return null;
1431
+ });
1432
+ if (refused) return failed(refused);
1433
+ const permitted = entries.filter((_, index) => removable.has(names[index] ?? ""));
1434
+ if (permitted.length === 0) return {
1435
+ data: [],
1436
+ error: null
1437
+ };
1438
+ return admin().remove(permitted);
1439
+ });
1440
+ };
1441
+ return {
1442
+ exists: (path) => settled(async () => ({
1443
+ data: await visible(normalizePath(path)),
1444
+ error: null
1445
+ })).then((reply) => reply.error === null ? reply : {
1446
+ data: false,
1447
+ error: reply.error
1448
+ }),
1449
+ info: (path, infoOptions) => settled(async () => {
1450
+ const versionId = infoOptions?.versionId;
1451
+ const name = normalizePath(path);
1452
+ const [row] = await rows(versionId === void 0 ? OBJECT_INFO : `${OBJECT_INFO} and o.version = $3`, versionId === void 0 ? [bucket, name] : [
1453
+ bucket,
1454
+ name,
1455
+ versionId
1456
+ ]);
1457
+ const object = row?.["object"];
1458
+ return isRecord(object) ? {
1459
+ data: infoOf(object),
1460
+ error: null
1461
+ } : failed(NOT_FOUND);
1462
+ }),
1463
+ download: (path, downloadOptions, parameters) => checked(path, (name) => admin().download(name, downloadOptions, parameters)),
1464
+ createSignedUrl: (path, expiresIn, urlOptions) => checked(path, (name) => admin().createSignedUrl(name, expiresIn, urlOptions)),
1465
+ createSignedUrls: (paths, expiresIn, urlOptions) => settled(async () => {
1466
+ const names = paths.map(normalizePath);
1467
+ const seen = new Set((await rows(VISIBLE_OBJECTS, [bucket, names])).map((row) => String(row["path"])));
1468
+ const shown = [...new Set(names.filter((name) => seen.has(name)))];
1469
+ const signed = /* @__PURE__ */ new Map();
1470
+ if (shown.length > 0) {
1471
+ const reply = await admin().createSignedUrls(shown, expiresIn, urlOptions);
1472
+ if (reply.error) return failed(reply.error);
1473
+ for (const entry of reply.data) if (entry.path !== null) signed.set(entry.path, entry);
1474
+ }
1475
+ return {
1476
+ data: names.map((name) => signed.get(name) ?? {
1477
+ error: HIDDEN_URL,
1478
+ path: name,
1479
+ signedUrl: null
1480
+ }),
1481
+ error: null
1482
+ };
1483
+ }),
1484
+ getPublicUrl: (path, urlOptions) => admin().getPublicUrl(path, urlOptions),
1485
+ list,
1486
+ listV2,
1487
+ upload: store("upload"),
1488
+ update: store("update"),
1489
+ createSignedUploadUrl,
1490
+ uploadToSignedUrl,
1491
+ remove,
1492
+ copy: relocate("copy"),
1493
+ move: relocate("move"),
1494
+ purgeCache: (path, cacheOptions, parameters) => writer ? checked(path, (name) => admin().purgeCache(name, cacheOptions, parameters)) : refuse()
1495
+ };
1496
+ }
1497
+ };
1401
1498
  }
1402
1499
  //#endregion
1403
1500
  //#region src/server/server.ts
1501
+ /** The header `better_supabase.acting_member()` reads for a service caller. */
1502
+ const ACTOR_HEADER = "x-bs-actor";
1404
1503
  /** The environment as `getEnv` resolves it, one variable at a time. */
1405
1504
  const RUNTIME_ENV = new Proxy({}, { get: (_target, key) => typeof key === "string" ? getEnv(key) : void 0 });
1505
+ /**
1506
+ * `options.env` as given when it is loaded already, parsed when it is a
1507
+ * variable map (never merged with the runtime's), else the runtime's.
1508
+ */
1509
+ function envOf(env) {
1510
+ if (env === void 0) return loadEnv(RUNTIME_ENV);
1511
+ return isLoadedEnv(env) ? env : loadEnv(env);
1512
+ }
1513
+ /** An `EnvSource` holds only strings, so a `URL` in `jwksUrl` means a loaded env. */
1514
+ function isLoadedEnv(env) {
1515
+ return env.jwksUrl instanceof URL;
1516
+ }
1406
1517
  const needsPostgres = (method) => dbError("invalid_request", `${method} needs createServer(betterSupabase, { postgres: createPostgres() })`);
1407
1518
  /**
1408
1519
  * A framework adapter's server: `server` plus the adapter's own methods,
@@ -1424,7 +1535,7 @@ function extendServer(server, extra) {
1424
1535
  function createServer(betterSupabase, options = {}) {
1425
1536
  const credentials = options.credentials === void 0 ? {} : { credentials: credentialProviderOf(options.credentials) };
1426
1537
  let loaded;
1427
- const env = () => loaded ??= options.env ?? loadEnv(RUNTIME_ENV);
1538
+ const env = () => loaded ??= envOf(options.env);
1428
1539
  const lite = liteBackend(options, env);
1429
1540
  if (lite === void 0 && (options.prefetchJwks ?? defaultPrefetchJwks()) && options.auth?.jwks === void 0) try {
1430
1541
  prefetchJwks({
@@ -1448,10 +1559,17 @@ function createServer(betterSupabase, options = {}) {
1448
1559
  const dbFor = (auth, context = {}) => {
1449
1560
  let supabase;
1450
1561
  const rest = restAt(env().url, auth);
1562
+ const storage = { from: (bucket) => (supabase ??= supabaseFor(auth)).storage.from(bucket) };
1451
1563
  const db = betterSupabase.connect(rest, {
1452
1564
  ...authContext(auth),
1453
1565
  ...context
1454
- }, auth.kind === "invalid" ? { executor: refusingExecutor(auth.error) } : tunedExecutor ? { executor: postgrestExecutor(rest, executorOptions) } : {});
1566
+ }, auth.kind === "invalid" ? {
1567
+ executor: refusingExecutor(auth.error),
1568
+ storage
1569
+ } : tunedExecutor ? {
1570
+ executor: postgrestExecutor(rest, executorOptions),
1571
+ storage
1572
+ } : { storage });
1455
1573
  return withLazyClient(db, () => supabase ??= supabaseFor(auth));
1456
1574
  };
1457
1575
  const sqlFor = (claims, context, stats, session, storage) => {
@@ -1651,6 +1769,7 @@ function createServer(betterSupabase, options = {}) {
1651
1769
  const rest = (sharesClient ? void 0 : supabase) ?? restAt(env().url, auth, headers);
1652
1770
  const connected = betterSupabase.connect(rest, context, {
1653
1771
  stats: recorder,
1772
+ storage: { from: (bucket) => client().storage.from(bucket) },
1654
1773
  ...auth.kind === "invalid" ? { executor: refusingExecutor(auth.error) } : url && replica ? { executor: routedExecutor(postgrestExecutor(rest, executorOptions), postgrestExecutor(restAt(url, auth, headers), executorOptions), replica) } : tunedExecutor ? { executor: postgrestExecutor(rest, executorOptions) } : {}
1655
1774
  });
1656
1775
  db = withLazyClient(connected, client);
@@ -1762,9 +1881,12 @@ function createServer(betterSupabase, options = {}) {
1762
1881
  return resolving;
1763
1882
  },
1764
1883
  contextFromResolution: (resolution, request, contextOptions = {}) => fromResolution(resolution, request, contextOptions, contextOptions.tenant ?? syncTenant(request, resolution.auth)),
1765
- admin: (context = {}) => {
1766
- const client = serviceClient();
1767
- return betterSupabase.connect(client, {
1884
+ admin: (context = {}, adminOptions = {}) => {
1885
+ const client = adminOptions.as === void 0 ? serviceClient() : supabaseFor({
1886
+ kind: "service",
1887
+ keyName: "secret"
1888
+ }, { [ACTOR_HEADER]: adminOptions.as });
1889
+ const db = betterSupabase.connect(client, {
1768
1890
  actor: {
1769
1891
  id: "service",
1770
1892
  kind: "service",
@@ -1773,6 +1895,7 @@ function createServer(betterSupabase, options = {}) {
1773
1895
  claims: { role: "service_role" },
1774
1896
  ...context
1775
1897
  }, tunedExecutor ? { executor: postgrestExecutor(client, executorOptions) } : {});
1898
+ return Object.defineProperty(db, "$authAdmin", { get: () => client.auth.admin });
1776
1899
  },
1777
1900
  support,
1778
1901
  deleteAccount: (userId, deleteOptions) => deleteAccount(betterSupabase, serviceClient, userId, {