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
@@ -0,0 +1,258 @@
1
+ import { a as list, r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { a as writeIfChanged, t as display } from "./io-CFzJVJ68.js";
3
+ import { t as TYPEGEN_VERSION } from "./typegen-version-DeFbtzYI.js";
4
+ import { i as findConfig, o as loadConfig } from "./config-M-WzL9O2.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 { n as installCommand, t as detectProject } from "./project-DZRaBaY7.js";
7
+ import { a as packagesFor, c as writeFiles, f as needsLib, i as overwrite, l as TEMPLATES, m as suggestedIntegrations, n as chooseIntegrations, o as parseIntegrations, p as resolveIntegrations, r as integrationFiles, s as templateContextFor, t as CANCELLED, u as baseFiles } from "./glue-C1UE8gQN.js";
8
+ import { join, posix, resolve } from "node:path";
9
+ import { existsSync } from "node:fs";
10
+ import { glob, readFile } from "node:fs/promises";
11
+ //#region src/cli/workspace.ts
12
+ const unquote = (value) => value.replace(/\s+#.*$/, "").trim().replace(/^(["'])(.*)\1$/, "$2");
13
+ /** The `packages` globs of `pnpm-workspace.yaml`, in block or flow style. */
14
+ function pnpmWorkspacePatterns(text) {
15
+ const lines = text.split(/\r?\n/);
16
+ const start = lines.findIndex((line) => /^packages\s*:/.test(line));
17
+ if (start === -1) return [];
18
+ const inline = /^packages\s*:\s*\[(.*)\]\s*(?:#.*)?$/.exec(lines[start]);
19
+ if (inline) return inline[1].split(",").map(unquote).filter((entry) => entry !== "");
20
+ const patterns = [];
21
+ for (const line of lines.slice(start + 1)) {
22
+ if (/^\s*(?:#.*)?$/.test(line)) continue;
23
+ const item = /^\s+-\s*(.+)$/.exec(line);
24
+ if (!item) break;
25
+ patterns.push(unquote(item[1]));
26
+ }
27
+ return patterns.filter((entry) => entry !== "");
28
+ }
29
+ function packageJsonPatterns(workspaces) {
30
+ let list = workspaces;
31
+ if (typeof workspaces === "object" && workspaces !== null && "packages" in workspaces) list = workspaces.packages;
32
+ return Array.isArray(list) ? list.filter((entry) => typeof entry === "string") : [];
33
+ }
34
+ async function matches(root, pattern) {
35
+ const dirs = [];
36
+ const base = pattern.replace(/^\.\//, "").replace(/\/$/, "");
37
+ for await (const path of glob(`${base}/package.json`, {
38
+ cwd: root,
39
+ exclude: (name) => name === "node_modules"
40
+ })) dirs.push(posix.dirname(path.replaceAll("\\", "/")));
41
+ return dirs;
42
+ }
43
+ /**
44
+ * The workspace declared at `root` by `pnpm-workspace.yaml` or the
45
+ * `workspaces` field of `package.json`, with its packages in path order.
46
+ * `undefined` when `root` declares none.
47
+ */
48
+ async function detectWorkspace(root) {
49
+ let file;
50
+ let patterns;
51
+ const yaml = join(root, "pnpm-workspace.yaml");
52
+ if (existsSync(yaml)) {
53
+ file = "pnpm-workspace.yaml";
54
+ patterns = pnpmWorkspacePatterns(await readFile(yaml, "utf8"));
55
+ } else {
56
+ const path = join(root, "package.json");
57
+ if (!existsSync(path)) return void 0;
58
+ let pkg;
59
+ try {
60
+ pkg = JSON.parse(await readFile(path, "utf8"));
61
+ } catch {
62
+ return;
63
+ }
64
+ if (typeof pkg !== "object" || pkg === null || !("workspaces" in pkg)) return void 0;
65
+ file = "package.json";
66
+ patterns = packageJsonPatterns(pkg.workspaces);
67
+ if (patterns.length === 0) return void 0;
68
+ }
69
+ const included = /* @__PURE__ */ new Set();
70
+ const excluded = /* @__PURE__ */ new Set();
71
+ for (const pattern of patterns) {
72
+ const negated = pattern.startsWith("!");
73
+ for (const dir of await matches(root, negated ? pattern.slice(1) : pattern)) (negated ? excluded : included).add(dir);
74
+ }
75
+ const dirs = [...included].filter((dir) => dir !== "." && !excluded.has(dir)).sort();
76
+ const packages = await Promise.all(dirs.map(async (dir) => ({
77
+ dir,
78
+ project: await detectProject(join(root, dir))
79
+ })));
80
+ return {
81
+ file,
82
+ packages
83
+ };
84
+ }
85
+ /** The package `init` suggests: one that uses better-supabase, then one with a framework. */
86
+ function suggestedPackage(workspace) {
87
+ const packages = workspace.packages;
88
+ return (packages.find((entry) => "better-supabase" in entry.project.dependencies) ?? packages.find((entry) => entry.project.frameworks.length > 0) ?? packages[0])?.dir;
89
+ }
90
+ //#endregion
91
+ //#region src/cli/commands/init.ts
92
+ const INIT_ARGS = {
93
+ casing: {
94
+ type: "string",
95
+ description: "Row keys in camelCase (camel, the default) or the database's snake_case (snake)",
96
+ valueHint: "camel|snake"
97
+ },
98
+ with: {
99
+ type: "string",
100
+ description: "Integrations to add next to the detected ones: next, hono, orpc, edge, expo, mcp, client, react",
101
+ valueHint: "integration,..."
102
+ },
103
+ package: {
104
+ type: "string",
105
+ description: "Workspace package to write to, relative to --cwd",
106
+ valueHint: "dir"
107
+ },
108
+ lite: {
109
+ type: "boolean",
110
+ description: "Run on Supabase Lite: install @supabase/lite and use its CLI in the next steps"
111
+ },
112
+ force: {
113
+ type: "boolean",
114
+ description: "Overwrite files that exist"
115
+ },
116
+ "dry-run": {
117
+ type: "boolean",
118
+ description: "Show what would be written"
119
+ }
120
+ };
121
+ /**
122
+ * Adds `[experimental.pgdelta] enabled = true` to `supabase/config.toml`
123
+ * when it has no such table, so `supabase db schema declarative sync`
124
+ * runs on pg-delta. A table set to `enabled = false` is left alone.
125
+ */
126
+ async function enablePgDelta(root, args, base) {
127
+ const supabaseRoot = findSupabaseRoot(root);
128
+ const toml = await readSupabaseToml(root);
129
+ if (supabaseRoot === void 0 || toml === void 0) return [];
130
+ const path = join(supabaseRoot, "supabase/config.toml");
131
+ const shown = display(base, path);
132
+ if (diffEngine(toml) === "pg-delta") return [];
133
+ 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\`)`];
134
+ if (args["dry-run"] === true) return [`Would enable pg-delta in ${shown}`];
135
+ const separator = toml.text === "" || toml.text.endsWith("\n\n") ? "" : toml.text.endsWith("\n") ? "\n" : "\n\n";
136
+ await writeIfChanged(path, `${toml.text}${separator}${PGDELTA_TABLE}`);
137
+ return [`Enabled pg-delta in ${shown}`];
138
+ }
139
+ /** The minor of `@supabase/lite` the `backend: 'lite'` option targets. */
140
+ const LITE_VERSION = "0.11";
141
+ /**
142
+ * pg (or `@supabase/lite`, with `lite`) and the pinned postgrest-typegen as
143
+ * dev dependencies, the ones the project lacks.
144
+ */
145
+ function devPackages(project, lite) {
146
+ const database = lite ? "@supabase/lite" : "pg";
147
+ const missing = [...database in project.dependencies ? [] : [lite ? `${database}@${LITE_VERSION}` : database], ..."@supabase/postgrest-typegen" in project.dependencies ? [] : [`@supabase/postgrest-typegen@${TYPEGEN_VERSION}`]];
148
+ return missing.length === 0 ? [] : [missing];
149
+ }
150
+ /** Where `init` writes: `--cwd`, `--package`, or the workspace package the person picks. */
151
+ async function initTarget(cwd, args, prompts) {
152
+ if (args.package !== void 0) {
153
+ const dir = posix.normalize(args.package.replaceAll("\\", "/"));
154
+ if (!existsSync(join(cwd, dir, "package.json"))) return {
155
+ code: 2,
156
+ error: `--package ${args.package} has no package.json. Pass the directory of a workspace package, relative to --cwd.`
157
+ };
158
+ return { dir: dir.replace(/\/$/, "") || "." };
159
+ }
160
+ const workspace = await detectWorkspace(cwd);
161
+ if (!workspace || workspace.packages.length === 0) return { dir: "." };
162
+ const suggested = suggestedPackage(workspace) ?? ".";
163
+ if (!prompts) return {
164
+ code: 2,
165
+ 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.`
166
+ };
167
+ const dir = await prompts.select("Package that owns the runtime", [...workspace.packages.map((entry) => ({
168
+ value: entry.dir,
169
+ label: entry.dir,
170
+ ...entry.project.name ? { hint: entry.project.name } : {}
171
+ })), {
172
+ value: ".",
173
+ label: ".",
174
+ hint: "the workspace root"
175
+ }], suggested);
176
+ return dir === void 0 ? CANCELLED : { dir };
177
+ }
178
+ async function runInit(config, args, prompts) {
179
+ const casing = args.casing ?? (prompts ? await prompts.select("Row keys", [{
180
+ value: "camel",
181
+ label: "camelCase",
182
+ hint: "customerId"
183
+ }, {
184
+ value: "snake",
185
+ label: "snake_case",
186
+ hint: "customer_id, as in the database"
187
+ }], "camel") : "camel");
188
+ if (casing === void 0) return CANCELLED;
189
+ if (casing !== "camel" && casing !== "snake") return {
190
+ code: 2,
191
+ error: "--casing must be \"camel\" or \"snake\""
192
+ };
193
+ const target = await initTarget(config.root, args, prompts);
194
+ if ("code" in target) return target;
195
+ const root = resolve(config.root, target.dir);
196
+ const inPackage = target.dir !== ".";
197
+ const workspaceProject = await detectProject(config.root);
198
+ const project = inPackage ? {
199
+ ...await detectProject(root),
200
+ packageManager: workspaceProject.packageManager
201
+ } : workspaceProject;
202
+ const lite = args.lite === true;
203
+ const installTarget = inPackage ? {
204
+ dir: target.dir,
205
+ name: project.name
206
+ } : void 0;
207
+ const requested = parseIntegrations(list(args.with));
208
+ if (typeof requested === "string") return {
209
+ code: 2,
210
+ error: requested
211
+ };
212
+ const detected = resolveIntegrations([...suggestedIntegrations(project.frameworks), ...requested]);
213
+ const chosen = args.with === void 0 && prompts ? await chooseIntegrations(prompts, detected) : detected;
214
+ if (chosen === void 0) return CANCELLED;
215
+ const integrations = resolveIntegrations(chosen);
216
+ const hasConfig = findConfig(root) !== void 0;
217
+ let generated = posix.normalize(posix.join(project.srcDir, "lib/supabase/generated.ts"));
218
+ if (hasConfig) generated = inPackage ? (await loadConfig(root)).output : config.output;
219
+ const templateContext = templateContextFor(project, generated);
220
+ const files = [...baseFiles(templateContext, casing, needsLib(integrations), integrations), ...integrationFiles(integrations, templateContext)];
221
+ const force = await overwrite(root, files, args, prompts, config.root);
222
+ if (force === void 0) return CANCELLED;
223
+ const where = inPackage ? ` in ${target.dir}` : "";
224
+ const lines = [
225
+ project.frameworks.length > 0 ? `Found ${project.frameworks.join(", ")}${where}.` : `No framework found${where}.`,
226
+ "",
227
+ ...await writeFiles(root, files, args, force, config.root),
228
+ ...await enablePgDelta(root, args, config.root)
229
+ ];
230
+ const packages = packagesFor(project, integrations);
231
+ const cwdFlag = inPackage ? ` --cwd ${target.dir}` : "";
232
+ const steps = [
233
+ ...packages.length > 0 ? [installCommand(project.packageManager, packages, false, installTarget)] : [],
234
+ ...devPackages(project, lite).map((names) => installCommand(project.packageManager, names, true, installTarget)),
235
+ ...project.hasSupabase || workspaceProject.hasSupabase ? [] : [lite ? "npx lite init" : "supabase init"],
236
+ ...lite ? ["Set jwt_secret = \"env(SUPABASE_JWT_SECRET)\" under [auth] in supabase/config.toml, and add SUPABASE_URL=http://127.0.0.1:54321 and a SUPABASE_JWT_SECRET of 32 or more characters to .env", "npx lite dev"] : ["supabase start", `better-supabase env${cwdFlag}`],
237
+ `better-supabase gen${cwdFlag}`
238
+ ];
239
+ lines.push("", "Next:", ...steps.map((step, index) => ` ${index + 1}. ${step}`));
240
+ if (lite) lines.push(" - Pass backend: 'lite' to createServer (or createNext, createHono, createEdge, createOrpc): https://bettersupabase.com/docs/platform/lite");
241
+ for (const name of integrations) for (const hint of TEMPLATES[name].next ?? []) lines.push(` - ${hint}`);
242
+ lines.push("", "Agent skills: better-supabase skills install");
243
+ return {
244
+ code: 0,
245
+ output: lines.join("\n")
246
+ };
247
+ }
248
+ const initCommand = defineCliCommand({
249
+ meta: {
250
+ name: "init",
251
+ description: "Writes better-supabase.config.ts, src/lib/supabase/index.ts and glue for the frameworks in package.json"
252
+ },
253
+ args: INIT_ARGS,
254
+ lists: ["with"],
255
+ run: (args, { config, io }) => runInit(config, args, io.prompts)
256
+ });
257
+ //#endregion
258
+ export { initCommand };
@@ -1,11 +1,11 @@
1
- import { r as defineCliCommand } from "./command-CK14fP91.js";
2
- import { i as writeIfChanged, r as sameText, t as display } from "./io-DI1mTdSA.js";
3
- import { r as painter } from "./style-C0NFdJRL.js";
4
- import { t as fileDiff } from "./diff-SjkO5rNr.js";
5
- import { T as serializeGenerator, c as loadSnapshot, f as serializeSnapshot, s as sourceArgs, t as SOURCE_ARGS, w as restrictSchemas } from "./gen-AIf4MREI.js";
6
- import { n as withSpinner } from "./prompts-BNcNfAve.js";
7
- import { resolve } from "node:path";
8
- import { readFile } from "node:fs/promises";
1
+ import { r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { r as painter } from "./style-CB3vxgh0.js";
3
+ import { c as serializeGenerator, s as restrictSchemas } from "./typegen-Demi5-VQ.js";
4
+ import { a as serializeSnapshot, t as loadSnapshot } from "./snapshot-Bstk6ulj.js";
5
+ import { t as fileDiff } from "./diff-D1jGdb3Y.js";
6
+ import { n as withSpinner } from "./prompts-DZJB1nTw.js";
7
+ import { r as writeLine, t as fileState } from "./files-BVupXPIC.js";
8
+ import { n as sourceArgs, t as SOURCE_ARGS } from "./source-args-BYfq6imV.js";
9
9
  //#region src/cli/commands/introspect.ts
10
10
  const ARGS = {
11
11
  out: {
@@ -44,10 +44,10 @@ const introspectCommand = defineCliCommand({
44
44
  }));
45
45
  const out = args.out ?? (format === "snapshot" ? config.source.snapshot ?? "supabase/snapshot.json" : "supabase/generator-metadata.json");
46
46
  const contents = format === "snapshot" ? serializeSnapshot(snapshot) : `${await serializeGenerator(restrictSchemas(snapshot.generator, config.schemas))}\n`;
47
+ const state = await fileState(config.root, out, contents);
47
48
  if (args.check === true) {
48
- const current = await readFile(resolve(config.root, out), "utf8").catch(() => void 0);
49
- const file = display(config.root, out);
50
- return sameText(current, contents) ? {
49
+ const { file, current, upToDate } = state;
50
+ return upToDate ? {
51
51
  code: 0,
52
52
  output: `${file} is up to date.`,
53
53
  data: {
@@ -64,13 +64,13 @@ const introspectCommand = defineCliCommand({
64
64
  }
65
65
  };
66
66
  }
67
- const wrote = await writeIfChanged(resolve(config.root, out), contents);
68
67
  const tables = snapshot.extras.tables.length;
68
+ const { wrote, line } = await writeLine(state.path, contents, state.file, ` (${tables} tables).`);
69
69
  return {
70
70
  code: 0,
71
- output: `${wrote ? "Wrote" : "Unchanged"} ${display(config.root, out)} (${tables} tables).`,
71
+ output: line,
72
72
  data: {
73
- file: display(config.root, out),
73
+ file: state.file,
74
74
  written: wrote,
75
75
  tables
76
76
  }
@@ -11,6 +11,10 @@ const withLf = (text) => text.replaceAll("\r\n", "\n");
11
11
  function sameText(current, expected) {
12
12
  return current !== void 0 && withLf(current) === withLf(expected);
13
13
  }
14
+ /** The file's text, or `undefined` when it does not exist. */
15
+ async function readIfExists(path) {
16
+ return existsSync(path) ? readFile(path, "utf8") : void 0;
17
+ }
14
18
  /** Writes a file when its contents changed, ignoring line endings. Returns whether it wrote. */
15
19
  async function writeIfChanged(path, contents) {
16
20
  if (existsSync(path)) {
@@ -30,4 +34,4 @@ function display(root, path) {
30
34
  return relative(root, resolve(root, path)).split(sep).join("/") || ".";
31
35
  }
32
36
  //#endregion
33
- export { writeIfChanged as i, importPath as n, sameText as r, display as t };
37
+ export { writeIfChanged as a, sameText as i, importPath as n, readIfExists as r, display as t };
@@ -1,5 +1,5 @@
1
- import { r as defineCliCommand } from "./command-CK14fP91.js";
2
- import { t as display } from "./io-DI1mTdSA.js";
1
+ import { r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { t as display } from "./io-CFzJVJ68.js";
3
3
  import { f as supabaseDir } from "./supabase-toml-B-bIukQF.js";
4
4
  import { dirname, resolve } from "node:path";
5
5
  import { existsSync } from "node:fs";
@@ -8,7 +8,7 @@ import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
8
8
  const ARGS = {
9
9
  out: {
10
10
  type: "string",
11
- description: "Defaults to supabase/signing_keys.json",
11
+ description: "Defaults to keys.output, then supabase/signing_keys.json",
12
12
  valueHint: "file"
13
13
  },
14
14
  rotate: {
@@ -41,7 +41,7 @@ async function createSigningKey() {
41
41
  }
42
42
  async function runKeys(config, args) {
43
43
  const dir = supabaseDir(config.root);
44
- const out = args.out ?? `${dir}/signing_keys.json`;
44
+ const out = args.out ?? config.keys.output ?? `${dir}/signing_keys.json`;
45
45
  const path = resolve(config.root, out);
46
46
  const rotate = args.rotate === true;
47
47
  const exists = existsSync(path);
@@ -0,0 +1,133 @@
1
+ import { r as errorText } from "./errors-CqTLXe2M.js";
2
+ import { a as parseMetadataDocument, t as MetadataRejectedError } from "./typegen-Demi5-VQ.js";
3
+ import { i as metaPaths } from "./emit-BHHfwUoT.js";
4
+ import { i as generationNotices, n as runGen, o as fromMetadata, r as UNFORMATTED, t as refuseRowConditionedBuckets, v as render } from "./run-DuN1MX-7.js";
5
+ import { basename, join, relative, resolve, sep } from "node:path";
6
+ import { readFile } from "node:fs/promises";
7
+ import { jsonSchema, standardSchema, valibot, zod } from "better-supabase/config";
8
+ //#region src/cli/gen/metadata.ts
9
+ /** The files `gen --metadata` can write to stdout. */
10
+ const EMITS = [
11
+ "schema",
12
+ "types",
13
+ "zod",
14
+ "valibot",
15
+ "json-schema",
16
+ "standard-schema"
17
+ ];
18
+ const isEmit = (value) => EMITS.some((emit) => emit === value);
19
+ /** The configured generator for an `--emit` target, or one with its defaults. */
20
+ function emitGenerator(config, emit) {
21
+ const configured = config.generators.find((generator) => generator.name === emit);
22
+ switch (emit) {
23
+ case "schema":
24
+ case "types": return;
25
+ case "zod": return configured ?? zod();
26
+ case "valibot": return configured ?? valibot();
27
+ case "json-schema": return configured ?? jsonSchema();
28
+ case "standard-schema": return configured ?? standardSchema();
29
+ default: throw new Error(`unknown --emit ${String(emit)}`);
30
+ }
31
+ }
32
+ /**
33
+ * The one file `gen --metadata` prints: the `defineSchema` module with its
34
+ * metadata inlined, `database.types.ts`, or one generator's output.
35
+ */
36
+ async function renderEmit(config, snapshot, emit) {
37
+ const generator = emitGenerator(config, emit);
38
+ const { files, warnings } = await render({
39
+ ...config,
40
+ generators: generator ? [generator] : []
41
+ }, snapshot, { inlineMeta: emit === "schema" });
42
+ const path = emit === "schema" ? config.output : emit === "types" ? config.databaseTypesOutput : void 0;
43
+ const own = /* @__PURE__ */ new Set([
44
+ config.databaseTypesOutput,
45
+ config.output,
46
+ ...Object.values(metaPaths(config.output))
47
+ ]);
48
+ const picked = path === void 0 ? files.filter((file) => !own.has(file.path)) : files.filter((file) => file.path === path);
49
+ const [file] = picked;
50
+ if (!file || picked.length > 1) throw new Error(`--emit ${emit} expects one file, and the generator wrote ${picked.length}. Pass --out <dir> to write them all.`);
51
+ return {
52
+ files: picked,
53
+ warnings,
54
+ contents: file.contents
55
+ };
56
+ }
57
+ /**
58
+ * Reads `--metadata <path|->` (a file relative to `cwd`, or stdin for `-`)
59
+ * into a snapshot. Throws `MetadataRejectedError` for a document that can't
60
+ * be read or that `parseMetadataDocument` refuses.
61
+ */
62
+ async function readMetadataSnapshot(source, cwd, io) {
63
+ let text;
64
+ try {
65
+ if (source !== "-") text = await readFile(resolve(cwd, source), "utf8");
66
+ else if (io.stdin) text = await io.stdin();
67
+ else throw new Error("there is no stdin to read");
68
+ } catch (cause) {
69
+ throw new MetadataRejectedError(`Could not read ${source === "-" ? "stdin" : source}: ${errorText(cause)}`);
70
+ }
71
+ return fromMetadata(await parseMetadataDocument(text));
72
+ }
73
+ /**
74
+ * `gen --metadata`: the out-of-process generator contract of
75
+ * `@supabase/typegen`. Without `--out` it prints one file on stdout and
76
+ * everything else on stderr; with `--out` it writes the usual files there.
77
+ */
78
+ async function runMetadataGen(options) {
79
+ const { config, io } = options;
80
+ const emit = options.emit ?? "schema";
81
+ if (!isEmit(emit)) return {
82
+ code: 2,
83
+ error: `--emit must be one of ${EMITS.join(", ")}, got "${emit}"`
84
+ };
85
+ if (options.out !== void 0 && options.emit !== void 0) return {
86
+ code: 2,
87
+ error: "--emit picks the one file gen prints; --out writes them all. Pass one of them."
88
+ };
89
+ if (options.out === void 0 && options.check) return {
90
+ code: 2,
91
+ error: "--check with --metadata needs --out <dir>"
92
+ };
93
+ if (options.out === void 0 && options.json) return {
94
+ code: 2,
95
+ error: "--metadata prints the generated code on stdout, so --json has nothing to print. Pass --out <dir> for the JSON summary."
96
+ };
97
+ let snapshot;
98
+ try {
99
+ snapshot = await readMetadataSnapshot(options.metadata, options.cwd, io);
100
+ } catch (cause) {
101
+ if (cause instanceof MetadataRejectedError) return {
102
+ code: 65,
103
+ error: cause.message
104
+ };
105
+ throw cause;
106
+ }
107
+ if (options.out !== void 0) {
108
+ const dir = relative(config.root, resolve(options.cwd, options.out));
109
+ const into = (path) => join(dir, basename(path)).split(sep).join("/");
110
+ return runGen({
111
+ config: {
112
+ ...config,
113
+ output: into(config.output),
114
+ databaseTypesOutput: into(config.databaseTypesOutput)
115
+ },
116
+ env: options.env,
117
+ check: options.check,
118
+ snapshot,
119
+ isolated: true,
120
+ ...options.paint ? { paint: options.paint } : {}
121
+ });
122
+ }
123
+ const refused = refuseRowConditionedBuckets(config);
124
+ if (refused) return refused;
125
+ const { contents, warnings } = await renderEmit(config, snapshot, emit);
126
+ io.stdout(contents);
127
+ const notices = await generationNotices(snapshot, warnings);
128
+ const shown = emit === "types" ? notices : notices.filter((line) => line !== UNFORMATTED);
129
+ for (const line of shown) io.stderr(`${line}\n`);
130
+ return { code: 0 };
131
+ }
132
+ //#endregion
133
+ export { readMetadataSnapshot as n, runMetadataGen as r, EMITS as t };
@@ -0,0 +1,6 @@
1
+ import { GEN_TASKS, INTEGRATION_NAMES } from "better-supabase/config";
2
+ //#region src/cli/names.ts
3
+ const INTEGRATIONS = INTEGRATION_NAMES;
4
+ const isGenTask = (value) => GEN_TASKS.some((task) => task === value);
5
+ //#endregion
6
+ export { INTEGRATIONS as n, isGenTask as r, GEN_TASKS as t };