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,554 @@
1
+ import { n as memoized, t as importOptionalPeer } from "../optional-peer-D1pi-skw.js";
2
+ //#region src/overlay/path.ts
3
+ const ESCAPES = {
4
+ b: "\b",
5
+ f: "\f",
6
+ n: "\n",
7
+ r: "\r",
8
+ t: " ",
9
+ "'": "'",
10
+ "\\": "\\",
11
+ "/": "/"
12
+ };
13
+ /**
14
+ * Parses an RFC 9535 normalized path (§ 2.7), such as `$['paths'][0]`, into
15
+ * its segments. Throws for anything else, because the engine promised one.
16
+ */
17
+ function parseNormalizedPath(path) {
18
+ if (!path.startsWith("$")) throw new TypeError(`Not a normalized path: ${path}`);
19
+ const segments = [];
20
+ let i = 1;
21
+ while (i < path.length) {
22
+ if (path[i] !== "[") throw new TypeError(`Not a normalized path: ${path}`);
23
+ i++;
24
+ if (path[i] === "'") {
25
+ i++;
26
+ let name = "";
27
+ while (i < path.length && path[i] !== "'") {
28
+ const char = path[i] ?? "";
29
+ if (char !== "\\") {
30
+ name += char;
31
+ i++;
32
+ continue;
33
+ }
34
+ const next = path[i + 1] ?? "";
35
+ if (next === "u") {
36
+ name += String.fromCodePoint(Number.parseInt(path.slice(i + 2, i + 6), 16));
37
+ i += 6;
38
+ continue;
39
+ }
40
+ const escaped = ESCAPES[next];
41
+ if (escaped === void 0) throw new TypeError(`Not a normalized path: ${path}`);
42
+ name += escaped;
43
+ i += 2;
44
+ }
45
+ if (path[i] !== "'" || path[i + 1] !== "]") throw new TypeError(`Not a normalized path: ${path}`);
46
+ segments.push(name);
47
+ i += 2;
48
+ continue;
49
+ }
50
+ const end = path.indexOf("]", i);
51
+ const digits = end === -1 ? "" : path.slice(i, end);
52
+ if (!/^(?:0|[1-9]\d*)$/.test(digits)) throw new TypeError(`Not a normalized path: ${path}`);
53
+ segments.push(Number(digits));
54
+ i = end + 1;
55
+ }
56
+ return segments;
57
+ }
58
+ const SHORTHAND = /^[A-Za-z_][A-Za-z0-9_]*$/;
59
+ function quote(name) {
60
+ let out = "";
61
+ for (const char of name) {
62
+ const code = char.codePointAt(0) ?? 0;
63
+ if (char === "\\") out += "\\\\";
64
+ else if (char === "'") out += "\\'";
65
+ else if (char === "\b") out += "\\b";
66
+ else if (char === "\f") out += "\\f";
67
+ else if (char === "\n") out += "\\n";
68
+ else if (char === "\r") out += "\\r";
69
+ else if (char === " ") out += "\\t";
70
+ else if (code < 32) out += `\\u${code.toString(16).padStart(4, "0")}`;
71
+ else out += char;
72
+ }
73
+ return `['${out}']`;
74
+ }
75
+ /**
76
+ * Formats segments as a readable RFC 9535 query: member-name shorthand for
77
+ * plain names, bracket notation otherwise (`$.paths['/customers'].get`).
78
+ */
79
+ function formatPath(segments) {
80
+ let out = "$";
81
+ for (const segment of segments) if (typeof segment === "number") out += `[${segment}]`;
82
+ else if (SHORTHAND.test(segment)) out += `.${segment}`;
83
+ else out += quote(segment);
84
+ return out;
85
+ }
86
+ /** Decodes one RFC 6901 reference token. */
87
+ function decodePointerToken(token) {
88
+ return token.replaceAll("~1", "/").replaceAll("~0", "~");
89
+ }
90
+ //#endregion
91
+ //#region src/overlay/apply.ts
92
+ const ALLOW_EMPTY = "x-better-supabase-allow-empty";
93
+ const REF_PREFIX = "#/components/actions/";
94
+ const isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
95
+ const isArray = (value) => Array.isArray(value);
96
+ const kindOf$1 = (value) => Array.isArray(value) ? "array" : isObject(value) ? "object" : "primitive";
97
+ function readMinor(version) {
98
+ if (typeof version !== "string") return void 0;
99
+ const match = /^1\.([012])\.\d+$/.exec(version);
100
+ if (!match) return void 0;
101
+ const minor = Number(match[1]);
102
+ return minor === 0 || minor === 1 || minor === 2 ? minor : void 0;
103
+ }
104
+ /** An Action Object needs a string target; the other fields are read defensively. */
105
+ const isAction = (entry) => typeof entry["target"] === "string";
106
+ function report(reporter, severity, code, message, pointer) {
107
+ reporter.diagnostics.push({
108
+ code,
109
+ severity,
110
+ message,
111
+ pointer: `${reporter.prefix}${pointer}`
112
+ });
113
+ }
114
+ /**
115
+ * Expands a Reusable Action Reference (Overlay 1.2 § 4.5.6) into a plain
116
+ * action: the referenced `fields`, then the reference's own fields on top.
117
+ */
118
+ function resolveReference(overlay, entry, pointer, reporter) {
119
+ const { $ref: ref, ...own } = entry;
120
+ if (typeof ref !== "string" || !ref.startsWith(REF_PREFIX)) {
121
+ report(reporter, "error", "overlay-ref-unresolved", `The reusable action reference ${String(ref)} does not point under ${REF_PREFIX}`, pointer);
122
+ return;
123
+ }
124
+ const name = decodePointerToken(ref.slice(21));
125
+ const components = "components" in overlay ? overlay.components : void 0;
126
+ const reusables = isObject(components) ? components["actions"] : void 0;
127
+ const reusable = isObject(reusables) && Object.hasOwn(reusables, name) ? reusables[name] : void 0;
128
+ if (!isObject(reusable)) {
129
+ report(reporter, "error", "overlay-ref-unresolved", `The reusable action ${ref} does not exist in components.actions`, pointer);
130
+ return;
131
+ }
132
+ const fields = isObject(reusable["fields"]) ? { ...reusable["fields"] } : {};
133
+ if ("target" in fields) {
134
+ report(reporter, "warning", "overlay-invalid-action", `The reusable action ${ref} sets target, which only the reference may set; it is ignored`, pointer);
135
+ delete fields["target"];
136
+ }
137
+ return {
138
+ ...fields,
139
+ ...own
140
+ };
141
+ }
142
+ function resolve(document, segments) {
143
+ let parent = void 0;
144
+ let key = void 0;
145
+ let value = document;
146
+ for (const segment of segments) {
147
+ parent = value;
148
+ key = segment;
149
+ value = typeof segment === "number" ? Array.isArray(value) ? value[segment] : void 0 : isObject(value) ? value[segment] : void 0;
150
+ }
151
+ return {
152
+ parent,
153
+ key,
154
+ value
155
+ };
156
+ }
157
+ const escapeToken = (segment) => `/${String(segment).replaceAll("~", "~0").replaceAll("/", "~1")}`;
158
+ const toPointer = (segments) => segments.map(escapeToken).join("");
159
+ /** Merges `source` into `target` recursively (§ 4.5.4.1) and collects the conflicting pointers. */
160
+ function mergeInto(target, source, at, conflicts) {
161
+ for (const [key, value] of Object.entries(source)) {
162
+ if (!Object.hasOwn(target, key)) {
163
+ target[key] = value;
164
+ continue;
165
+ }
166
+ const current = target[key];
167
+ if (kindOf$1(current) !== kindOf$1(value)) {
168
+ conflicts.push(`${at}${escapeToken(key)}`);
169
+ continue;
170
+ }
171
+ if (isObject(current) && isObject(value)) mergeInto(current, value, `${at}${escapeToken(key)}`, conflicts);
172
+ else if (isArray(current) && isArray(value)) current.push(...value);
173
+ else target[key] = value;
174
+ }
175
+ }
176
+ function select(state, expression, options, reporter, pointer, field) {
177
+ try {
178
+ return options.jsonpath.paths(state.document, expression).map(parseNormalizedPath);
179
+ } catch (error) {
180
+ report(reporter, "error", "overlay-invalid-target", `The ${field} ${JSON.stringify(expression)} is not a valid RFC 9535 query: ${error instanceof Error ? error.message : String(error)}`, pointer);
181
+ return;
182
+ }
183
+ }
184
+ function removeNodes(state, targets, reporter, pointer) {
185
+ const fromArrays = /* @__PURE__ */ new Map();
186
+ for (const segments of targets) {
187
+ const { parent, key } = resolve(state.document, segments);
188
+ if (key === void 0) {
189
+ report(reporter, "error", "overlay-invalid-action", "The action removes the document root, which is not allowed", pointer);
190
+ continue;
191
+ }
192
+ if (Array.isArray(parent) && typeof key === "number") {
193
+ const indexes = fromArrays.get(parent) ?? [];
194
+ indexes.push(key);
195
+ fromArrays.set(parent, indexes);
196
+ } else if (isObject(parent) && typeof key === "string") delete parent[key];
197
+ }
198
+ for (const [array, indexes] of fromArrays) for (const index of [...new Set(indexes)].toSorted((a, b) => b - a)) array.splice(index, 1);
199
+ }
200
+ function updateNodes(state, targets, value, reporter, pointer) {
201
+ const nodes = targets.map((segments) => ({
202
+ segments,
203
+ ...resolve(state.document, segments)
204
+ }));
205
+ const kinds = new Set(nodes.map((node) => kindOf$1(node.value)));
206
+ if (kinds.size > 1) {
207
+ report(reporter, "error", "overlay-mixed-targets", `The target selects ${[...kinds].join(" and ")} nodes; an update needs nodes of one kind`, pointer);
208
+ return;
209
+ }
210
+ const valueKind = kindOf$1(value);
211
+ for (const node of nodes) {
212
+ const copy = structuredClone(value);
213
+ const at = toPointer(node.segments) || "the root";
214
+ if (isArray(node.value)) {
215
+ if (isArray(copy)) node.value.push(...copy);
216
+ else node.value.push(copy);
217
+ continue;
218
+ }
219
+ if (isObject(node.value)) {
220
+ if (!isObject(copy)) {
221
+ report(reporter, "error", "overlay-merge-conflict", `Cannot merge a${valueKind === "array" ? "n array" : " primitive"} into the object at ${at}`, pointer);
222
+ continue;
223
+ }
224
+ const conflicts = [];
225
+ mergeInto(node.value, copy, toPointer(node.segments), conflicts);
226
+ for (const conflict of conflicts) report(reporter, "error", "overlay-merge-conflict", `Cannot merge values of different kinds at ${conflict}`, pointer);
227
+ continue;
228
+ }
229
+ if (valueKind !== "primitive") {
230
+ report(reporter, "error", "overlay-merge-conflict", `Cannot replace the primitive at ${at} with a${valueKind === "array" ? "n array" : "n object"}`, pointer);
231
+ continue;
232
+ }
233
+ if (node.key === void 0) state.document = copy;
234
+ else if (Array.isArray(node.parent) && typeof node.key === "number") node.parent[node.key] = copy;
235
+ else if (isObject(node.parent) && typeof node.key === "string") node.parent[node.key] = copy;
236
+ }
237
+ }
238
+ function runAction(state, action, minor, options, reporter, pointer) {
239
+ if (action.remove !== true && action.update === void 0 && action.copy !== void 0 && minor === 0) {
240
+ report(reporter, "error", "overlay-version-feature", "copy needs Overlay 1.1 or later; the action is skipped", pointer);
241
+ return;
242
+ }
243
+ const targets = select(state, action.target, options, reporter, pointer, "target");
244
+ if (!targets) return;
245
+ if (targets.length === 0) {
246
+ if (action[ALLOW_EMPTY] !== true && options.allowEmpty !== true) report(reporter, "error", "overlay-no-match", `The target ${action.target} selects no nodes; set ${ALLOW_EMPTY}: true on the action if that is expected`, pointer);
247
+ return;
248
+ }
249
+ if (action.remove === true) {
250
+ removeNodes(state, targets, reporter, pointer);
251
+ return;
252
+ }
253
+ if (action.update !== void 0) {
254
+ updateNodes(state, targets, action.update, reporter, pointer);
255
+ return;
256
+ }
257
+ if (typeof action.copy === "string") {
258
+ const sources = select(state, action.copy, options, reporter, pointer, "copy source");
259
+ if (!sources) return;
260
+ const [source] = sources;
261
+ if (sources.length !== 1 || !source) {
262
+ report(reporter, "error", "overlay-copy-source", `The copy source ${action.copy} selects ${sources.length} nodes; it must select exactly one`, pointer);
263
+ return;
264
+ }
265
+ updateNodes(state, targets, resolve(state.document, source).value, reporter, pointer);
266
+ return;
267
+ }
268
+ report(reporter, "warning", "overlay-empty-action", "The action has no update, copy or remove, so it changes nothing", pointer);
269
+ }
270
+ /** Applies one overlay to `state.document` in place. */
271
+ function applyInPlace(state, overlay, options, reporter) {
272
+ const minor = readMinor(overlay.overlay);
273
+ if (minor === void 0) {
274
+ report(reporter, "error", "overlay-version-unsupported", `Overlay version ${overlay.overlay} is not supported; use 1.0.x, 1.1.x or 1.2.x`, "/overlay");
275
+ return;
276
+ }
277
+ if (!Array.isArray(overlay.actions)) {
278
+ report(reporter, "error", "overlay-invalid-action", "The overlay has no actions array", "/actions");
279
+ return;
280
+ }
281
+ const actions = overlay.actions;
282
+ for (const [index, entry] of actions.entries()) {
283
+ const pointer = `/actions/${index}`;
284
+ if (!isObject(entry)) {
285
+ report(reporter, "error", "overlay-invalid-action", "The action is not an object", pointer);
286
+ continue;
287
+ }
288
+ if ("$ref" in entry && minor < 2) report(reporter, "warning", "overlay-version-feature", `Reusable actions need Overlay 1.2; the reference is expanded for this ${overlay.overlay} overlay`, pointer);
289
+ const action = "$ref" in entry ? resolveReference(overlay, entry, pointer, reporter) : entry;
290
+ if (!action) continue;
291
+ if (!isAction(action)) {
292
+ report(reporter, "error", "overlay-invalid-action", "The action has no target", pointer);
293
+ continue;
294
+ }
295
+ runAction(state, action, minor, options, reporter, pointer);
296
+ }
297
+ }
298
+ /**
299
+ * Applies an Overlay 1.0, 1.1 or 1.2 document to `document` and returns a
300
+ * new document. The input is cloned once with `structuredClone` and never
301
+ * changed; each target runs once through `options.jsonpath`.
302
+ *
303
+ * Actions run in order, each on the result of the previous one (Overlay
304
+ * § 4.5.1.1). `update` merges objects, concatenates or appends to arrays and
305
+ * replaces primitives; `remove` deletes the selected nodes; `copy` (1.1 and
306
+ * later) uses the value of the single node its query selects. Reusable action
307
+ * references (1.2) are expanded, with a warning when the overlay declares
308
+ * 1.0 or 1.1.
309
+ *
310
+ * Problems never throw: they are diagnostics, and the failing action is
311
+ * skipped. A target that selects nothing reports `overlay-no-match` as an
312
+ * error unless the action sets `x-better-supabase-allow-empty: true` or the
313
+ * options set `allowEmpty`. The other codes are `overlay-invalid-target`,
314
+ * `overlay-invalid-action`, `overlay-mixed-targets`,
315
+ * `overlay-merge-conflict`, `overlay-copy-source`, `overlay-ref-unresolved`,
316
+ * `overlay-version-feature`, `overlay-version-unsupported` and
317
+ * `overlay-empty-action`.
318
+ *
319
+ * The result keeps the input's type; an overlay that changes the shape
320
+ * needs the caller to narrow it.
321
+ *
322
+ * @example
323
+ * const jsonpath = await loadJsonPath();
324
+ * const { document, diagnostics } = applyOverlay(openapi, overlay, { jsonpath });
325
+ */
326
+ function applyOverlay(document, overlay, options) {
327
+ return run(document, [overlay], options, () => "");
328
+ }
329
+ /**
330
+ * Applies overlays in order, each to the result of the previous one, with a
331
+ * single clone of the input. Diagnostic pointers start with the overlay's
332
+ * index (`/1/actions/0`).
333
+ */
334
+ function applyOverlays(document, overlays, options) {
335
+ return run(document, overlays, options, (index) => `/${index}`);
336
+ }
337
+ function run(document, overlays, options, prefix) {
338
+ const state = { document: structuredClone(document) };
339
+ const diagnostics = [];
340
+ for (const [index, overlay] of overlays.entries()) applyInPlace(state, overlay, options, {
341
+ prefix: prefix(index),
342
+ diagnostics
343
+ });
344
+ return {
345
+ document: state.document,
346
+ diagnostics
347
+ };
348
+ }
349
+ //#endregion
350
+ //#region src/overlay/define.ts
351
+ const isReference = (action) => "$ref" in action;
352
+ const isPlain = (action) => !("$ref" in action);
353
+ function defineOverlay(input) {
354
+ const { overlay: declared, ...rest } = input;
355
+ if (input.actions.length === 0) throw new TypeError("defineOverlay: an overlay needs at least one action");
356
+ const references = input.actions.filter(isReference);
357
+ const uses12 = input.components !== void 0 || input.$self !== void 0 || references.length > 0;
358
+ const version = declared ?? (uses12 ? "1.2.0" : "1.1.0");
359
+ if (version !== "1.2.0" && uses12) throw new TypeError(`defineOverlay: reusable actions, components and $self need overlay 1.2.0, not ${version}`);
360
+ if (version === "1.0.0" && input.actions.some((action) => !isReference(action) && action.copy !== void 0)) throw new TypeError("defineOverlay: copy needs overlay 1.1.0 or later");
361
+ for (const field of ["extends", "$self"]) if (input[field]?.includes("#")) throw new TypeError(`defineOverlay: ${field} must not contain a fragment`);
362
+ const reusables = input.components?.actions ?? {};
363
+ for (const reference of references) {
364
+ const name = decodePointerToken(reference.$ref.slice(21));
365
+ if (!Object.hasOwn(reusables, name)) throw new TypeError(`defineOverlay: ${reference.$ref} does not exist in components.actions`);
366
+ }
367
+ switch (version) {
368
+ case "1.2.0": return {
369
+ overlay: version,
370
+ ...rest
371
+ };
372
+ case "1.1.0":
373
+ case "1.0.0": return {
374
+ overlay: version,
375
+ ...rest,
376
+ actions: input.actions.filter(isPlain)
377
+ };
378
+ default: throw new TypeError(`defineOverlay: unsupported overlay ${String(version)}`);
379
+ }
380
+ }
381
+ /**
382
+ * Turns an overlay into an equivalent Overlay 1.1 document for tools that do
383
+ * not read 1.2: every reusable action reference becomes a plain action, and
384
+ * `$self` and `components` are dropped. A reference that does not resolve is
385
+ * left out and reported as `overlay-ref-unresolved`.
386
+ */
387
+ function expandReusableActions(overlay) {
388
+ const reporter = {
389
+ prefix: "",
390
+ diagnostics: []
391
+ };
392
+ const actions = [];
393
+ const entries = overlay.actions;
394
+ for (const [index, entry] of entries.entries()) {
395
+ if (!isObject(entry)) continue;
396
+ const action = "$ref" in entry ? resolveReference(overlay, entry, `/actions/${index}`, reporter) : entry;
397
+ if (action && isAction(action)) actions.push(action);
398
+ }
399
+ const extensions = Object.fromEntries(Object.entries(overlay).filter(([key]) => key.startsWith("x-")));
400
+ return {
401
+ overlay: {
402
+ overlay: "1.1.0",
403
+ info: overlay.info,
404
+ ...overlay.extends === void 0 ? {} : { extends: overlay.extends },
405
+ actions,
406
+ ...extensions
407
+ },
408
+ diagnostics: reporter.diagnostics
409
+ };
410
+ }
411
+ //#endregion
412
+ //#region src/overlay/diff.ts
413
+ const kindOf = (value) => Array.isArray(value) ? "array" : isObject(value) ? "object" : "primitive";
414
+ function equal(a, b) {
415
+ if (a === b) return true;
416
+ if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((item, i) => equal(item, b[i]));
417
+ if (isObject(a) && isObject(b)) {
418
+ const keys = Object.keys(a);
419
+ return keys.length === Object.keys(b).length && keys.every((key) => Object.hasOwn(b, key) && equal(a[key], b[key]));
420
+ }
421
+ return false;
422
+ }
423
+ /**
424
+ * Appends the actions that turn the array `a` into `b`, or returns `false`
425
+ * when the change needs the array replaced as a whole.
426
+ */
427
+ function diffArray(path, a, b, ctx) {
428
+ if (b.length >= a.length && a.every((item, i) => equal(item, b[i]))) {
429
+ if (b.length > a.length) ctx.actions.push({
430
+ target: formatPath(path),
431
+ update: b.slice(a.length)
432
+ });
433
+ return true;
434
+ }
435
+ if (a.length !== b.length) return false;
436
+ const pending = [];
437
+ for (const [i, item] of a.entries()) {
438
+ const next = b[i];
439
+ if (equal(item, next)) continue;
440
+ if (!isObject(item) || !isObject(next)) return false;
441
+ diffObject([...path, i], item, next, {
442
+ ...ctx,
443
+ actions: pending
444
+ });
445
+ }
446
+ ctx.actions.push(...pending);
447
+ return true;
448
+ }
449
+ function diffObject(path, a, b, ctx) {
450
+ const removals = [];
451
+ const added = {};
452
+ const nested = [];
453
+ const replace = (key, value) => {
454
+ removals.push({
455
+ target: formatPath([...path, key]),
456
+ remove: true
457
+ });
458
+ added[key] = value;
459
+ };
460
+ for (const key of Object.keys(a)) if (!Object.hasOwn(b, key)) removals.push({
461
+ target: formatPath([...path, key]),
462
+ remove: true
463
+ });
464
+ for (const [key, next] of Object.entries(b)) {
465
+ if (!Object.hasOwn(a, key)) {
466
+ added[key] = next;
467
+ continue;
468
+ }
469
+ const current = a[key];
470
+ if (equal(current, next)) continue;
471
+ if (kindOf(current) !== kindOf(next)) replace(key, next);
472
+ else if (isObject(current) && isObject(next)) diffObject([...path, key], current, next, {
473
+ ...ctx,
474
+ actions: nested
475
+ });
476
+ else if (Array.isArray(current) && Array.isArray(next)) {
477
+ if (!diffArray([...path, key], current, next, {
478
+ ...ctx,
479
+ actions: nested
480
+ })) replace(key, next);
481
+ } else if (ctx.replacePrimitives) nested.push({
482
+ target: formatPath([...path, key]),
483
+ update: next
484
+ });
485
+ else replace(key, next);
486
+ }
487
+ ctx.actions.push(...removals);
488
+ if (Object.keys(added).length > 0) ctx.actions.push({
489
+ target: formatPath(path),
490
+ update: added
491
+ });
492
+ ctx.actions.push(...nested);
493
+ }
494
+ /**
495
+ * Writes the Overlay that turns `base` into `enriched`, so other tools can
496
+ * reproduce what hooks and transforms changed. Targets use stable keys
497
+ * (`$.paths['/customers'].get`); array indexes appear only inside arrays of
498
+ * the same length.
499
+ *
500
+ * A deleted key becomes a `remove` action; added keys become one `update` on
501
+ * their parent; a changed primitive becomes an `update` on it (1.1 and
502
+ * later) or a `remove` and re-add (1.0). An array that only grew gets its new
503
+ * items appended; any other array change replaces the array. Applying the
504
+ * result to `base` gives a document equal to `enriched`, though replaced
505
+ * keys move to the end of their object.
506
+ *
507
+ * Throws a `TypeError` when the roots are not both objects, or when the two
508
+ * documents are equal (an overlay needs at least one action).
509
+ */
510
+ function overlayFromDiff(base, enriched, options = {}) {
511
+ if (!isObject(base) || !isObject(enriched)) throw new TypeError("overlayFromDiff: both documents must be objects");
512
+ const version = options.version ?? "1.1.0";
513
+ const actions = [];
514
+ diffObject([], base, enriched, {
515
+ replacePrimitives: version !== "1.0.0",
516
+ actions
517
+ });
518
+ if (actions.length === 0) throw new TypeError("overlayFromDiff: the documents are equal, so there is nothing to write");
519
+ return {
520
+ overlay: version,
521
+ info: options.info ?? {
522
+ title: "better-supabase changes",
523
+ version: "1.0.0"
524
+ },
525
+ ...options.extends === void 0 ? {} : { extends: options.extends },
526
+ actions
527
+ };
528
+ }
529
+ //#endregion
530
+ //#region src/overlay/load.ts
531
+ const isEngine = (value) => typeof value === "object" && value !== null && "paths" in value && typeof value.paths === "function";
532
+ /**
533
+ * Imports `jsonpath-rfc9535` on first use. The specifier is a variable so
534
+ * bundlers leave the optional peer out of apps that pass their own engine.
535
+ */
536
+ const importEngine = () => importOptionalPeer("jsonpath-rfc9535");
537
+ async function load(importer) {
538
+ const module = await importer();
539
+ if (!isEngine(module)) throw new TypeError("better-supabase/overlay needs an RFC 9535 JSONPath engine: pnpm add jsonpath-rfc9535, or pass your own { paths(document, expression) }");
540
+ return module;
541
+ }
542
+ const cachedEngine = memoized(() => load(importEngine));
543
+ /**
544
+ * Loads the optional `jsonpath-rfc9535` peer, an RFC 9535 implementation
545
+ * that passes the JSONPath Compliance Test Suite, for `applyOverlay`.
546
+ * Rejects with an install message when the package is missing. The engine
547
+ * is loaded once per module; `importer` replaces the import in tests.
548
+ */
549
+ function loadJsonPath(importer) {
550
+ if (importer) return load(importer);
551
+ return cachedEngine();
552
+ }
553
+ //#endregion
554
+ export { applyOverlay, applyOverlays, defineOverlay, expandReusableActions, loadJsonPath, overlayFromDiff };
@@ -1,7 +1,7 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { w as ErrorMapper } from "./result-D7y2fT87.js";
3
- import { I as TableFlags, P as SchemaMeta, R as TableMeta, a as AnyModels } from "./types-6BdhkmZe.js";
4
- import { _ as MutationOp, g as MutationKind, h as MutationIntent, r as Executor, v as Operation } from "./executor-DvsBbNBS.js";
2
+ import { w as ErrorMapper } from "./result-BchM1XZn.js";
3
+ import { I as TableFlags, P as SchemaMeta, R as TableMeta, a as AnyModels } from "./types-CoE5Zwy4.js";
4
+ import { _ as MutationOp, g as MutationKind, h as MutationIntent, r as Executor, v as Operation } from "./executor-Drzu3dBK.js";
5
5
  //#region src/core/plugin.d.ts
6
6
  /** Who is making the request. */
7
7
  interface Actor {
@@ -91,6 +91,39 @@ type ApplyOne<E, M extends AnyModels, T extends keyof M, K extends "methods" | "
91
91
  })[K] : unknown;
92
92
  /** True when table `T` has the flag set by codegen. */
93
93
  type HasFlag<M, T, F extends string> = M extends AnyModels ? T extends keyof M ? M[T]["Flags"] extends { readonly [K in F]: unknown; } ? true : false : false : false;
94
+ /** A parameter a plugin adds to the operations of a table in the API spec. */
95
+ interface DescribeParameter {
96
+ readonly name: string;
97
+ readonly in: "query" | "header" | "cookie";
98
+ readonly required?: boolean;
99
+ readonly description?: string;
100
+ /** JSON Schema 2020-12. */
101
+ readonly schema: Readonly<Record<string, unknown>>;
102
+ }
103
+ /**
104
+ * What `Plugin.describe` can change in the API model `defineApi` builds.
105
+ * Every method ignores tables and columns the API does not serve.
106
+ */
107
+ interface PluginDescribeApi {
108
+ readonly schema: SchemaMeta;
109
+ /** Prefix of generated `x-` fields, e.g. `x-better-supabase-`. */
110
+ readonly extensionPrefix: string;
111
+ /** The served tables, with the names of their operations and actions. */
112
+ readonly resources: readonly {
113
+ readonly table: TableMeta;
114
+ readonly operations: readonly string[];
115
+ }[];
116
+ /** Adds a parameter to the table's operations, or to the named ones. */
117
+ addParameter(table: string, parameter: DescribeParameter, operations?: readonly string[]): void;
118
+ /**
119
+ * Marks a column `readOnly` in the table's schemas and drops it from the
120
+ * required fields of request bodies. `description` is used when the
121
+ * column has none.
122
+ */
123
+ markReadOnly(table: string, column: string, description?: string): void;
124
+ /** Deep-merges JSON Schema fields into the column's schemas. */
125
+ describeColumn(table: string, column: string, patch: Readonly<Record<string, unknown>>): void;
126
+ }
94
127
  declare const PLUGIN_API_VERSION = 1;
95
128
  /**
96
129
  * Plugin API v1. Every hook is optional. Hooks run in `use()` order.
@@ -135,6 +168,12 @@ interface Plugin<Name extends string = string, Ext extends RepositoryExtension =
135
168
  readonly mapError?: ErrorMapper;
136
169
  /** `repository`: add methods to the repositories of matching tables. */
137
170
  readonly repository?: (api: RepositoryApi) => Readonly<Record<string, (...args: never[]) => unknown>> | undefined;
171
+ /**
172
+ * `spec`: describe what the plugin does to the served tables in the API
173
+ * model (`defineApi`, `createOpenApi`): parameters it reads, columns it
174
+ * manages. A throw is reported as `plugin-describe-failed`.
175
+ */
176
+ readonly describe?: (api: PluginDescribeApi) => void;
138
177
  /** Phantom carrying the repository extension type. */
139
178
  readonly "~ext"?: Ext;
140
179
  }
@@ -1,4 +1,4 @@
1
- import { d as Plugin, m as RequestContext } from "../../plugin-FGY8UhYm.js";
1
+ import { d as Plugin, m as RequestContext } from "../../plugin-CPK2HsbY.js";
2
2
  //#region src/plugins/actor/index.d.ts
3
3
  export interface ActorOptions {
4
4
  /** Custom actor id resolution. Defaults to `context.actor.id` for users and services. */
@@ -1,5 +1,5 @@
1
1
  import { r as definePlugin } from "../../plugin-tfXW1-qO.js";
2
- import { a as insertsOnly, i as guardManaged, t as dbName, u as withDefault } from "../../shared-CxWmcyqB.js";
2
+ import { a as insertsOnly, c as withDefault, i as guardManaged, t as dbName } from "../../shared-DHjhfRdV.js";
3
3
  //#region src/plugins/actor/index.ts
4
4
  function defaultActor(context) {
5
5
  const actor = context.actor;
@@ -1,5 +1,5 @@
1
- import { v as Operation } from "../../executor-DvsBbNBS.js";
2
- import { d as Plugin, p as RepositoryExtension } from "../../plugin-FGY8UhYm.js";
1
+ import { v as Operation } from "../../executor-Drzu3dBK.js";
2
+ import { d as Plugin, p as RepositoryExtension } from "../../plugin-CPK2HsbY.js";
3
3
  //#region src/plugins/rules/index.d.ts
4
4
  export type RuleLevel = "off" | "warn" | "error";
5
5
  /** A level, or a level with the rule's option: `['error', 500]`. */
@@ -1,5 +1,5 @@
1
1
  import { t as DbException } from "../../db-exception-CnWcYPxL.js";
2
- import { n as dbError } from "../../errors-B11Duf73.js";
2
+ import { n as dbError } from "../../errors-2M6CKMP4.js";
3
3
  import { t as lookupOf } from "../../lookup-BaP5bI27.js";
4
4
  import { r as definePlugin } from "../../plugin-tfXW1-qO.js";
5
5
  import { t as simplify } from "../../simplify-DDO0j0LI.js";
@@ -1,6 +1,6 @@
1
- import { t as AsyncResult } from "../../result-D7y2fT87.js";
2
- import { E as PrimaryKeyValue } from "../../types-6BdhkmZe.js";
3
- import { d as Plugin, o as HasFlag, p as RepositoryExtension } from "../../plugin-FGY8UhYm.js";
1
+ import { t as AsyncResult } from "../../result-BchM1XZn.js";
2
+ import { E as PrimaryKeyValue } from "../../types-CoE5Zwy4.js";
3
+ import { d as Plugin, o as HasFlag, p as RepositoryExtension } from "../../plugin-CPK2HsbY.js";
4
4
  //#region src/plugins/soft-delete/index.d.ts
5
5
  export interface SoftDeleteFindArgs {
6
6
  /** Include soft-deleted rows of the queried table. */