better-supabase 0.7.0 → 0.8.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 (500) hide show
  1. package/README.md +6 -2
  2. package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
  3. package/dist/{adapter-B-tL8hqg.js → adapter-CN45ibbV.js} +663 -157
  4. package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
  5. package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
  6. package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
  7. package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
  8. package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
  9. package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
  10. package/dist/ai-message-DfaP8sis.js +14 -0
  11. package/dist/ai-sdk/agents/index.d.ts +4 -4
  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 +2 -2
  16. package/dist/ai-sdk/chat/index.d.ts +1 -1
  17. package/dist/ai-sdk/chat/index.js +8 -20
  18. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  19. package/dist/ai-sdk/files/index.d.ts +3 -3
  20. package/dist/ai-sdk/files/index.js +4 -4
  21. package/dist/ai-sdk/index.d.ts +37 -9
  22. package/dist/ai-sdk/index.js +3 -2
  23. package/dist/ai-sdk/mcp/index.d.ts +43 -6
  24. package/dist/ai-sdk/mcp/index.js +36 -7
  25. package/dist/ai-sdk/memory/index.d.ts +2 -2
  26. package/dist/ai-sdk/memory/index.js +1 -1
  27. package/dist/ai-sdk/workflow/index.d.ts +6 -6
  28. package/dist/ai-sdk/workflow/index.js +13 -24
  29. package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
  30. package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
  31. package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
  32. package/dist/api-Dnf2q-Ht.d.ts +370 -0
  33. package/dist/api-DtHFC037.js +676 -0
  34. package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
  35. package/dist/arazzo/index.d.ts +255 -0
  36. package/dist/arazzo/index.js +622 -0
  37. package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
  38. package/dist/astro/index.d.ts +7 -7
  39. package/dist/astro/index.js +7 -7
  40. package/dist/asyncapi/index.d.ts +103 -0
  41. package/dist/asyncapi/index.js +569 -0
  42. package/dist/authorizer-ayxUDXXP.js +126 -0
  43. package/dist/authorizer-eiOjo-3l.d.ts +73 -0
  44. package/dist/better-result/index.d.ts +118 -0
  45. package/dist/better-result/index.js +64 -0
  46. package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
  47. package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
  48. package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
  49. package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
  50. package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
  51. package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
  52. package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
  53. package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
  54. package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
  55. package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
  56. package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
  57. package/dist/blocks/agents/index.d.ts +3 -3
  58. package/dist/blocks/agents/index.js +5 -4
  59. package/dist/blocks/ai-cache/index.d.ts +3 -3
  60. package/dist/blocks/ai-cache/index.js +3 -3
  61. package/dist/blocks/ai-chat/index.d.ts +9 -4
  62. package/dist/blocks/ai-chat/index.js +5 -5
  63. package/dist/blocks/ai-chat/react/index.d.ts +3 -3
  64. package/dist/blocks/ai-chat/react/index.js +5 -5
  65. package/dist/blocks/ai-files/index.d.ts +3 -3
  66. package/dist/blocks/ai-files/index.js +3 -3
  67. package/dist/blocks/ai-providers/index.d.ts +3 -3
  68. package/dist/blocks/ai-providers/index.js +8 -7
  69. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  70. package/dist/blocks/ai-tasks/index.js +7 -6
  71. package/dist/blocks/announcements/index.d.ts +3 -3
  72. package/dist/blocks/announcements/index.js +3 -3
  73. package/dist/blocks/announcements/react/index.d.ts +3 -3
  74. package/dist/blocks/announcements/react/index.js +3 -3
  75. package/dist/blocks/api-keys/index.d.ts +5 -5
  76. package/dist/blocks/api-keys/index.js +8 -8
  77. package/dist/blocks/attachments/index.d.ts +12 -8
  78. package/dist/blocks/attachments/index.js +22 -13
  79. package/dist/blocks/audit/index.d.ts +21 -10
  80. package/dist/blocks/audit/index.js +30 -11
  81. package/dist/blocks/billing/index.d.ts +11 -9
  82. package/dist/blocks/billing/index.js +15 -15
  83. package/dist/blocks/comments/index.d.ts +8 -8
  84. package/dist/blocks/comments/index.js +8 -7
  85. package/dist/blocks/connectors/index.d.ts +3 -3
  86. package/dist/blocks/connectors/index.js +7 -6
  87. package/dist/blocks/data-lifecycle/index.d.ts +12 -8
  88. package/dist/blocks/data-lifecycle/index.js +13 -8
  89. package/dist/blocks/entitlements/index.d.ts +3 -3
  90. package/dist/blocks/entitlements/index.js +1 -1
  91. package/dist/blocks/flags/index.d.ts +4 -4
  92. package/dist/blocks/flags/index.js +4 -3
  93. package/dist/blocks/inbox/index.d.ts +3 -3
  94. package/dist/blocks/inbox/index.js +4 -5
  95. package/dist/blocks/inbox/react/index.d.ts +1 -1
  96. package/dist/blocks/inbox/react/index.js +1 -1
  97. package/dist/blocks/inbox/react/server.d.ts +1 -1
  98. package/dist/blocks/index.d.ts +10 -10
  99. package/dist/blocks/index.js +6 -6
  100. package/dist/blocks/jobs/index.d.ts +48 -32
  101. package/dist/blocks/jobs/index.js +44 -287
  102. package/dist/blocks/knowledge/index.d.ts +3 -3
  103. package/dist/blocks/knowledge/index.js +3 -3
  104. package/dist/blocks/memory/index.d.ts +4 -4
  105. package/dist/blocks/memory/index.js +7 -6
  106. package/dist/blocks/notifications/index.d.ts +11 -9
  107. package/dist/blocks/notifications/index.js +20 -25
  108. package/dist/blocks/notifications/react/index.d.ts +1 -1
  109. package/dist/blocks/notifications/react/index.js +1 -1
  110. package/dist/blocks/onboarding/index.d.ts +3 -3
  111. package/dist/blocks/onboarding/index.js +3 -3
  112. package/dist/blocks/onboarding/react/index.d.ts +2 -2
  113. package/dist/blocks/onboarding/react/index.js +2 -2
  114. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  115. package/dist/blocks/organizations/index.d.ts +9 -9
  116. package/dist/blocks/organizations/index.js +11 -18
  117. package/dist/blocks/outbox/index.d.ts +2 -2
  118. package/dist/blocks/outbox/index.js +16 -25
  119. package/dist/blocks/profiles/index.d.ts +7 -7
  120. package/dist/blocks/profiles/index.js +7 -6
  121. package/dist/blocks/push/index.d.ts +4 -4
  122. package/dist/blocks/push/index.js +3 -3
  123. package/dist/blocks/settings/index.d.ts +4 -4
  124. package/dist/blocks/settings/index.js +7 -6
  125. package/dist/blocks/sso/index.d.ts +5 -5
  126. package/dist/blocks/sso/index.js +6 -5
  127. package/dist/blocks/usage/index.d.ts +3 -3
  128. package/dist/blocks/usage/index.js +5 -4
  129. package/dist/blocks/waitlist/index.d.ts +5 -5
  130. package/dist/blocks/waitlist/index.js +5 -4
  131. package/dist/blocks/webhooks/index.d.ts +22 -13
  132. package/dist/blocks/webhooks/index.js +41 -70
  133. package/dist/blocks/workflow-builder/index.d.ts +4 -4
  134. package/dist/blocks/workflow-builder/index.js +3 -3
  135. package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
  136. package/dist/blocks/workflow-builder/react/index.js +4 -4
  137. package/dist/blocks/workflows/index.d.ts +3 -3
  138. package/dist/blocks/workflows/index.js +3 -3
  139. package/dist/blocks/workflows/react/index.d.ts +3 -3
  140. package/dist/blocks/workflows/react/index.js +3 -3
  141. package/dist/build-hPwk3_X5.js +1296 -0
  142. package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
  143. package/dist/casing-DdFWEtqr.js +16 -0
  144. package/dist/chat-sdk/index.d.ts +6 -6
  145. package/dist/chat-sdk/index.js +5 -4
  146. package/dist/chat-sdk/react/index.d.ts +1 -1
  147. package/dist/chat-sdk/react/server.d.ts +1 -1
  148. package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
  149. package/dist/cli/add-1dc5wM5k.js +69 -0
  150. package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
  151. package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
  152. package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
  153. package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
  154. package/dist/cli/bin.js +4 -4
  155. package/dist/cli/cache-CIfA-jBV.js +483 -0
  156. package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
  157. package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
  158. package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
  159. package/dist/cli/config-DpbF8ML3.js +2 -0
  160. package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
  161. package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
  162. package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
  163. package/dist/cli/{doctor-CVdnLahA.js → doctor-VcDtuusV.js} +317 -222
  164. package/dist/cli/emit-BHHfwUoT.js +1136 -0
  165. package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
  166. package/dist/cli/env-vzBG90Um.js +2 -0
  167. package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
  168. package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
  169. package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
  170. package/dist/cli/files-BVupXPIC.js +34 -0
  171. package/dist/cli/gen-DmVj3u4L.js +322 -0
  172. package/dist/cli/{init-Cr6arjXU.js → glue-C1UE8gQN.js} +16 -313
  173. package/dist/cli/index.d.ts +59 -31
  174. package/dist/cli/index.js +8 -6
  175. package/dist/cli/init-CVZ3s5kl.js +258 -0
  176. package/dist/cli/{introspect-Bzuv1HHj.js → introspect-BToGNfm-.js} +14 -14
  177. package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
  178. package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
  179. package/dist/cli/metadata-DSRKCaf-.js +133 -0
  180. package/dist/cli/names-D6LrQnOv.js +6 -0
  181. package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
  182. package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
  183. package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
  184. package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
  185. package/dist/cli/prompts-BdeVmVpg.js +2 -0
  186. package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
  187. package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
  188. package/dist/cli/run-DA6_lg3w.js +389 -0
  189. package/dist/cli/run-DuN1MX-7.js +705 -0
  190. package/dist/cli/scaffold-5DenHSxF.js +292 -0
  191. package/dist/cli/scaffold-CwQUMFRb.js +2 -0
  192. package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
  193. package/dist/cli/seed-DOmit9Hq.js +2 -0
  194. package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
  195. package/dist/cli/snapshot-Bstk6ulj.js +287 -0
  196. package/dist/cli/source-args-BYfq6imV.js +31 -0
  197. package/dist/cli/spec-CzosTYm3.js +7438 -0
  198. package/dist/cli/spec-T_0Bcyw7.js +2 -0
  199. package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
  200. package/dist/cli/sql-DJrNDxQm.js +3 -0
  201. package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
  202. package/dist/cli/typegen-Demi5-VQ.js +486 -0
  203. package/dist/cli/validate-Ca13ktgz.js +7522 -0
  204. package/dist/cli/{version-Bp4fyubI.js → version-B4k0aUxS.js} +1 -1
  205. package/dist/client/index.d.ts +4 -3
  206. package/dist/client/index.js +60 -3
  207. package/dist/client/native/index.d.ts +3 -3
  208. package/dist/client/native/index.js +3 -3
  209. package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
  210. package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
  211. package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
  212. package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
  213. package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
  214. package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
  215. package/dist/{composite-CpHLEo-G.d.ts → composite-CWAJTRBF.d.ts} +6 -6
  216. package/dist/{composite-C6I8ZyaF.js → composite-zTe0TCqj.js} +4 -4
  217. package/dist/config/index.d.ts +3 -4
  218. package/dist/config/index.js +4 -4
  219. package/dist/config-DlKvtt95.js +540 -0
  220. package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
  221. package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
  222. package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
  223. package/dist/context-nPDvQ-Zl.js +41 -0
  224. package/dist/credentials/index.d.ts +5 -5
  225. package/dist/credentials/index.js +9 -17
  226. package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
  227. package/dist/cron-route-D2AN9SA1.js +24 -0
  228. package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
  229. package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
  230. package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
  231. package/dist/edge/index.d.ts +66 -13
  232. package/dist/edge/index.js +65 -39
  233. package/dist/elysia/index.d.ts +1 -1
  234. package/dist/elysia/index.js +1 -1
  235. package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
  236. package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
  237. package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
  238. package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
  239. package/dist/env/index.d.ts +1 -1
  240. package/dist/env/index.js +9 -2
  241. package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
  242. package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
  243. package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
  244. package/dist/eve/index.d.ts +5 -5
  245. package/dist/eve/index.js +5 -11
  246. package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
  247. package/dist/events/index.d.ts +4 -4
  248. package/dist/events/index.js +7 -2
  249. package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
  250. package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
  251. package/dist/executor-B_Hfobee.js +162 -0
  252. package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
  253. package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
  254. package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
  255. package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
  256. package/dist/expo/index.d.ts +4 -4
  257. package/dist/expo/index.js +6 -6
  258. package/dist/expo-sqlite/index.d.ts +3 -3
  259. package/dist/expo-sqlite/index.js +2 -2
  260. package/dist/extra-CGQ2_q3S.js +10 -0
  261. package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
  262. package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
  263. package/dist/format-DTXdu8ya.d.ts +70 -0
  264. package/dist/{framework-KIPvRQJU.d.ts → framework-148t1m3C.d.ts} +5 -5
  265. package/dist/{framework-BDCpJI7o.js → framework-3ey3QmrO.js} +2 -2
  266. package/dist/function-contract-BcZenXMO.d.ts +8 -0
  267. package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
  268. package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
  269. package/dist/h3/index.d.ts +1 -1
  270. package/dist/h3/index.js +1 -1
  271. package/dist/h3/v1/index.d.ts +1 -1
  272. package/dist/h3/v1/index.js +1 -1
  273. package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
  274. package/dist/hmac-DCud0myt.js +22 -0
  275. package/dist/hono/index.d.ts +19 -14
  276. package/dist/hono/index.js +21 -16
  277. package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
  278. package/dist/http-sbmBe5d2.js +25 -0
  279. package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
  280. package/dist/index-B72Rvv_j.d.ts +89 -0
  281. package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
  282. package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
  283. package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
  284. package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
  285. package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
  286. package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
  287. package/dist/index-DG2SUXDQ.d.ts +58 -0
  288. package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
  289. package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
  290. package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
  291. package/dist/index.d.ts +89 -14
  292. package/dist/index.js +12 -11
  293. package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
  294. package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
  295. package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
  296. package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
  297. package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
  298. package/dist/list/index.d.ts +1 -2
  299. package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
  300. package/dist/mcp/index.d.ts +49 -19
  301. package/dist/mcp/index.js +158 -94
  302. package/dist/mcp/sdk/index.d.ts +38 -6
  303. package/dist/mcp/sdk/index.js +88 -6
  304. package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
  305. package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
  306. package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
  307. package/dist/model-OgBxvk3N.d.ts +300 -0
  308. package/dist/model-messages-Cxw_Up4f.js +206 -0
  309. package/dist/model-messages-D4GZllOD.d.ts +34 -0
  310. package/dist/modules-DksjZyMW.js +77 -0
  311. package/dist/nestjs/index.d.ts +2 -2
  312. package/dist/nestjs/index.js +1 -1
  313. package/dist/next/index.d.ts +105 -55
  314. package/dist/next/index.js +204 -170
  315. package/dist/node/index.d.ts +2 -2
  316. package/dist/node/index.js +1 -1
  317. package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
  318. package/dist/openapi/index.d.ts +4 -2
  319. package/dist/openapi/index.js +21 -343
  320. package/dist/optional-peer-D1pi-skw.js +24 -0
  321. package/dist/orpc/index.d.ts +8 -8
  322. package/dist/orpc/index.js +21 -20
  323. package/dist/otel/index.d.ts +3 -3
  324. package/dist/otel/index.js +7 -7
  325. package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
  326. package/dist/overlay/index.d.ts +233 -0
  327. package/dist/overlay/index.js +554 -0
  328. package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
  329. package/dist/plugins/actor/index.d.ts +1 -1
  330. package/dist/plugins/actor/index.js +1 -1
  331. package/dist/plugins/rules/index.d.ts +2 -2
  332. package/dist/plugins/rules/index.js +1 -1
  333. package/dist/plugins/soft-delete/index.d.ts +3 -3
  334. package/dist/plugins/soft-delete/index.js +9 -2
  335. package/dist/plugins/tenant/index.d.ts +7 -2
  336. package/dist/plugins/tenant/index.js +16 -2
  337. package/dist/plugins/timestamps/index.d.ts +1 -1
  338. package/dist/plugins/timestamps/index.js +8 -1
  339. package/dist/plugins/validation/index.d.ts +2 -2
  340. package/dist/plugins/validation/index.js +4 -4
  341. package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
  342. package/dist/postgres/index.d.ts +4 -4
  343. package/dist/postgres/index.js +2 -1
  344. package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
  345. package/dist/powersync/index.d.ts +5 -5
  346. package/dist/powersync/index.js +4 -4
  347. package/dist/powersync/react/index.d.ts +3 -3
  348. package/dist/powersync/react/index.js +1 -1
  349. package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
  350. package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
  351. package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
  352. package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
  353. package/dist/query/index.d.ts +2 -2
  354. package/dist/query/index.js +1 -1
  355. package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
  356. package/dist/rate-limit-Bw7HgmFj.js +260 -0
  357. package/dist/react/index.d.ts +9 -9
  358. package/dist/react/index.js +4 -4
  359. package/dist/react/native/index.d.ts +1 -1
  360. package/dist/react/native/index.js +2 -2
  361. package/dist/react/server.d.ts +10 -10
  362. package/dist/react/server.js +3 -3
  363. package/dist/react/session.d.ts +2 -2
  364. package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
  365. package/dist/react-router/index.d.ts +6 -6
  366. package/dist/react-router/index.js +9 -11
  367. package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
  368. package/dist/realtime/index.d.ts +3 -3
  369. package/dist/realtime/index.js +30 -36
  370. package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
  371. package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
  372. package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
  373. package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
  374. package/dist/resource--vTrBe6I.d.ts +103 -0
  375. package/dist/resource-BqNqlYg9.js +91 -0
  376. package/dist/resource-DA811u_4.js +463 -0
  377. package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
  378. package/dist/resource-schemas-BJ518zFH.js +79 -0
  379. package/dist/resource-types-CqB6GWGT.d.ts +141 -0
  380. package/dist/resources-BVYPnuLo.js +56 -0
  381. package/dist/resources-DZSk8tXJ.d.ts +7 -0
  382. package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
  383. package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
  384. package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
  385. package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
  386. package/dist/server/index.d.ts +81 -19
  387. package/dist/server/index.js +16 -14
  388. package/dist/{server-ZSJ9rCcV.d.ts → server-types-CrAmZ8jv.d.ts} +110 -36
  389. package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
  390. package/dist/shared-DTneRoxi.js +14 -0
  391. package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
  392. package/dist/signatures-BRS_p3WD.d.ts +34 -0
  393. package/dist/signatures-DsWv_bYR.js +103 -0
  394. package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
  395. package/dist/solid/index.d.ts +9 -18
  396. package/dist/solid/index.js +2 -2
  397. package/dist/solid-start/index.d.ts +6 -6
  398. package/dist/solid-start/index.js +7 -7
  399. package/dist/spec/index.d.ts +134 -0
  400. package/dist/spec/index.js +353 -0
  401. package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
  402. package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
  403. package/dist/sql/index.d.ts +145 -119
  404. package/dist/sql/index.js +19921 -19798
  405. package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
  406. package/dist/ssr/index.d.ts +4 -4
  407. package/dist/ssr/index.js +3 -2
  408. package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
  409. package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
  410. package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
  411. package/dist/storage/index.d.ts +4 -6
  412. package/dist/storage/index.js +16 -17
  413. package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
  414. package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
  415. package/dist/streams/index.d.ts +4 -4
  416. package/dist/streams/index.js +5 -4
  417. package/dist/streams/redis/index.d.ts +1 -1
  418. package/dist/streams/redis/index.js +5 -11
  419. package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
  420. package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
  421. package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
  422. package/dist/{support-DWwzVf-O.js → support-D1pFFouF.js} +71 -35
  423. package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
  424. package/dist/svelte/index.d.ts +8 -17
  425. package/dist/svelte/index.js +2 -2
  426. package/dist/sveltekit/index.d.ts +7 -7
  427. package/dist/sveltekit/index.js +10 -12
  428. package/dist/table-schema-htM_SbCW.js +286 -0
  429. package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
  430. package/dist/tanstack-db/index.d.ts +2 -2
  431. package/dist/tanstack-db/supabase/index.d.ts +52 -0
  432. package/dist/tanstack-db/supabase/index.js +97 -0
  433. package/dist/tanstack-start/index.d.ts +6 -6
  434. package/dist/tanstack-start/index.js +8 -12
  435. package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
  436. package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
  437. package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
  438. package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
  439. package/dist/testing/index.d.ts +249 -118
  440. package/dist/testing/index.js +1418 -870
  441. package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
  442. package/dist/types-BRTSpOIh.js +5 -0
  443. package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
  444. package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
  445. package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
  446. package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
  447. package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
  448. package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
  449. package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
  450. package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
  451. package/dist/vercel-connect/index.d.ts +1 -1
  452. package/dist/vercel-connect/index.js +5 -11
  453. package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
  454. package/dist/verify-CJbYfADA.js +124 -0
  455. package/dist/{version--AolB5ej.js → version-Cq8gfDbd.js} +1 -1
  456. package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
  457. package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
  458. package/dist/vue/index.d.ts +9 -18
  459. package/dist/vue/index.js +2 -2
  460. package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
  461. package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
  462. package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
  463. package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
  464. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  465. package/dist/workflow-sdk/index.d.ts +1 -1
  466. package/dist/workflow-sdk/world/index.d.ts +23 -17
  467. package/dist/workflow-sdk/world/index.js +59 -76
  468. package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
  469. package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
  470. package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
  471. package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
  472. package/package.json +54 -3
  473. package/schemas/config-v1.json +243 -0
  474. package/schemas/doctor-report-v1.json +4 -1
  475. package/schemas/spec-manifest-v1.json +95 -0
  476. package/skills/better-supabase/SKILL.md +8 -4
  477. package/skills/better-supabase/references/troubleshooting.md +20 -20
  478. package/skills/better-supabase-api/references/expo.md +6 -3
  479. package/skills/better-supabase-api/references/powersync.md +2 -1
  480. package/skills/better-supabase-auth/SKILL.md +8 -4
  481. package/dist/cli/config-B9HkL8nF.js +0 -2
  482. package/dist/cli/gen-AIf4MREI.js +0 -3100
  483. package/dist/cli/gen-DSrahEdX.js +0 -2
  484. package/dist/cli/prompts-BTYQGunc.js +0 -2
  485. package/dist/cli/run-BO052mki.js +0 -361
  486. package/dist/config-Dn7F5k9A.js +0 -202
  487. package/dist/history-BZih6SFP.js +0 -64
  488. package/dist/index-BkWT_uBO.d.ts +0 -51
  489. package/dist/index-Bxih3l0u.d.ts +0 -81
  490. package/dist/index-CaxrMD1A.d.ts +0 -1
  491. package/dist/index-DQh4VCc9.d.ts +0 -98
  492. package/dist/keys-4MnkWTTh.js +0 -35
  493. package/dist/messages-DYP0sUTe.d.ts +0 -59
  494. package/dist/modules-dxrVK3ID.js +0 -228
  495. package/dist/path-Cv__-OTj.d.ts +0 -17
  496. package/dist/resource-BsvzCMlX.js +0 -212
  497. package/dist/resource-IPS5xi9q.d.ts +0 -74
  498. package/dist/template-CwO38Do8.d.ts +0 -6
  499. package/dist/verify-DL41hbvY.js +0 -232
  500. package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
@@ -1,12 +1,127 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { b as DbError, p as ThrowMapper, t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
3
- import { A as Relations, B as UniqueKeyName, E as PrimaryKeyValue, F as Simplify, H as Update, L as TableKey, M as Row, N as Schema, P as SchemaMeta, R as TableMeta, V as UniqueWhere, a as AnyModels, i as AnyFunctions, k as RelationTypes, x as Insert } from "./types-6BdhkmZe.js";
4
- import { l as CountMode, r as Executor, v as Operation } from "./executor-DvsBbNBS.js";
5
- import { a as ExtensionOf, h as WithExtension, m as RequestContext, n as AnyPlugin, r as ApplyExtension } from "./plugin-FGY8UhYm.js";
6
- import { a as EventHub, i as EventHandler, o as EventName, s as MutationNotice, u as RpcNotice } from "./events-DWDhx77e.js";
2
+ import { b as DbError, p as ThrowMapper, t as AsyncResult, w as ErrorMapper } from "./result-BchM1XZn.js";
3
+ import { A as Relations, B as UniqueKeyName, E as PrimaryKeyValue, F as Simplify, H as Update, L as TableKey, M as Row, N as Schema, P as SchemaMeta, R as TableMeta, V as UniqueWhere, a as AnyModels, i as AnyFunctions, k as RelationTypes, x as Insert } from "./types-CoE5Zwy4.js";
4
+ import { l as CountMode, r as Executor, v as Operation } from "./executor-Drzu3dBK.js";
5
+ import { a as ExtensionOf, h as WithExtension, m as RequestContext, n as AnyPlugin, r as ApplyExtension } from "./plugin-CPK2HsbY.js";
6
+ import { a as EventHub, i as EventHandler, o as EventName, s as MutationNotice, u as RpcNotice } from "./events-D1BOCll8.js";
7
7
  import { n as Logger } from "./logger-DWVYUmwi.js";
8
- import { t as StandardSchemaV1 } from "./standard-CYsm7xpT.js";
9
- import { a as PostgrestPlan, i as PostgrestCompileOptions } from "./postgrest-BLVdEnfe.js";
8
+ import { t as StandardSchemaV1 } from "./standard-lmkbOtPB.js";
9
+ import { t as StorageApi } from "./storage-api-CB7Zl1Ci.js";
10
+ import { a as PostgrestPlan, i as PostgrestCompileOptions } from "./postgrest-BUqLag2Q.js";
11
+ //#region src/core/stats.d.ts
12
+ /** Database work for one request (or one `db`). */
13
+ interface DbStats {
14
+ /** Executor calls: repository operations and RPCs. */
15
+ readonly calls: number;
16
+ /**
17
+ * Sequential rounds. A wave starts when a call begins while nothing else
18
+ * is in flight, so `Promise.all` of three reads is one wave.
19
+ */
20
+ readonly waves: number;
21
+ /** App keys of the tables read or written, and `name()` for RPCs. */
22
+ readonly tables: readonly string[];
23
+ /** From the first call's start to the last call's end. */
24
+ readonly ms: number;
25
+ }
26
+ declare const EMPTY_STATS: DbStats;
27
+ /**
28
+ * Counts calls and waves. A recorder with a `parent` also reports to it, so
29
+ * a request-wide recorder sees every scope's calls.
30
+ */
31
+ declare class StatsRecorder {
32
+ #private;
33
+ constructor(parent?: StatsRecorder, now?: () => number);
34
+ /** Records a call to `table`; the returned function ends it. */
35
+ begin(table: string): () => void;
36
+ /** The totals so far. */
37
+ snapshot(): DbStats;
38
+ }
39
+ /** Wraps an executor so every call is recorded. */
40
+ declare function recordStats(executor: Executor, recorder: StatsRecorder): Executor;
41
+ //#endregion
42
+ //#region src/core/define-types.d.ts
43
+ interface SupabaseOptions {
44
+ /**
45
+ * Clock used by plugins (timestamps, soft delete) and for the `time` of
46
+ * block events on `betterSupabase.events`. Pass it to `createJobs` too.
47
+ */
48
+ readonly now?: () => Temporal.Instant;
49
+ /**
50
+ * The `Temporal` namespace, for runtimes without a global one (Hermes,
51
+ * Node 24) when patching `globalThis` is not an option:
52
+ * `import { Temporal } from 'temporal-polyfill'`. Defaults to `globalThis.Temporal`.
53
+ */
54
+ readonly temporal?: typeof Temporal;
55
+ /** Extra error mappers, run before plugin mappers. */
56
+ readonly errors?: readonly ErrorMapper[];
57
+ /** Receives errors from event handlers, hooks and cache adapters. Defaults to `console`. */
58
+ readonly logger?: Logger;
59
+ /**
60
+ * Debug records on `logger` for every query, database error, session
61
+ * refresh and auth resolution: table, operation, outcome, timing and row
62
+ * count, never tokens, row values, filters or error messages. Off by
63
+ * default; with it off, no handler runs.
64
+ */
65
+ readonly diagnostics?: boolean;
66
+ /** RPCs that change tables, keyed by function name. Prefer `betterSupabase.defineRpc()`. */
67
+ readonly rpc?: Readonly<Record<string, RpcDefinition>>;
68
+ /** Builds the error `.orThrow()` throws. Prefer `betterSupabase.mapError()`. */
69
+ readonly throwAs?: ThrowMapper;
70
+ /** Validates verified JWT claims on the server. Prefer `betterSupabase.claims()`, which also types them. */
71
+ readonly claims?: StandardSchemaV1;
72
+ /** Parses `user_metadata` into `session.profile`. Prefer `betterSupabase.userMetadata()`, which also types it. */
73
+ readonly userMetadata?: StandardSchemaV1;
74
+ /**
75
+ * PostgREST's `db-max-rows`: the most rows one read returns. An unbounded
76
+ * `findMany` that returns this many sets `truncated` on the `query` event
77
+ * and logs a warning once per table. Defaults to 1000, the hosted default.
78
+ */
79
+ readonly maxRows?: number;
80
+ /**
81
+ * The longest query string one PostgREST read sends, like supabase-js
82
+ * `db.urlLengthLimit`. Longer reads are split along their longest `in`
83
+ * list. Defaults to 6000 characters, or the client's `db.urlLengthLimit`
84
+ * when that is lower.
85
+ */
86
+ readonly urlLengthLimit?: number;
87
+ /**
88
+ * The PostgREST version the app talks to, as in `postgrestVersion` in
89
+ * the better-supabase config. `maxAffected` needs 13 or later, and fails
90
+ * with `invalid_request` before any request on an older version.
91
+ * Defaults to `"13"`.
92
+ */
93
+ readonly postgrestVersion?: string;
94
+ }
95
+ interface ConnectOptions {
96
+ /** Also records this connection's calls into a request-wide recorder. */
97
+ readonly stats?: StatsRecorder;
98
+ /**
99
+ * Runs operations instead of the client's own executor, while `$client`
100
+ * stays the client (e.g. routing reads to a replica).
101
+ */
102
+ readonly executor?: Executor;
103
+ /**
104
+ * Fails each repository call and `$rpc` after this many milliseconds with
105
+ * a `timeout` error. A call's own `timeout` replaces it.
106
+ */
107
+ readonly timeout?: number;
108
+ /**
109
+ * postgrest-js retries of idempotent requests for this connection; a
110
+ * call's own `retry` replaces it. Defaults to the client's setting.
111
+ */
112
+ readonly retry?: boolean;
113
+ /**
114
+ * Storage that runs as the same caller, as `db.$storage`. Defaults to
115
+ * the client's `storage`; pass it when connecting an `Executor`, such as
116
+ * direct Postgres as a user.
117
+ */
118
+ readonly storage?: StorageApi;
119
+ }
120
+ interface RpcDefinition {
121
+ /** App keys of the tables the function writes; their cached reads are invalidated on success. */
122
+ readonly invalidates: readonly string[];
123
+ }
124
+ //#endregion
10
125
  //#region src/ir/args.d.ts
11
126
  interface BaseOps<V> {
12
127
  readonly eq?: V;
@@ -415,37 +530,6 @@ type SearchScore<A> = A extends {
415
530
  readonly $score: number;
416
531
  } : unknown;
417
532
  //#endregion
418
- //#region src/core/stats.d.ts
419
- /** Database work for one request (or one `db`). */
420
- interface DbStats {
421
- /** Executor calls: repository operations and RPCs. */
422
- readonly calls: number;
423
- /**
424
- * Sequential rounds. A wave starts when a call begins while nothing else
425
- * is in flight, so `Promise.all` of three reads is one wave.
426
- */
427
- readonly waves: number;
428
- /** App keys of the tables read or written, and `name()` for RPCs. */
429
- readonly tables: readonly string[];
430
- /** From the first call's start to the last call's end. */
431
- readonly ms: number;
432
- }
433
- declare const EMPTY_STATS: DbStats;
434
- /**
435
- * Counts calls and waves. A recorder with a `parent` also reports to it, so
436
- * a request-wide recorder sees every scope's calls.
437
- */
438
- declare class StatsRecorder {
439
- #private;
440
- constructor(parent?: StatsRecorder, now?: () => number);
441
- /** Records a call to `table`; the returned function ends it. */
442
- begin(table: string): () => void;
443
- /** The totals so far. */
444
- snapshot(): DbStats;
445
- }
446
- /** Wraps an executor so every call is recorded. */
447
- declare function recordStats(executor: Executor, recorder: StatsRecorder): Executor;
448
- //#endregion
449
533
  //#region src/core/repository-types.d.ts
450
534
  type FindExt<E, M extends AnyModels, T extends keyof M> = ApplyExtension<E, M, T, "findArgs">;
451
535
  type DeleteExt<E, M extends AnyModels, T extends keyof M> = ApplyExtension<E, M, T, "deleteArgs">;
@@ -670,6 +754,13 @@ type RawRpcOptions = Omit<RpcOptions<unknown>, "returns" | "raw"> & {
670
754
  interface DbHelpers<M extends AnyModels, F extends AnyFunctions, E, C> {
671
755
  /** The underlying client (supabase-js), for anything the repository lacks. */
672
756
  readonly $client: C;
757
+ /**
758
+ * Storage as the same caller: `connect()`'s `storage` option, or the
759
+ * client's `storage`. Pass it to `bucket.connect()` and the blocks, so
760
+ * Storage follows whatever the `Db` runs as. Throws when the connection
761
+ * has neither, such as a bare `Executor`.
762
+ */
763
+ readonly $storage: StorageApi;
673
764
  readonly $executor: Executor;
674
765
  readonly $context: RequestContext;
675
766
  /**
@@ -798,6 +889,12 @@ interface PostgrestExecutorOptions extends PostgrestCompileOptions {
798
889
  * client's setting, which is on.
799
890
  */
800
891
  readonly retry?: boolean;
892
+ /**
893
+ * When set, `rpc()` fails with an `unsupported` error carrying this
894
+ * message and sends no request: the backend has no database functions
895
+ * (Supabase Lite on SQLite).
896
+ */
897
+ readonly rpcUnavailable?: string;
801
898
  }
802
899
  /** Executes IR operations through a supabase-js client. */
803
900
  declare function postgrestExecutor(client: PostgrestClientLike, options?: PostgrestExecutorOptions): Executor;
@@ -805,78 +902,6 @@ declare function postgrestExecutor(client: PostgrestClientLike, options?: Postgr
805
902
  declare function explainPostgrest(op: Operation, options?: PostgrestCompileOptions): PostgrestPlan;
806
903
  //#endregion
807
904
  //#region src/core/define.d.ts
808
- interface SupabaseOptions {
809
- /** Clock used by plugins (timestamps, soft delete). */
810
- readonly now?: () => Temporal.Instant;
811
- /**
812
- * The `Temporal` namespace, for runtimes without a global one (Hermes,
813
- * Node 24) when patching `globalThis` is not an option:
814
- * `import { Temporal } from 'temporal-polyfill'`. Defaults to `globalThis.Temporal`.
815
- */
816
- readonly temporal?: typeof Temporal;
817
- /** Extra error mappers, run before plugin mappers. */
818
- readonly errors?: readonly ErrorMapper[];
819
- /** Receives errors from event handlers, hooks and cache adapters. Defaults to `console`. */
820
- readonly logger?: Logger;
821
- /**
822
- * Debug records on `logger` for every query, database error, session
823
- * refresh and auth resolution: table, operation, outcome, timing and row
824
- * count, never tokens, row values, filters or error messages. Off by
825
- * default; with it off, no handler runs.
826
- */
827
- readonly diagnostics?: boolean;
828
- /** RPCs that change tables, keyed by function name. Prefer `betterSupabase.defineRpc()`. */
829
- readonly rpc?: Readonly<Record<string, RpcDefinition>>;
830
- /** Builds the error `.orThrow()` throws. Prefer `betterSupabase.mapError()`. */
831
- readonly throwAs?: ThrowMapper;
832
- /** Validates verified JWT claims on the server. Prefer `betterSupabase.claims()`, which also types them. */
833
- readonly claims?: StandardSchemaV1;
834
- /** Parses `user_metadata` into `session.profile`. Prefer `betterSupabase.userMetadata()`, which also types it. */
835
- readonly userMetadata?: StandardSchemaV1;
836
- /**
837
- * PostgREST's `db-max-rows`: the most rows one read returns. An unbounded
838
- * `findMany` that returns this many sets `truncated` on the `query` event
839
- * and logs a warning once per table. Defaults to 1000, the hosted default.
840
- */
841
- readonly maxRows?: number;
842
- /**
843
- * The longest query string one PostgREST read sends, like supabase-js
844
- * `db.urlLengthLimit`. Longer reads are split along their longest `in`
845
- * list. Defaults to 6000 characters, or the client's `db.urlLengthLimit`
846
- * when that is lower.
847
- */
848
- readonly urlLengthLimit?: number;
849
- /**
850
- * The PostgREST version the app talks to, as in `postgrestVersion` in
851
- * the better-supabase config. `maxAffected` needs 13 or later, and fails
852
- * with `invalid_request` before any request on an older version.
853
- * Defaults to `"13"`.
854
- */
855
- readonly postgrestVersion?: string;
856
- }
857
- interface ConnectOptions {
858
- /** Also records this connection's calls into a request-wide recorder. */
859
- readonly stats?: StatsRecorder;
860
- /**
861
- * Runs operations instead of the client's own executor, while `$client`
862
- * stays the client (e.g. routing reads to a replica).
863
- */
864
- readonly executor?: Executor;
865
- /**
866
- * Fails each repository call and `$rpc` after this many milliseconds with
867
- * a `timeout` error. A call's own `timeout` replaces it.
868
- */
869
- readonly timeout?: number;
870
- /**
871
- * postgrest-js retries of idempotent requests for this connection; a
872
- * call's own `retry` replaces it. Defaults to the client's setting.
873
- */
874
- readonly retry?: boolean;
875
- }
876
- interface RpcDefinition {
877
- /** App keys of the tables the function writes; their cached reads are invalidated on success. */
878
- readonly invalidates: readonly string[];
879
- }
880
905
  /**
881
906
  * The isomorphic definition of your data layer: schema plus plugins. Holds no
882
907
  * secrets and no connection; `connect()` binds it to a client per request.
@@ -977,4 +1002,4 @@ declare class BetterSupabase<M extends AnyModels = AnyModels, D = unknown, F ext
977
1002
  */
978
1003
  declare function defineSupabase<M extends AnyModels, D, F extends AnyFunctions>(schema: Schema<M, D, F>, options?: SupabaseOptions): BetterSupabase<M, D, F>;
979
1004
  //#endregion
980
- export { ReadSetResult as $, PageOf as A, OrderByArg as At, DbStats as B, DeleteExt as C, IncludeArg as Ct, OffsetPage as D, MeasureKey as Dt, ManyReturningArgs as E, MeasureArg as Et, UpdateArgs as F, RequestArgs as Ft, InferReadSetParams as G, StatsRecorder as H, UpsertArgs as I, SelectArg as It, ReadSetOptions as J, ReadSet as K, UpsertManyArgs as L, SortDirection as Lt, RepositoryOf as M, Payload as Mt, Returned as N, ReadArgs as Nt, OffsetPageArgs as O, MutableWhere as Ot, RpcOptions as P, RelationMeasureArg as Pt, ReadSetParams as Q, WriteArgs as R, SortSpec as Rt, DeleteArgs as S, FindOnlyArgs as St, ManyResult as T, JsonPathOps as Tt, recordStats as U, EMPTY_STATS as V, SearchArgs as W, ReadSetParamTypes as X, ReadSetParamType as Y, ReadSetParamValue as Z, ConflictTarget as _, CountArg as _t, defineSupabase as a, ReadMethod as at, Db as b, FindFirstArgs as bt, explainPostgrest as c, isQuerySpec as ct, CacheTarget as d, AggregateOrderBy as dt, defineReadSet as et, MemoryCache as f, AggregateOrderByArg as ft, rpcCacheTargets as g, ColumnOrderByArg as gt, rowKey as h, ColumnOrderBy as ht, SupabaseOptions as i, QuerySpec as it, Repository as j, OrderByInput as jt, OffsetRangeArgs as k, NumericMeasureArg as kt, postgrestExecutor as l, specTables as lt, memoryCache as m, AggregateRow as mt, ConnectOptions as n, readSetTables as nt, PostgrestClientLike as o, Specs as ot, cacheTargetOf as p, AggregateResult as pt, ReadSetAuth as q, RpcDefinition as r, InferResult as rt, PostgrestExecutorOptions as s, TableSpecs as st, BetterSupabase as t, isReadSet as tt, CacheAdapter as u, AggregateArgs as ut, CursorPage as v, CountArgs as vt, FindExt as w, IncludeArgs as wt, DbHelpers as x, FindManyArgs as xt, CursorPageArgs as y, FieldFilter as yt, WriteManyArgs as z, WhereInput as zt };
1005
+ export { ReadSetParams as $, OverloadedName as A, NumericMeasureArg as At, UpsertArgs as B, WhereInput as Bt, ManyReturningArgs as C, FindOnlyArgs as Ct, OffsetRangeArgs as D, MeasureArg as Dt, OffsetPageArgs as E, JsonPathOps as Et, RepositoryOf as F, RelationMeasureArg as Ft, SearchScore as G, EMPTY_STATS as Gt, WriteArgs as H, RpcDefinition as Ht, Returned as I, RequestArgs as It, ReadSetAuth as J, InferReadSetParams as K, StatsRecorder as Kt, RpcArgs as L, SelectArg as Lt, PlainName as M, OrderByInput as Mt, RawRpcOptions as N, Payload as Nt, OverloadArgs as O, MeasureKey as Ot, Repository as P, ReadArgs as Pt, ReadSetParamValue as Q, RpcOptions as R, SortDirection as Rt, ManyResult as S, FindManyArgs as St, OffsetPage as T, IncludeArgs as Tt, WriteManyArgs as U, SupabaseOptions as Ut, UpsertManyArgs as V, ConnectOptions as Vt, SearchArgs as W, DbStats as Wt, ReadSetParamType as X, ReadSetOptions as Y, ReadSetParamTypes as Z, Db as _, ColumnOrderByArg as _t, explainPostgrest as a, QuerySpec as at, DeleteExt as b, FieldFilter as bt, CacheTarget as c, TableSpecs as ct, memoryCache as d, AggregateArgs as dt, ReadSetResult as et, rowKey as f, AggregateOrderBy as ft, CursorPageArgs as g, ColumnOrderBy as gt, CursorPage as h, AggregateRow as ht, PostgrestExecutorOptions as i, InferResult as it, PageOf as j, OrderByArg as jt, OverloadReturns as k, MutableWhere as kt, MemoryCache as l, isQuerySpec as lt, ConflictTarget as m, AggregateResult as mt, defineSupabase as n, isReadSet as nt, postgrestExecutor as o, ReadMethod as ot, rpcCacheTargets as p, AggregateOrderByArg as pt, ReadSet as q, recordStats as qt, PostgrestClientLike as r, readSetTables as rt, CacheAdapter as s, Specs as st, BetterSupabase as t, defineReadSet as tt, cacheTargetOf as u, specTables as ut, DbHelpers as v, CountArg as vt, NoArgName as w, IncludeArg as wt, FindExt as x, FindFirstArgs as xt, DeleteArgs as y, CountArgs as yt, UpdateArgs as z, SortSpec as zt };
@@ -1,11 +1,17 @@
1
- import { L as TableKey, a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
2
- import { t as BetterSupabase } from "../define-CJJkkr1-.js";
3
- import { i as ServerContext, o as ServerOptions, t as BetterServer } from "../server-ZSJ9rCcV.js";
4
- import { t as AuthSession } from "../view-CF7ihnkg.js";
5
- import { i as MiddlewareOptions, r as GuardOptions } from "../respond-DprrgyXX.js";
6
- import { s as BlockRequireOptions } from "../kit-CkNzZUqv.js";
1
+ import { f as Result } from "../result-BchM1XZn.js";
2
+ import { a as AnyModels, i as AnyFunctions } from "../types-CoE5Zwy4.js";
3
+ import { t as StandardSchemaV1 } from "../standard-lmkbOtPB.js";
4
+ import { s as PermissionRef, t as AnyAuthorizer } from "../authorizer-eiOjo-3l.js";
5
+ import { t as BetterSupabase } from "../define-DmcfoNXB.js";
6
+ import { i as ServerContext, s as ServerOptions, t as BetterServer } from "../server-types-CrAmZ8jv.js";
7
+ import { t as AuthSession } from "../view-TpXEUcVN.js";
8
+ import { i as MiddlewareOptions, r as GuardOptions } from "../respond-Cw-zanCm.js";
9
+ import { s as BlockRequireOptions } from "../kit-W99LCPBS.js";
10
+ import { t as FunctionContract } from "../function-contract-BcZenXMO.js";
7
11
  import { t as Validated } from "../shared-DDSjEGDR.js";
8
- import { a as ResourceRouteOptions } from "../resource-IPS5xi9q.js";
12
+ import { i as ResourceContext, l as ResourceRouteOptions, o as ResourceHooks, r as ResourceAction, t as ActionArgs } from "../resource-types-CqB6GWGT.js";
13
+ import { t as ResourceMap } from "../resources-DZSk8tXJ.js";
14
+ import { t as defineAction } from "../resource-execute-rbKvuCsY.js";
9
15
  import { AnyEntry, Contributions } from "@supabase/middleware";
10
16
  import { WithCorsConfig } from "@supabase/middleware/cors";
11
17
  //#region src/bridges/edge.d.ts
@@ -27,6 +33,48 @@ type EdgeHandler = (request: Request, env?: unknown, executionContext?: EdgeExec
27
33
  */
28
34
  export declare function toEdge<const Entries extends readonly AnyEntry[]>(entries: Entries & Validated<Entries>, handler: (request: Request, ctx: Contributions<Entries>, executionContext: EdgeExecutionContext | undefined, env: unknown) => Response | Promise<Response>): EdgeHandler;
29
35
  //#endregion
36
+ //#region src/edge/function.d.ts
37
+ /** A fetch handler that carries its contract in its type. */
38
+ type TypedFunction<In, Out> = EdgeHandler & {
39
+ /** Type-only: never set at runtime. */
40
+ readonly "~contract"?: FunctionContract<In, Out>;
41
+ };
42
+ /**
43
+ * The contract of a `defineFunction` handler, for `functions<Contracts>()` in
44
+ * `better-supabase/client`.
45
+ */
46
+ type ContractOf<T> = T extends TypedFunction<infer In, infer Out> ? FunctionContract<In, Out> : never;
47
+ type Returned<Out> = Out | Result<Out> | Response | PromiseLike<Out | Result<Out> | Response> | undefined;
48
+ interface FunctionDefinition<I extends StandardSchemaV1, Out, M extends AnyModels, F extends AnyFunctions, E, C, P> extends MiddlewareOptions {
49
+ /** Parses the JSON body. A body it rejects answers 422 with the issues. */
50
+ readonly input: I;
51
+ /**
52
+ * Checks what the handler returns before it is sent. A value it rejects
53
+ * answers 500, so a function never sends data its contract doesn't promise.
54
+ */
55
+ readonly output?: StandardSchemaV1<unknown, Out>;
56
+ /** Runs as the caller with the parsed input. Returns data or a `Result`. */
57
+ readonly handler: (input: StandardSchemaV1.InferOutput<I>, ctx: ServerContext<M, F, E, C, P> & {
58
+ readonly request: Request;
59
+ }) => Returned<Out>;
60
+ }
61
+ /**
62
+ * An Edge Function with a typed input and output: the body is parsed and
63
+ * checked with a Standard Schema (zod, valibot, arktype, ...) before the
64
+ * handler runs as the caller. Its type carries the contract, so the app calls
65
+ * it through `functions<Contracts>()` from `better-supabase/client`.
66
+ *
67
+ * ```ts
68
+ * const sendInvite = defineFunction(bs, {
69
+ * input: z.object({ email: z.email() }),
70
+ * handler: (input, ctx) => ctx.db.invites.create({ data: input }),
71
+ * });
72
+ * export type SendInvite = ContractOf<typeof sendInvite>;
73
+ * Deno.serve(sendInvite);
74
+ * ```
75
+ */
76
+ export declare function defineFunction<I extends StandardSchemaV1, Out, M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown>(edge: Pick<BetterEdge<M, F, E, C, P>, "handler">, definition: FunctionDefinition<I, Out, M, F, E, C, P>): TypedFunction<StandardSchemaV1.InferInput<I>, Out>;
77
+ //#endregion
30
78
  //#region src/edge/index.d.ts
31
79
  export interface CorsOptions {
32
80
  /** Allowed origins, or `*`. Defaults to `*`. */
@@ -48,7 +96,6 @@ export interface EdgeOptions extends ServerOptions {
48
96
  */
49
97
  readonly waitUntil?: (promise: Promise<unknown>) => void;
50
98
  }
51
- export type ResourceMap<M extends AnyModels> = { readonly [T in TableKey<M>]?: ResourceRouteOptions<M, T> | true; };
52
99
  export interface ResourcesOptions extends MiddlewareOptions {
53
100
  /** Path before the resources, e.g. `/api` (Supabase: `/<function-name>`). */
54
101
  readonly basePath?: string;
@@ -75,7 +122,7 @@ export interface EdgeRoute<M extends AnyModels, F extends AnyFunctions, E, C = u
75
122
  * segments are params, a final `*` matches the rest of the path.
76
123
  */
77
124
  export type EdgeRoutes<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> = Readonly<Record<string, EdgeRouteHandler<M, F, E, C, P> | EdgeRoute<M, F, E, C, P>>>;
78
- export interface BetterEdge<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> extends BetterServer<M, F, E, C, P> {
125
+ export interface BetterEdge<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown, Ref = string> extends BetterServer<M, F, E, C, P> {
79
126
  /**
80
127
  * A fetch handler (`Deno.serve`, Workers `fetch`) running as the caller.
81
128
  * `Result`s become JSON or Problem Details; `undefined` becomes 204.
@@ -96,13 +143,19 @@ export interface BetterEdge<M extends AnyModels, F extends AnyFunctions, E, C =
96
143
  * ```
97
144
  */
98
145
  routes<K extends string>(routes: { readonly [Key in K]: EdgeRouteHandler<M, F, E, C, P, RouteParams<Key>> | EdgeRoute<M, F, E, C, P, RouteParams<Key>>; }, options?: ResourcesOptions): EdgeHandler;
99
- /** REST resources matching `createOpenApi`, e.g. `Deno.serve(bs.resources({ customers: true }))`. */
100
- resources(map: ResourceMap<M>, options?: ResourcesOptions): EdgeHandler;
146
+ /**
147
+ * REST resources matching the API model, e.g.
148
+ * `Deno.serve(bs.resources({ customers: true }))`: collection, item and
149
+ * action paths. An unknown path answers 404 before auth resolves.
150
+ */
151
+ resources(map: ResourceMap<M, Ref, ServerContext<M, F, E, C, P>["db"]>, options?: ResourcesOptions): EdgeHandler;
101
152
  }
102
153
  export declare const SUPABASE_CORS_HEADERS: readonly string[];
103
154
  /** `CorsOptions` as `withCors` from `@supabase/middleware/cors` takes them. */
104
155
  export declare function corsConfig(cors: CorsOptions): WithCorsConfig;
105
156
  /** Fetch-handler integration for Supabase Edge Functions, Deno, Bun and Workers. */
106
- export declare function createEdge<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options?: EdgeOptions): BetterEdge<M, F, E, C, P>;
157
+ export declare function createEdge<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown, A extends AnyAuthorizer | undefined = undefined>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options?: EdgeOptions & {
158
+ readonly authorizer?: A;
159
+ }): BetterEdge<M, F, E, C, P, PermissionRef<A>>;
107
160
  //#endregion
108
- export type { BlockRequireOptions, EdgeExecutionContext, EdgeHandler, GuardOptions, MiddlewareOptions, ResourceRouteOptions };
161
+ export { type ActionArgs, type BlockRequireOptions, type ContractOf, type EdgeExecutionContext, type EdgeHandler, type FunctionContract, type FunctionDefinition, type GuardOptions, type MiddlewareOptions, type ResourceAction, type ResourceContext, type ResourceHooks, type ResourceMap, type ResourceRouteOptions, type TypedFunction, defineAction };
@@ -1,12 +1,15 @@
1
- import { n as dbError } from "../errors-B11Duf73.js";
2
- import { r as err } from "../result-DzUbqgdW.js";
3
- import { a as problemResponse } from "../problem-BreOl8b8.js";
4
- import { a as unexpectedResponse, c as extendServer, l as withExtra, n as flushEvents, s as createServer } from "../adapter-B-tL8hqg.js";
5
- import { a as respond, t as defaultExpose } from "../respond-BUgsXNgk.js";
6
- import { t as withBetterSupabase } from "../composite-C6I8ZyaF.js";
7
- import { t as defineResource } from "../resource-BsvzCMlX.js";
8
- import { i as requireCaller } from "../kit-Fm-Fv7q5.js";
9
- import { t as EVERY_CALLER } from "../framework-BDCpJI7o.js";
1
+ import { n as dbError } from "../errors-2M6CKMP4.js";
2
+ import { a as ok, r as err } from "../result-DEqHCMKP.js";
3
+ import { n as validate } from "../standard-DkzZUneg.js";
4
+ import { o as problemResponse } from "../problem-CJvFeGu7.js";
5
+ import { a as unexpectedResponse, c as extendServer, o as withFlush, s as createServer } from "../adapter-CN45ibbV.js";
6
+ import { a as respond, o as settle, t as defaultExpose } from "../respond-volM3ByS.js";
7
+ import { t as withBetterSupabase } from "../composite-zTe0TCqj.js";
8
+ import { r as defineAction } from "../resource-DA811u_4.js";
9
+ import { i as requireCaller } from "../kit-BhHr9T9v.js";
10
+ import { t as withExtra } from "../extra-CGQ2_q3S.js";
11
+ import { t as resourceRouter } from "../resources-BVYPnuLo.js";
12
+ import { t as EVERY_CALLER } from "../framework-3ey3QmrO.js";
10
13
  import { bufferRequest, pipeline, seedContext } from "@supabase/middleware";
11
14
  import { withCors } from "@supabase/middleware/cors";
12
15
  //#region src/bridges/edge.ts
@@ -99,6 +102,47 @@ function matchRoute(routes, method, path) {
99
102
  return allowed.size > 0 ? [...allowed] : "none";
100
103
  }
101
104
  //#endregion
105
+ //#region src/edge/function.ts
106
+ async function readInput(request) {
107
+ if (request.method === "GET" || request.method === "HEAD") return ok(void 0);
108
+ const text = await request.text();
109
+ if (text === "") return ok(void 0);
110
+ try {
111
+ return ok(JSON.parse(text));
112
+ } catch {
113
+ return err(dbError("invalid_input", "The request body is not JSON"));
114
+ }
115
+ }
116
+ /**
117
+ * An Edge Function with a typed input and output: the body is parsed and
118
+ * checked with a Standard Schema (zod, valibot, arktype, ...) before the
119
+ * handler runs as the caller. Its type carries the contract, so the app calls
120
+ * it through `functions<Contracts>()` from `better-supabase/client`.
121
+ *
122
+ * ```ts
123
+ * const sendInvite = defineFunction(bs, {
124
+ * input: z.object({ email: z.email() }),
125
+ * handler: (input, ctx) => ctx.db.invites.create({ data: input }),
126
+ * });
127
+ * export type SendInvite = ContractOf<typeof sendInvite>;
128
+ * Deno.serve(sendInvite);
129
+ * ```
130
+ */
131
+ function defineFunction(edge, definition) {
132
+ const { input, output, handler, ...options } = definition;
133
+ return edge.handler(async (request, ctx) => {
134
+ const body = await readInput(request);
135
+ if (!body.ok) return body;
136
+ const parsed = await validate(input, body.data, "input");
137
+ if (!parsed.ok) return parsed;
138
+ const settled = await settle(() => handler(parsed.data, withExtra(ctx, { request })));
139
+ if (!settled.ok) return err(settled.error);
140
+ if (output === void 0 || settled.data instanceof Response) return settled.data;
141
+ const checked = await validate(output, settled.data, "output");
142
+ return checked.ok ? checked.data : err(dbError("unexpected", "The function returned data its output rejects"));
143
+ }, options);
144
+ }
145
+ //#endregion
102
146
  //#region src/edge/index.ts
103
147
  const SUPABASE_CORS_HEADERS = [
104
148
  "authorization",
@@ -148,9 +192,7 @@ function createEdge(betterSupabase, options = {}) {
148
192
  const routed = (request, env, executionContext) => Promise.resolve(early?.(request) ?? authorized(request, env, executionContext));
149
193
  const answer = withCorsConfig ? toEdge([withCors(withCorsConfig)], (request, _ctx, executionContext, env) => routed(request, env, executionContext)) : routed;
150
194
  return async (request, env, executionContext) => {
151
- const response = await answer(request, env, executionContext);
152
- flushEvents(server, options.waitUntil ?? executionContext?.waitUntil.bind(executionContext));
153
- return response;
195
+ return withFlush(server, options.waitUntil ?? executionContext?.waitUntil.bind(executionContext), () => answer(request, env, executionContext));
154
196
  };
155
197
  };
156
198
  return extendServer(server, {
@@ -193,7 +235,7 @@ function createEdge(betterSupabase, options = {}) {
193
235
  const caller = await requireCaller(ctx.auth, {
194
236
  ...shared,
195
237
  ...route.options
196
- }, tenant);
238
+ }, tenant, options.authorizer);
197
239
  if ("kind" in caller) return err(caller);
198
240
  return route.handler(request, withExtra(ctx, {
199
241
  params,
@@ -209,40 +251,24 @@ function createEdge(betterSupabase, options = {}) {
209
251
  });
210
252
  },
211
253
  resources(map, resourcesOptions = {}) {
212
- const base = (resourcesOptions.basePath ?? "").replace(/\/$/, "");
213
- const handlers = /* @__PURE__ */ new Map();
214
- for (const [table, resource] of Object.entries(map)) {
215
- if (!resource) continue;
216
- handlers.set(table, defineResource(betterSupabase, table, resource === true ? {} : resource));
217
- }
218
- const match = (request) => {
219
- const { pathname } = new URL(request.url);
220
- const [table, id, extra] = (pathname.startsWith(`${base}/`) ? pathname.slice(base.length + 1) : void 0)?.split("/") ?? [];
221
- const handler = table ? handlers.get(table) : void 0;
222
- if (!handler || extra !== void 0 || id !== void 0 && !handler.keyParam) return problemResponse(dbError("not_found", `No route for ${pathname}`), { instance: pathname });
223
- try {
224
- return {
225
- handler,
226
- id: id === void 0 || id === "" ? void 0 : decodeURIComponent(id),
227
- instance: pathname
228
- };
229
- } catch {
230
- return problemResponse(dbError("invalid_input", `Malformed id in ${pathname}`), { instance: pathname });
231
- }
232
- };
254
+ const { basePath, ...middlewareOptions } = resourcesOptions;
255
+ const router = resourceRouter(betterSupabase, map, {
256
+ ...basePath === void 0 ? {} : { basePath },
257
+ ...options.authorizer === void 0 ? {} : { authorizer: options.authorizer }
258
+ });
233
259
  return serve((request, ctx) => {
234
- const route = match(request);
260
+ const route = router.match(request);
235
261
  if (route instanceof Response) return route;
236
- return route.handler.handle(request, ctx.db, route.id, {
262
+ return route.handler.serve(request, ctx.db, route.segments, {
237
263
  instance: route.instance,
238
264
  expose
239
265
  });
240
- }, resourcesOptions, (request) => {
241
- const route = match(request);
266
+ }, middlewareOptions, (request) => {
267
+ const route = router.match(request);
242
268
  return route instanceof Response ? route : void 0;
243
269
  });
244
270
  }
245
271
  });
246
272
  }
247
273
  //#endregion
248
- export { SUPABASE_CORS_HEADERS, corsConfig, createEdge, toEdge };
274
+ export { SUPABASE_CORS_HEADERS, corsConfig, createEdge, defineAction, defineFunction, toEdge };
@@ -1,4 +1,4 @@
1
- import { n as RouteGuardOptions } from "../refusal-DhSU2Vvr.js";
1
+ import { n as RouteGuardOptions } from "../refusal-CFI8-5nf.js";
2
2
  import { t as Validated } from "../shared-DDSjEGDR.js";
3
3
  import { AnyEntry, Contributions } from "@supabase/middleware";
4
4
  //#region src/bridges/elysia.d.ts
@@ -1,5 +1,5 @@
1
1
  import { t as around } from "../shared-CBxosKK3.js";
2
- import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../refusal-CeJWxmkH.js";
2
+ import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../refusal-K78A1Vmq.js";
3
3
  import { bufferRequest } from "@supabase/middleware";
4
4
  //#region src/bridges/elysia.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { n as Embedder, o as KnowledgeHit, r as Knowledge, u as KnowledgeSearchOptions } from "./knowledge-BXBbT0Tr.js";
1
+ import { n as Embedder, o as KnowledgeHit, r as Knowledge, u as KnowledgeSearchOptions } from "./knowledge-CAReFpRA.js";
2
2
  import { EmbeddingModel, RerankingModel, SourceDocumentUIPart, Tool, embedMany } from "ai";
3
3
  //#region src/ai-sdk/embeddings/embeddings.d.ts
4
4
  type ProviderOptions = Parameters<typeof embedMany>[0]["providerOptions"];
@@ -1,4 +1,6 @@
1
+ import { m as RequestContext } from "./plugin-CPK2HsbY.js";
1
2
  import { c as StoredSession, n as CookieOptions } from "./session-ChiXDZdZ.js";
3
+ import { r as AuthState } from "./resolve-MxXVWyhd.js";
2
4
  //#region src/auth/refresh.d.ts
3
5
  interface RefreshOptions {
4
6
  readonly url: string;
@@ -41,6 +43,10 @@ type RefreshOutcome = {
41
43
  */
42
44
  declare function refreshSession(refreshToken: string, options: RefreshOptions): Promise<RefreshOutcome>;
43
45
  //#endregion
46
+ //#region src/auth/context.d.ts
47
+ /** The repository context (`actor`, `claims`) for an auth state. */
48
+ declare function authContext(auth: AuthState): RequestContext;
49
+ //#endregion
44
50
  //#region src/auth/ended.d.ts
45
51
  /** `banned`: Auth rejected the token with `error_code: "user_banned"`. */
46
52
  type SessionStatus = "active" | "ended" | "banned" | "unknown";
@@ -60,4 +66,4 @@ interface ClearSessionCookiesOptions {
60
66
  declare function sessionStatus(input: Request | string, options: SessionStatusOptions): Promise<SessionStatus>;
61
67
  declare function clearSessionCookies<R extends Response>(request: Request, response: R, options: ClearSessionCookiesOptions): R;
62
68
  //#endregion
63
- export { sessionStatus as a, refreshSession as c, clearSessionCookies as i, SessionStatus as n, RefreshOptions as o, SessionStatusOptions as r, RefreshOutcome as s, ClearSessionCookiesOptions as t };
69
+ export { sessionStatus as a, RefreshOutcome as c, clearSessionCookies as i, refreshSession as l, SessionStatus as n, authContext as o, SessionStatusOptions as r, RefreshOptions as s, ClearSessionCookiesOptions as t };
@@ -1,5 +1,5 @@
1
- import { t as AsyncResult } from "./result-DzUbqgdW.js";
2
- import { C as run } from "./block-helpers-DWHxHsEQ.js";
1
+ import { t as AsyncResult } from "./result-DEqHCMKP.js";
2
+ import { E as run } from "./block-helpers-Cy3pB96I.js";
3
3
  //#region src/blocks/entitlements/entitlements.ts
4
4
  /** The Stripe event sent when a customer's active entitlements change. */
5
5
  const ENTITLEMENTS_UPDATED = "entitlements.active_entitlement_summary.updated";
@@ -1,4 +1,4 @@
1
- import { t as AuthSession } from "./view-CF7ihnkg.js";
1
+ import { t as AuthSession } from "./view-TpXEUcVN.js";
2
2
  //#region src/auth/entitlements.d.ts
3
3
  /**
4
4
  * One entry of the `memberships` claim when a hook writes it as a list.
@@ -1,2 +1,2 @@
1
- import { a as EnvResult, c as InlineJwks, d as loadEnv, f as parseEnv, i as EnvOptions, l as PublicEnv, m as toServerEnv, n as ENV_VARIABLES, o as EnvSource, p as publicEnv, r as EnvIssue, s as EnvValidationError, t as BetterSupabaseEnv, u as envSchema } from "../index-CLg87OBW.js";
1
+ import { a as EnvResult, c as InlineJwks, d as loadEnv, f as parseEnv, i as EnvOptions, l as PublicEnv, m as toServerEnv, n as ENV_VARIABLES, o as EnvSource, p as publicEnv, r as EnvIssue, s as EnvValidationError, t as BetterSupabaseEnv, u as envSchema } from "../index-BUK7jUzR.js";
2
2
  export { BetterSupabaseEnv, ENV_VARIABLES, EnvIssue, EnvOptions, EnvResult, EnvSource, EnvValidationError, InlineJwks, PublicEnv, envSchema, loadEnv, parseEnv, publicEnv, toServerEnv };