better-supabase 0.7.1 → 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 (499) 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-iKgjHVPx.js → adapter-CN45ibbV.js} +658 -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-DJk0aeBi.js → doctor-VcDtuusV.js} +316 -221
  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-BHuEQrQK.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-DzR2nyQb.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-59gcepIG.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--yqry7uW.d.ts → composite-CWAJTRBF.d.ts} +6 -6
  216. package/dist/{composite-DXVUibdi.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-BmzgK32X.d.ts → framework-148t1m3C.d.ts} +5 -5
  265. package/dist/{framework-a7aRCIqv.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-Bh0EVSwU.d.ts → server-types-CrAmZ8jv.d.ts} +92 -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-ig_K4PvS.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-C6OfRAIn.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/dist/cli/config-B9HkL8nF.js +0 -2
  481. package/dist/cli/gen-CCMc39Dx.js +0 -3100
  482. package/dist/cli/gen-DRmzPI75.js +0 -2
  483. package/dist/cli/prompts-BTYQGunc.js +0 -2
  484. package/dist/cli/run-BqDPh9UH.js +0 -361
  485. package/dist/config-Dn7F5k9A.js +0 -202
  486. package/dist/history-BZih6SFP.js +0 -64
  487. package/dist/index-BkWT_uBO.d.ts +0 -51
  488. package/dist/index-Bxih3l0u.d.ts +0 -81
  489. package/dist/index-CaxrMD1A.d.ts +0 -1
  490. package/dist/index-DQh4VCc9.d.ts +0 -98
  491. package/dist/keys-4MnkWTTh.js +0 -35
  492. package/dist/messages-DYP0sUTe.d.ts +0 -59
  493. package/dist/modules-dxrVK3ID.js +0 -228
  494. package/dist/path-Cv__-OTj.d.ts +0 -17
  495. package/dist/resource-BsvzCMlX.js +0 -212
  496. package/dist/resource-IPS5xi9q.d.ts +0 -74
  497. package/dist/template-CwO38Do8.d.ts +0 -6
  498. package/dist/verify-DL41hbvY.js +0 -232
  499. package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
@@ -1,5 +1,5 @@
1
1
  import { t as DbException } from "./db-exception-CnWcYPxL.js";
2
- import { n as dbError } from "./errors-B11Duf73.js";
2
+ import { n as dbError } from "./errors-2M6CKMP4.js";
3
3
  //#region src/core/template.ts
4
4
  const PLACEHOLDER = /\{(\.\.\.)?([A-Za-z_][A-Za-z0-9_]*)\}/g;
5
5
  function parseSegment(segment) {
@@ -110,5 +110,14 @@ function sqlIdent(value) {
110
110
  function slug(value) {
111
111
  return value.replaceAll(/[^A-Za-z0-9]+/g, "_").replaceAll(/^_|_$/g, "").toLowerCase();
112
112
  }
113
+ /** SQL for the JWT claim at a dotted path, or the first set one of several (`coalesce`). */
114
+ function claimSql(claim) {
115
+ const expressions = (typeof claim === "string" ? [claim] : claim).map((path) => {
116
+ const keys = path.split(".");
117
+ const last = keys.pop();
118
+ return `(select auth.jwt())${keys.map((key) => ` -> ${sqlString(key)}`).join("")} ->> ${sqlString(last)}`;
119
+ });
120
+ return expressions.length === 1 ? expressions[0] : `coalesce(${expressions.join(", ")})`;
121
+ }
113
122
  //#endregion
114
- export { sqlString as i, slug as n, sqlIdent as r, parseTemplate as t };
123
+ export { sqlString as a, sqlIdent as i, parseTemplate as n, slug as r, claimSql as t };
@@ -1,5 +1,5 @@
1
1
  import { t as DbException } from "./db-exception-CnWcYPxL.js";
2
- import { n as dbError } from "./errors-B11Duf73.js";
2
+ import { n as dbError } from "./errors-2M6CKMP4.js";
3
3
  import { c as optionalTemporal, t as TEMPORAL_MISSING } from "./temporal-BJGitm-h.js";
4
4
  //#region src/core/temporal-required.ts
5
5
  /** The error for a runtime without Temporal, naming the polyfill to load. */
@@ -1,5 +1,5 @@
1
- import { t as AuthSnapshot } from "./bind-Bu_ZNa3W.js";
2
- import { t as AuthSession } from "./view-CF7ihnkg.js";
1
+ import { t as AuthSnapshot } from "./bind-CQ5mPyX1.js";
2
+ import { t as AuthSession } from "./view-TpXEUcVN.js";
3
3
  //#region src/auth/tenant.d.ts
4
4
  /**
5
5
  * The active tenant of a user session: the `claim` claim (`tenant_id` by
@@ -1,27 +1,31 @@
1
- import { H as Update, L as TableKey, P as SchemaMeta, a as AnyModels, i as AnyFunctions, x as Insert } from "../types-6BdhkmZe.js";
2
- import { r as Executor } from "../executor-DvsBbNBS.js";
3
- import { t as SqlClient } from "../executor-DbvExCFC.js";
4
- import { m as RequestContext, n as AnyPlugin } from "../plugin-FGY8UhYm.js";
5
- import { n as AuthResolver } from "../resolve-ChTYeTEl.js";
6
- import { a as CredentialSubject, i as CredentialRef, r as CredentialProvider } from "../provider-D-UEMvSD.js";
7
- import { k as QueueBackend } from "../queue-CLJurhdy.js";
8
- import { n as Embedder } from "../knowledge-BXBbT0Tr.js";
9
- import { o as StreamStore } from "../store-CGjgWu5n.js";
10
- import { B as DbStats, b as Db, t as BetterSupabase, u as CacheAdapter } from "../define-CJJkkr1-.js";
11
- import { r as EventSink, t as CloudEvent } from "../cloud-event-C1JCc1bH.js";
12
- import { t as BetterPostgres } from "../pool-CAu2nLrL.js";
13
- import { V as SupportSessionStore, i as ServerContext, o as ServerOptions } from "../server-Bh0EVSwU.js";
14
- import { s as Impersonator } from "../mfa-Daak8ukG.js";
1
+ import { H as Update, L as TableKey, P as SchemaMeta, a as AnyModels, i as AnyFunctions, x as Insert } from "../types-CoE5Zwy4.js";
2
+ import { r as Executor } from "../executor-Drzu3dBK.js";
3
+ import { t as SqlClient } from "../executor-ngjKL_Pe.js";
4
+ import { m as RequestContext, n as AnyPlugin } from "../plugin-CPK2HsbY.js";
5
+ import { t as BetterSupabaseEnv } from "../index-BUK7jUzR.js";
6
+ import { n as AuthResolver } from "../resolve-MxXVWyhd.js";
7
+ import { a as CredentialSubject, i as CredentialRef, r as CredentialProvider } from "../provider-ib9wzUDz.js";
8
+ import { k as QueueBackend } from "../types-D__3EN0q.js";
9
+ import { n as Embedder } from "../knowledge-CAReFpRA.js";
10
+ import { o as StreamStore } from "../store-DsIYEBnv.js";
11
+ import { t as ApiModel } from "../model-OgBxvk3N.js";
12
+ import { l as VersionOf, t as AnyDocumentFormat } from "../format-DTXdu8ya.js";
13
+ import { o as Authorizer } from "../authorizer-eiOjo-3l.js";
14
+ import { i as EventSink, t as CloudEvent } from "../cloud-event-Dune0KI7.js";
15
+ import { Wt as DbStats, _ as Db, s as CacheAdapter, t as BetterSupabase } from "../define-DmcfoNXB.js";
16
+ import { s as Impersonator } from "../mfa-SZc9YYyb.js";
17
+ import { t as BetterPostgres } from "../pool-gkhbGp2E.js";
18
+ import { B as SupportSessionStore, i as ServerContext, s as ServerOptions } from "../server-types-CrAmZ8jv.js";
15
19
  import { n as SessionActor, r as SessionDelegation } from "../actor-CQTlc1Hh.js";
16
- import { r as GuardOptions } from "../respond-DprrgyXX.js";
20
+ import { r as GuardOptions } from "../respond-Cw-zanCm.js";
17
21
  import { i as AuthorizationProvider } from "../authorization-BFCqamMs.js";
18
- import { i as AiTaskRun, o as AiTaskRunner, t as AiTask } from "../ai-tasks-Cd1HMFvB.js";
19
- import { D as ResolvedConfig, _ as GeneratorInput, h as Generator, v as GeneratorModel } from "../config-D44Y7PAv.js";
20
- import { a as BlockTransportMiddleware } from "../block-hooks-plbZ0AbJ.js";
22
+ import { i as AiTaskRun, o as AiTaskRunner, t as AiTask } from "../ai-tasks-BRQ6iQLc.js";
23
+ import { B as ResolvedConfig, D as GeneratorModel, E as GeneratorInput, w as Generator } from "../index-Ba1SI-uO.js";
24
+ import { a as BlockTransportMiddleware } from "../block-hooks-DaOVC7SC.js";
21
25
  import { t as NotificationChannel } from "../channel-_2Mx1Oyu.js";
22
- import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-4y62_VIi.js";
23
- import { T as WorkflowGraph, i as BuilderStarter, r as BuilderStartCall, s as GraphCompiler } from "../types-AYOvcyep.js";
24
- import { t as EveDocumentBackend } from "../eve-gT2Fpjut.js";
26
+ import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-cpdmZYrv.js";
27
+ import { T as WorkflowGraph, i as BuilderStarter, r as BuilderStartCall, s as GraphCompiler } from "../types-CD6yCDx3.js";
28
+ import { t as EveDocumentBackend } from "../eve-CoAIcCkq.js";
25
29
  import { SupabaseClient } from "@supabase/supabase-js";
26
30
  import { Message, StateAdapter } from "chat";
27
31
  import { webcrypto } from "node:crypto";
@@ -98,6 +102,8 @@ interface LocalStack {
98
102
  readonly secretKey?: string;
99
103
  /** Enables `sql`: the same user over direct Postgres. */
100
104
  readonly postgres?: BetterPostgres;
105
+ /** `fetch` for the user's supabase-js client, e.g. `liteStack().fetch`. */
106
+ readonly fetch?: typeof fetch;
101
107
  }
102
108
  interface TestUser<M extends AnyModels, F extends AnyFunctions, E> {
103
109
  readonly token: string;
@@ -122,6 +128,55 @@ interface TestUser<M extends AnyModels, F extends AnyFunctions, E> {
122
128
  */
123
129
  export declare function asUser<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, claims: TestJwtClaims, stack?: LocalStack): Promise<TestUser<M, F, E>>;
124
130
  //#endregion
131
+ //#region src/testing/lite.d.ts
132
+ interface LiteStackOptions {
133
+ /**
134
+ * `sqlite-postgres` (default) stores data in in-memory SQLite and
135
+ * translates your Postgres SQL, as `lite init` does. `pglite` runs real
136
+ * Postgres in-process, with `rpc()` and `DEFAULT auth.uid()`.
137
+ */
138
+ readonly driver?: "sqlite-postgres" | "pglite";
139
+ /** Migration SQL, applied in order before `schemas`. DDL only; put rows in `seed`. */
140
+ readonly migrations?: readonly string[];
141
+ /** Declarative schema SQL (`supabase/schemas/*.sql`), applied after `migrations`. */
142
+ readonly schemas?: readonly string[];
143
+ /** Seed SQL, run after the schema as the database owner (RLS does not apply). */
144
+ readonly seed?: string | readonly string[];
145
+ /** The shared HS256 secret. Defaults to a random one. */
146
+ readonly jwtSecret?: string;
147
+ }
148
+ interface LiteStack extends AsyncDisposable {
149
+ /** A placeholder URL: requests never leave the process. */
150
+ readonly url: string;
151
+ readonly publishableKey: string;
152
+ readonly secretKey: string;
153
+ readonly jwtSecret: string;
154
+ /** Routes requests to the in-process Lite app. Pass it as `fetch` to `createServer`. */
155
+ readonly fetch: typeof globalThis.fetch;
156
+ /** The settings `createServer(betterSupabase, { env, backend: "lite", fetch })` takes. */
157
+ readonly env: BetterSupabaseEnv;
158
+ /** supabase-js with the publishable key, as an anonymous caller. */
159
+ readonly supabase: SupabaseClient;
160
+ /** supabase-js with the secret key: bypasses RLS, for setup. */
161
+ readonly admin: SupabaseClient;
162
+ /** A user with an HS256 token, as `asUser` signs it, whose clients route through `fetch`. */
163
+ asUser<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, claims: TestJwtClaims): Promise<TestUser<M, F, E>>;
164
+ /** Closes the database. */
165
+ close(): Promise<void>;
166
+ }
167
+ /**
168
+ * Supabase Lite in this process, for tests without Docker: an in-memory
169
+ * database with your schema, Auth with fresh API keys, and supabase-js
170
+ * clients whose requests go straight to Lite's `fetch` handler (no port).
171
+ *
172
+ * ```ts
173
+ * await using stack = await liteStack({ schemas: [await readFile("supabase/schemas/notes.sql", "utf8")] });
174
+ * const alice = await stack.asUser(betterSupabase, { sub: aliceId });
175
+ * expect(await alice.db.notes.count().orThrow()).toBe(1);
176
+ * ```
177
+ */
178
+ export declare function liteStack(options?: LiteStackOptions): Promise<LiteStack>;
179
+ //#endregion
125
180
  //#region src/testing/budget.d.ts
126
181
  /** The part of a Playwright `Request` the budget check reads. */
127
182
  interface BudgetRequest {
@@ -276,102 +331,6 @@ export declare class ConformanceError extends Error {
276
331
  readonly report: ConformanceReport;
277
332
  constructor(report: ConformanceReport);
278
333
  }
279
- type AnySupabase$1 = BetterSupabase<any, any, any, any>;
280
- interface TestExecutorOptions {
281
- /** A definition whose schema matches the executor's database. Install no plugins. */
282
- readonly betterSupabase: AnySupabase$1;
283
- /** App key of a table with rows the executor can read. Defaults to the first table. */
284
- readonly table?: string;
285
- /** A row to insert and delete again, to check writes. Skips write checks when omitted. */
286
- readonly create?: Readonly<Record<string, unknown>>;
287
- }
288
- /**
289
- * Proves an `Executor` meets the contract: rows keyed by the selection's
290
- * aliases, counts, `aborted` errors, failures returned as `Result`s rather
291
- * than thrown, and (with `create`) a write round trip and a `deleteMany`
292
- * that `maxAffected` refuses without deleting anything.
293
- *
294
- * ```ts
295
- * it('conforms', () => testExecutor(myExecutor, { betterSupabase, table: 'tags', create: { name: 'x' } }));
296
- * ```
297
- */
298
- export declare function testExecutor(executor: Executor, options: TestExecutorOptions): Promise<ConformanceReport>;
299
- /**
300
- * Proves a `CacheAdapter` accepts table and row targets, repeated and
301
- * concurrent calls, and never mutates its input.
302
- */
303
- export declare function testCacheAdapter(adapter: CacheAdapter, options?: {
304
- readonly table?: string;
305
- }): Promise<ConformanceReport>;
306
- interface TestEventSinkOptions {
307
- /** Events the sink delivered, for sinks that can be read back (an outbox, a test queue). */
308
- readonly received?: () => readonly CloudEvent[] | Promise<readonly CloudEvent[]>;
309
- }
310
- /** Proves an `EventSink` accepts empty and full batches without mutating them, and delivers them when readable. */
311
- export declare function testEventSink(sink: EventSink, options?: TestEventSinkOptions): Promise<ConformanceReport>;
312
- interface TestQueueBackendOptions {
313
- /** A queue the kit may fill and drain; use a fresh name per run. */
314
- readonly queue: string;
315
- /** Check that a repeated dedupe key returns the first id. Defaults to `backend.leases`. */
316
- readonly dedupe?: boolean;
317
- }
318
- /**
319
- * Proves a `QueueBackend` round-trips payloads, hides claimed messages for
320
- * their lease, counts attempts, retries and dead-letters on `fail`, and
321
- * (when it has `leases`) rejects a stale attempt and extends a lease. It
322
- * writes to `options.queue` on the backend's real store.
323
- */
324
- export declare function testQueueBackend(backend: QueueBackend, options: TestQueueBackendOptions): Promise<ConformanceReport>;
325
- interface TestSupportSessionStoreOptions {
326
- /** A user who may start support sessions in the store. */
327
- readonly admin: {
328
- readonly id: string;
329
- readonly claims: Readonly<Record<string, unknown>>;
330
- };
331
- /** Two other users the admin may view the app as. */
332
- readonly targets: readonly [string, string];
333
- }
334
- /**
335
- * Proves a `SupportSessionStore` starts sessions with the input it was
336
- * given, shows a running session only to its admin, ends the admin's
337
- * previous session on start, ends a session once, and lists sessions.
338
- * It writes sessions to the store; they are all ended when it returns.
339
- */
340
- export declare function testSupportSessionStore(store: SupportSessionStore, options: TestSupportSessionStoreOptions): Promise<ConformanceReport>;
341
- interface TestAuthResolverOptions {
342
- /** Requests with credentials this resolver owns but that must not verify. */
343
- readonly invalid: readonly Request[];
344
- /** Requests that must resolve to a user or service, optionally with the expected user id. */
345
- readonly valid?: readonly {
346
- readonly request: Request;
347
- readonly userId?: string;
348
- }[];
349
- /** A request without this resolver's credentials. Defaults to a bare GET. */
350
- readonly unrelated?: Request;
351
- }
352
- /**
353
- * Proves an `AuthResolver` passes on requests it doesn't understand, fails
354
- * closed (`invalid`, never anon) on bad credentials, and never throws.
355
- */
356
- export declare function testAuthResolver(resolver: AuthResolver, options: TestAuthResolverOptions): Promise<ConformanceReport>;
357
- interface TestPluginOptions {
358
- /** The definition without this plugin. */
359
- readonly betterSupabase: AnySupabase$1;
360
- /** Table to exercise. Defaults to the first table. */
361
- readonly table?: string;
362
- /** Context the plugin needs, such as `{ tenant }` for `tenant()`. */
363
- readonly context?: RequestContext;
364
- /** Row for `create`, to exercise `beforeMutation`. */
365
- readonly create?: Readonly<Record<string, unknown>>;
366
- }
367
- /**
368
- * Proves a `Plugin` targets API v1, installs cleanly on its own and next to
369
- * the first-party plugins in either order, adds repository methods without
370
- * replacing base ones, keeps `context`, `transformQuery` and
371
- * `beforeMutation` pure and deterministic, and keeps executors'
372
- * results intact when it wraps them.
373
- */
374
- export declare function testPlugin(plugin: AnyPlugin, options: TestPluginOptions): Promise<ConformanceReport>;
375
334
  //#endregion
376
335
  //#region src/testing/isolation.d.ts
377
336
  interface IsolationTenant {
@@ -484,6 +443,117 @@ export declare function isSeed(value: unknown): value is Seed<unknown>;
484
443
  */
485
444
  export declare function defineSeed<M extends AnyModels, D, F extends AnyFunctions, E, const S extends SeedFixtures<M>>(betterSupabase: BetterSupabase<M, D, F, E>, fixtures: S & ExactSeed<M, S>): Seed<S>;
486
445
  //#endregion
446
+ //#region src/testing/kits/auth-resolver.d.ts
447
+ interface TestAuthResolverOptions {
448
+ /** Requests with credentials this resolver owns but that must not verify. */
449
+ readonly invalid: readonly Request[];
450
+ /** Requests that must resolve to a user or service, optionally with the expected user id. */
451
+ readonly valid?: readonly {
452
+ readonly request: Request;
453
+ readonly userId?: string;
454
+ }[];
455
+ /** A request without this resolver's credentials. Defaults to a bare GET. */
456
+ readonly unrelated?: Request;
457
+ }
458
+ /**
459
+ * Proves an `AuthResolver` passes on requests it doesn't understand, fails
460
+ * closed (`invalid`, never anon) on bad credentials, and never throws.
461
+ */
462
+ export declare function testAuthResolver(resolver: AuthResolver, options: TestAuthResolverOptions): Promise<ConformanceReport>;
463
+ //#endregion
464
+ //#region src/testing/kits/cache-adapter.d.ts
465
+ /**
466
+ * Proves a `CacheAdapter` accepts table and row targets, repeated and
467
+ * concurrent calls, and never mutates its input.
468
+ */
469
+ export declare function testCacheAdapter(adapter: CacheAdapter, options?: {
470
+ readonly table?: string;
471
+ }): Promise<ConformanceReport>;
472
+ //#endregion
473
+ //#region src/testing/kits/event-sink.d.ts
474
+ interface TestEventSinkOptions {
475
+ /** Events the sink delivered, for sinks that can be read back (an outbox, a test queue). */
476
+ readonly received?: () => readonly CloudEvent[] | Promise<readonly CloudEvent[]>;
477
+ }
478
+ /** Proves an `EventSink` accepts empty and full batches without mutating them, and delivers them when readable. */
479
+ export declare function testEventSink(sink: EventSink, options?: TestEventSinkOptions): Promise<ConformanceReport>;
480
+ //#endregion
481
+ //#region src/testing/kits/executor.d.ts
482
+ type AnySupabase$1 = BetterSupabase<any, any, any, any>;
483
+ interface TestExecutorOptions {
484
+ /** A definition whose schema matches the executor's database. Install no plugins. */
485
+ readonly betterSupabase: AnySupabase$1;
486
+ /** App key of a table with rows the executor can read. Defaults to the first table. */
487
+ readonly table?: string;
488
+ /** A row to insert and delete again, to check writes. Skips write checks when omitted. */
489
+ readonly create?: Readonly<Record<string, unknown>>;
490
+ }
491
+ /**
492
+ * Proves an `Executor` meets the contract: rows keyed by the selection's
493
+ * aliases, counts, `aborted` errors, failures returned as `Result`s rather
494
+ * than thrown, and (with `create`) a write round trip and a `deleteMany`
495
+ * that `maxAffected` refuses without deleting anything.
496
+ *
497
+ * ```ts
498
+ * it('conforms', () => testExecutor(myExecutor, { betterSupabase, table: 'tags', create: { name: 'x' } }));
499
+ * ```
500
+ */
501
+ export declare function testExecutor(executor: Executor, options: TestExecutorOptions): Promise<ConformanceReport>;
502
+ //#endregion
503
+ //#region src/testing/kits/plugin.d.ts
504
+ interface TestPluginOptions {
505
+ /** The definition without this plugin. */
506
+ readonly betterSupabase: AnySupabase$1;
507
+ /** Table to exercise. Defaults to the first table. */
508
+ readonly table?: string;
509
+ /** Context the plugin needs, such as `{ tenant }` for `tenant()`. */
510
+ readonly context?: RequestContext;
511
+ /** Row for `create`, to exercise `beforeMutation`. */
512
+ readonly create?: Readonly<Record<string, unknown>>;
513
+ }
514
+ /**
515
+ * Proves a `Plugin` targets API v1, installs cleanly on its own and next to
516
+ * the first-party plugins in either order, adds repository methods without
517
+ * replacing base ones, keeps `context`, `transformQuery` and
518
+ * `beforeMutation` pure and deterministic, and keeps executors'
519
+ * results intact when it wraps them.
520
+ */
521
+ export declare function testPlugin(plugin: AnyPlugin, options: TestPluginOptions): Promise<ConformanceReport>;
522
+ //#endregion
523
+ //#region src/testing/kits/queue-backend.d.ts
524
+ interface TestQueueBackendOptions {
525
+ /** A queue the kit may fill and drain; use a fresh name per run. */
526
+ readonly queue: string;
527
+ /** Check that a repeated dedupe key returns the first id. Defaults to `backend.leases`. */
528
+ readonly dedupe?: boolean;
529
+ }
530
+ /**
531
+ * Proves a `QueueBackend` round-trips payloads, hides claimed messages for
532
+ * their lease, counts attempts, retries and dead-letters on `fail`, and
533
+ * (when it has `leases`) rejects a stale attempt and extends a lease. It
534
+ * writes to `options.queue` on the backend's real store.
535
+ */
536
+ export declare function testQueueBackend(backend: QueueBackend, options: TestQueueBackendOptions): Promise<ConformanceReport>;
537
+ //#endregion
538
+ //#region src/testing/kits/support-session-store.d.ts
539
+ interface TestSupportSessionStoreOptions {
540
+ /** A user who may start support sessions in the store. */
541
+ readonly admin: {
542
+ readonly id: string;
543
+ readonly claims: Readonly<Record<string, unknown>>;
544
+ };
545
+ /** Two other users the admin may view the app as. */
546
+ readonly targets: readonly [string, string];
547
+ }
548
+ /**
549
+ * Proves a `SupportSessionStore` starts sessions with the input it was
550
+ * given, shows a running session only to its admin, ends the admin's
551
+ * previous session on start, ends a session once, lists sessions and, with
552
+ * `expire`, leaves running sessions alone.
553
+ * It writes sessions to the store; they are all ended when it returns.
554
+ */
555
+ export declare function testSupportSessionStore(store: SupportSessionStore, options: TestSupportSessionStoreOptions): Promise<ConformanceReport>;
556
+ //#endregion
487
557
  //#region src/testing/adapter.d.ts
488
558
  type AnySupabase = BetterSupabase<any, any, any, any>;
489
559
  /** What the adapter module asks a handler to do with the caller's context. */
@@ -540,6 +610,67 @@ export declare function testBlockTransportMiddleware(middleware: BlockTransportM
540
610
  */
541
611
  export declare function testAuthorizationProvider(provider: AuthorizationProvider): Promise<ConformanceReport>;
542
612
  //#endregion
613
+ //#region src/testing/authorizer.d.ts
614
+ interface TestAuthorizerOptions<Ref> {
615
+ /** Permission references to check; give at least one. */
616
+ readonly permissions: readonly Ref[];
617
+ /** A permission the authorizer grants for `context`, checked end to end. */
618
+ readonly granted?: {
619
+ readonly permission: Ref;
620
+ readonly context: RequestContext;
621
+ };
622
+ /** A permission reference the authorizer doesn't know; it must never be granted. */
623
+ readonly unknown?: Ref;
624
+ }
625
+ /**
626
+ * Proves an `Authorizer` targets API v1, keys every permission to the same
627
+ * string each time (and after a JSON round trip, so references are plain
628
+ * JSON), answers every request with a known outcome without mutating it,
629
+ * keeps the request order in `evaluations`, decides from the subject rather
630
+ * than the input (forged roles, claims and memberships in the resource
631
+ * properties or the context never turn a denial into a grant), never grants an unknown permission, and grants
632
+ * `options.granted` through `checkPermission`.
633
+ */
634
+ export declare function testAuthorizer<Ref>(authorizer: Authorizer<Ref>, options: TestAuthorizerOptions<Ref>): Promise<ConformanceReport>;
635
+ interface StaticAuthorizerOptions<Ref extends string> {
636
+ /**
637
+ * Permissions per role. The role is the subject's `role` property (the
638
+ * Postgres role: `authenticated`, `service_role`), or its type (`anon`).
639
+ */
640
+ readonly roles?: Readonly<Record<string, readonly Ref[]>>;
641
+ /** Permissions per subject id, on top of the role's. */
642
+ readonly grants?: Readonly<Record<string, readonly Ref[]>>;
643
+ /** Permissions that answer `approval-required` with the approval id `approval:<permission>`. */
644
+ readonly approvals?: readonly Ref[];
645
+ }
646
+ /**
647
+ * An in-memory `Authorizer` for tests and examples: permissions come from
648
+ * the subject's `role` and id only, never from the request's resource or
649
+ * context, and it ignores `subject.properties.claims`.
650
+ */
651
+ export declare function staticAuthorizer<Ref extends string>(options: StaticAuthorizerOptions<Ref>): Authorizer<Ref>;
652
+ //#endregion
653
+ //#region src/testing/document-format.d.ts
654
+ interface TestDocumentFormatOptions<V extends string = string> {
655
+ /**
656
+ * The model to lower. Defaults to a small model with a route, a stream,
657
+ * a webhook, a Realtime channel and a workflow.
658
+ */
659
+ readonly model?: ApiModel;
660
+ /** The versions to lower. Defaults to every version the format lists. */
661
+ readonly versions?: readonly V[];
662
+ }
663
+ /**
664
+ * Proves a `DocumentFormat` targets API v1, lists versions with pins and a
665
+ * known status, defaults to a version it lists that is not a preview, and,
666
+ * for every version: lowers the model without mutating it (also when the
667
+ * model is frozen), renders the same document twice, renders plain JSON or
668
+ * text, reports diagnostics with a kebab-case code, a severity and a
669
+ * message, finds no error in its own output with `lint`, and names a bare,
670
+ * stable file.
671
+ */
672
+ export declare function testDocumentFormat<F extends AnyDocumentFormat>(format: F, options?: TestDocumentFormatOptions<VersionOf<F>>): Promise<ConformanceReport>;
673
+ //#endregion
543
674
  //#region src/testing/generator.d.ts
544
675
  interface TestGeneratorOptions {
545
676
  /** Schema metadata to generate from: `schema.meta` from your generated module. */
@@ -719,4 +850,4 @@ interface TestCredentialProviderOptions {
719
850
  */
720
851
  export declare function testCredentialProvider(provider: CredentialProvider, options: TestCredentialProviderOptions): Promise<ConformanceReport>;
721
852
  //#endregion
722
- export type { AdapterRun, BudgetPage, BudgetRequest, BudgetResponse, ConformanceCheck, ConformanceReport, DbBudgetExpectation, ExactSeed, InstantBrowserContext, InstantExpectation, InstantLocator, InstantPage, IsolationTable, IsolationTables, IsolationTenant, LocalStack, MeasuredRender, ResponseBudgetExpectation, ResponseDbStats, Seed, SeedFixtures, SigningJwk, SupabaseClaimFixture, SupabaseClaimFixtureName, TenantIsolationOptions, TestAdapterOptions, TestAiTaskRunnerOptions, TestAuthResolverOptions, TestBuilderStarterOptions, TestChatStateOptions, TestCredentialProviderOptions, TestEmbedderOptions, TestEveDocumentBackendOptions, TestEventSinkOptions, TestExecutorOptions, TestGeneratorOptions, TestGraphCompilerOptions, TestJwtClaims, TestNotificationChannelOptions, TestPluginOptions, TestQueueBackendOptions, TestSigner, TestStreamStoreOptions, TestSupportSessionStoreOptions, TestUser, TestWebhookSecretStoreOptions, TestWebhookSignerOptions, TestWebhookTransportOptions };
853
+ export type { AdapterRun, BudgetPage, BudgetRequest, BudgetResponse, ConformanceCheck, ConformanceReport, DbBudgetExpectation, ExactSeed, InstantBrowserContext, InstantExpectation, InstantLocator, InstantPage, IsolationTable, IsolationTables, IsolationTenant, LiteStack, LiteStackOptions, LocalStack, MeasuredRender, ResponseBudgetExpectation, ResponseDbStats, Seed, SeedFixtures, SigningJwk, StaticAuthorizerOptions, SupabaseClaimFixture, SupabaseClaimFixtureName, TenantIsolationOptions, TestAdapterOptions, TestAiTaskRunnerOptions, TestAuthResolverOptions, TestAuthorizerOptions, TestBuilderStarterOptions, TestChatStateOptions, TestCredentialProviderOptions, TestDocumentFormatOptions, TestEmbedderOptions, TestEveDocumentBackendOptions, TestEventSinkOptions, TestExecutorOptions, TestGeneratorOptions, TestGraphCompilerOptions, TestJwtClaims, TestNotificationChannelOptions, TestPluginOptions, TestQueueBackendOptions, TestSigner, TestStreamStoreOptions, TestSupportSessionStoreOptions, TestUser, TestWebhookSecretStoreOptions, TestWebhookSignerOptions, TestWebhookTransportOptions };