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,24 +1,10 @@
1
- import { a as list, r as defineCliCommand } from "./command-CK14fP91.js";
2
- import { i as writeIfChanged, t as display } from "./io-DI1mTdSA.js";
3
- import { t as VERSION } from "./version-Bp4fyubI.js";
4
- import { a as loadConfig, r as findConfig } from "./config-NiPxAmUF.js";
5
- import { a as findSupabaseRoot, p as tomlGet, r as diffEngine, t as PGDELTA_TABLE, u as readSupabaseToml } from "./supabase-toml-B-bIukQF.js";
6
- import { t as TYPEGEN_VERSION } from "./typegen-version-DeFbtzYI.js";
7
- import { n as installCommand, t as detectProject } from "./project-DZRaBaY7.js";
8
- import { join, posix, resolve } from "node:path";
1
+ import { a as parseNames } from "./errors-CqTLXe2M.js";
2
+ import { a as writeIfChanged, t as display } from "./io-CFzJVJ68.js";
3
+ import { t as VERSION } from "./version-B4k0aUxS.js";
4
+ import { n as INTEGRATIONS } from "./names-D6LrQnOv.js";
5
+ import { posix, resolve } from "node:path";
9
6
  import { existsSync } from "node:fs";
10
- import { glob, readFile } from "node:fs/promises";
11
7
  //#region src/cli/templates.ts
12
- const INTEGRATIONS = [
13
- "next",
14
- "hono",
15
- "orpc",
16
- "edge",
17
- "expo",
18
- "mcp",
19
- "client",
20
- "react"
21
- ];
22
8
  const join$1 = (...parts) => posix.normalize(posix.join(...parts));
23
9
  const libDir = (context) => join$1(context.srcDir, "lib");
24
10
  /** `lib/supabase/`: the shared definition, `server.ts` and `client.ts`. */
@@ -77,14 +63,19 @@ function functionServer(name, contents) {
77
63
  /** Edge Functions import `_shared/supabase.ts`, so they don't need the app definition. */
78
64
  const needsLib = (names) => names.length === 0 || names.some((name) => name !== "edge" && name !== "mcp");
79
65
  /** The files `init` writes: the config and, unless `lib` is false, the isomorphic definition. */
80
- function baseFiles(context, casing, lib = true) {
66
+ function baseFiles(context, casing, lib = true, integrations = []) {
81
67
  const config = {
82
68
  path: "better-supabase.config.ts",
83
69
  contents: `import { defineConfig } from 'better-supabase/config';
84
70
 
85
71
  export default defineConfig({
86
72
  casing: '${casing}',
87
- output: '${context.generated}',
73
+ output: '${context.generated}',${integrations.length > 0 ? `\n integrations: [${integrations.map((name) => `'${name}'`).join(", ")}],` : ""}
74
+ // \`better-supabase gen\` runs every task this file sets up: types, then
75
+ // sql, spec, seed and scaffold when they are configured. Pin the list with:
76
+ // gen: { tasks: ['types', 'sql', 'spec'] },
77
+ // env: { output: '.env.local' },
78
+ // doctor: { format: 'sarif', output: 'doctor.sarif' },
88
79
  });
89
80
  `
90
81
  };
@@ -410,127 +401,7 @@ function suggestedIntegrations(frameworks) {
410
401
  return resolveIntegrations(names);
411
402
  }
412
403
  //#endregion
413
- //#region src/cli/workspace.ts
414
- const unquote = (value) => value.replace(/\s+#.*$/, "").trim().replace(/^(["'])(.*)\1$/, "$2");
415
- /** The `packages` globs of `pnpm-workspace.yaml`, in block or flow style. */
416
- function pnpmWorkspacePatterns(text) {
417
- const lines = text.split(/\r?\n/);
418
- const start = lines.findIndex((line) => /^packages\s*:/.test(line));
419
- if (start === -1) return [];
420
- const inline = /^packages\s*:\s*\[(.*)\]\s*(?:#.*)?$/.exec(lines[start]);
421
- if (inline) return inline[1].split(",").map(unquote).filter((entry) => entry !== "");
422
- const patterns = [];
423
- for (const line of lines.slice(start + 1)) {
424
- if (/^\s*(?:#.*)?$/.test(line)) continue;
425
- const item = /^\s+-\s*(.+)$/.exec(line);
426
- if (!item) break;
427
- patterns.push(unquote(item[1]));
428
- }
429
- return patterns.filter((entry) => entry !== "");
430
- }
431
- function packageJsonPatterns(workspaces) {
432
- let list = workspaces;
433
- if (typeof workspaces === "object" && workspaces !== null && "packages" in workspaces) list = workspaces.packages;
434
- return Array.isArray(list) ? list.filter((entry) => typeof entry === "string") : [];
435
- }
436
- async function matches(root, pattern) {
437
- const dirs = [];
438
- const base = pattern.replace(/^\.\//, "").replace(/\/$/, "");
439
- for await (const path of glob(`${base}/package.json`, {
440
- cwd: root,
441
- exclude: (name) => name === "node_modules"
442
- })) dirs.push(posix.dirname(path.replaceAll("\\", "/")));
443
- return dirs;
444
- }
445
- /**
446
- * The workspace declared at `root` by `pnpm-workspace.yaml` or the
447
- * `workspaces` field of `package.json`, with its packages in path order.
448
- * `undefined` when `root` declares none.
449
- */
450
- async function detectWorkspace(root) {
451
- let file;
452
- let patterns;
453
- const yaml = join(root, "pnpm-workspace.yaml");
454
- if (existsSync(yaml)) {
455
- file = "pnpm-workspace.yaml";
456
- patterns = pnpmWorkspacePatterns(await readFile(yaml, "utf8"));
457
- } else {
458
- const path = join(root, "package.json");
459
- if (!existsSync(path)) return void 0;
460
- let pkg;
461
- try {
462
- pkg = JSON.parse(await readFile(path, "utf8"));
463
- } catch {
464
- return;
465
- }
466
- if (typeof pkg !== "object" || pkg === null || !("workspaces" in pkg)) return void 0;
467
- file = "package.json";
468
- patterns = packageJsonPatterns(pkg.workspaces);
469
- if (patterns.length === 0) return void 0;
470
- }
471
- const included = /* @__PURE__ */ new Set();
472
- const excluded = /* @__PURE__ */ new Set();
473
- for (const pattern of patterns) {
474
- const negated = pattern.startsWith("!");
475
- for (const dir of await matches(root, negated ? pattern.slice(1) : pattern)) (negated ? excluded : included).add(dir);
476
- }
477
- const dirs = [...included].filter((dir) => dir !== "." && !excluded.has(dir)).sort();
478
- const packages = await Promise.all(dirs.map(async (dir) => ({
479
- dir,
480
- project: await detectProject(join(root, dir))
481
- })));
482
- return {
483
- file,
484
- packages
485
- };
486
- }
487
- /** The package `init` suggests: one that uses better-supabase, then one with a framework. */
488
- function suggestedPackage(workspace) {
489
- const packages = workspace.packages;
490
- return (packages.find((entry) => "better-supabase" in entry.project.dependencies) ?? packages.find((entry) => entry.project.frameworks.length > 0) ?? packages[0])?.dir;
491
- }
492
- //#endregion
493
- //#region src/cli/commands/init.ts
494
- const INIT_ARGS = {
495
- casing: {
496
- type: "string",
497
- description: "Row keys in camelCase (camel, the default) or the database's snake_case (snake)",
498
- valueHint: "camel|snake"
499
- },
500
- with: {
501
- type: "string",
502
- description: "Integrations to add next to the detected ones: next, hono, orpc, edge, expo, mcp, client, react",
503
- valueHint: "integration,..."
504
- },
505
- package: {
506
- type: "string",
507
- description: "Workspace package to write to, relative to --cwd",
508
- valueHint: "dir"
509
- },
510
- force: {
511
- type: "boolean",
512
- description: "Overwrite files that exist"
513
- },
514
- "dry-run": {
515
- type: "boolean",
516
- description: "Show what would be written"
517
- }
518
- };
519
- const ADD_ARGS = {
520
- integration: {
521
- type: "positional",
522
- required: false,
523
- description: "next, hono, orpc, edge, expo, mcp, client or react"
524
- },
525
- force: {
526
- type: "boolean",
527
- description: "Overwrite files that exist"
528
- },
529
- "dry-run": {
530
- type: "boolean",
531
- description: "Show what would be written"
532
- }
533
- };
404
+ //#region src/cli/glue.ts
534
405
  const CANCELLED = {
535
406
  code: 1,
536
407
  error: "Cancelled."
@@ -563,25 +434,7 @@ async function writeFiles(root, files, args, force, base = root) {
563
434
  }
564
435
  return lines;
565
436
  }
566
- /**
567
- * Adds `[experimental.pgdelta] enabled = true` to `supabase/config.toml`
568
- * when it has no such table, so `supabase db schema declarative sync`
569
- * runs on pg-delta. A table set to `enabled = false` is left alone.
570
- */
571
- async function enablePgDelta(root, args, base) {
572
- const supabaseRoot = findSupabaseRoot(root);
573
- const toml = await readSupabaseToml(root);
574
- if (supabaseRoot === void 0 || toml === void 0) return [];
575
- const path = join(supabaseRoot, "supabase/config.toml");
576
- const shown = display(base, path);
577
- if (diffEngine(toml) === "pg-delta") return [];
578
- if (tomlGet(toml.document, ["experimental", "pgdelta"]) !== void 0 || toml.text.includes("pgdelta")) return [`Kept ${shown} (pg-delta is off; set [experimental.pgdelta] enabled = true, remove [db.migrations] schema_paths and use \`supabase db schema declarative sync\` instead of \`supabase db diff\`)`];
579
- if (args["dry-run"] === true) return [`Would enable pg-delta in ${shown}`];
580
- const separator = toml.text === "" || toml.text.endsWith("\n\n") ? "" : toml.text.endsWith("\n") ? "\n" : "\n\n";
581
- await writeIfChanged(path, `${toml.text}${separator}${PGDELTA_TABLE}`);
582
- return [`Enabled pg-delta in ${shown}`];
583
- }
584
- function context(project, generated) {
437
+ function templateContextFor(project, generated) {
585
438
  return {
586
439
  srcDir: project.srcDir,
587
440
  generated,
@@ -601,11 +454,6 @@ function packagesFor(project, names) {
601
454
  ];
602
455
  return [...new Set(wanted)].filter((name) => !(name in project.dependencies));
603
456
  }
604
- /** pg and the pinned postgrest-typegen as dev dependencies, the ones the project lacks. */
605
- function devPackages(project) {
606
- const missing = [..."pg" in project.dependencies ? [] : ["pg"], ..."@supabase/postgrest-typegen" in project.dependencies ? [] : [`@supabase/postgrest-typegen@${TYPEGEN_VERSION}`]];
607
- return missing.length === 0 ? [] : [missing];
608
- }
609
457
  function chooseIntegrations(prompts, initial) {
610
458
  return prompts.multiselect("Integrations", INTEGRATIONS.map((name) => ({
611
459
  value: name,
@@ -614,152 +462,7 @@ function chooseIntegrations(prompts, initial) {
614
462
  })), initial);
615
463
  }
616
464
  function parseIntegrations(values) {
617
- const unknown = values.filter((value) => !isIntegration(value));
618
- if (unknown.length > 0) return `Unknown integration ${unknown.join(", ")}. Available: ${INTEGRATIONS.join(", ")}`;
619
- return values.filter(isIntegration);
620
- }
621
- /** Where `init` writes: `--cwd`, `--package`, or the workspace package the person picks. */
622
- async function initTarget(cwd, args, prompts) {
623
- if (args.package !== void 0) {
624
- const dir = posix.normalize(args.package.replaceAll("\\", "/"));
625
- if (!existsSync(join(cwd, dir, "package.json"))) return {
626
- code: 2,
627
- error: `--package ${args.package} has no package.json. Pass the directory of a workspace package, relative to --cwd.`
628
- };
629
- return { dir: dir.replace(/\/$/, "") || "." };
630
- }
631
- const workspace = await detectWorkspace(cwd);
632
- if (!workspace || workspace.packages.length === 0) return { dir: "." };
633
- const suggested = suggestedPackage(workspace) ?? ".";
634
- if (!prompts) return {
635
- code: 2,
636
- error: `${workspace.file} makes this a workspace root. Pass --package with the package that owns the runtime (${workspace.packages.map((entry) => entry.dir).join(", ")}), or --package . to write here.`
637
- };
638
- const dir = await prompts.select("Package that owns the runtime", [...workspace.packages.map((entry) => ({
639
- value: entry.dir,
640
- label: entry.dir,
641
- ...entry.project.name ? { hint: entry.project.name } : {}
642
- })), {
643
- value: ".",
644
- label: ".",
645
- hint: "the workspace root"
646
- }], suggested);
647
- return dir === void 0 ? CANCELLED : { dir };
465
+ return parseNames(values, isIntegration, "integration", INTEGRATIONS);
648
466
  }
649
- async function runInit(config, args, prompts) {
650
- const casing = args.casing ?? (prompts ? await prompts.select("Row keys", [{
651
- value: "camel",
652
- label: "camelCase",
653
- hint: "customerId"
654
- }, {
655
- value: "snake",
656
- label: "snake_case",
657
- hint: "customer_id, as in the database"
658
- }], "camel") : "camel");
659
- if (casing === void 0) return CANCELLED;
660
- if (casing !== "camel" && casing !== "snake") return {
661
- code: 2,
662
- error: "--casing must be \"camel\" or \"snake\""
663
- };
664
- const target = await initTarget(config.root, args, prompts);
665
- if ("code" in target) return target;
666
- const root = resolve(config.root, target.dir);
667
- const inPackage = target.dir !== ".";
668
- const workspaceProject = await detectProject(config.root);
669
- const project = inPackage ? {
670
- ...await detectProject(root),
671
- packageManager: workspaceProject.packageManager
672
- } : workspaceProject;
673
- const installTarget = inPackage ? {
674
- dir: target.dir,
675
- name: project.name
676
- } : void 0;
677
- const requested = parseIntegrations(list(args.with));
678
- if (typeof requested === "string") return {
679
- code: 2,
680
- error: requested
681
- };
682
- const detected = resolveIntegrations([...suggestedIntegrations(project.frameworks), ...requested]);
683
- const chosen = args.with === void 0 && prompts ? await chooseIntegrations(prompts, detected) : detected;
684
- if (chosen === void 0) return CANCELLED;
685
- const integrations = resolveIntegrations(chosen);
686
- const hasConfig = findConfig(root) !== void 0;
687
- let generated = posix.normalize(posix.join(project.srcDir, "lib/supabase/generated.ts"));
688
- if (hasConfig) generated = inPackage ? (await loadConfig(root)).output : config.output;
689
- const templateContext = context(project, generated);
690
- const files = [...baseFiles(templateContext, casing, needsLib(integrations)), ...integrationFiles(integrations, templateContext)];
691
- const force = await overwrite(root, files, args, prompts, config.root);
692
- if (force === void 0) return CANCELLED;
693
- const where = inPackage ? ` in ${target.dir}` : "";
694
- const lines = [
695
- project.frameworks.length > 0 ? `Found ${project.frameworks.join(", ")}${where}.` : `No framework found${where}.`,
696
- "",
697
- ...await writeFiles(root, files, args, force, config.root),
698
- ...await enablePgDelta(root, args, config.root)
699
- ];
700
- const packages = packagesFor(project, integrations);
701
- const cwdFlag = inPackage ? ` --cwd ${target.dir}` : "";
702
- const steps = [
703
- ...packages.length > 0 ? [installCommand(project.packageManager, packages, false, installTarget)] : [],
704
- ...devPackages(project).map((names) => installCommand(project.packageManager, names, true, installTarget)),
705
- ...project.hasSupabase || workspaceProject.hasSupabase ? [] : ["supabase init"],
706
- "supabase start",
707
- `better-supabase env${cwdFlag}`,
708
- `better-supabase gen${cwdFlag}`
709
- ];
710
- lines.push("", "Next:", ...steps.map((step, index) => ` ${index + 1}. ${step}`));
711
- for (const name of integrations) for (const hint of TEMPLATES[name].next ?? []) lines.push(` - ${hint}`);
712
- lines.push("", "Agent skills: better-supabase skills install");
713
- return {
714
- code: 0,
715
- output: lines.join("\n")
716
- };
717
- }
718
- async function runAdd(config, args, prompts) {
719
- const named = args._.length === 0 && prompts ? await chooseIntegrations(prompts, []) : args._;
720
- if (named === void 0) return CANCELLED;
721
- if (named.length === 0) return {
722
- code: 2,
723
- error: `Name at least one integration: ${INTEGRATIONS.join(", ")}`
724
- };
725
- const requested = parseIntegrations(named);
726
- if (typeof requested === "string") return {
727
- code: 2,
728
- error: requested
729
- };
730
- const project = await detectProject(config.root);
731
- const integrations = resolveIntegrations(requested);
732
- const templateContext = context(project, config.output);
733
- const files = integrationFiles(integrations, templateContext);
734
- const force = await overwrite(config.root, files, args, prompts);
735
- if (force === void 0) return CANCELLED;
736
- const lines = await writeFiles(config.root, files, args, force);
737
- const lib = libEntry(templateContext);
738
- if (!existsSync(resolve(config.root, lib)) && integrations.some((name) => needsLib([name]))) lines.push("", `Warning: ${lib} is missing. Run \`better-supabase init\` first.`);
739
- const packages = packagesFor(project, integrations).filter((name) => name !== "better-supabase" && name !== "@supabase/supabase-js");
740
- if (packages.length > 0) lines.push("", `Install: ${installCommand(project.packageManager, packages)}`);
741
- for (const name of integrations) for (const hint of TEMPLATES[name].next ?? []) lines.push(`- ${hint}`);
742
- return {
743
- code: 0,
744
- output: lines.join("\n")
745
- };
746
- }
747
- const initCommand = defineCliCommand({
748
- meta: {
749
- name: "init",
750
- description: "Writes better-supabase.config.ts, src/lib/supabase/index.ts and glue for the frameworks in package.json"
751
- },
752
- args: INIT_ARGS,
753
- lists: ["with"],
754
- run: (args, { config, io }) => runInit(config, args, io.prompts)
755
- });
756
- const addCommand = defineCliCommand({
757
- meta: {
758
- name: "add",
759
- description: "Adds glue for an integration to an existing project"
760
- },
761
- args: ADD_ARGS,
762
- run: (args, { config, io }) => runAdd(config, args, io.prompts)
763
- });
764
467
  //#endregion
765
- export { addCommand, initCommand };
468
+ export { packagesFor as a, writeFiles as c, libEntry as d, needsLib as f, overwrite as i, TEMPLATES as l, suggestedIntegrations as m, chooseIntegrations as n, parseIntegrations as o, resolveIntegrations as p, integrationFiles as r, templateContextFor as s, CANCELLED as t, baseFiles as u };
@@ -84,6 +84,8 @@ type Resolvable<T> = T | Promise<T> | (() => T) | (() => Promise<T>);
84
84
  interface CliEnv {
85
85
  /** Postgres connection string for gen, introspect, doctor and seed. */
86
86
  readonly DATABASE_URL?: string | undefined;
87
+ /** The Supabase name for the same connection string, read when `DATABASE_URL` is unset. */
88
+ readonly SUPABASE_DB_URL?: string | undefined;
87
89
  /** Personal access token for reading a hosted project. */
88
90
  readonly SUPABASE_ACCESS_TOKEN?: string | undefined;
89
91
  /** Management API base URL; defaults to https://api.supabase.com. */
@@ -92,8 +94,10 @@ interface CliEnv {
92
94
  readonly SUPABASE_BIN?: string | undefined;
93
95
  /** Home directory for `skills install --global`. */
94
96
  readonly HOME?: string | undefined;
95
- /** Set in CI; prompts never run there. */
97
+ /** Set in CI; prompts never run there, and the config's `ci` environment applies. */
96
98
  readonly CI?: string | undefined;
99
+ /** The config environment to apply when `--env` is not passed. */
100
+ readonly BETTER_SUPABASE_ENV?: string | undefined;
97
101
  }
98
102
  //#endregion
99
103
  //#region src/cli/prompts.d.ts
@@ -170,6 +174,11 @@ declare const GLOBAL_ARGS: {
170
174
  readonly description: "Config file, relative to --cwd";
171
175
  readonly valueHint: "file";
172
176
  };
177
+ readonly env: {
178
+ readonly type: "string";
179
+ readonly description: "Config environment to apply ($env.<name> or $<name>). Defaults to $BETTER_SUPABASE_ENV, then ci when $CI is set";
180
+ readonly valueHint: "name";
181
+ };
173
182
  readonly json: {
174
183
  readonly type: "boolean";
175
184
  readonly description: "Print one JSON document on stdout; errors as Problem Details";
@@ -218,12 +227,6 @@ interface CommandContext {
218
227
  type Command = (context: CommandContext) => Promise<CommandResult>;
219
228
  //#endregion
220
229
  //#region src/cli/run.d.ts
221
- /** Registers a citty command; `defineCliCommand` gives it the `CliContext`. */
222
- export declare function registerCommand(name: string, command: AnyCommand): void;
223
- /** @deprecated Pass a citty `CommandDef` from `defineCliCommand` instead. */
224
- export declare function registerCommand(name: string, command: Command, help?: string): void;
225
- /** The usage text for the CLI, or for one command; plain unless `color` is set. */
226
- export declare function help(command?: string, color?: boolean): Promise<string>;
227
230
  interface RunOptions {
228
231
  /** Directory `--cwd` is relative to. */
229
232
  readonly cwd?: string;
@@ -232,10 +235,26 @@ interface RunOptions {
232
235
  readonly io?: CliIo;
233
236
  readonly signal?: AbortSignal;
234
237
  }
238
+ interface Cli {
239
+ /** Runs the CLI. Never exits the process; returns the exit code and output. */
240
+ run(argv: readonly string[], options?: RunOptions): Promise<RunResult>;
241
+ /** The usage text for the CLI, or for one command; plain unless `color` is set. */
242
+ help(command?: string, color?: boolean): Promise<string>;
243
+ /** The names `run()` dispatches, registered commands included. */
244
+ commandNames(): string[];
245
+ /** The root usage's description of each lazily loaded command, for checking against the command. */
246
+ commandDescriptions(): ReadonlyMap<string, string>;
247
+ /** Adds a command that is already loaded. */
248
+ register(name: string, command: AnyCommand): void;
249
+ }
250
+ export declare const run: Cli["run"];
251
+ export declare const help: Cli["help"];
235
252
  /** The names `run()` dispatches, registered commands included. */
236
- export declare function commandNames(): string[];
237
- /** Runs the CLI. Never exits the process; returns the exit code and output. */
238
- export declare function run(argv: readonly string[], options?: RunOptions): Promise<RunResult>;
253
+ export declare const commandNames: Cli["commandNames"];
254
+ /** Registers a citty command; `defineCliCommand` gives it the `CliContext`. */
255
+ export declare function registerCommand(name: string, command: AnyCommand): void;
256
+ /** @deprecated Pass a citty `CommandDef` from `defineCliCommand` instead. */
257
+ export declare function registerCommand(name: string, command: Command, help?: string): void;
239
258
  //#endregion
240
259
  //#region src/cli/errors.d.ts
241
260
  /** `1` for a failure, `2` for a usage error the caller can fix by changing the command. */
@@ -271,10 +290,19 @@ export declare class CliError extends Error {
271
290
  constructor(code: CliErrorCode, message: string, options?: CliErrorOptions);
272
291
  }
273
292
  //#endregion
274
- //#region src/cli/style.d.ts
275
- type Format = Parameters<typeof styleText>[0];
276
- /** Styles text, or returns it unchanged when colors are off. */
277
- type Paint = (format: Format, text: string) => string;
293
+ //#region src/cli/gen/render.d.ts
294
+ interface RenderOptions {
295
+ /** Where the generated module imports the runtime from. Defaults to `better-supabase`. */
296
+ readonly runtimeImport?: string;
297
+ /** Writes the metadata into the main module, so it stands alone on stdout. */
298
+ readonly inlineMeta?: boolean;
299
+ }
300
+ /**
301
+ * Renders every generated file for a snapshot, without touching disk:
302
+ * `database.types.ts` (what `supabase gen types` prints), the main module,
303
+ * then each configured generator's files.
304
+ */
305
+ export declare function renderFiles(config: ResolvedConfig, snapshot: Snapshot, options?: RenderOptions): Promise<GeneratedFile[]>;
278
306
  //#endregion
279
307
  //#region src/cli/db.d.ts
280
308
  /** The subset of `pg.Client` the CLI uses. */
@@ -314,6 +342,11 @@ interface Queryable {
314
342
  interface IntrospectionSource {
315
343
  readonly queryable: Queryable;
316
344
  readonly describe: string;
345
+ /**
346
+ * Set when the schema was replayed into a throwaway database rather than
347
+ * read from the one the app runs on, saying why live checks are skipped.
348
+ */
349
+ readonly replay?: string;
317
350
  close(): Promise<void>;
318
351
  }
319
352
  /**
@@ -360,7 +393,12 @@ export declare function loadSnapshot(config: ResolvedConfig, env: Env, source: S
360
393
  export declare function parseSnapshot(data: unknown, label?: string): Promise<Snapshot>;
361
394
  export declare function serializeSnapshot(snapshot: Snapshot): string;
362
395
  //#endregion
363
- //#region src/cli/commands/gen.d.ts
396
+ //#region src/cli/style.d.ts
397
+ type Format = Parameters<typeof styleText>[0];
398
+ /** Styles text, or returns it unchanged when colors are off. */
399
+ type Paint = (format: Format, text: string) => string;
400
+ //#endregion
401
+ //#region src/cli/gen/run.d.ts
364
402
  interface GenOptions extends SnapshotSource {
365
403
  readonly config: ResolvedConfig;
366
404
  readonly env: CliEnv;
@@ -376,18 +414,6 @@ interface GenOptions extends SnapshotSource {
376
414
  */
377
415
  readonly isolated?: boolean;
378
416
  }
379
- interface RenderOptions {
380
- /** Where the generated module imports the runtime from. Defaults to `better-supabase`. */
381
- readonly runtimeImport?: string;
382
- /** Writes the metadata into the main module, so it stands alone on stdout. */
383
- readonly inlineMeta?: boolean;
384
- }
385
- /**
386
- * Renders every generated file for a snapshot, without touching disk:
387
- * `database.types.ts` (what `supabase gen types` prints), the main module,
388
- * then each configured generator's files.
389
- */
390
- export declare function renderFiles(config: ResolvedConfig, snapshot: Snapshot, options?: RenderOptions): Promise<GeneratedFile[]>;
391
417
  export declare function runGen(options: GenOptions): Promise<CommandResult>;
392
418
  //#endregion
393
419
  //#region src/cli/introspect/extras.d.ts
@@ -521,12 +547,14 @@ export declare function emitModule(model: Model, options: EmitOptions): string;
521
547
  * Loads `better-supabase.config.*` with c12 and checks it against the config
522
548
  * schema. c12 imports `.ts` natively (Node 24 strips the types), so no
523
549
  * loader is needed; rc files, `package.json`, env overrides and `extends`
524
- * are off so the one file is the whole config. A discovered file sets the
525
- * project root to its own directory; `--config` keeps `cwd` as the root.
550
+ * are off so the one file is the whole config. `environment` merges its
551
+ * blocks in (`applyEnvironment`); c12's own `envName` is off because it
552
+ * concatenates arrays. A discovered file sets the project root to its own
553
+ * directory; `--config` keeps `cwd` as the root.
526
554
  */
527
- export declare function loadConfig(cwd: string, explicit?: string): Promise<ResolvedConfig>;
555
+ export declare function loadConfig(cwd: string, explicit?: string, environment?: string): Promise<ResolvedConfig>;
528
556
  //#endregion
529
557
  //#region src/cli/version.d.ts
530
- export declare const VERSION = "0.7.0";
558
+ export declare const VERSION = "0.8.0";
531
559
  //#endregion
532
560
  export type { Catalog, CatalogCheck, CatalogColumn, CatalogColumnGrant, CatalogEnum, CatalogForeignKey, CatalogFunction, CatalogFunctionArg, CatalogGrant, CatalogIndex, CatalogPolicy, CatalogTable, CatalogTrigger, CatalogUnique, CliArgs, CliCommandDef, CliContext, CliEnv, CliErrorCode, CliErrorOptions, CliIo, CliProblem, CliProblemExtensions, Command, CommandContext, CommandResult, ExitCode, ExtrasFunction, ExtrasHook, ExtrasHookFunction, ExtrasTable, ForeignKeyAction, GeneratorMetadata, IntrospectionSource, ManagementSourceOptions, ParsedArgs, Queryable, RunOptions, RunResult, Snapshot, SnapshotBucket, SnapshotExtras };
package/dist/cli/index.js CHANGED
@@ -1,9 +1,11 @@
1
- import { a as list, r as defineCliCommand } from "./command-CK14fP91.js";
2
- import { n as CliError, t as CLI_ERRORS_URL } from "./errors-4v4DTtda.js";
3
- import { i as run, n as help, r as registerCommand, t as commandNames } from "./run-BO052mki.js";
4
- import { t as VERSION } from "./version-Bp4fyubI.js";
5
- import { a as loadConfig } from "./config-NiPxAmUF.js";
6
- import { L as toCatalog, a as renderFiles, b as emitModule, c as loadSnapshot, d as parseSnapshot, f as serializeSnapshot, g as pgSource, h as managementSource, m as introspect, o as runGen, x as buildModel, y as GENERATED_HEADER } from "./gen-AIf4MREI.js";
1
+ import { a as list, r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { i as run, n as help, r as registerCommand, t as commandNames } from "./run-DA6_lg3w.js";
3
+ import { n as CliError, t as CLI_ERRORS_URL } from "./errors-CqTLXe2M.js";
4
+ import { t as VERSION } from "./version-B4k0aUxS.js";
5
+ import { a as buildModel, c as toCatalog, r as emitModule, t as GENERATED_HEADER } from "./emit-BHHfwUoT.js";
6
+ import { n as runGen, y as renderFiles } from "./run-DuN1MX-7.js";
7
+ import { o as loadConfig } from "./config-M-WzL9O2.js";
8
+ import { a as serializeSnapshot, d as pgSource, i as parseSnapshot, l as introspect, t as loadSnapshot, u as managementSource } from "./snapshot-Bstk6ulj.js";
7
9
  //#region src/cli/introspect/from-catalog.ts
8
10
  /**
9
11
  * Builds a snapshot from catalog records: the inverse of `toCatalog`. Tests