better-supabase 0.5.0 → 0.6.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 (536) hide show
  1. package/README.md +299 -41
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/actor-CQTlc1Hh.d.ts +43 -0
  4. package/dist/adapter-Bc1o3zyy.js +1106 -0
  5. package/dist/agents-CVHGd7It.d.ts +94 -0
  6. package/dist/ai-cache-CBWs1W0k.js +80 -0
  7. package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
  8. package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
  9. package/dist/ai-chat-B24UI962.js +743 -0
  10. package/dist/ai-files-CSPNswUY.js +319 -0
  11. package/dist/ai-sdk/agents/index.d.ts +74 -0
  12. package/dist/ai-sdk/agents/index.js +159 -0
  13. package/dist/ai-sdk/batches/index.d.ts +74 -0
  14. package/dist/ai-sdk/batches/index.js +180 -0
  15. package/dist/ai-sdk/cache/index.d.ts +38 -0
  16. package/dist/ai-sdk/cache/index.js +127 -0
  17. package/dist/ai-sdk/chat/index.d.ts +2 -0
  18. package/dist/ai-sdk/chat/index.js +246 -0
  19. package/dist/ai-sdk/embeddings/index.d.ts +3 -0
  20. package/dist/ai-sdk/embeddings/index.js +2 -0
  21. package/dist/ai-sdk/files/index.d.ts +61 -0
  22. package/dist/ai-sdk/files/index.js +111 -0
  23. package/dist/ai-sdk/index.d.ts +145 -0
  24. package/dist/ai-sdk/index.js +174 -0
  25. package/dist/ai-sdk/mcp/index.d.ts +102 -0
  26. package/dist/ai-sdk/mcp/index.js +362 -0
  27. package/dist/ai-sdk/memory/index.d.ts +67 -0
  28. package/dist/ai-sdk/memory/index.js +175 -0
  29. package/dist/ai-sdk/react/index.d.ts +2 -0
  30. package/dist/ai-sdk/react/index.js +3 -0
  31. package/dist/ai-sdk/react/server.d.ts +6 -0
  32. package/dist/ai-sdk/react/server.js +7 -0
  33. package/dist/ai-sdk/workflow/index.d.ts +249 -0
  34. package/dist/ai-sdk/workflow/index.js +575 -0
  35. package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
  36. package/dist/ai-sdk/workflow/react/index.js +66 -0
  37. package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
  38. package/dist/ai-sdk/workflow/react/server.js +12 -0
  39. package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
  40. package/dist/announcements-CiyOs-xP.js +107 -0
  41. package/dist/announcements-ZRGnScWI.d.ts +72 -0
  42. package/dist/api-keys-rCGtKaZA.d.ts +156 -0
  43. package/dist/assistant-DwdpDH1q.d.ts +147 -0
  44. package/dist/astro/index.d.ts +86 -0
  45. package/dist/astro/index.js +93 -0
  46. package/dist/attributes-5dYul0u0.js +13 -0
  47. package/dist/auth-link-BjFPqwLz.d.ts +97 -0
  48. package/dist/auth-link-DrDX9KOT.js +114 -0
  49. package/dist/authorization-BFCqamMs.d.ts +172 -0
  50. package/dist/before-route-CnR0C0Jr.js +30 -0
  51. package/dist/bind-Bu_ZNa3W.d.ts +62 -0
  52. package/dist/bind-l4kAvYSv.js +97 -0
  53. package/dist/block-events-CrT8r7Fe.js +76 -0
  54. package/dist/block-fields-GFkxl4dP.js +49 -0
  55. package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
  56. package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
  57. package/dist/block-helpers-DWHxHsEQ.js +190 -0
  58. package/dist/block-hooks-BmjMyXTa.js +114 -0
  59. package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
  60. package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
  61. package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
  62. package/dist/blocks/agents/index.d.ts +3 -0
  63. package/dist/blocks/agents/index.js +123 -0
  64. package/dist/blocks/ai-cache/index.d.ts +3 -0
  65. package/dist/blocks/ai-cache/index.js +3 -0
  66. package/dist/blocks/ai-chat/index.d.ts +31 -0
  67. package/dist/blocks/ai-chat/index.js +5 -0
  68. package/dist/blocks/ai-chat/react/index.d.ts +77 -0
  69. package/dist/blocks/ai-chat/react/index.js +387 -0
  70. package/dist/blocks/ai-chat/react/server.d.ts +16 -0
  71. package/dist/blocks/ai-chat/react/server.js +14 -0
  72. package/dist/blocks/ai-files/index.d.ts +14 -0
  73. package/dist/blocks/ai-files/index.js +3 -0
  74. package/dist/blocks/ai-providers/index.d.ts +7 -0
  75. package/dist/blocks/ai-providers/index.js +211 -0
  76. package/dist/blocks/ai-tasks/index.d.ts +3 -0
  77. package/dist/blocks/ai-tasks/index.js +203 -0
  78. package/dist/blocks/announcements/index.d.ts +3 -0
  79. package/dist/blocks/announcements/index.js +3 -0
  80. package/dist/blocks/announcements/react/index.d.ts +31 -0
  81. package/dist/blocks/announcements/react/index.js +86 -0
  82. package/dist/blocks/announcements/react/server.d.ts +6 -0
  83. package/dist/blocks/announcements/react/server.js +7 -0
  84. package/dist/blocks/api-keys/index.d.ts +35 -0
  85. package/dist/blocks/api-keys/index.js +334 -0
  86. package/dist/blocks/attachments/index.d.ts +210 -0
  87. package/dist/blocks/attachments/index.js +222 -0
  88. package/dist/blocks/audit/index.d.ts +366 -0
  89. package/dist/blocks/audit/index.js +714 -0
  90. package/dist/blocks/billing/index.d.ts +265 -0
  91. package/dist/blocks/billing/index.js +400 -0
  92. package/dist/blocks/comments/index.d.ts +200 -0
  93. package/dist/blocks/comments/index.js +207 -0
  94. package/dist/blocks/connectors/index.d.ts +3 -0
  95. package/dist/blocks/connectors/index.js +164 -0
  96. package/dist/blocks/data-lifecycle/index.d.ts +251 -0
  97. package/dist/blocks/data-lifecycle/index.js +353 -0
  98. package/dist/blocks/entitlements/index.d.ts +14 -0
  99. package/dist/blocks/entitlements/index.js +25 -0
  100. package/dist/blocks/flags/index.d.ts +226 -0
  101. package/dist/blocks/flags/index.js +282 -0
  102. package/dist/blocks/inbox/index.d.ts +6 -0
  103. package/dist/blocks/inbox/index.js +499 -0
  104. package/dist/blocks/inbox/react/index.d.ts +2 -0
  105. package/dist/blocks/inbox/react/index.js +225 -0
  106. package/dist/blocks/inbox/react/server.d.ts +10 -0
  107. package/dist/blocks/inbox/react/server.js +12 -0
  108. package/dist/blocks/index.d.ts +65 -0
  109. package/dist/blocks/index.js +77 -0
  110. package/dist/blocks/jobs/index.d.ts +297 -0
  111. package/dist/blocks/jobs/index.js +1051 -0
  112. package/dist/blocks/knowledge/index.d.ts +3 -0
  113. package/dist/blocks/knowledge/index.js +3 -0
  114. package/dist/blocks/memory/index.d.ts +8 -0
  115. package/dist/blocks/memory/index.js +289 -0
  116. package/dist/blocks/notifications/index.d.ts +297 -0
  117. package/dist/blocks/notifications/index.js +425 -0
  118. package/dist/blocks/notifications/react/index.d.ts +44 -0
  119. package/dist/blocks/notifications/react/index.js +67 -0
  120. package/dist/blocks/notifications/react/server.d.ts +6 -0
  121. package/dist/blocks/notifications/react/server.js +7 -0
  122. package/dist/blocks/onboarding/index.d.ts +3 -0
  123. package/dist/blocks/onboarding/index.js +64 -0
  124. package/dist/blocks/onboarding/react/index.d.ts +28 -0
  125. package/dist/blocks/onboarding/react/index.js +78 -0
  126. package/dist/blocks/onboarding/react/server.d.ts +7 -0
  127. package/dist/blocks/onboarding/react/server.js +7 -0
  128. package/dist/blocks/organizations/index.d.ts +241 -0
  129. package/dist/blocks/organizations/index.js +400 -0
  130. package/dist/blocks/outbox/index.d.ts +3 -0
  131. package/dist/blocks/outbox/index.js +266 -0
  132. package/dist/blocks/profiles/index.d.ts +40 -0
  133. package/dist/blocks/profiles/index.js +28 -0
  134. package/dist/blocks/push/index.d.ts +185 -0
  135. package/dist/blocks/push/index.js +258 -0
  136. package/dist/blocks/settings/index.d.ts +89 -0
  137. package/dist/blocks/settings/index.js +104 -0
  138. package/dist/blocks/sso/index.d.ts +198 -0
  139. package/dist/blocks/sso/index.js +1297 -0
  140. package/dist/blocks/usage/index.d.ts +4 -0
  141. package/dist/blocks/usage/index.js +233 -0
  142. package/dist/blocks/waitlist/index.d.ts +117 -0
  143. package/dist/blocks/waitlist/index.js +132 -0
  144. package/dist/blocks/webhooks/index.d.ts +304 -0
  145. package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
  146. package/dist/blocks/workflow-builder/index.d.ts +21 -0
  147. package/dist/blocks/workflow-builder/index.js +5 -0
  148. package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
  149. package/dist/blocks/workflow-builder/react/index.js +119 -0
  150. package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
  151. package/dist/blocks/workflow-builder/react/server.js +11 -0
  152. package/dist/blocks/workflows/index.d.ts +3 -0
  153. package/dist/blocks/workflows/index.js +3 -0
  154. package/dist/blocks/workflows/react/index.d.ts +47 -0
  155. package/dist/blocks/workflows/react/index.js +137 -0
  156. package/dist/blocks/workflows/react/server.d.ts +8 -0
  157. package/dist/blocks/workflows/react/server.js +11 -0
  158. package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
  159. package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
  160. package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
  161. package/dist/channels-CkgQ_X60.js +114 -0
  162. package/dist/chat-sdk/index.d.ts +303 -0
  163. package/dist/chat-sdk/index.js +733 -0
  164. package/dist/chat-sdk/react/index.d.ts +2 -0
  165. package/dist/chat-sdk/react/index.js +3 -0
  166. package/dist/chat-sdk/react/server.d.ts +3 -0
  167. package/dist/chat-sdk/react/server.js +2 -0
  168. package/dist/claims-DDBQT6BK.js +61 -0
  169. package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
  170. package/dist/cli/bin.js +1 -1
  171. package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
  172. package/dist/cli/config-B9HkL8nF.js +2 -0
  173. package/dist/cli/config-DU7EJImt.js +49 -0
  174. package/dist/cli/config-NiPxAmUF.js +1077 -0
  175. package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
  176. package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
  177. package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
  178. package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
  179. package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
  180. package/dist/cli/gen-BGLb_zou.js +3100 -0
  181. package/dist/cli/gen-DAH8FM2W.js +2 -0
  182. package/dist/cli/index.d.ts +44 -5
  183. package/dist/cli/index.js +7 -7
  184. package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
  186. package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
  187. package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
  188. package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
  189. package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
  190. package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
  191. package/dist/cli/read-sets-CETOSFx4.js +223 -0
  192. package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
  193. package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
  194. package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
  195. package/dist/cli/sql-D0GUtUPp.js +536 -0
  196. package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
  197. package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
  198. package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
  199. package/dist/client/index.d.ts +3 -2
  200. package/dist/client/index.js +11 -71
  201. package/dist/client/native/index.d.ts +228 -0
  202. package/dist/client/native/index.js +361 -0
  203. package/dist/client-CI0Z2zWX.js +277 -0
  204. package/dist/cloud-event-BnmD5fb9.js +46 -0
  205. package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
  206. package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
  207. package/dist/compose-BIBNgAnq.js +53 -0
  208. package/dist/composite-Bt1YK3Ke.d.ts +146 -0
  209. package/dist/composite-DhE66P5u.js +130 -0
  210. package/dist/config/index.d.ts +6 -4
  211. package/dist/config/index.js +5 -5
  212. package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
  213. package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
  214. package/dist/connector-Dv8kK0MO.d.ts +107 -0
  215. package/dist/connectors-hkLCwyEz.d.ts +120 -0
  216. package/dist/context-BCrWe7ow.d.ts +237 -0
  217. package/dist/credentials/index.d.ts +31 -0
  218. package/dist/credentials/index.js +168 -0
  219. package/dist/cron-DVPUg5k3.js +145 -0
  220. package/dist/csv-CPAzEmB6.js +25 -0
  221. package/dist/db-exception-CnWcYPxL.js +15 -0
  222. package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
  223. package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
  224. package/dist/edge/index.d.ts +69 -11
  225. package/dist/edge/index.js +191 -75
  226. package/dist/elysia/index.d.ts +59 -0
  227. package/dist/elysia/index.js +62 -0
  228. package/dist/embeddings-4ZvFzjsU.js +127 -0
  229. package/dist/embeddings-C9KGQnXt.d.ts +68 -0
  230. package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
  232. package/dist/entitlements-DRl6ZJUm.js +24 -0
  233. package/dist/envelope-DqnYGRw7.js +47 -0
  234. package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
  235. package/dist/errors-DLjJHPLK.js +44 -0
  236. package/dist/escape-like-DHfx6jRr.js +7 -0
  237. package/dist/escape-like-ImTK0ps_.d.ts +15 -0
  238. package/dist/eve/index.d.ts +220 -0
  239. package/dist/eve/index.js +504 -0
  240. package/dist/eve-gT2Fpjut.d.ts +151 -0
  241. package/dist/events/index.d.ts +4 -3
  242. package/dist/events/index.js +9 -50
  243. package/dist/events-DWDhx77e.d.ts +549 -0
  244. package/dist/executor-Bq28caBo.js +718 -0
  245. package/dist/executor-C-R4pucm.js +83 -0
  246. package/dist/executor-CaWigTyR.d.ts +148 -0
  247. package/dist/executor-D14tGopJ.d.ts +36 -0
  248. package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
  249. package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
  250. package/dist/executor-DvsBbNBS.d.ts +261 -0
  251. package/dist/expo/index.d.ts +79 -0
  252. package/dist/expo/index.js +129 -0
  253. package/dist/expo-sqlite/index.d.ts +58 -0
  254. package/dist/expo-sqlite/index.js +104 -0
  255. package/dist/field-errors-BFOa7WhB.d.ts +99 -0
  256. package/dist/field-errors-VF1yb8yI.js +13 -0
  257. package/dist/framework-CONDyPYx.js +51 -0
  258. package/dist/framework-DuVb4Xa8.d.ts +25 -0
  259. package/dist/gateway-C1ssRHnf.d.ts +130 -0
  260. package/dist/graph-BGyLLFLX.js +265 -0
  261. package/dist/h3/index.d.ts +59 -0
  262. package/dist/h3/index.js +55 -0
  263. package/dist/h3/v1/index.d.ts +63 -0
  264. package/dist/h3/v1/index.js +49 -0
  265. package/dist/history-BZih6SFP.js +64 -0
  266. package/dist/hono/index.d.ts +56 -7
  267. package/dist/hono/index.js +97 -45
  268. package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
  269. package/dist/http-Cv4T29xh.js +40 -0
  270. package/dist/http-DdYadv-o.js +126 -0
  271. package/dist/image-url-pIVlO6R1.js +41 -0
  272. package/dist/impersonation-DcqaTBHx.js +148 -0
  273. package/dist/inbox-i7E1ppo6.d.ts +384 -0
  274. package/dist/index-ACiNPN4Z.d.ts +74 -0
  275. package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
  276. package/dist/index-BkWT_uBO.d.ts +51 -0
  277. package/dist/index-BpFYMsi0.d.ts +53 -0
  278. package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
  279. package/dist/index-CaxrMD1A.d.ts +1 -0
  280. package/dist/index-ClmjK_o-.d.ts +55 -0
  281. package/dist/index-CtuakVRc.d.ts +267 -0
  282. package/dist/index-D48jVS-N.d.ts +246 -0
  283. package/dist/index-DDrYaUcq.d.ts +138 -0
  284. package/dist/index-DQh4VCc9.d.ts +98 -0
  285. package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
  286. package/dist/index.d.ts +65 -18
  287. package/dist/index.js +42 -14
  288. package/dist/invalidate-BBqhpxyB.d.ts +19 -0
  289. package/dist/json-CEnpTHlZ.js +16 -0
  290. package/dist/json-schema-CvER4kgT.js +502 -0
  291. package/dist/keys-4MnkWTTh.js +35 -0
  292. package/dist/kit-B5tid-q5.d.ts +60 -0
  293. package/dist/kit-Fm-Fv7q5.js +78 -0
  294. package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
  295. package/dist/knowledge-CDmiMLew.js +255 -0
  296. package/dist/lint/index.d.ts +1 -1
  297. package/dist/lint/index.js +37 -0
  298. package/dist/list/index.d.ts +3 -2
  299. package/dist/list/index.js +1 -444
  300. package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
  301. package/dist/list-query-gl808ac1.js +459 -0
  302. package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
  303. package/dist/logger-DWVYUmwi.d.ts +18 -0
  304. package/dist/mcp/index.d.ts +38 -11
  305. package/dist/mcp/index.js +82 -46
  306. package/dist/mcp/sdk/index.d.ts +105 -0
  307. package/dist/mcp/sdk/index.js +126 -0
  308. package/dist/message-CaKlqdsX.js +219 -0
  309. package/dist/message-CfDoR0Y6.d.ts +94 -0
  310. package/dist/messages-B9-5887d.js +715 -0
  311. package/dist/messages-DYP0sUTe.d.ts +59 -0
  312. package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
  313. package/dist/modules-DpPwzC7E.d.ts +192 -0
  314. package/dist/modules-dxrVK3ID.js +228 -0
  315. package/dist/nestjs/index.d.ts +68 -0
  316. package/dist/nestjs/index.js +164 -0
  317. package/dist/next/client/index.d.ts +35 -0
  318. package/dist/next/client/index.js +36 -0
  319. package/dist/next/image/index.js +3 -24
  320. package/dist/next/index.d.ts +150 -51
  321. package/dist/next/index.js +261 -107
  322. package/dist/node/index.d.ts +4 -0
  323. package/dist/node/index.js +210 -0
  324. package/dist/node-headers-AO06VhqH.d.ts +24 -0
  325. package/dist/node-headers-C71zNQHe.js +55 -0
  326. package/dist/nuxt/index.d.ts +60 -0
  327. package/dist/nuxt/index.js +64 -0
  328. package/dist/onboarding-BZGHYJks.d.ts +62 -0
  329. package/dist/openapi/index.d.ts +1 -1
  330. package/dist/openapi/index.js +3 -3
  331. package/dist/orpc/index.d.ts +70 -11
  332. package/dist/orpc/index.js +73 -24
  333. package/dist/otel/index.d.ts +7 -7
  334. package/dist/otel/index.js +87 -57
  335. package/dist/outbox-Cq7pPYvl.d.ts +161 -0
  336. package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
  337. package/dist/plugin-tfXW1-qO.js +45 -0
  338. package/dist/plugins/actor/index.d.ts +2 -2
  339. package/dist/plugins/actor/index.js +3 -3
  340. package/dist/plugins/rules/index.d.ts +11 -4
  341. package/dist/plugins/rules/index.js +40 -13
  342. package/dist/plugins/soft-delete/index.d.ts +5 -4
  343. package/dist/plugins/soft-delete/index.js +10 -5
  344. package/dist/plugins/tenant/index.d.ts +2 -2
  345. package/dist/plugins/tenant/index.js +18 -11
  346. package/dist/plugins/timestamps/index.d.ts +5 -3
  347. package/dist/plugins/timestamps/index.js +6 -4
  348. package/dist/plugins/validation/index.d.ts +2 -2
  349. package/dist/plugins/validation/index.js +10 -6
  350. package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
  351. package/dist/postgres/index.d.ts +4 -4
  352. package/dist/postgres/index.js +1 -2
  353. package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
  354. package/dist/powersync/index.d.ts +43 -0
  355. package/dist/powersync/index.js +199 -0
  356. package/dist/powersync/react/index.d.ts +87 -0
  357. package/dist/powersync/react/index.js +108 -0
  358. package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
  359. package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
  360. package/dist/provider-BH5UWZJ6.d.ts +113 -0
  361. package/dist/provider-Di3sRutW.js +57 -0
  362. package/dist/query/index.d.ts +4 -2
  363. package/dist/query/index.js +4 -3
  364. package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
  365. package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
  366. package/dist/react/index.d.ts +11 -7
  367. package/dist/react/index.js +7 -3
  368. package/dist/react/native/index.d.ts +116 -0
  369. package/dist/react/native/index.js +130 -0
  370. package/dist/react/server.d.ts +28 -10
  371. package/dist/react/server.js +22 -5
  372. package/dist/react/session.d.ts +2 -2
  373. package/dist/react-4ZqkP8da.js +79 -0
  374. package/dist/react-F80mF4-t.js +409 -0
  375. package/dist/react-router/index.d.ts +83 -0
  376. package/dist/react-router/index.js +89 -0
  377. package/dist/react-topic-seAWjL3_.js +38 -0
  378. package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
  379. package/dist/realtime/index.d.ts +4 -5
  380. package/dist/realtime/index.js +144 -82
  381. package/dist/refusal-CeJWxmkH.js +61 -0
  382. package/dist/refusal-D1rgbzNq.d.ts +15 -0
  383. package/dist/replicas-CwrYp5Zj.js +94 -0
  384. package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
  385. package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
  386. package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
  388. package/dist/respond-BUgsXNgk.js +91 -0
  389. package/dist/respond-DoBijysA.d.ts +93 -0
  390. package/dist/result-D7y2fT87.d.ts +282 -0
  391. package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
  392. package/dist/run-state-CPo-1X2B.d.ts +12 -0
  393. package/dist/run-state-CgBKzYMW.js +13 -0
  394. package/dist/search-CUWCRYKL.js +9 -0
  395. package/dist/server/index.d.ts +143 -21
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
  398. package/dist/session-ChiXDZdZ.d.ts +72 -0
  399. package/dist/shared-CBxosKK3.js +75 -0
  400. package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
  401. package/dist/shared-DDSjEGDR.d.ts +11 -0
  402. package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
  403. package/dist/sign-in-Cb1mwv6X.js +86 -0
  404. package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
  405. package/dist/simplify-DDO0j0LI.js +83 -0
  406. package/dist/solid/index.d.ts +131 -0
  407. package/dist/solid/index.js +344 -0
  408. package/dist/solid-start/index.d.ts +75 -0
  409. package/dist/solid-start/index.js +58 -0
  410. package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
  411. package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
  412. package/dist/sql/index.d.ts +330 -194
  413. package/dist/sql/index.js +34901 -6489
  414. package/dist/ssr/index.d.ts +6 -5
  415. package/dist/ssr/index.js +3 -3
  416. package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
  417. package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
  418. package/dist/stats-D_AD9GGu.js +1123 -0
  419. package/dist/storage/index.d.ts +5 -5
  420. package/dist/storage/index.js +1027 -368
  421. package/dist/store-BdH5ruDx.js +66 -0
  422. package/dist/store-CGjgWu5n.d.ts +68 -0
  423. package/dist/streams/index.d.ts +76 -0
  424. package/dist/streams/index.js +77 -0
  425. package/dist/streams/redis/index.d.ts +52 -0
  426. package/dist/streams/redis/index.js +185 -0
  427. package/dist/stripe-BMj5LtsT.js +38 -0
  428. package/dist/stripe-D04h-QBT.d.ts +136 -0
  429. package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
  430. package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  431. package/dist/svelte/index.d.ts +114 -0
  432. package/dist/svelte/index.js +344 -0
  433. package/dist/sveltekit/index.d.ts +116 -0
  434. package/dist/sveltekit/index.js +106 -0
  435. package/dist/tags-B99_U9Pp.js +39 -0
  436. package/dist/tags-Cx-LnIQP.d.ts +30 -0
  437. package/dist/tanstack-db/index.d.ts +71 -0
  438. package/dist/tanstack-db/index.js +72 -0
  439. package/dist/tanstack-start/index.d.ts +75 -0
  440. package/dist/tanstack-start/index.js +95 -0
  441. package/dist/tee-CoEppCER.js +101 -0
  442. package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
  443. package/dist/template-CwO38Do8.d.ts +6 -0
  444. package/dist/temporal-BJGitm-h.js +79 -0
  445. package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
  446. package/dist/tenant-I1TEZ_BX.js +27 -0
  447. package/dist/tenant-icPeuUBN.d.ts +17 -0
  448. package/dist/testing/index.d.ts +343 -37
  449. package/dist/testing/index.js +1186 -79
  450. package/dist/timing-CyTQPubY.js +92 -0
  451. package/dist/ttl-Hr34gRu8.js +12 -0
  452. package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
  453. package/dist/types-BI-0Sl2v.d.ts +359 -0
  454. package/dist/types-C05bxW-W.d.ts +220 -0
  455. package/dist/types-DGs5L0VN.d.ts +192 -0
  456. package/dist/types-TaiEeBGA.d.ts +156 -0
  457. package/dist/usage-CrvrL2vw.d.ts +177 -0
  458. package/dist/user-change-XzvgafU4.js +130 -0
  459. package/dist/vault-CSO7ss5C.d.ts +50 -0
  460. package/dist/vercel-connect/index.d.ts +47 -0
  461. package/dist/vercel-connect/index.js +119 -0
  462. package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
  463. package/dist/verify-DPuWngD4.d.ts +172 -0
  464. package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +470 -29
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +21 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +62 -18
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-BJc9vdyu.js +0 -2
  504. package/dist/cli/gen-C2osRcr5.js +0 -2204
  505. package/dist/cli/read-sets-BfMQcKy8.js +0 -289
  506. package/dist/cli/sql-DzPbfngx.js +0 -348
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/impersonation-VfaGc4Q_.js +0 -41
  512. package/dist/index-BGdgBPdf.d.ts +0 -161
  513. package/dist/index-DOESKG27.d.ts +0 -100
  514. package/dist/index-DmXSxbLi.d.ts +0 -62
  515. package/dist/index-Dxn2a5cw.d.ts +0 -50
  516. package/dist/jobs/index.d.ts +0 -226
  517. package/dist/jobs/index.js +0 -1007
  518. package/dist/json-schema-m1fiwKgN.js +0 -208
  519. package/dist/kit-events-CTFDfSwb.js +0 -60
  520. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  521. package/dist/kits-CGLLrNPd.js +0 -157
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-Csx2sRjg.js +0 -655
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-DT-OhSxD.d.ts +0 -88
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. package/skills/better-supabase-auth/references/permdock.md +0 -100
@@ -1,53 +1,76 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { a as BucketPolicyName, t as AccessBucketPolicy, x as PermdockBucketPolicy } from "./types-Dnf_wRDz.js";
3
- import { _ as DbError, a as AsyncResult, u as Result } from "./executor-BunPOO-k.js";
4
- import { g as RequestContext } from "./plugin-o144f322.js";
5
- import { n as PermdockCatalog } from "./permdock-sql-C2Inc6Xc.js";
2
+ import { b as DbError, f as Result, t as AsyncResult } from "./result-D7y2fT87.js";
3
+ import { G as ObjectVersion, K as VersioningStatus, U as BucketLifecycle, s as BucketPolicyName, t as AccessBucketPolicy } from "./types-6BdhkmZe.js";
4
+ import { m as RequestContext } from "./plugin-FGY8UhYm.js";
6
5
  import { n as StoragePath, t as PathIn } from "./path-Cv__-OTj.js";
7
- import { n as TemplateValues, t as TemplateParams } from "./template-mbvlysOo.js";
6
+ import { n as TemplateValues, t as TemplateParams } from "./template-CwO38Do8.js";
8
7
  import { SupabaseClient } from "@supabase/supabase-js";
8
+ //#region src/storage/ttl.d.ts
9
+ declare const TTL: {
10
+ readonly minute: 60;
11
+ readonly hour: 3600;
12
+ readonly day: 86_400;
13
+ readonly week: 604_800;
14
+ };
15
+ type TtlPreset = keyof typeof TTL;
16
+ //#endregion
17
+ //#region src/storage/apply.d.ts
18
+ interface AppliedBucket {
19
+ /** The bucket did not exist and was created. */
20
+ readonly created: boolean;
21
+ }
22
+ //#endregion
9
23
  //#region src/storage/bucket.d.ts
10
- type BucketPolicy = BucketPolicyName | PermdockBucketPolicy | AccessBucketPolicy;
24
+ type BucketPolicy = BucketPolicyName | AccessBucketPolicy;
11
25
  interface BucketConfig<P extends string = string, Id extends string = string> {
12
26
  /** Bucket id, e.g. `customer-logos`. */
13
27
  readonly id: Id;
14
- /** Object path template, e.g. `{orgId}/{customerId}/logo/{version}.webp`. */
15
- readonly path: P;
28
+ /**
29
+ * Object path template, e.g. `{organizationId}/{customerId}/logo/{version}.webp`,
30
+ * or several for a bucket that stores objects in more than one layout. A
31
+ * path from values uses the template whose placeholders are exactly the
32
+ * values given, and a stored path string is accepted when any template
33
+ * matches it, so list the current layout first and keep older ones after
34
+ * it. A last segment `{...rest}` matches one or more segments.
35
+ */
36
+ readonly path: P | readonly [P, ...P[]];
16
37
  readonly public?: boolean;
17
38
  /**
18
39
  * Generated `storage.objects` policies. `tenant` and `owner` match a path
19
40
  * segment against the JWT; `public` allows reads (on a `public: true`
20
41
  * bucket the public URLs need no policy, so none is written and nobody can
21
42
  * list the objects); `none` leaves access to
22
- * the secret key; `{ permdock, scope }` calls PermDock's SQL helpers;
23
- * `{ access }` calls the SQL kit's access contract (`tenant_ids_with`).
24
- * Defaults to `none`.
43
+ * the secret key; `{ access }` calls the SQL modules' access contract
44
+ * (`tenant_ids_with`), or the `sql` templates it is given. Defaults to
45
+ * `none`.
25
46
  *
26
- * The helpers check role and scope only. Use `permdock` just for
27
- * permissions whose grants have no row conditions beyond the scope: for a
28
- * permission with row conditions (e.g. `ownerId = principal.id`) the bucket
29
- * would grant every object in the scope. Pass `catalog` to refuse those
30
- * keys here; `better-supabase doctor` (BS214) refuses them from the
31
- * catalog file.
47
+ * The access checks decide by role and scope only: for a permission with
48
+ * row conditions (e.g. `ownerId = principal.id`) the bucket would grant
49
+ * every object in the scope. `better-supabase doctor` (BS214) refuses
50
+ * keys the authorization provider doesn't mark `sqlComplete: true`.
32
51
  */
33
52
  readonly policy?: BucketPolicy;
34
- /**
35
- * PermDock's `permissions.catalog.json`. With it, a `permdock` policy
36
- * naming a permission without `rowConditions: false` (including one the
37
- * catalog doesn't list) throws.
38
- */
39
- readonly catalog?: PermdockCatalog;
40
53
  /** `'5MiB'`, `'500KB'` or bytes. */
41
54
  readonly fileSizeLimit?: string | number;
42
55
  /** `['image/png', 'image/*']`. */
43
56
  readonly allowedMimeTypes?: readonly string[];
57
+ /**
58
+ * Keep earlier versions of an object when it is overwritten or removed.
59
+ * Set by `apply()` through the Storage API; `sql()` can't write it.
60
+ */
61
+ readonly versioning?: boolean;
62
+ /**
63
+ * When noncurrent versions expire. Needs `versioning: true`; set by
64
+ * `apply()`, which removes a stored policy when this is unset.
65
+ */
66
+ readonly lifecycle?: BucketLifecycle;
44
67
  /**
45
68
  * The tenant segment. Set it and connected clients only touch paths whose
46
69
  * `param` holds the caller's tenant: pass `{ context }` or `{ tenant }` to
47
70
  * `connect()`, or `{ allTenants: true }` for cross-tenant admin work.
48
71
  */
49
72
  readonly tenant?: {
50
- /** Placeholder holding the tenant id. Defaults to `orgId`. */
73
+ /** Placeholder holding the tenant id. Defaults to `organizationId`. */
51
74
  readonly param?: string;
52
75
  /** JWT claim paths, first match wins. Defaults to `tenant_id`, then `app_metadata.tenant_id`. */
53
76
  readonly claim?: string | readonly string[];
@@ -59,18 +82,14 @@ interface BucketConfig<P extends string = string, Id extends string = string> {
59
82
  readonly param?: string;
60
83
  };
61
84
  }
85
+ /** The values of one of the bucket's path templates. */
86
+ type PathValues<P extends string> = P extends string ? TemplateValues<P> : never;
62
87
  /**
63
- * A path from the template's values, or an existing path string (checked
64
- * against the template). `StoragePath`s of other buckets are rejected.
88
+ * A path from the values of one of the bucket's templates, or an existing
89
+ * path string (checked against the templates). `StoragePath`s of other
90
+ * buckets are rejected.
65
91
  */
66
- type ObjectTarget<P extends string, Id extends string = string> = TemplateValues<P> | PathIn<Id>;
67
- declare const TTL: {
68
- readonly minute: 60;
69
- readonly hour: 3600;
70
- readonly day: 86_400;
71
- readonly week: 604_800;
72
- };
73
- type TtlPreset = keyof typeof TTL;
92
+ type ObjectTarget<P extends string, Id extends string = string> = PathValues<P> | PathIn<Id>;
74
93
  interface TransformOptions {
75
94
  readonly width?: number;
76
95
  readonly height?: number;
@@ -85,6 +104,13 @@ interface UploadOptions {
85
104
  readonly upsert?: boolean;
86
105
  readonly metadata?: Readonly<Record<string, unknown>>;
87
106
  readonly signal?: AbortSignal;
107
+ /**
108
+ * Upload progress from 0 to 1. Where `XMLHttpRequest` exists (browsers,
109
+ * React Native) the body goes to a signed upload URL so progress events
110
+ * arrive and `signal` cancels the request; elsewhere it reports 1 when
111
+ * done. Uploads with `metadata` or a stream body report 1 when done.
112
+ */
113
+ readonly onProgress?: (fraction: number) => void;
88
114
  }
89
115
  interface UrlOptions {
90
116
  /** Seconds or a preset. Defaults to `hour`. */
@@ -92,6 +118,24 @@ interface UrlOptions {
92
118
  readonly transform?: TransformOptions;
93
119
  /** Serve as an attachment, optionally with a file name. */
94
120
  readonly download?: boolean | string;
121
+ /** Added to the URL so the CDN and browsers fetch it again, e.g. the object's `updatedAt`. */
122
+ readonly cacheNonce?: string;
123
+ /** A URL for this version of the object instead of the current one (a versioned bucket). */
124
+ readonly versionId?: string;
125
+ }
126
+ interface DownloadOptions {
127
+ /** Read this version of the object instead of the current one. */
128
+ readonly versionId?: string;
129
+ readonly signal?: AbortSignal;
130
+ }
131
+ interface TransferOptions {
132
+ /** Copy or move this version of the source instead of the current one. */
133
+ readonly versionId?: string;
134
+ }
135
+ interface PurgeCacheOptions {
136
+ /** Purge only the transformed variants and keep the cached original. */
137
+ readonly transformations?: boolean;
138
+ readonly signal?: AbortSignal;
95
139
  }
96
140
  interface StoredObject {
97
141
  readonly path: string;
@@ -106,7 +150,10 @@ interface Reservation {
106
150
  readonly signedUrl: string;
107
151
  }
108
152
  interface ReplaceOptions<Id extends string = string> extends UploadOptions {
109
- /** Path the object replaces. Removed after `commit` succeeds. */
153
+ /**
154
+ * Path the object replaces, checked like any other target before the
155
+ * upload. Removed after `commit` succeeds.
156
+ */
110
157
  readonly previous?: string | null;
111
158
  /**
112
159
  * Store the new path, e.g. update the row. Throwing or returning an error
@@ -141,7 +188,7 @@ interface SweepResult {
141
188
  readonly removed: readonly string[];
142
189
  }
143
190
  interface BucketDrift {
144
- readonly field: "missing" | "public" | "fileSizeLimit" | "allowedMimeTypes";
191
+ readonly field: "missing" | "public" | "fileSizeLimit" | "allowedMimeTypes" | "versioning" | "lifecycle";
145
192
  readonly expected: unknown;
146
193
  readonly actual: unknown;
147
194
  readonly message: string;
@@ -151,6 +198,10 @@ interface ActualBucket {
151
198
  readonly public: boolean;
152
199
  readonly fileSizeLimit?: number | null;
153
200
  readonly allowedMimeTypes?: readonly string[] | null;
201
+ /** `storage.buckets.versioning_status`; leave it out when Storage has no versioning, and it isn't compared. */
202
+ readonly versioning?: VersioningStatus | null;
203
+ /** `storage.buckets.lifecycle_configuration`; leave it out to skip the comparison. */
204
+ readonly lifecycle?: unknown;
154
205
  }
155
206
  type StorageClient = Pick<SupabaseClient, "storage">;
156
207
  interface BucketClient<P extends string, Id extends string = string> {
@@ -160,18 +211,38 @@ interface BucketClient<P extends string, Id extends string = string> {
160
211
  upload(target: ObjectTarget<P, Id>, body: UploadBody, options?: UploadOptions): AsyncResult<{
161
212
  path: StoragePath<Id>;
162
213
  }>;
163
- download(target: ObjectTarget<P, Id>, options?: {
164
- signal?: AbortSignal;
165
- }): AsyncResult<Blob>;
214
+ download(target: ObjectTarget<P, Id>, options?: DownloadOptions): AsyncResult<Blob>;
166
215
  exists(target: ObjectTarget<P, Id>): AsyncResult<boolean>;
167
216
  remove(targets: readonly ObjectTarget<P, Id>[]): AsyncResult<readonly string[]>;
217
+ /** Copies an object to another path in the bucket; an existing object there is a `conflict`. */
218
+ copy(from: ObjectTarget<P, Id>, to: ObjectTarget<P, Id>, options?: TransferOptions): AsyncResult<{
219
+ path: StoragePath<Id>;
220
+ }>;
221
+ /** Moves an object to another path in the bucket, as one Storage request. */
222
+ move(from: ObjectTarget<P, Id>, to: ObjectTarget<P, Id>, options?: TransferOptions): AsyncResult<{
223
+ path: StoragePath<Id>;
224
+ }>;
225
+ /** Every version of the object, newest first, including delete markers. */
226
+ versions(target: ObjectTarget<P, Id>, options?: {
227
+ signal?: AbortSignal;
228
+ }): AsyncResult<readonly ObjectVersion[]>;
229
+ /** Permanently removes versions of the object, current or noncurrent. */
230
+ removeVersions(target: ObjectTarget<P, Id>, versionIds: readonly string[]): AsyncResult<readonly string[]>;
231
+ /**
232
+ * Purges the CDN cache for the object. Needs the secret key, and on
233
+ * self-hosted Storage a configured CDN purge endpoint.
234
+ */
235
+ purgeCache(target: ObjectTarget<P, Id>, options?: PurgeCacheOptions): AsyncResult<void>;
168
236
  list(within?: Partial<TemplateValues<P>>, options?: {
169
237
  signal?: AbortSignal;
170
238
  }): AsyncResult<readonly StoredObject[]>;
171
239
  signedUrl(target: ObjectTarget<P, Id>, options?: UrlOptions): AsyncResult<string>;
172
240
  signedUrls(targets: readonly ObjectTarget<P, Id>[], options?: Omit<UrlOptions, "transform">): AsyncResult<readonly string[]>;
173
- /** URL for public buckets. No request is made. */
174
- publicUrl(target: ObjectTarget<P, Id>, options?: Omit<UrlOptions, "ttl">): string;
241
+ /**
242
+ * URL for public buckets. No request is made, so it returns a `Result`
243
+ * like `path()`: an error for a path outside the templates or the tenant.
244
+ */
245
+ publicUrl(target: ObjectTarget<P, Id>, options?: Omit<UrlOptions, "ttl">): Result<string>;
175
246
  /** Image transform URL: public for public buckets, signed otherwise. */
176
247
  renderUrl(target: ObjectTarget<P, Id>, transform: TransformOptions, options?: Omit<UrlOptions, "transform">): AsyncResult<string>;
177
248
  /** Upload the new object, run `commit`, then remove the previous object. */
@@ -183,12 +254,15 @@ interface BucketClient<P extends string, Id extends string = string> {
183
254
  uploadReserved(reservation: Pick<Reservation, "path" | "token">, body: UploadBody, options?: UploadOptions): AsyncResult<{
184
255
  path: StoragePath<Id>;
185
256
  }>;
186
- /** Removes objects that match the template, are old enough and are not referenced. */
257
+ /** Removes objects that match a template and the `within` values, are old enough and are not referenced. */
187
258
  sweep(options: SweepOptions<P>): AsyncResult<SweepResult>;
188
259
  }
189
260
  interface Bucket<P extends string, Id extends string = string> {
190
261
  readonly id: Id;
262
+ /** The first path template. */
191
263
  readonly template: P;
264
+ /** Every path template, in the order given. */
265
+ readonly templates: readonly P[];
192
266
  readonly params: readonly TemplateParams<P>[];
193
267
  readonly public: boolean;
194
268
  readonly policy: BucketPolicy;
@@ -202,8 +276,16 @@ interface Bucket<P extends string, Id extends string = string> {
202
276
  readonly tenant: string | undefined;
203
277
  readonly fileSizeLimit: number | undefined;
204
278
  readonly allowedMimeTypes: readonly string[] | undefined;
205
- path(values: TemplateValues<P>): StoragePath<Id>;
206
- match(path: string): TemplateValues<P> | null;
279
+ readonly versioning: boolean;
280
+ readonly lifecycle: BucketLifecycle | undefined;
281
+ /**
282
+ * Builds a path with the template whose placeholders are exactly the keys
283
+ * of `values`. A value Storage would refuse, or keys no template takes, is
284
+ * an `invalid_input` error.
285
+ */
286
+ path(values: PathValues<P>): Result<StoragePath<Id>>;
287
+ /** The values of the first template that matches `path`, or `null`. */
288
+ match(path: string): PathValues<P> | null;
207
289
  /** Folder prefix filled by `values`, for listing. */
208
290
  prefix(values?: Partial<TemplateValues<P>>): string;
209
291
  /** Checks a size and content type against the bucket limits. */
@@ -216,6 +298,12 @@ interface Bucket<P extends string, Id extends string = string> {
216
298
  /** A `[storage.buckets.<id>]` section for `supabase/config.toml`. */
217
299
  toml(): string;
218
300
  drift(actual: ActualBucket | undefined): readonly BucketDrift[];
301
+ /**
302
+ * Creates or updates the bucket through the Storage API, including
303
+ * versioning and the lifecycle policy, which `sql()` can't set. Needs the
304
+ * secret key. Idempotent.
305
+ */
306
+ apply(client: StorageClient): AsyncResult<AppliedBucket>;
219
307
  connect(client: StorageClient, options?: BucketConnectOptions): BucketClient<P, Id>;
220
308
  }
221
309
  interface BucketConnectOptions {
@@ -239,8 +327,6 @@ interface BucketConnectOptions {
239
327
  readonly allTenants?: boolean;
240
328
  }
241
329
  declare function parseSize(value: string | number): number;
242
- /** Maps a Storage error (`StorageApiError`, fetch failures) to a `DbError`. */
243
- declare function fromStorageError(raw: unknown, table?: string): DbError;
244
330
  /**
245
331
  * A typed Storage bucket: path builders from a template, limits, generated
246
332
  * SQL policies and `config.toml`, and helpers for the multi-step work apps
@@ -249,7 +335,7 @@ declare function fromStorageError(raw: unknown, table?: string): DbError;
249
335
  * ```ts
250
336
  * export const logos = defineBucket({
251
337
  * id: 'customer-logos',
252
- * path: '{orgId}/{customerId}/logo/{version}.webp',
338
+ * path: '{organizationId}/{customerId}/logo/{version}.webp',
253
339
  * policy: 'tenant',
254
340
  * fileSizeLimit: '5MiB',
255
341
  * allowedMimeTypes: ['image/webp'],
@@ -258,47 +344,4 @@ declare function fromStorageError(raw: unknown, table?: string): DbError;
258
344
  */
259
345
  declare function defineBucket<const P extends string, const Id extends string = string>(config: BucketConfig<P, Id>): Bucket<P, Id>;
260
346
  //#endregion
261
- //#region src/storage/presets.d.ts
262
- /** The image types browsers display everywhere. */
263
- declare const IMAGE_TYPES: readonly string[];
264
- interface ImageBucketOptions<P extends string, Id extends string> {
265
- readonly id?: Id;
266
- /** The path template; keep the preset's placeholders the policy relies on. */
267
- readonly path?: P;
268
- /** Defaults to `true`: images load from their public URL without signing. */
269
- readonly public?: boolean;
270
- readonly fileSizeLimit?: string | number;
271
- readonly allowedMimeTypes?: readonly string[];
272
- /** Replaces the preset's policy. */
273
- readonly policy?: BucketPolicy;
274
- }
275
- type AvatarBucketOptions<P extends string, Id extends string> = ImageBucketOptions<P, Id>;
276
- interface OrgLogoBucketOptions<P extends string, Id extends string> extends ImageBucketOptions<P, Id> {
277
- /**
278
- * The permission that may upload, replace and delete a logo, checked
279
- * through the access contract. Defaults to `organization.update`, the
280
- * `organizations` module's update permission.
281
- */
282
- readonly permission?: string;
283
- /**
284
- * The tenant segment connected clients are held to. `false` lets one
285
- * client upload for any organization the policy allows. Defaults to
286
- * `{ param: 'orgId' }`.
287
- */
288
- readonly tenant?: BucketConfig["tenant"] | false;
289
- }
290
- declare const AVATAR_PATH = "{userId}/avatar-{version}.{ext}";
291
- declare const LOGO_PATH = "{orgId}/logo-{version}.{ext}";
292
- /**
293
- * A bucket for profile pictures: `{userId}/avatar-{version}.{ext}`, public,
294
- * 2 MiB of images, written only by their owner (the `owner` policy).
295
- */
296
- declare function avatarBucket<const P extends string = typeof AVATAR_PATH, const Id extends string = "avatars">(options?: AvatarBucketOptions<P, Id>): Bucket<P, Id>;
297
- /**
298
- * A bucket for organization logos: `{orgId}/logo-{version}.{ext}`, public,
299
- * 2 MiB of images, written by members with the update permission through
300
- * the access contract (`tenant_ids_with`), so it follows the app's roles.
301
- */
302
- declare function orgLogoBucket<const P extends string = typeof LOGO_PATH, const Id extends string = "organization-logos">(options?: OrgLogoBucketOptions<P, Id>): Bucket<P, Id>;
303
- //#endregion
304
- export { parseSize as A, TransformOptions as C, UrlOptions as D, UploadOptions as E, defineBucket as O, TTL as S, UploadBody as T, Reservation as _, avatarBucket as a, SweepOptions as b, Bucket as c, BucketConnectOptions as d, BucketDrift as f, ReplaceResult as g, ReplaceOptions as h, OrgLogoBucketOptions as i, fromStorageError as k, BucketClient as l, ObjectTarget as m, IMAGE_TYPES as n, orgLogoBucket as o, BucketPolicy as p, ImageBucketOptions as r, ActualBucket as s, AvatarBucketOptions as t, BucketConfig as u, StorageClient as v, TtlPreset as w, SweepResult as x, StoredObject as y };
347
+ export { UrlOptions as C, TTL as D, AppliedBucket as E, TtlPreset as O, UploadOptions as S, parseSize as T, SweepOptions as _, BucketConnectOptions as a, TransformOptions as b, DownloadOptions as c, PurgeCacheOptions as d, ReplaceOptions as f, StoredObject as g, StorageClient as h, BucketConfig as i, ObjectTarget as l, Reservation as m, Bucket as n, BucketDrift as o, ReplaceResult as p, BucketClient as r, BucketPolicy as s, ActualBucket as t, PathValues as u, SweepResult as v, defineBucket as w, UploadBody as x, TransferOptions as y };