better-supabase 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +6 -2
  2. package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
  3. package/dist/{adapter-iKgjHVPx.js → adapter-CN45ibbV.js} +658 -157
  4. package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
  5. package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
  6. package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
  7. package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
  8. package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
  9. package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
  10. package/dist/ai-message-DfaP8sis.js +14 -0
  11. package/dist/ai-sdk/agents/index.d.ts +4 -4
  12. package/dist/ai-sdk/batches/index.d.ts +4 -4
  13. package/dist/ai-sdk/batches/index.js +4 -4
  14. package/dist/ai-sdk/cache/index.d.ts +2 -2
  15. package/dist/ai-sdk/cache/index.js +2 -2
  16. package/dist/ai-sdk/chat/index.d.ts +1 -1
  17. package/dist/ai-sdk/chat/index.js +8 -20
  18. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  19. package/dist/ai-sdk/files/index.d.ts +3 -3
  20. package/dist/ai-sdk/files/index.js +4 -4
  21. package/dist/ai-sdk/index.d.ts +37 -9
  22. package/dist/ai-sdk/index.js +3 -2
  23. package/dist/ai-sdk/mcp/index.d.ts +43 -6
  24. package/dist/ai-sdk/mcp/index.js +36 -7
  25. package/dist/ai-sdk/memory/index.d.ts +2 -2
  26. package/dist/ai-sdk/memory/index.js +1 -1
  27. package/dist/ai-sdk/workflow/index.d.ts +6 -6
  28. package/dist/ai-sdk/workflow/index.js +13 -24
  29. package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
  30. package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
  31. package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
  32. package/dist/api-Dnf2q-Ht.d.ts +370 -0
  33. package/dist/api-DtHFC037.js +676 -0
  34. package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
  35. package/dist/arazzo/index.d.ts +255 -0
  36. package/dist/arazzo/index.js +622 -0
  37. package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
  38. package/dist/astro/index.d.ts +7 -7
  39. package/dist/astro/index.js +7 -7
  40. package/dist/asyncapi/index.d.ts +103 -0
  41. package/dist/asyncapi/index.js +569 -0
  42. package/dist/authorizer-ayxUDXXP.js +126 -0
  43. package/dist/authorizer-eiOjo-3l.d.ts +73 -0
  44. package/dist/better-result/index.d.ts +118 -0
  45. package/dist/better-result/index.js +64 -0
  46. package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
  47. package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
  48. package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
  49. package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
  50. package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
  51. package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
  52. package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
  53. package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
  54. package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
  55. package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
  56. package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
  57. package/dist/blocks/agents/index.d.ts +3 -3
  58. package/dist/blocks/agents/index.js +5 -4
  59. package/dist/blocks/ai-cache/index.d.ts +3 -3
  60. package/dist/blocks/ai-cache/index.js +3 -3
  61. package/dist/blocks/ai-chat/index.d.ts +9 -4
  62. package/dist/blocks/ai-chat/index.js +5 -5
  63. package/dist/blocks/ai-chat/react/index.d.ts +3 -3
  64. package/dist/blocks/ai-chat/react/index.js +5 -5
  65. package/dist/blocks/ai-files/index.d.ts +3 -3
  66. package/dist/blocks/ai-files/index.js +3 -3
  67. package/dist/blocks/ai-providers/index.d.ts +3 -3
  68. package/dist/blocks/ai-providers/index.js +8 -7
  69. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  70. package/dist/blocks/ai-tasks/index.js +7 -6
  71. package/dist/blocks/announcements/index.d.ts +3 -3
  72. package/dist/blocks/announcements/index.js +3 -3
  73. package/dist/blocks/announcements/react/index.d.ts +3 -3
  74. package/dist/blocks/announcements/react/index.js +3 -3
  75. package/dist/blocks/api-keys/index.d.ts +5 -5
  76. package/dist/blocks/api-keys/index.js +8 -8
  77. package/dist/blocks/attachments/index.d.ts +12 -8
  78. package/dist/blocks/attachments/index.js +22 -13
  79. package/dist/blocks/audit/index.d.ts +21 -10
  80. package/dist/blocks/audit/index.js +30 -11
  81. package/dist/blocks/billing/index.d.ts +11 -9
  82. package/dist/blocks/billing/index.js +15 -15
  83. package/dist/blocks/comments/index.d.ts +8 -8
  84. package/dist/blocks/comments/index.js +8 -7
  85. package/dist/blocks/connectors/index.d.ts +3 -3
  86. package/dist/blocks/connectors/index.js +7 -6
  87. package/dist/blocks/data-lifecycle/index.d.ts +12 -8
  88. package/dist/blocks/data-lifecycle/index.js +13 -8
  89. package/dist/blocks/entitlements/index.d.ts +3 -3
  90. package/dist/blocks/entitlements/index.js +1 -1
  91. package/dist/blocks/flags/index.d.ts +4 -4
  92. package/dist/blocks/flags/index.js +4 -3
  93. package/dist/blocks/inbox/index.d.ts +3 -3
  94. package/dist/blocks/inbox/index.js +4 -5
  95. package/dist/blocks/inbox/react/index.d.ts +1 -1
  96. package/dist/blocks/inbox/react/index.js +1 -1
  97. package/dist/blocks/inbox/react/server.d.ts +1 -1
  98. package/dist/blocks/index.d.ts +10 -10
  99. package/dist/blocks/index.js +6 -6
  100. package/dist/blocks/jobs/index.d.ts +48 -32
  101. package/dist/blocks/jobs/index.js +44 -287
  102. package/dist/blocks/knowledge/index.d.ts +3 -3
  103. package/dist/blocks/knowledge/index.js +3 -3
  104. package/dist/blocks/memory/index.d.ts +4 -4
  105. package/dist/blocks/memory/index.js +7 -6
  106. package/dist/blocks/notifications/index.d.ts +11 -9
  107. package/dist/blocks/notifications/index.js +20 -25
  108. package/dist/blocks/notifications/react/index.d.ts +1 -1
  109. package/dist/blocks/notifications/react/index.js +1 -1
  110. package/dist/blocks/onboarding/index.d.ts +3 -3
  111. package/dist/blocks/onboarding/index.js +3 -3
  112. package/dist/blocks/onboarding/react/index.d.ts +2 -2
  113. package/dist/blocks/onboarding/react/index.js +2 -2
  114. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  115. package/dist/blocks/organizations/index.d.ts +9 -9
  116. package/dist/blocks/organizations/index.js +11 -18
  117. package/dist/blocks/outbox/index.d.ts +2 -2
  118. package/dist/blocks/outbox/index.js +16 -25
  119. package/dist/blocks/profiles/index.d.ts +7 -7
  120. package/dist/blocks/profiles/index.js +7 -6
  121. package/dist/blocks/push/index.d.ts +4 -4
  122. package/dist/blocks/push/index.js +3 -3
  123. package/dist/blocks/settings/index.d.ts +4 -4
  124. package/dist/blocks/settings/index.js +7 -6
  125. package/dist/blocks/sso/index.d.ts +5 -5
  126. package/dist/blocks/sso/index.js +6 -5
  127. package/dist/blocks/usage/index.d.ts +3 -3
  128. package/dist/blocks/usage/index.js +5 -4
  129. package/dist/blocks/waitlist/index.d.ts +5 -5
  130. package/dist/blocks/waitlist/index.js +5 -4
  131. package/dist/blocks/webhooks/index.d.ts +22 -13
  132. package/dist/blocks/webhooks/index.js +41 -70
  133. package/dist/blocks/workflow-builder/index.d.ts +4 -4
  134. package/dist/blocks/workflow-builder/index.js +3 -3
  135. package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
  136. package/dist/blocks/workflow-builder/react/index.js +4 -4
  137. package/dist/blocks/workflows/index.d.ts +3 -3
  138. package/dist/blocks/workflows/index.js +3 -3
  139. package/dist/blocks/workflows/react/index.d.ts +3 -3
  140. package/dist/blocks/workflows/react/index.js +3 -3
  141. package/dist/build-hPwk3_X5.js +1296 -0
  142. package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
  143. package/dist/casing-DdFWEtqr.js +16 -0
  144. package/dist/chat-sdk/index.d.ts +6 -6
  145. package/dist/chat-sdk/index.js +5 -4
  146. package/dist/chat-sdk/react/index.d.ts +1 -1
  147. package/dist/chat-sdk/react/server.d.ts +1 -1
  148. package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
  149. package/dist/cli/add-1dc5wM5k.js +69 -0
  150. package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
  151. package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
  152. package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
  153. package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
  154. package/dist/cli/bin.js +4 -4
  155. package/dist/cli/cache-CIfA-jBV.js +483 -0
  156. package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
  157. package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
  158. package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
  159. package/dist/cli/config-DpbF8ML3.js +2 -0
  160. package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
  161. package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
  162. package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
  163. package/dist/cli/{doctor-DJk0aeBi.js → doctor-VcDtuusV.js} +316 -221
  164. package/dist/cli/emit-BHHfwUoT.js +1136 -0
  165. package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
  166. package/dist/cli/env-vzBG90Um.js +2 -0
  167. package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
  168. package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
  169. package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
  170. package/dist/cli/files-BVupXPIC.js +34 -0
  171. package/dist/cli/gen-DmVj3u4L.js +322 -0
  172. package/dist/cli/{init-BHuEQrQK.js → glue-C1UE8gQN.js} +16 -313
  173. package/dist/cli/index.d.ts +59 -31
  174. package/dist/cli/index.js +8 -6
  175. package/dist/cli/init-CVZ3s5kl.js +258 -0
  176. package/dist/cli/{introspect-DzR2nyQb.js → introspect-BToGNfm-.js} +14 -14
  177. package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
  178. package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
  179. package/dist/cli/metadata-DSRKCaf-.js +133 -0
  180. package/dist/cli/names-D6LrQnOv.js +6 -0
  181. package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
  182. package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
  183. package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
  184. package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
  185. package/dist/cli/prompts-BdeVmVpg.js +2 -0
  186. package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
  187. package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
  188. package/dist/cli/run-DA6_lg3w.js +389 -0
  189. package/dist/cli/run-DuN1MX-7.js +705 -0
  190. package/dist/cli/scaffold-5DenHSxF.js +292 -0
  191. package/dist/cli/scaffold-CwQUMFRb.js +2 -0
  192. package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
  193. package/dist/cli/seed-DOmit9Hq.js +2 -0
  194. package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
  195. package/dist/cli/snapshot-Bstk6ulj.js +287 -0
  196. package/dist/cli/source-args-BYfq6imV.js +31 -0
  197. package/dist/cli/spec-CzosTYm3.js +7438 -0
  198. package/dist/cli/spec-T_0Bcyw7.js +2 -0
  199. package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
  200. package/dist/cli/sql-DJrNDxQm.js +3 -0
  201. package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
  202. package/dist/cli/typegen-Demi5-VQ.js +486 -0
  203. package/dist/cli/validate-Ca13ktgz.js +7522 -0
  204. package/dist/cli/{version-59gcepIG.js → version-B4k0aUxS.js} +1 -1
  205. package/dist/client/index.d.ts +4 -3
  206. package/dist/client/index.js +60 -3
  207. package/dist/client/native/index.d.ts +3 -3
  208. package/dist/client/native/index.js +3 -3
  209. package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
  210. package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
  211. package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
  212. package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
  213. package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
  214. package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
  215. package/dist/{composite--yqry7uW.d.ts → composite-CWAJTRBF.d.ts} +6 -6
  216. package/dist/{composite-DXVUibdi.js → composite-zTe0TCqj.js} +4 -4
  217. package/dist/config/index.d.ts +3 -4
  218. package/dist/config/index.js +4 -4
  219. package/dist/config-DlKvtt95.js +540 -0
  220. package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
  221. package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
  222. package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
  223. package/dist/context-nPDvQ-Zl.js +41 -0
  224. package/dist/credentials/index.d.ts +5 -5
  225. package/dist/credentials/index.js +9 -17
  226. package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
  227. package/dist/cron-route-D2AN9SA1.js +24 -0
  228. package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
  229. package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
  230. package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
  231. package/dist/edge/index.d.ts +66 -13
  232. package/dist/edge/index.js +65 -39
  233. package/dist/elysia/index.d.ts +1 -1
  234. package/dist/elysia/index.js +1 -1
  235. package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
  236. package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
  237. package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
  238. package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
  239. package/dist/env/index.d.ts +1 -1
  240. package/dist/env/index.js +9 -2
  241. package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
  242. package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
  243. package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
  244. package/dist/eve/index.d.ts +5 -5
  245. package/dist/eve/index.js +5 -11
  246. package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
  247. package/dist/events/index.d.ts +4 -4
  248. package/dist/events/index.js +7 -2
  249. package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
  250. package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
  251. package/dist/executor-B_Hfobee.js +162 -0
  252. package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
  253. package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
  254. package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
  255. package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
  256. package/dist/expo/index.d.ts +4 -4
  257. package/dist/expo/index.js +6 -6
  258. package/dist/expo-sqlite/index.d.ts +3 -3
  259. package/dist/expo-sqlite/index.js +2 -2
  260. package/dist/extra-CGQ2_q3S.js +10 -0
  261. package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
  262. package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
  263. package/dist/format-DTXdu8ya.d.ts +70 -0
  264. package/dist/{framework-BmzgK32X.d.ts → framework-148t1m3C.d.ts} +5 -5
  265. package/dist/{framework-a7aRCIqv.js → framework-3ey3QmrO.js} +2 -2
  266. package/dist/function-contract-BcZenXMO.d.ts +8 -0
  267. package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
  268. package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
  269. package/dist/h3/index.d.ts +1 -1
  270. package/dist/h3/index.js +1 -1
  271. package/dist/h3/v1/index.d.ts +1 -1
  272. package/dist/h3/v1/index.js +1 -1
  273. package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
  274. package/dist/hmac-DCud0myt.js +22 -0
  275. package/dist/hono/index.d.ts +19 -14
  276. package/dist/hono/index.js +21 -16
  277. package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
  278. package/dist/http-sbmBe5d2.js +25 -0
  279. package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
  280. package/dist/index-B72Rvv_j.d.ts +89 -0
  281. package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
  282. package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
  283. package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
  284. package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
  285. package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
  286. package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
  287. package/dist/index-DG2SUXDQ.d.ts +58 -0
  288. package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
  289. package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
  290. package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
  291. package/dist/index.d.ts +89 -14
  292. package/dist/index.js +12 -11
  293. package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
  294. package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
  295. package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
  296. package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
  297. package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
  298. package/dist/list/index.d.ts +1 -2
  299. package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
  300. package/dist/mcp/index.d.ts +49 -19
  301. package/dist/mcp/index.js +158 -94
  302. package/dist/mcp/sdk/index.d.ts +38 -6
  303. package/dist/mcp/sdk/index.js +88 -6
  304. package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
  305. package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
  306. package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
  307. package/dist/model-OgBxvk3N.d.ts +300 -0
  308. package/dist/model-messages-Cxw_Up4f.js +206 -0
  309. package/dist/model-messages-D4GZllOD.d.ts +34 -0
  310. package/dist/modules-DksjZyMW.js +77 -0
  311. package/dist/nestjs/index.d.ts +2 -2
  312. package/dist/nestjs/index.js +1 -1
  313. package/dist/next/index.d.ts +105 -55
  314. package/dist/next/index.js +204 -170
  315. package/dist/node/index.d.ts +2 -2
  316. package/dist/node/index.js +1 -1
  317. package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
  318. package/dist/openapi/index.d.ts +4 -2
  319. package/dist/openapi/index.js +21 -343
  320. package/dist/optional-peer-D1pi-skw.js +24 -0
  321. package/dist/orpc/index.d.ts +8 -8
  322. package/dist/orpc/index.js +21 -20
  323. package/dist/otel/index.d.ts +3 -3
  324. package/dist/otel/index.js +7 -7
  325. package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
  326. package/dist/overlay/index.d.ts +233 -0
  327. package/dist/overlay/index.js +554 -0
  328. package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
  329. package/dist/plugins/actor/index.d.ts +1 -1
  330. package/dist/plugins/actor/index.js +1 -1
  331. package/dist/plugins/rules/index.d.ts +2 -2
  332. package/dist/plugins/rules/index.js +1 -1
  333. package/dist/plugins/soft-delete/index.d.ts +3 -3
  334. package/dist/plugins/soft-delete/index.js +9 -2
  335. package/dist/plugins/tenant/index.d.ts +7 -2
  336. package/dist/plugins/tenant/index.js +16 -2
  337. package/dist/plugins/timestamps/index.d.ts +1 -1
  338. package/dist/plugins/timestamps/index.js +8 -1
  339. package/dist/plugins/validation/index.d.ts +2 -2
  340. package/dist/plugins/validation/index.js +4 -4
  341. package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
  342. package/dist/postgres/index.d.ts +4 -4
  343. package/dist/postgres/index.js +2 -1
  344. package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
  345. package/dist/powersync/index.d.ts +5 -5
  346. package/dist/powersync/index.js +4 -4
  347. package/dist/powersync/react/index.d.ts +3 -3
  348. package/dist/powersync/react/index.js +1 -1
  349. package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
  350. package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
  351. package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
  352. package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
  353. package/dist/query/index.d.ts +2 -2
  354. package/dist/query/index.js +1 -1
  355. package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
  356. package/dist/rate-limit-Bw7HgmFj.js +260 -0
  357. package/dist/react/index.d.ts +9 -9
  358. package/dist/react/index.js +4 -4
  359. package/dist/react/native/index.d.ts +1 -1
  360. package/dist/react/native/index.js +2 -2
  361. package/dist/react/server.d.ts +10 -10
  362. package/dist/react/server.js +3 -3
  363. package/dist/react/session.d.ts +2 -2
  364. package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
  365. package/dist/react-router/index.d.ts +6 -6
  366. package/dist/react-router/index.js +9 -11
  367. package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
  368. package/dist/realtime/index.d.ts +3 -3
  369. package/dist/realtime/index.js +30 -36
  370. package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
  371. package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
  372. package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
  373. package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
  374. package/dist/resource--vTrBe6I.d.ts +103 -0
  375. package/dist/resource-BqNqlYg9.js +91 -0
  376. package/dist/resource-DA811u_4.js +463 -0
  377. package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
  378. package/dist/resource-schemas-BJ518zFH.js +79 -0
  379. package/dist/resource-types-CqB6GWGT.d.ts +141 -0
  380. package/dist/resources-BVYPnuLo.js +56 -0
  381. package/dist/resources-DZSk8tXJ.d.ts +7 -0
  382. package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
  383. package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
  384. package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
  385. package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
  386. package/dist/server/index.d.ts +81 -19
  387. package/dist/server/index.js +16 -14
  388. package/dist/{server-Bh0EVSwU.d.ts → server-types-CrAmZ8jv.d.ts} +92 -36
  389. package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
  390. package/dist/shared-DTneRoxi.js +14 -0
  391. package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
  392. package/dist/signatures-BRS_p3WD.d.ts +34 -0
  393. package/dist/signatures-DsWv_bYR.js +103 -0
  394. package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
  395. package/dist/solid/index.d.ts +9 -18
  396. package/dist/solid/index.js +2 -2
  397. package/dist/solid-start/index.d.ts +6 -6
  398. package/dist/solid-start/index.js +7 -7
  399. package/dist/spec/index.d.ts +134 -0
  400. package/dist/spec/index.js +353 -0
  401. package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
  402. package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
  403. package/dist/sql/index.d.ts +145 -119
  404. package/dist/sql/index.js +19921 -19798
  405. package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
  406. package/dist/ssr/index.d.ts +4 -4
  407. package/dist/ssr/index.js +3 -2
  408. package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
  409. package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
  410. package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
  411. package/dist/storage/index.d.ts +4 -6
  412. package/dist/storage/index.js +16 -17
  413. package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
  414. package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
  415. package/dist/streams/index.d.ts +4 -4
  416. package/dist/streams/index.js +5 -4
  417. package/dist/streams/redis/index.d.ts +1 -1
  418. package/dist/streams/redis/index.js +5 -11
  419. package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
  420. package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
  421. package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
  422. package/dist/{support-ig_K4PvS.js → support-D1pFFouF.js} +71 -35
  423. package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
  424. package/dist/svelte/index.d.ts +8 -17
  425. package/dist/svelte/index.js +2 -2
  426. package/dist/sveltekit/index.d.ts +7 -7
  427. package/dist/sveltekit/index.js +10 -12
  428. package/dist/table-schema-htM_SbCW.js +286 -0
  429. package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
  430. package/dist/tanstack-db/index.d.ts +2 -2
  431. package/dist/tanstack-db/supabase/index.d.ts +52 -0
  432. package/dist/tanstack-db/supabase/index.js +97 -0
  433. package/dist/tanstack-start/index.d.ts +6 -6
  434. package/dist/tanstack-start/index.js +8 -12
  435. package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
  436. package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
  437. package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
  438. package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
  439. package/dist/testing/index.d.ts +249 -118
  440. package/dist/testing/index.js +1418 -870
  441. package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
  442. package/dist/types-BRTSpOIh.js +5 -0
  443. package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
  444. package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
  445. package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
  446. package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
  447. package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
  448. package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
  449. package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
  450. package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
  451. package/dist/vercel-connect/index.d.ts +1 -1
  452. package/dist/vercel-connect/index.js +5 -11
  453. package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
  454. package/dist/verify-CJbYfADA.js +124 -0
  455. package/dist/{version-C6OfRAIn.js → version-Cq8gfDbd.js} +1 -1
  456. package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
  457. package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
  458. package/dist/vue/index.d.ts +9 -18
  459. package/dist/vue/index.js +2 -2
  460. package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
  461. package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
  462. package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
  463. package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
  464. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  465. package/dist/workflow-sdk/index.d.ts +1 -1
  466. package/dist/workflow-sdk/world/index.d.ts +23 -17
  467. package/dist/workflow-sdk/world/index.js +59 -76
  468. package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
  469. package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
  470. package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
  471. package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
  472. package/package.json +54 -3
  473. package/schemas/config-v1.json +243 -0
  474. package/schemas/doctor-report-v1.json +4 -1
  475. package/schemas/spec-manifest-v1.json +95 -0
  476. package/skills/better-supabase/SKILL.md +8 -4
  477. package/skills/better-supabase/references/troubleshooting.md +20 -20
  478. package/skills/better-supabase-api/references/expo.md +6 -3
  479. package/skills/better-supabase-api/references/powersync.md +2 -1
  480. package/dist/cli/config-B9HkL8nF.js +0 -2
  481. package/dist/cli/gen-CCMc39Dx.js +0 -3100
  482. package/dist/cli/gen-DRmzPI75.js +0 -2
  483. package/dist/cli/prompts-BTYQGunc.js +0 -2
  484. package/dist/cli/run-BqDPh9UH.js +0 -361
  485. package/dist/config-Dn7F5k9A.js +0 -202
  486. package/dist/history-BZih6SFP.js +0 -64
  487. package/dist/index-BkWT_uBO.d.ts +0 -51
  488. package/dist/index-Bxih3l0u.d.ts +0 -81
  489. package/dist/index-CaxrMD1A.d.ts +0 -1
  490. package/dist/index-DQh4VCc9.d.ts +0 -98
  491. package/dist/keys-4MnkWTTh.js +0 -35
  492. package/dist/messages-DYP0sUTe.d.ts +0 -59
  493. package/dist/modules-dxrVK3ID.js +0 -228
  494. package/dist/path-Cv__-OTj.d.ts +0 -17
  495. package/dist/resource-BsvzCMlX.js +0 -212
  496. package/dist/resource-IPS5xi9q.d.ts +0 -74
  497. package/dist/template-CwO38Do8.d.ts +0 -6
  498. package/dist/verify-DL41hbvY.js +0 -232
  499. package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
@@ -0,0 +1,292 @@
1
+ import { a as list, r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { i as sameText, t as display } from "./io-CFzJVJ68.js";
3
+ import { i as metaPaths } from "./emit-BHHfwUoT.js";
4
+ import { t as importFresh } from "./fresh-import-BeYf9I3x.js";
5
+ import { t as detectProject } from "./project-DZRaBaY7.js";
6
+ import { r as writeLine } from "./files-BVupXPIC.js";
7
+ import { posix, resolve } from "node:path";
8
+ import { existsSync } from "node:fs";
9
+ import { readFile } from "node:fs/promises";
10
+ //#region src/cli/scaffold/api.ts
11
+ const SCAFFOLD_FRAMEWORKS = ["hono", "next"];
12
+ const GENERATED_HEADER = "// @generated by better-supabase scaffold. Do not edit; run `better-supabase scaffold api` again instead.";
13
+ const join$1 = (...parts) => posix.normalize(posix.join(...parts));
14
+ function importFrom(context, from, to) {
15
+ let path = posix.relative(posix.dirname(from), to);
16
+ if (!path.startsWith(".")) path = `./${path}`;
17
+ if (context.tsExtensions) return path;
18
+ return path.replace(/\.tsx?$/, "").replace(/^(\.\.?\/.+)\/index$/, "$1");
19
+ }
20
+ const quote$1 = (value) => JSON.stringify(value);
21
+ function generatedModule(context) {
22
+ const names = context.tables.map(quote$1).join(", ");
23
+ const resources = context.tables.map((table) => ` ${/^[A-Za-z_$][\w$]*$/.test(table) ? table : quote$1(table)}: true,`).join("\n");
24
+ return `${GENERATED_HEADER}
25
+
26
+ /** The tables served as REST resources and documented in the API model. */
27
+ export const tableNames = [${names}] as const;
28
+
29
+ export const resources = {
30
+ ${resources}
31
+ } as const;
32
+
33
+ export const basePath = ${quote$1(context.basePath)};
34
+ `;
35
+ }
36
+ function apiModule(context, path, generated) {
37
+ return `import { defineApi } from 'better-supabase/spec';
38
+
39
+ import { betterSupabase } from '${importFrom(context, path, join$1(context.srcDir, "lib", "supabase", "index.ts"))}';
40
+ import { basePath, resources, tableNames } from '${importFrom(context, path, generated)}';
41
+
42
+ export { basePath, resources, tableNames };
43
+
44
+ /**
45
+ * The API model. Every OpenAPI version, and the other spec formats, render
46
+ * from it, and \`better-supabase spec emit\` reads it. Describe resources,
47
+ * add list queries and custom routes here: this file is yours, and
48
+ * \`better-supabase scaffold api\` never rewrites it.
49
+ */
50
+ export const api = defineApi(betterSupabase, {
51
+ info: { title: 'API', version: '1.0.0' },
52
+ basePath,
53
+ resources,
54
+ });
55
+ `;
56
+ }
57
+ function nextFiles(context, api) {
58
+ const routeDir = join$1(context.srcDir, "app", context.basePath);
59
+ const resources = join$1(routeDir, "[...path]", "route.ts");
60
+ const spec = join$1(routeDir, "openapi.json", "route.ts");
61
+ const server = join$1(context.srcDir, "lib", "supabase", "server.ts");
62
+ return [{
63
+ path: resources,
64
+ generated: false,
65
+ contents: `import { basePath, resources } from '${importFrom(context, resources, api)}';
66
+ import { bs } from '${importFrom(context, resources, server)}';
67
+
68
+ export const { GET, POST, PATCH, PUT, DELETE } = bs.resources(resources, { basePath });
69
+ `
70
+ }, {
71
+ path: spec,
72
+ generated: false,
73
+ contents: `import { specResponse } from 'better-supabase/spec';
74
+
75
+ import { api } from '${importFrom(context, spec, api)}';
76
+
77
+ const { document } = api.openapi();
78
+
79
+ export const GET = (request: Request) => specResponse(document, request);
80
+ `
81
+ }];
82
+ }
83
+ function honoFiles(context, api) {
84
+ const path = join$1(context.srcDir, `${context.name}-routes.ts`);
85
+ const server = join$1(context.srcDir, "server.ts");
86
+ return [{
87
+ path,
88
+ generated: false,
89
+ contents: `import { specResponse } from 'better-supabase/spec';
90
+
91
+ import { api, basePath, tableNames } from '${importFrom(context, path, api)}';
92
+ import type { bs as server } from '${importFrom(context, path, server)}';
93
+
94
+ const { document } = api.openapi();
95
+
96
+ /**
97
+ * The OpenAPI document and a REST resource per table. Mount it in
98
+ * server.ts with \`.route('/', apiRoutes(bs))\`.
99
+ */
100
+ export function apiRoutes(bs: typeof server) {
101
+ const routes = bs
102
+ .app()
103
+ .get(\`\${basePath}/openapi.json\`, (c) => specResponse(document, c.req.raw))
104
+ .use(\`\${basePath}/*\`, bs.middleware());
105
+ for (const table of tableNames) routes.route(\`\${basePath}/\${table}\`, bs.resource(table));
106
+ return routes;
107
+ }
108
+ `
109
+ }];
110
+ }
111
+ /** The files `scaffold api` writes for a framework. */
112
+ function scaffoldApiFiles(context) {
113
+ const lib = join$1(context.srcDir, "lib");
114
+ const generated = join$1(lib, `${context.name}.generated.ts`);
115
+ const api = join$1(lib, `${context.name}.ts`);
116
+ const shared = [{
117
+ path: generated,
118
+ generated: true,
119
+ contents: generatedModule(context)
120
+ }, {
121
+ path: api,
122
+ generated: false,
123
+ contents: apiModule(context, api, generated)
124
+ }];
125
+ switch (context.framework) {
126
+ case "next": return [...shared, ...nextFiles(context, api)];
127
+ case "hono": return [...shared, ...honoFiles(context, api)];
128
+ default: {
129
+ const unknown = context.framework;
130
+ throw new Error(`Unknown framework: ${String(unknown)}`);
131
+ }
132
+ }
133
+ }
134
+ /** What to do after the files are written. */
135
+ function scaffoldNextSteps(context, specsEntry) {
136
+ const api = join$1(context.srcDir, "lib", `${context.name}.ts`);
137
+ const steps = [];
138
+ if (context.framework === "hono") steps.push(`Mount the routes in ${join$1(context.srcDir, "server.ts")}: \`.route('/', apiRoutes(bs))\`.`);
139
+ if (specsEntry !== api) steps.push(`Set \`specs: { entry: '${api}' }\` in better-supabase.config.ts, so \`better-supabase spec emit\` reads the API model.`);
140
+ steps.push(`Describe the resources in ${api}; \`scaffold api\` only rewrites ${context.name}.generated.ts.`);
141
+ return steps;
142
+ }
143
+ //#endregion
144
+ //#region src/cli/commands/scaffold.ts
145
+ const ARGS = {
146
+ kind: {
147
+ type: "positional",
148
+ required: false,
149
+ description: "api"
150
+ },
151
+ framework: {
152
+ type: "string",
153
+ description: "hono or next. Defaults to the one in package.json",
154
+ valueHint: "name"
155
+ },
156
+ tables: {
157
+ type: "string",
158
+ description: "Tables to serve. Defaults to every table and view in the public schema",
159
+ valueHint: "list"
160
+ },
161
+ name: {
162
+ type: "string",
163
+ description: "The API module's name: lib/<name>.ts and lib/<name>.generated.ts. Defaults to api",
164
+ valueHint: "name"
165
+ },
166
+ "base-path": {
167
+ type: "string",
168
+ description: "Where the resources are served. Defaults to /api",
169
+ valueHint: "path"
170
+ }
171
+ };
172
+ const isFramework = (value) => SCAFFOLD_FRAMEWORKS.some((framework) => framework === value);
173
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
174
+ /** The public tables and views in the metadata module `gen` writes, or undefined without one. */
175
+ async function generatedTables(config) {
176
+ const path = resolve(config.root, metaPaths(config.output).js);
177
+ if (!existsSync(path)) return void 0;
178
+ const meta = (await importFresh(path))["default"];
179
+ const tables = isRecord(meta) ? meta["tables"] : void 0;
180
+ if (!isRecord(tables)) return void 0;
181
+ return Object.entries(tables).filter(([, table]) => isRecord(table) && table["schema"] === "public" && (table["kind"] === "table" || table["kind"] === "view")).map(([key]) => key);
182
+ }
183
+ async function runScaffold(config, args, options = {}) {
184
+ const [kind] = args._ ?? [];
185
+ if (kind !== "api") return {
186
+ code: 2,
187
+ error: `${kind ? `Unknown scaffold "${kind}"` : "Name what to scaffold"}. Run \`better-supabase scaffold api\`.`
188
+ };
189
+ const configured = config.scaffold.api ?? {};
190
+ const project = await detectProject(config.root);
191
+ const detected = project.frameworks.filter(isFramework);
192
+ const chosen = args.framework ?? configured.framework;
193
+ const framework = chosen ?? (detected.length === 1 ? detected[0] : void 0);
194
+ if (!isFramework(framework)) return {
195
+ code: 2,
196
+ error: chosen === void 0 ? "Pass --framework hono or --framework next, or set scaffold.api.framework." : `--framework takes hono or next, got "${chosen}".`
197
+ };
198
+ const name = args.name ?? configured.name ?? "api";
199
+ if (!/^[a-z][\w-]*$/i.test(name)) return {
200
+ code: 2,
201
+ error: `--name must be a file name without a folder, got "${name}".`
202
+ };
203
+ const basePath = `/${(args["base-path"] ?? configured.basePath ?? "/api").replaceAll(/^\/+|\/+$/g, "")}`;
204
+ const known = await generatedTables(config);
205
+ const requested = args.tables === void 0 ? [...configured.tables ?? []] : list(args.tables);
206
+ if (requested.length === 0 && !known) return {
207
+ code: 1,
208
+ error: `No ${display(config.root, metaPaths(config.output).js)}. Run \`better-supabase gen\` first, or pass --tables.`
209
+ };
210
+ const unknown = known ? requested.filter((table) => !known.includes(table)) : [];
211
+ if (unknown.length > 0) return {
212
+ code: 1,
213
+ error: `Unknown tables: ${unknown.join(", ")}. Known tables: ${known?.join(", ")}.`
214
+ };
215
+ const tables = requested.length > 0 ? requested : known ?? [];
216
+ if (tables.length === 0) return {
217
+ code: 1,
218
+ error: "There are no public tables to serve. Pass --tables."
219
+ };
220
+ const context = {
221
+ framework,
222
+ srcDir: project.srcDir,
223
+ tsExtensions: project.tsExtensions,
224
+ name,
225
+ basePath,
226
+ tables
227
+ };
228
+ const lines = [];
229
+ const stale = [];
230
+ for (const file of scaffoldApiFiles(context)) {
231
+ if (options.generatedOnly === true && !file.generated) continue;
232
+ const path = resolve(config.root, file.path);
233
+ const exists = existsSync(path);
234
+ if (!file.generated && exists) {
235
+ lines.push(`Kept ${file.path} (yours)`);
236
+ continue;
237
+ }
238
+ const current = exists ? await readFile(path, "utf8") : void 0;
239
+ if (current !== void 0 && !current.startsWith("// @generated by better-supabase scaffold. Do not edit; run `better-supabase scaffold api` again instead.")) return {
240
+ code: 1,
241
+ error: `${file.path} was not written by better-supabase scaffold. Move it, or pass another --name.`
242
+ };
243
+ if (options.check === true) {
244
+ if (sameText(current, file.contents)) lines.push(`${file.path} is up to date.`);
245
+ else stale.push(file.path);
246
+ continue;
247
+ }
248
+ lines.push((await writeLine(path, file.contents, file.path)).line);
249
+ }
250
+ if (stale.length > 0) return {
251
+ code: 1,
252
+ error: `Out of date: ${stale.join(", ")}. Run \`better-supabase scaffold api\`.`
253
+ };
254
+ if (options.generatedOnly === true || options.check === true) return {
255
+ code: 0,
256
+ output: lines.join("\n")
257
+ };
258
+ const steps = scaffoldNextSteps(context, config.specs.entry);
259
+ const save = config.scaffold.api === void 0 ? [
260
+ "",
261
+ "Add this to your config so `better-supabase gen` keeps the generated file current:",
262
+ ` scaffold: { api: ${scaffoldSnippet({
263
+ framework,
264
+ ...name === "api" ? {} : { name },
265
+ ...basePath === "/api" ? {} : { basePath },
266
+ ...requested.length > 0 ? { tables: requested } : {}
267
+ })} }`
268
+ ] : [];
269
+ return {
270
+ code: 0,
271
+ output: [
272
+ ...lines,
273
+ "",
274
+ "Next:",
275
+ ...steps.map((step) => `- ${step}`),
276
+ ...save
277
+ ].join("\n")
278
+ };
279
+ }
280
+ const quote = (value) => `'${value}'`;
281
+ const scaffoldSnippet = (api) => `{ ${Object.entries(api).map(([key, value]) => `${key}: ${typeof value === "string" ? quote(value) : `[${value.map(quote).join(", ")}]`}`).join(", ")} }`;
282
+ const scaffoldCommand = defineCliCommand({
283
+ meta: {
284
+ name: "scaffold",
285
+ description: "Writes an API module, its resource routes and an OpenAPI route for Hono or Next.js"
286
+ },
287
+ args: ARGS,
288
+ lists: ["tables"],
289
+ run: (args, { config }) => runScaffold(config, args)
290
+ });
291
+ //#endregion
292
+ export { scaffoldCommand as n, runScaffold as t };
@@ -0,0 +1,2 @@
1
+ import { n as scaffoldCommand } from "./scaffold-5DenHSxF.js";
2
+ export { scaffoldCommand };
@@ -1,9 +1,10 @@
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 { i as importExport, s as stdinDatabaseUrl, t as databaseUrl } from "./config-NiPxAmUF.js";
1
+ import { r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { t as display } from "./io-CFzJVJ68.js";
3
+ import { a as importExport, c as stdinDatabaseUrl, n as databaseUrl } from "./config-M-WzL9O2.js";
4
4
  import { f as supabaseDir } from "./supabase-toml-B-bIukQF.js";
5
- import { n as withSpinner } from "./prompts-BNcNfAve.js";
6
- import { t as connect } from "./db-DOBPt660.js";
5
+ import { t as connect } from "./db-BkcfOlyB.js";
6
+ import { n as withSpinner } from "./prompts-DZJB1nTw.js";
7
+ import { n as staleResult, r as writeLine, t as fileState } from "./files-BVupXPIC.js";
7
8
  import { resolve } from "node:path";
8
9
  import { existsSync } from "node:fs";
9
10
  import { readFile } from "node:fs/promises";
@@ -16,7 +17,7 @@ const ARGS = {
16
17
  },
17
18
  apply: {
18
19
  type: "boolean",
19
- description: "Also insert the rows into the database ($DATABASE_URL, --db-url-stdin, or the local stack)"
20
+ description: "Also insert the rows into the database ($DATABASE_URL, $SUPABASE_DB_URL, --db-url-stdin, or the local stack)"
20
21
  },
21
22
  entry: {
22
23
  type: "string",
@@ -30,7 +31,7 @@ const ARGS = {
30
31
  },
31
32
  "db-url-stdin": {
32
33
  type: "boolean",
33
- description: "Read the connection string from stdin instead of $DATABASE_URL or the config"
34
+ description: "Read the connection string from stdin instead of the config, $DATABASE_URL or $SUPABASE_DB_URL"
34
35
  }
35
36
  };
36
37
  const HEADER = "-- Generated by `better-supabase seed`";
@@ -44,20 +45,15 @@ async function runSeed(config, args, env, open = connect, dbUrl) {
44
45
  };
45
46
  const statements = seed.statements();
46
47
  const contents = `${HEADER} from ${display(config.root, entry)}. Do not edit.\n\n${statements.join("\n\n")}\n`;
47
- const path = resolve(config.root, out);
48
- const current = existsSync(path) ? await readFile(path, "utf8") : void 0;
49
- if (args.check === true) return sameText(current, contents) ? {
50
- code: 0,
51
- output: `${display(config.root, out)} is up to date.`
52
- } : {
53
- code: 1,
54
- error: `${display(config.root, out)} is out of date. Run \`better-supabase seed\`.`
55
- };
48
+ const state = await fileState(config.root, out, contents);
49
+ const { current } = state;
50
+ if (args.check === true) return staleResult(state, "better-supabase seed");
56
51
  if (current !== void 0 && !current.startsWith(HEADER)) return {
57
52
  code: 1,
58
53
  error: `${display(config.root, out)} was not written by better-supabase; pass --out to write elsewhere.`
59
54
  };
60
- const lines = [`${await writeIfChanged(path, contents) ? "Wrote" : "Unchanged"} ${display(config.root, out)} (${statements.length} table${statements.length === 1 ? "" : "s"})`];
55
+ const { line } = await writeLine(state.path, contents, state.file, ` (${statements.length} table${statements.length === 1 ? "" : "s"})`);
56
+ const lines = [line];
61
57
  if (args.apply === true) {
62
58
  const { client, close } = await open(await databaseUrl(config, env, dbUrl));
63
59
  try {
@@ -97,4 +93,4 @@ const seedCommand = defineCliCommand({
97
93
  }
98
94
  });
99
95
  //#endregion
100
- export { seedCommand };
96
+ export { seedCommand as n, runSeed as t };
@@ -0,0 +1,2 @@
1
+ import { n as seedCommand } from "./seed-CzBmrGON.js";
2
+ export { seedCommand };
@@ -1,6 +1,7 @@
1
- import { a as list, r as defineCliCommand } from "./command-CK14fP91.js";
2
- import { i as writeIfChanged, r as sameText, t as display } from "./io-DI1mTdSA.js";
1
+ import { a as list, r as defineCliCommand } from "./command-DV-StG1x.js";
2
+ import { i as sameText, r as readIfExists, t as display } from "./io-CFzJVJ68.js";
3
3
  import { t as byCodePoint } from "./compare-BmIWVEui.js";
4
+ import { r as writeLine } from "./files-BVupXPIC.js";
4
5
  import { dirname, join, resolve } from "node:path";
5
6
  import { existsSync } from "node:fs";
6
7
  import { readFile, readdir } from "node:fs/promises";
@@ -15,7 +16,7 @@ const ARGS = {
15
16
  },
16
17
  agent: {
17
18
  type: "string",
18
- description: "cursor (.cursor/skills), claude (.claude/skills) or agents (.agents/skills). Defaults to the agent folders the project has, else agents",
19
+ description: "cursor (.cursor/skills), claude (.claude/skills) or agents (.agents/skills). Defaults to skills.agents, then the agent folders the project has, else agents",
19
20
  valueHint: "names"
20
21
  },
21
22
  global: {
@@ -88,7 +89,7 @@ async function runSkills(config, args, env) {
88
89
  };
89
90
  const global = args.global === true;
90
91
  const base = global ? env.HOME ?? homedir() : config.root;
91
- const requested = list(args.agent);
92
+ const requested = args.agent === void 0 ? [...config.skills.agents ?? []] : list(args.agent);
92
93
  const unknown = requested.filter((name) => !isAgent(name));
93
94
  if (unknown.length > 0) return {
94
95
  code: 2,
@@ -107,11 +108,11 @@ async function runSkills(config, args, env) {
107
108
  const path = resolve(base, relativePath);
108
109
  const shown = global ? `~/${relativePath}` : display(config.root, relativePath);
109
110
  if (check) {
110
- const current = existsSync(path) ? await readFile(path, "utf8") : void 0;
111
+ const current = await readIfExists(path);
111
112
  if (!sameText(current, file.contents)) stale.push(shown);
112
113
  continue;
113
114
  }
114
- lines.push(`${await writeIfChanged(path, file.contents) ? "Wrote" : "Unchanged"} ${shown}`);
115
+ lines.push((await writeLine(path, file.contents, shown)).line);
115
116
  }
116
117
  if (check) return stale.length === 0 ? {
117
118
  code: 0,