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,486 @@
1
+ import { r as errorText } from "./errors-CqTLXe2M.js";
2
+ import { t as TYPEGEN_VERSION } from "./typegen-version-DeFbtzYI.js";
3
+ import { t as byCodePoint } from "./compare-BmIWVEui.js";
4
+ import { dirname, join } from "node:path";
5
+ import { readFile } from "node:fs/promises";
6
+ import { fileURLToPath } from "node:url";
7
+ //#region src/cli/peers.ts
8
+ const VERSION = /^v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;
9
+ function parseVersion(text) {
10
+ const match = VERSION.exec(text.trim());
11
+ if (!match) return void 0;
12
+ return [
13
+ Number(match[1]),
14
+ Number(match[2] ?? 0),
15
+ Number(match[3] ?? 0),
16
+ match[4] === void 0 ? [] : match[4].split(".")
17
+ ];
18
+ }
19
+ const NUMERIC = /^\d+$/;
20
+ function compareIdentifiers(a, b) {
21
+ const numeric = NUMERIC.test(a);
22
+ if (numeric !== NUMERIC.test(b)) return numeric ? -1 : 1;
23
+ if (numeric) return Number(a) - Number(b);
24
+ return a < b ? -1 : a > b ? 1 : 0;
25
+ }
26
+ function compare(a, b) {
27
+ for (const index of [
28
+ 0,
29
+ 1,
30
+ 2
31
+ ]) if (a[index] !== b[index]) return a[index] - b[index];
32
+ const [, , , left] = a;
33
+ const [, , , right] = b;
34
+ if (left.length === 0 || right.length === 0) return right.length - left.length;
35
+ for (let index = 0; index < Math.max(left.length, right.length); index++) {
36
+ const x = left[index];
37
+ const y = right[index];
38
+ if (x === void 0) return -1;
39
+ if (y === void 0) return 1;
40
+ const order = compareIdentifiers(x, y);
41
+ if (order !== 0) return order;
42
+ }
43
+ return 0;
44
+ }
45
+ const sameRelease = (a, b) => a[0] === b[0] && a[1] === b[1] && a[2] === b[2];
46
+ const COMPARATOR = /^(>=|<=|>|<|=|\^)?\s*(\S+)$/;
47
+ /** The next version a caret range excludes: `^1.2` is below 2, `^0.4` below 0.5. */
48
+ function caretCeiling([major, minor, patch]) {
49
+ if (major > 0) return [
50
+ major + 1,
51
+ 0,
52
+ 0,
53
+ []
54
+ ];
55
+ if (minor > 0) return [
56
+ 0,
57
+ minor + 1,
58
+ 0,
59
+ []
60
+ ];
61
+ return [
62
+ 0,
63
+ 0,
64
+ patch + 1,
65
+ []
66
+ ];
67
+ }
68
+ function comparators(range) {
69
+ const parts = range.trim().replaceAll(/(>=|<=|>|<|=|\^)\s+/g, "$1").split(/\s+/).filter((part) => part.length > 0);
70
+ const result = [];
71
+ for (const part of parts) {
72
+ const match = COMPARATOR.exec(part);
73
+ const version = match ? parseVersion(match[2]) : void 0;
74
+ if (!match || !version) return void 0;
75
+ const operator = match[1] ?? "=";
76
+ if (operator === "^") result.push({
77
+ operator: ">=",
78
+ version
79
+ }, {
80
+ operator: "<",
81
+ version: caretCeiling(version)
82
+ });
83
+ else result.push({
84
+ operator,
85
+ version
86
+ });
87
+ }
88
+ return result;
89
+ }
90
+ function holds(version, { operator, version: bound }) {
91
+ const order = compare(version, bound);
92
+ switch (operator) {
93
+ case ">=": return order >= 0;
94
+ case ">": return order > 0;
95
+ case "<=": return order <= 0;
96
+ case "<": return order < 0;
97
+ case "=": return order === 0;
98
+ default: return operator;
99
+ }
100
+ }
101
+ /**
102
+ * Whether `version` is in `range`, for the ranges better-supabase declares:
103
+ * `||` alternatives of space-separated comparators (`>=`, `>`, `<=`, `<`,
104
+ * exact) and caret ranges. As in npm, a prerelease only matches a set with a
105
+ * comparator on the same release that has a prerelease too. `undefined`
106
+ * when either can't be parsed.
107
+ */
108
+ function satisfies(version, range) {
109
+ const parsed = parseVersion(version);
110
+ if (!parsed) return void 0;
111
+ const sets = range.split("||").map(comparators);
112
+ if (sets.some((set) => set === void 0)) return void 0;
113
+ return sets.some((set) => set !== void 0 && set.every((comparator) => holds(parsed, comparator)) && (parsed[3].length === 0 || set.some(({ version: bound }) => bound[3].length > 0 && sameRelease(bound, parsed))));
114
+ }
115
+ async function readManifest(path) {
116
+ try {
117
+ const data = JSON.parse(await readFile(path, "utf8"));
118
+ return typeof data === "object" && data !== null ? data : void 0;
119
+ } catch {
120
+ return;
121
+ }
122
+ }
123
+ /** The version of `name` that `root` resolves, looking in `node_modules` up to the file system root. */
124
+ async function installedVersion(name, root) {
125
+ let dir = root;
126
+ for (;;) {
127
+ const manifest = await readManifest(join(dir, "node_modules", name, "package.json"));
128
+ if (typeof manifest?.["version"] === "string") return manifest["version"];
129
+ const parent = dirname(dir);
130
+ if (parent === dir) return void 0;
131
+ dir = parent;
132
+ }
133
+ }
134
+ /** The version in the nearest `package.json` above a resolved module file. */
135
+ async function versionAt(file) {
136
+ let dir = dirname(file);
137
+ for (;;) {
138
+ const manifest = await readManifest(join(dir, "package.json"));
139
+ if (manifest && typeof manifest["version"] === "string") return manifest["version"];
140
+ const parent = dirname(dir);
141
+ if (parent === dir) return void 0;
142
+ dir = parent;
143
+ }
144
+ }
145
+ /** The `peerDependencies` of the better-supabase package this CLI ships in. */
146
+ async function declaredPeers() {
147
+ const peers = (await readManifest(fileURLToPath(import.meta.resolve("better-supabase/package.json"))))?.["peerDependencies"];
148
+ if (typeof peers !== "object" || peers === null) return {};
149
+ return Object.fromEntries(Object.entries(peers).filter((entry) => typeof entry[1] === "string"));
150
+ }
151
+ /** Every declared peer with the version `root` resolves. */
152
+ async function peerVersions(root) {
153
+ const peers = await declaredPeers();
154
+ return Promise.all(Object.entries(peers).map(async ([name, range]) => ({
155
+ name,
156
+ range,
157
+ installed: await installedVersion(name, root)
158
+ })));
159
+ }
160
+ //#endregion
161
+ //#region src/cli/introspect/typegen.ts
162
+ const TYPEGEN = "@supabase/postgrest-typegen";
163
+ /** Why a command that reads or generates schema types stops without the peer. */
164
+ const TYPEGEN_MISSING = `better-supabase needs the "${TYPEGEN}" package to read your schema and generate types. Install it: pnpm add -D ${TYPEGEN}@${TYPEGEN_VERSION}`;
165
+ /** Thrown by every function here when the optional peer is not installed. */
166
+ var TypegenMissingError = class extends Error {
167
+ constructor() {
168
+ super(TYPEGEN_MISSING);
169
+ this.name = "TypegenMissingError";
170
+ }
171
+ };
172
+ const missing = () => {
173
+ throw new TypegenMissingError();
174
+ };
175
+ /**
176
+ * `/generation` is light and its functions are synchronous (`buildModel`
177
+ * calls `tsTypeOf`), so it loads with this module, which the commands that
178
+ * need it import on demand. The package root and `/introspection` build
179
+ * their arktype schemas on import (about 90 ms), so they load when a command
180
+ * reads or validates metadata, not for `--help`.
181
+ */
182
+ const generation = await import("@supabase/postgrest-typegen/generation").catch(() => void 0);
183
+ const loadGeneration = () => generation ?? missing();
184
+ /** The installed postgrest-typegen release, `undefined` when it is missing. */
185
+ async function typegenVersion() {
186
+ if (generation === void 0) return void 0;
187
+ return versionAt(fileURLToPath(import.meta.resolve(`${TYPEGEN}/generation`)));
188
+ }
189
+ /** Notice for a postgrest-typegen release other than the one this CLI is tested against. */
190
+ function typegenVersionNotice(installed) {
191
+ if (installed === void 0 || installed === "0.4.0") return void 0;
192
+ return `Notice: ${TYPEGEN}@${installed} is installed; this better-supabase release is tested against ${TYPEGEN_VERSION}. database.types.ts can differ from \`supabase gen types\` output until both use the same release. Pin it: pnpm add -D ${TYPEGEN}@${TYPEGEN_VERSION}`;
193
+ }
194
+ const metadataModule = () => import("@supabase/postgrest-typegen").catch(missing);
195
+ const introspectionModule = () => import("@supabase/postgrest-typegen/introspection").catch(missing);
196
+ /** Introspects `schemas`, keeping only the types they reference. */
197
+ async function readGeneratorMetadata(db, schemas) {
198
+ const [metadata, positions] = await Promise.all([introspectionModule().then(({ introspect }) => introspect(db, { includedSchemas: [...schemas] })), db.query(argumentPositionsSql(schemas))]);
199
+ return pruneTypes(orderArgsByPosition(metadata, positions.rows), schemas);
200
+ }
201
+ const sqlLiteral = (value) => `'${value.replaceAll("'", "''")}'`;
202
+ /**
203
+ * The argument order postgrest-typegen loses: its catalog query aggregates
204
+ * the arguments without an order, so two unnamed arguments (pgvector's
205
+ * operators, citext casts) swap places between database resets.
206
+ */
207
+ function argumentPositionsSql(schemas) {
208
+ return `select p.oid::int8 as id,
209
+ coalesce(p.proallargtypes, p.proargtypes::oid[])::int8[] as types,
210
+ p.proargnames as names
211
+ from pg_catalog.pg_proc p
212
+ join pg_catalog.pg_namespace n on n.oid = p.pronamespace
213
+ where p.prokind = 'f'
214
+ and n.nspname = any (array[${schemas.map(sqlLiteral).join(", ") || "''"}]::text[])`;
215
+ }
216
+ /**
217
+ * Puts every function's arguments back in declaration order, so the sort by
218
+ * name that follows (stable) keeps unnamed arguments by position.
219
+ */
220
+ function orderArgsByPosition(metadata, rows) {
221
+ const byId = new Map(rows.map((row) => [Number(row.id), row]));
222
+ return {
223
+ ...metadata,
224
+ functions: metadata.functions.map((fn) => {
225
+ const row = byId.get(fn.id);
226
+ if (!row?.types || fn.args.length < 2) return fn;
227
+ const pending = [...fn.args];
228
+ const ordered = [];
229
+ row.types.forEach((type, index) => {
230
+ const name = row.names?.[index] ?? "";
231
+ const at = pending.findIndex((arg) => arg.type_id === Number(type) && arg.name === name);
232
+ if (at >= 0) ordered.push(...pending.splice(at, 1));
233
+ });
234
+ return {
235
+ ...fn,
236
+ args: [...ordered, ...pending]
237
+ };
238
+ })
239
+ };
240
+ }
241
+ /** Postgres assigns oids below this to built-in objects; those are stable. */
242
+ const FIRST_NORMAL_OID = 16384;
243
+ /**
244
+ * Replaces the oids of user objects with ids derived from their names and
245
+ * zeroes size estimates, so a snapshot of the same schema is byte-identical
246
+ * after `supabase db reset` or on another machine. Returns the id mapping
247
+ * for data keyed by the old oids.
248
+ */
249
+ function stabilizeMetadata(metadata) {
250
+ const ids = /* @__PURE__ */ new Map();
251
+ const assign = (base, entries) => {
252
+ [...entries].sort((a, b) => byCodePoint(a.key, b.key)).forEach((entry, index) => {
253
+ if (entry.id >= FIRST_NORMAL_OID) ids.set(entry.id, base + index);
254
+ });
255
+ };
256
+ assign(1e6, [
257
+ ...metadata.tables,
258
+ ...metadata.foreignTables,
259
+ ...metadata.views,
260
+ ...metadata.materializedViews
261
+ ].map((entry) => ({
262
+ id: entry.id,
263
+ key: `${entry.schema}.${entry.name}`
264
+ })));
265
+ assign(2e6, metadata.types.map((entry) => ({
266
+ id: entry.id,
267
+ key: `${entry.schema}.${entry.name}`
268
+ })));
269
+ assign(3e6, metadata.functions.map((entry) => ({
270
+ id: entry.id,
271
+ key: `${entry.schema}.${entry.name}(${entry.identity_argument_types})`
272
+ })));
273
+ assign(4e6, metadata.schemas.map((entry) => ({
274
+ id: entry.id,
275
+ key: entry.name
276
+ })));
277
+ const map = (id) => ids.get(id) ?? id;
278
+ const mapNullable = (id) => id === null ? null : map(id);
279
+ const stable = {
280
+ ...metadata,
281
+ schemas: metadata.schemas.map((entry) => ({
282
+ ...entry,
283
+ id: map(entry.id)
284
+ })),
285
+ tables: metadata.tables.map((entry) => ({
286
+ ...entry,
287
+ id: map(entry.id),
288
+ bytes: 0,
289
+ size: "0 bytes",
290
+ live_rows_estimate: 0,
291
+ dead_rows_estimate: 0
292
+ })),
293
+ foreignTables: metadata.foreignTables.map((entry) => ({
294
+ ...entry,
295
+ id: map(entry.id)
296
+ })),
297
+ views: metadata.views.map((entry) => ({
298
+ ...entry,
299
+ id: map(entry.id)
300
+ })),
301
+ materializedViews: metadata.materializedViews.map((entry) => ({
302
+ ...entry,
303
+ id: map(entry.id)
304
+ })),
305
+ columns: metadata.columns.map((entry) => ({
306
+ ...entry,
307
+ table_id: map(entry.table_id),
308
+ id: `${map(entry.table_id)}.${entry.ordinal_position}`
309
+ })),
310
+ primaryKeys: metadata.primaryKeys.map((entry) => ({
311
+ ...entry,
312
+ table_id: map(entry.table_id)
313
+ })),
314
+ functions: metadata.functions.map((entry) => ({
315
+ ...entry,
316
+ id: map(entry.id),
317
+ return_type_id: map(entry.return_type_id),
318
+ return_type_relation_id: mapNullable(entry.return_type_relation_id),
319
+ args: entry.args.map((arg) => ({
320
+ ...arg,
321
+ type_id: map(arg.type_id)
322
+ }))
323
+ })),
324
+ types: metadata.types.map((entry) => ({
325
+ ...entry,
326
+ id: map(entry.id),
327
+ type_relation_id: mapNullable(entry.type_relation_id),
328
+ attributes: entry.attributes.map((attribute) => ({
329
+ ...attribute,
330
+ type_id: map(attribute.type_id)
331
+ }))
332
+ }))
333
+ };
334
+ return {
335
+ metadata: loadGeneration().sortGeneratorMetadata(stable),
336
+ ids
337
+ };
338
+ }
339
+ /** Validates metadata loaded from a snapshot file. */
340
+ async function validateGeneratorMetadata(data) {
341
+ const { parseGeneratorMetadata } = await metadataModule();
342
+ return parseGeneratorMetadata(data);
343
+ }
344
+ /**
345
+ * A `GeneratorMetadata` document `gen --metadata` refuses: not JSON, another
346
+ * `GENERATOR_METADATA_VERSION`, or a shape the schema rejects. `gen` exits 65
347
+ * for it, the code `@supabase/typegen` maps to `MetadataRejectedError`.
348
+ */
349
+ var MetadataRejectedError = class extends Error {
350
+ /** The document's `version`, when it had one. */
351
+ version;
352
+ constructor(message, version) {
353
+ super(message);
354
+ this.name = "MetadataRejectedError";
355
+ this.version = version;
356
+ }
357
+ };
358
+ /**
359
+ * Parses the JSON document an out-of-process generator reads on stdin,
360
+ * checking its `version` against the `GENERATOR_METADATA_VERSION` this
361
+ * release of `@supabase/postgrest-typegen` writes.
362
+ */
363
+ async function parseMetadataDocument(text) {
364
+ const { GENERATOR_METADATA_VERSION, parseGeneratorMetadata } = await metadataModule();
365
+ let data;
366
+ try {
367
+ data = JSON.parse(text);
368
+ } catch (cause) {
369
+ throw new MetadataRejectedError(text.trim() === "" ? "The GeneratorMetadata document is empty." : `The GeneratorMetadata document is not JSON: ${errorText(cause)}`);
370
+ }
371
+ const version = typeof data === "object" && data !== null && "version" in data ? data.version : void 0;
372
+ if (version !== GENERATOR_METADATA_VERSION) throw new MetadataRejectedError(version === void 0 ? `The document has no "version", so it is not GeneratorMetadata. better-supabase reads version ${GENERATOR_METADATA_VERSION}.` : `The document is GeneratorMetadata version ${JSON.stringify(version)}, and better-supabase reads version ${GENERATOR_METADATA_VERSION} (${TYPEGEN}@${TYPEGEN_VERSION}). Update better-supabase or the tool that wrote the document so both agree.`, version);
373
+ try {
374
+ return parseGeneratorMetadata(data);
375
+ } catch (cause) {
376
+ throw new MetadataRejectedError(errorText(cause), version);
377
+ }
378
+ }
379
+ /** The JSON document out-of-process generators read. */
380
+ async function serializeGenerator(metadata) {
381
+ const { serializeGeneratorMetadata } = await metadataModule();
382
+ return serializeGeneratorMetadata(loadGeneration().sortGeneratorMetadata(metadata));
383
+ }
384
+ /**
385
+ * Keeps only what belongs to `schemas`, so the Database type matches
386
+ * `supabase gen types --schema ...` for exactly those schemas.
387
+ */
388
+ function restrictSchemas(metadata, schemas) {
389
+ const keep = new Set(schemas);
390
+ return {
391
+ ...metadata,
392
+ schemas: metadata.schemas.filter((schema) => keep.has(schema.name)),
393
+ tables: metadata.tables.filter((table) => keep.has(table.schema)),
394
+ foreignTables: metadata.foreignTables.filter((table) => keep.has(table.schema)),
395
+ views: metadata.views.filter((view) => keep.has(view.schema)),
396
+ materializedViews: metadata.materializedViews.filter((view) => keep.has(view.schema)),
397
+ columns: metadata.columns.filter((column) => keep.has(column.schema)),
398
+ primaryKeys: metadata.primaryKeys.filter((key) => keep.has(key.schema)),
399
+ relationships: metadata.relationships.filter((relationship) => keep.has(relationship.schema)),
400
+ functions: metadata.functions.filter((fn) => keep.has(fn.schema))
401
+ };
402
+ }
403
+ let oxfmt;
404
+ /** oxfmt is an optional peer, loaded on demand; `undefined` when it is not installed. */
405
+ function loadOxfmt() {
406
+ oxfmt ??= import("oxfmt").catch(() => void 0);
407
+ return oxfmt;
408
+ }
409
+ /** Whether `database.types.ts` comes out formatted. */
410
+ async function oxfmtInstalled() {
411
+ return await loadOxfmt() !== void 0;
412
+ }
413
+ /** Formats like `supabase gen types`, or returns `code` as it is without oxfmt. */
414
+ async function formatTypes(code) {
415
+ const formatter = await loadOxfmt();
416
+ if (!formatter) return code;
417
+ const { code: formatted, errors } = await formatter.format("output.ts", code, {
418
+ semi: false,
419
+ printWidth: 80
420
+ });
421
+ if (errors.length > 0) throw new Error(`oxfmt failed to format database.types.ts: ${errors.map((error) => error.message).join("; ")}`);
422
+ return formatted;
423
+ }
424
+ /**
425
+ * Renders `database.types.ts` as `supabase gen types` prints it when oxfmt is
426
+ * installed, plus the `ComputedFields` keys Supabase CLI 2.119 doesn't write.
427
+ */
428
+ function generateDatabaseTypes(metadata, options) {
429
+ const { generateTypescript, sortGeneratorMetadata } = loadGeneration();
430
+ return generateTypescript(sortGeneratorMetadata(restrictSchemas(metadata, options.schemas)), {
431
+ postgrestVersion: options.postgrestVersion,
432
+ detectOneToOneRelationships: true,
433
+ format: formatTypes
434
+ });
435
+ }
436
+ /**
437
+ * TypeScript type for a column or argument, resolved exactly like the
438
+ * `Database` type does (domains, composites, enums in other schemas).
439
+ */
440
+ function tsTypeOf(metadata, schema, format, typeSchema) {
441
+ const owner = metadata.schemas.find((entry) => entry.name === schema) ?? {
442
+ id: 0,
443
+ name: schema,
444
+ owner: ""
445
+ };
446
+ return loadGeneration().pgTypeToTsType(owner, format, {
447
+ types: metadata.types,
448
+ schemas: metadata.schemas,
449
+ tables: metadata.tables,
450
+ views: metadata.views,
451
+ foreignTables: metadata.foreignTables,
452
+ materializedViews: metadata.materializedViews
453
+ }, typeSchema);
454
+ }
455
+ /**
456
+ * `introspect()` returns every type in the database (hundreds of built-ins).
457
+ * Keep the ones in the read schemas and those referenced by columns,
458
+ * functions and composite attributes; built-in scalars resolve by name.
459
+ */
460
+ function pruneTypes(metadata, schemas) {
461
+ const byId = new Map(metadata.types.map((type) => [type.id, type]));
462
+ const byName = new Map(metadata.types.map((type) => [`${type.schema}.${type.name}`, type]));
463
+ const keep = /* @__PURE__ */ new Set();
464
+ const visit = (id) => {
465
+ if (id === null || id === void 0 || keep.has(id)) return;
466
+ const type = byId.get(id);
467
+ if (!type) return;
468
+ keep.add(id);
469
+ for (const attribute of type.attributes) visit(attribute.type_id);
470
+ };
471
+ for (const type of metadata.types) if (schemas.includes(type.schema)) visit(type.id);
472
+ for (const column of metadata.columns) {
473
+ visit(byName.get(`${column.type_schema}.${column.format}`)?.id);
474
+ visit(byName.get(`${column.type_schema}.${column.format.replace(/^_/, "")}`)?.id);
475
+ }
476
+ for (const fn of metadata.functions) {
477
+ visit(fn.return_type_id);
478
+ for (const arg of fn.args) visit(arg.type_id);
479
+ }
480
+ return {
481
+ ...metadata,
482
+ types: metadata.types.filter((type) => keep.has(type.id))
483
+ };
484
+ }
485
+ //#endregion
486
+ export { parseMetadataDocument as a, serializeGenerator as c, typegenVersion as d, typegenVersionNotice as f, satisfies as h, oxfmtInstalled as i, stabilizeMetadata as l, peerVersions as m, TypegenMissingError as n, readGeneratorMetadata as o, validateGeneratorMetadata as p, generateDatabaseTypes as r, restrictSchemas as s, MetadataRejectedError as t, tsTypeOf as u };