better-supabase 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/README.md +6 -2
  2. package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
  3. package/dist/{adapter-B-tL8hqg.js → adapter-CN45ibbV.js} +663 -157
  4. package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
  5. package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
  6. package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
  7. package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
  8. package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
  9. package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
  10. package/dist/ai-message-DfaP8sis.js +14 -0
  11. package/dist/ai-sdk/agents/index.d.ts +4 -4
  12. package/dist/ai-sdk/batches/index.d.ts +4 -4
  13. package/dist/ai-sdk/batches/index.js +4 -4
  14. package/dist/ai-sdk/cache/index.d.ts +2 -2
  15. package/dist/ai-sdk/cache/index.js +2 -2
  16. package/dist/ai-sdk/chat/index.d.ts +1 -1
  17. package/dist/ai-sdk/chat/index.js +8 -20
  18. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  19. package/dist/ai-sdk/files/index.d.ts +3 -3
  20. package/dist/ai-sdk/files/index.js +4 -4
  21. package/dist/ai-sdk/index.d.ts +37 -9
  22. package/dist/ai-sdk/index.js +3 -2
  23. package/dist/ai-sdk/mcp/index.d.ts +43 -6
  24. package/dist/ai-sdk/mcp/index.js +36 -7
  25. package/dist/ai-sdk/memory/index.d.ts +2 -2
  26. package/dist/ai-sdk/memory/index.js +1 -1
  27. package/dist/ai-sdk/workflow/index.d.ts +6 -6
  28. package/dist/ai-sdk/workflow/index.js +13 -24
  29. package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
  30. package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
  31. package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
  32. package/dist/api-Dnf2q-Ht.d.ts +370 -0
  33. package/dist/api-DtHFC037.js +676 -0
  34. package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
  35. package/dist/arazzo/index.d.ts +255 -0
  36. package/dist/arazzo/index.js +622 -0
  37. package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
  38. package/dist/astro/index.d.ts +7 -7
  39. package/dist/astro/index.js +7 -7
  40. package/dist/asyncapi/index.d.ts +103 -0
  41. package/dist/asyncapi/index.js +569 -0
  42. package/dist/authorizer-ayxUDXXP.js +126 -0
  43. package/dist/authorizer-eiOjo-3l.d.ts +73 -0
  44. package/dist/better-result/index.d.ts +118 -0
  45. package/dist/better-result/index.js +64 -0
  46. package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
  47. package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
  48. package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
  49. package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
  50. package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
  51. package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
  52. package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
  53. package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
  54. package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
  55. package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
  56. package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
  57. package/dist/blocks/agents/index.d.ts +3 -3
  58. package/dist/blocks/agents/index.js +5 -4
  59. package/dist/blocks/ai-cache/index.d.ts +3 -3
  60. package/dist/blocks/ai-cache/index.js +3 -3
  61. package/dist/blocks/ai-chat/index.d.ts +9 -4
  62. package/dist/blocks/ai-chat/index.js +5 -5
  63. package/dist/blocks/ai-chat/react/index.d.ts +3 -3
  64. package/dist/blocks/ai-chat/react/index.js +5 -5
  65. package/dist/blocks/ai-files/index.d.ts +3 -3
  66. package/dist/blocks/ai-files/index.js +3 -3
  67. package/dist/blocks/ai-providers/index.d.ts +3 -3
  68. package/dist/blocks/ai-providers/index.js +8 -7
  69. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  70. package/dist/blocks/ai-tasks/index.js +7 -6
  71. package/dist/blocks/announcements/index.d.ts +3 -3
  72. package/dist/blocks/announcements/index.js +3 -3
  73. package/dist/blocks/announcements/react/index.d.ts +3 -3
  74. package/dist/blocks/announcements/react/index.js +3 -3
  75. package/dist/blocks/api-keys/index.d.ts +5 -5
  76. package/dist/blocks/api-keys/index.js +8 -8
  77. package/dist/blocks/attachments/index.d.ts +12 -8
  78. package/dist/blocks/attachments/index.js +22 -13
  79. package/dist/blocks/audit/index.d.ts +21 -10
  80. package/dist/blocks/audit/index.js +30 -11
  81. package/dist/blocks/billing/index.d.ts +11 -9
  82. package/dist/blocks/billing/index.js +15 -15
  83. package/dist/blocks/comments/index.d.ts +8 -8
  84. package/dist/blocks/comments/index.js +8 -7
  85. package/dist/blocks/connectors/index.d.ts +3 -3
  86. package/dist/blocks/connectors/index.js +7 -6
  87. package/dist/blocks/data-lifecycle/index.d.ts +12 -8
  88. package/dist/blocks/data-lifecycle/index.js +13 -8
  89. package/dist/blocks/entitlements/index.d.ts +3 -3
  90. package/dist/blocks/entitlements/index.js +1 -1
  91. package/dist/blocks/flags/index.d.ts +4 -4
  92. package/dist/blocks/flags/index.js +4 -3
  93. package/dist/blocks/inbox/index.d.ts +3 -3
  94. package/dist/blocks/inbox/index.js +4 -5
  95. package/dist/blocks/inbox/react/index.d.ts +1 -1
  96. package/dist/blocks/inbox/react/index.js +1 -1
  97. package/dist/blocks/inbox/react/server.d.ts +1 -1
  98. package/dist/blocks/index.d.ts +10 -10
  99. package/dist/blocks/index.js +6 -6
  100. package/dist/blocks/jobs/index.d.ts +48 -32
  101. package/dist/blocks/jobs/index.js +44 -287
  102. package/dist/blocks/knowledge/index.d.ts +3 -3
  103. package/dist/blocks/knowledge/index.js +3 -3
  104. package/dist/blocks/memory/index.d.ts +4 -4
  105. package/dist/blocks/memory/index.js +7 -6
  106. package/dist/blocks/notifications/index.d.ts +11 -9
  107. package/dist/blocks/notifications/index.js +20 -25
  108. package/dist/blocks/notifications/react/index.d.ts +1 -1
  109. package/dist/blocks/notifications/react/index.js +1 -1
  110. package/dist/blocks/onboarding/index.d.ts +3 -3
  111. package/dist/blocks/onboarding/index.js +3 -3
  112. package/dist/blocks/onboarding/react/index.d.ts +2 -2
  113. package/dist/blocks/onboarding/react/index.js +2 -2
  114. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  115. package/dist/blocks/organizations/index.d.ts +9 -9
  116. package/dist/blocks/organizations/index.js +11 -18
  117. package/dist/blocks/outbox/index.d.ts +2 -2
  118. package/dist/blocks/outbox/index.js +16 -25
  119. package/dist/blocks/profiles/index.d.ts +7 -7
  120. package/dist/blocks/profiles/index.js +7 -6
  121. package/dist/blocks/push/index.d.ts +4 -4
  122. package/dist/blocks/push/index.js +3 -3
  123. package/dist/blocks/settings/index.d.ts +4 -4
  124. package/dist/blocks/settings/index.js +7 -6
  125. package/dist/blocks/sso/index.d.ts +5 -5
  126. package/dist/blocks/sso/index.js +6 -5
  127. package/dist/blocks/usage/index.d.ts +3 -3
  128. package/dist/blocks/usage/index.js +5 -4
  129. package/dist/blocks/waitlist/index.d.ts +5 -5
  130. package/dist/blocks/waitlist/index.js +5 -4
  131. package/dist/blocks/webhooks/index.d.ts +22 -13
  132. package/dist/blocks/webhooks/index.js +41 -70
  133. package/dist/blocks/workflow-builder/index.d.ts +4 -4
  134. package/dist/blocks/workflow-builder/index.js +3 -3
  135. package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
  136. package/dist/blocks/workflow-builder/react/index.js +4 -4
  137. package/dist/blocks/workflows/index.d.ts +3 -3
  138. package/dist/blocks/workflows/index.js +3 -3
  139. package/dist/blocks/workflows/react/index.d.ts +3 -3
  140. package/dist/blocks/workflows/react/index.js +3 -3
  141. package/dist/build-hPwk3_X5.js +1296 -0
  142. package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
  143. package/dist/casing-DdFWEtqr.js +16 -0
  144. package/dist/chat-sdk/index.d.ts +6 -6
  145. package/dist/chat-sdk/index.js +5 -4
  146. package/dist/chat-sdk/react/index.d.ts +1 -1
  147. package/dist/chat-sdk/react/server.d.ts +1 -1
  148. package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
  149. package/dist/cli/add-1dc5wM5k.js +69 -0
  150. package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
  151. package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
  152. package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
  153. package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
  154. package/dist/cli/bin.js +4 -4
  155. package/dist/cli/cache-CIfA-jBV.js +483 -0
  156. package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
  157. package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
  158. package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
  159. package/dist/cli/config-DpbF8ML3.js +2 -0
  160. package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
  161. package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
  162. package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
  163. package/dist/cli/{doctor-CVdnLahA.js → doctor-VcDtuusV.js} +317 -222
  164. package/dist/cli/emit-BHHfwUoT.js +1136 -0
  165. package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
  166. package/dist/cli/env-vzBG90Um.js +2 -0
  167. package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
  168. package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
  169. package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
  170. package/dist/cli/files-BVupXPIC.js +34 -0
  171. package/dist/cli/gen-DmVj3u4L.js +322 -0
  172. package/dist/cli/{init-Cr6arjXU.js → glue-C1UE8gQN.js} +16 -313
  173. package/dist/cli/index.d.ts +59 -31
  174. package/dist/cli/index.js +8 -6
  175. package/dist/cli/init-CVZ3s5kl.js +258 -0
  176. package/dist/cli/{introspect-Bzuv1HHj.js → introspect-BToGNfm-.js} +14 -14
  177. package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
  178. package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
  179. package/dist/cli/metadata-DSRKCaf-.js +133 -0
  180. package/dist/cli/names-D6LrQnOv.js +6 -0
  181. package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
  182. package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
  183. package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
  184. package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
  185. package/dist/cli/prompts-BdeVmVpg.js +2 -0
  186. package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
  187. package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
  188. package/dist/cli/run-DA6_lg3w.js +389 -0
  189. package/dist/cli/run-DuN1MX-7.js +705 -0
  190. package/dist/cli/scaffold-5DenHSxF.js +292 -0
  191. package/dist/cli/scaffold-CwQUMFRb.js +2 -0
  192. package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
  193. package/dist/cli/seed-DOmit9Hq.js +2 -0
  194. package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
  195. package/dist/cli/snapshot-Bstk6ulj.js +287 -0
  196. package/dist/cli/source-args-BYfq6imV.js +31 -0
  197. package/dist/cli/spec-CzosTYm3.js +7438 -0
  198. package/dist/cli/spec-T_0Bcyw7.js +2 -0
  199. package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
  200. package/dist/cli/sql-DJrNDxQm.js +3 -0
  201. package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
  202. package/dist/cli/typegen-Demi5-VQ.js +486 -0
  203. package/dist/cli/validate-Ca13ktgz.js +7522 -0
  204. package/dist/cli/{version-Bp4fyubI.js → version-B4k0aUxS.js} +1 -1
  205. package/dist/client/index.d.ts +4 -3
  206. package/dist/client/index.js +60 -3
  207. package/dist/client/native/index.d.ts +3 -3
  208. package/dist/client/native/index.js +3 -3
  209. package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
  210. package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
  211. package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
  212. package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
  213. package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
  214. package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
  215. package/dist/{composite-CpHLEo-G.d.ts → composite-CWAJTRBF.d.ts} +6 -6
  216. package/dist/{composite-C6I8ZyaF.js → composite-zTe0TCqj.js} +4 -4
  217. package/dist/config/index.d.ts +3 -4
  218. package/dist/config/index.js +4 -4
  219. package/dist/config-DlKvtt95.js +540 -0
  220. package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
  221. package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
  222. package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
  223. package/dist/context-nPDvQ-Zl.js +41 -0
  224. package/dist/credentials/index.d.ts +5 -5
  225. package/dist/credentials/index.js +9 -17
  226. package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
  227. package/dist/cron-route-D2AN9SA1.js +24 -0
  228. package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
  229. package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
  230. package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
  231. package/dist/edge/index.d.ts +66 -13
  232. package/dist/edge/index.js +65 -39
  233. package/dist/elysia/index.d.ts +1 -1
  234. package/dist/elysia/index.js +1 -1
  235. package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
  236. package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
  237. package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
  238. package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
  239. package/dist/env/index.d.ts +1 -1
  240. package/dist/env/index.js +9 -2
  241. package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
  242. package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
  243. package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
  244. package/dist/eve/index.d.ts +5 -5
  245. package/dist/eve/index.js +5 -11
  246. package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
  247. package/dist/events/index.d.ts +4 -4
  248. package/dist/events/index.js +7 -2
  249. package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
  250. package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
  251. package/dist/executor-B_Hfobee.js +162 -0
  252. package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
  253. package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
  254. package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
  255. package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
  256. package/dist/expo/index.d.ts +4 -4
  257. package/dist/expo/index.js +6 -6
  258. package/dist/expo-sqlite/index.d.ts +3 -3
  259. package/dist/expo-sqlite/index.js +2 -2
  260. package/dist/extra-CGQ2_q3S.js +10 -0
  261. package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
  262. package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
  263. package/dist/format-DTXdu8ya.d.ts +70 -0
  264. package/dist/{framework-KIPvRQJU.d.ts → framework-148t1m3C.d.ts} +5 -5
  265. package/dist/{framework-BDCpJI7o.js → framework-3ey3QmrO.js} +2 -2
  266. package/dist/function-contract-BcZenXMO.d.ts +8 -0
  267. package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
  268. package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
  269. package/dist/h3/index.d.ts +1 -1
  270. package/dist/h3/index.js +1 -1
  271. package/dist/h3/v1/index.d.ts +1 -1
  272. package/dist/h3/v1/index.js +1 -1
  273. package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
  274. package/dist/hmac-DCud0myt.js +22 -0
  275. package/dist/hono/index.d.ts +19 -14
  276. package/dist/hono/index.js +21 -16
  277. package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
  278. package/dist/http-sbmBe5d2.js +25 -0
  279. package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
  280. package/dist/index-B72Rvv_j.d.ts +89 -0
  281. package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
  282. package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
  283. package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
  284. package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
  285. package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
  286. package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
  287. package/dist/index-DG2SUXDQ.d.ts +58 -0
  288. package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
  289. package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
  290. package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
  291. package/dist/index.d.ts +89 -14
  292. package/dist/index.js +12 -11
  293. package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
  294. package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
  295. package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
  296. package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
  297. package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
  298. package/dist/list/index.d.ts +1 -2
  299. package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
  300. package/dist/mcp/index.d.ts +49 -19
  301. package/dist/mcp/index.js +158 -94
  302. package/dist/mcp/sdk/index.d.ts +38 -6
  303. package/dist/mcp/sdk/index.js +88 -6
  304. package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
  305. package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
  306. package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
  307. package/dist/model-OgBxvk3N.d.ts +300 -0
  308. package/dist/model-messages-Cxw_Up4f.js +206 -0
  309. package/dist/model-messages-D4GZllOD.d.ts +34 -0
  310. package/dist/modules-DksjZyMW.js +77 -0
  311. package/dist/nestjs/index.d.ts +2 -2
  312. package/dist/nestjs/index.js +1 -1
  313. package/dist/next/index.d.ts +105 -55
  314. package/dist/next/index.js +204 -170
  315. package/dist/node/index.d.ts +2 -2
  316. package/dist/node/index.js +1 -1
  317. package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
  318. package/dist/openapi/index.d.ts +4 -2
  319. package/dist/openapi/index.js +21 -343
  320. package/dist/optional-peer-D1pi-skw.js +24 -0
  321. package/dist/orpc/index.d.ts +8 -8
  322. package/dist/orpc/index.js +21 -20
  323. package/dist/otel/index.d.ts +3 -3
  324. package/dist/otel/index.js +7 -7
  325. package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
  326. package/dist/overlay/index.d.ts +233 -0
  327. package/dist/overlay/index.js +554 -0
  328. package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
  329. package/dist/plugins/actor/index.d.ts +1 -1
  330. package/dist/plugins/actor/index.js +1 -1
  331. package/dist/plugins/rules/index.d.ts +2 -2
  332. package/dist/plugins/rules/index.js +1 -1
  333. package/dist/plugins/soft-delete/index.d.ts +3 -3
  334. package/dist/plugins/soft-delete/index.js +9 -2
  335. package/dist/plugins/tenant/index.d.ts +7 -2
  336. package/dist/plugins/tenant/index.js +16 -2
  337. package/dist/plugins/timestamps/index.d.ts +1 -1
  338. package/dist/plugins/timestamps/index.js +8 -1
  339. package/dist/plugins/validation/index.d.ts +2 -2
  340. package/dist/plugins/validation/index.js +4 -4
  341. package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
  342. package/dist/postgres/index.d.ts +4 -4
  343. package/dist/postgres/index.js +2 -1
  344. package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
  345. package/dist/powersync/index.d.ts +5 -5
  346. package/dist/powersync/index.js +4 -4
  347. package/dist/powersync/react/index.d.ts +3 -3
  348. package/dist/powersync/react/index.js +1 -1
  349. package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
  350. package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
  351. package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
  352. package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
  353. package/dist/query/index.d.ts +2 -2
  354. package/dist/query/index.js +1 -1
  355. package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
  356. package/dist/rate-limit-Bw7HgmFj.js +260 -0
  357. package/dist/react/index.d.ts +9 -9
  358. package/dist/react/index.js +4 -4
  359. package/dist/react/native/index.d.ts +1 -1
  360. package/dist/react/native/index.js +2 -2
  361. package/dist/react/server.d.ts +10 -10
  362. package/dist/react/server.js +3 -3
  363. package/dist/react/session.d.ts +2 -2
  364. package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
  365. package/dist/react-router/index.d.ts +6 -6
  366. package/dist/react-router/index.js +9 -11
  367. package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
  368. package/dist/realtime/index.d.ts +3 -3
  369. package/dist/realtime/index.js +30 -36
  370. package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
  371. package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
  372. package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
  373. package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
  374. package/dist/resource--vTrBe6I.d.ts +103 -0
  375. package/dist/resource-BqNqlYg9.js +91 -0
  376. package/dist/resource-DA811u_4.js +463 -0
  377. package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
  378. package/dist/resource-schemas-BJ518zFH.js +79 -0
  379. package/dist/resource-types-CqB6GWGT.d.ts +141 -0
  380. package/dist/resources-BVYPnuLo.js +56 -0
  381. package/dist/resources-DZSk8tXJ.d.ts +7 -0
  382. package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
  383. package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
  384. package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
  385. package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
  386. package/dist/server/index.d.ts +81 -19
  387. package/dist/server/index.js +16 -14
  388. package/dist/{server-ZSJ9rCcV.d.ts → server-types-CrAmZ8jv.d.ts} +110 -36
  389. package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
  390. package/dist/shared-DTneRoxi.js +14 -0
  391. package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
  392. package/dist/signatures-BRS_p3WD.d.ts +34 -0
  393. package/dist/signatures-DsWv_bYR.js +103 -0
  394. package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
  395. package/dist/solid/index.d.ts +9 -18
  396. package/dist/solid/index.js +2 -2
  397. package/dist/solid-start/index.d.ts +6 -6
  398. package/dist/solid-start/index.js +7 -7
  399. package/dist/spec/index.d.ts +134 -0
  400. package/dist/spec/index.js +353 -0
  401. package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
  402. package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
  403. package/dist/sql/index.d.ts +145 -119
  404. package/dist/sql/index.js +19921 -19798
  405. package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
  406. package/dist/ssr/index.d.ts +4 -4
  407. package/dist/ssr/index.js +3 -2
  408. package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
  409. package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
  410. package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
  411. package/dist/storage/index.d.ts +4 -6
  412. package/dist/storage/index.js +16 -17
  413. package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
  414. package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
  415. package/dist/streams/index.d.ts +4 -4
  416. package/dist/streams/index.js +5 -4
  417. package/dist/streams/redis/index.d.ts +1 -1
  418. package/dist/streams/redis/index.js +5 -11
  419. package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
  420. package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
  421. package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
  422. package/dist/{support-DWwzVf-O.js → support-D1pFFouF.js} +71 -35
  423. package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
  424. package/dist/svelte/index.d.ts +8 -17
  425. package/dist/svelte/index.js +2 -2
  426. package/dist/sveltekit/index.d.ts +7 -7
  427. package/dist/sveltekit/index.js +10 -12
  428. package/dist/table-schema-htM_SbCW.js +286 -0
  429. package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
  430. package/dist/tanstack-db/index.d.ts +2 -2
  431. package/dist/tanstack-db/supabase/index.d.ts +52 -0
  432. package/dist/tanstack-db/supabase/index.js +97 -0
  433. package/dist/tanstack-start/index.d.ts +6 -6
  434. package/dist/tanstack-start/index.js +8 -12
  435. package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
  436. package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
  437. package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
  438. package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
  439. package/dist/testing/index.d.ts +249 -118
  440. package/dist/testing/index.js +1418 -870
  441. package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
  442. package/dist/types-BRTSpOIh.js +5 -0
  443. package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
  444. package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
  445. package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
  446. package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
  447. package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
  448. package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
  449. package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
  450. package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
  451. package/dist/vercel-connect/index.d.ts +1 -1
  452. package/dist/vercel-connect/index.js +5 -11
  453. package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
  454. package/dist/verify-CJbYfADA.js +124 -0
  455. package/dist/{version--AolB5ej.js → version-Cq8gfDbd.js} +1 -1
  456. package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
  457. package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
  458. package/dist/vue/index.d.ts +9 -18
  459. package/dist/vue/index.js +2 -2
  460. package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
  461. package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
  462. package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
  463. package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
  464. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  465. package/dist/workflow-sdk/index.d.ts +1 -1
  466. package/dist/workflow-sdk/world/index.d.ts +23 -17
  467. package/dist/workflow-sdk/world/index.js +59 -76
  468. package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
  469. package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
  470. package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
  471. package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
  472. package/package.json +54 -3
  473. package/schemas/config-v1.json +243 -0
  474. package/schemas/doctor-report-v1.json +4 -1
  475. package/schemas/spec-manifest-v1.json +95 -0
  476. package/skills/better-supabase/SKILL.md +8 -4
  477. package/skills/better-supabase/references/troubleshooting.md +20 -20
  478. package/skills/better-supabase-api/references/expo.md +6 -3
  479. package/skills/better-supabase-api/references/powersync.md +2 -1
  480. package/skills/better-supabase-auth/SKILL.md +8 -4
  481. package/dist/cli/config-B9HkL8nF.js +0 -2
  482. package/dist/cli/gen-AIf4MREI.js +0 -3100
  483. package/dist/cli/gen-DSrahEdX.js +0 -2
  484. package/dist/cli/prompts-BTYQGunc.js +0 -2
  485. package/dist/cli/run-BO052mki.js +0 -361
  486. package/dist/config-Dn7F5k9A.js +0 -202
  487. package/dist/history-BZih6SFP.js +0 -64
  488. package/dist/index-BkWT_uBO.d.ts +0 -51
  489. package/dist/index-Bxih3l0u.d.ts +0 -81
  490. package/dist/index-CaxrMD1A.d.ts +0 -1
  491. package/dist/index-DQh4VCc9.d.ts +0 -98
  492. package/dist/keys-4MnkWTTh.js +0 -35
  493. package/dist/messages-DYP0sUTe.d.ts +0 -59
  494. package/dist/modules-dxrVK3ID.js +0 -228
  495. package/dist/path-Cv__-OTj.d.ts +0 -17
  496. package/dist/resource-BsvzCMlX.js +0 -212
  497. package/dist/resource-IPS5xi9q.d.ts +0 -74
  498. package/dist/template-CwO38Do8.d.ts +0 -6
  499. package/dist/verify-DL41hbvY.js +0 -232
  500. package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
@@ -1,6 +1,6 @@
1
1
  import { r as signInWithOAuthBrowser, t as handleAuthDeepLink } from "../../auth-link-DrDX9KOT.js";
2
- import { i as useAuth, n as ClientContext } from "../../hooks-1BTCJsiw.js";
3
- import { t as usePending } from "../../sign-in-Cb1mwv6X.js";
2
+ import { i as useAuth, n as ClientContext } from "../../hooks-Bhza9Hnr.js";
3
+ import { t as usePending } from "../../sign-in-D_yoP0PF.js";
4
4
  import { useContext, useEffect, useMemo, useRef, useState } from "react";
5
5
  //#region src/react/native/index.ts
6
6
  function useClientOf(explicit, hook) {
@@ -1,13 +1,13 @@
1
- import { t as escapeLike } from "../escape-like-ImTK0ps_.js";
2
- import { it as QuerySpec } from "../define-CJJkkr1-.js";
3
- import { s as Impersonator } from "../mfa-Daak8ukG.js";
4
- import { t as tenantOf } from "../tenant-BxNFk9bx.js";
5
- import { t as AuthSession } from "../view-CF7ihnkg.js";
6
- import { r as LiveCountSeed } from "../index-DunNRdnT.js";
7
- import { r as MembershipClaim } from "../entitlements-BKSVGtrG.js";
8
- import { n as supportOf, t as SupportView } from "../support-view-CVOJJLpc.js";
9
- import { a as BroadcastOptions, f as UseActionOptions, l as LiveQueryHookOptions, n as ActionInputOf, o as ClientLike, r as ActionResultOf, s as LiveCountHookOptions, t as fieldErrorsOf } from "../field-errors-BFOa7WhB.js";
10
- import { C as BetterSupabaseProviderProps, E as ProfileOf, M as useSupabase, O as useAuth, S as BetterSupabaseProvider, T as LiveCount, _ as ActionHandle, a as UploadTarget, c as useUpload$1, d as useDebouncedSearch$1, f as Presence, g as ActionForm, h as usePresence$1, i as UploadStatus, j as useLiveQuery, k as useBroadcast, l as DebouncedSearch, m as PresenceTopic, n as SignedUrlSource, o as UseUploadOptions, p as PresenceHookOptions, r as Upload, s as useSignedUrl$1, t as SignedUrl, u as DebouncedSearchOptions, v as UseActionFormOptions, w as ClaimsOf, x as BetterHooks } from "../index-CewnYSpv.js";
1
+ import { t as escapeLike } from "../escape-like-DDWoHzh_.js";
2
+ import { at as QuerySpec } from "../define-DmcfoNXB.js";
3
+ import { s as Impersonator } from "../mfa-SZc9YYyb.js";
4
+ import { t as tenantOf } from "../tenant-CM368LXb.js";
5
+ import { t as AuthSession } from "../view-TpXEUcVN.js";
6
+ import { r as LiveCountSeed } from "../index-BCHR4Ucl.js";
7
+ import { r as MembershipClaim } from "../entitlements-Ds8qoYZ-.js";
8
+ import { n as supportOf, t as SupportView } from "../support-view-scqMgtOo.js";
9
+ import { a as BroadcastOptions, c as LiveCountHookOptions, m as UseActionOptions, n as ActionInputOf, o as ClaimsOf, p as ProfileOf, r as ActionResultOf, s as ClientLike, t as fieldErrorsOf, u as LiveQueryHookOptions } from "../field-errors-DIe9XYWL.js";
10
+ import { A as useSupabase, C as BetterSupabaseProviderProps, D as useBroadcast, E as useAuth, S as BetterSupabaseProvider, _ as ActionHandle, a as UploadTarget, c as useUpload$1, d as useDebouncedSearch$1, f as Presence, g as ActionForm, h as usePresence$1, i as UploadStatus, k as useLiveQuery, l as DebouncedSearch, m as PresenceTopic, n as SignedUrlSource, o as UseUploadOptions, p as PresenceHookOptions, r as Upload, s as useSignedUrl$1, t as SignedUrl, u as DebouncedSearchOptions, v as UseActionFormOptions, w as LiveCount, x as BetterHooks } from "../index-_4R4b01v.js";
11
11
  import { SessionProvider, SessionProviderProps } from "./session.js";
12
12
  import { a as useSignIn$1, i as SignOut, n as PendingState, o as useSignOut$1, r as SignIn, t as AuthHookOptions } from "../sign-in-BCV5S2WZ.js";
13
13
  //#region src/react/server.d.ts
@@ -1,8 +1,8 @@
1
1
  import { t as escapeLike } from "../escape-like-DHfx6jRr.js";
2
2
  import { t as supportOf } from "../support-view-g4YLBeqX.js";
3
- import { a as useBroadcast, c as useLiveQuery, i as useAuth, l as useSupabase, t as BetterSupabaseProvider } from "../hooks-1BTCJsiw.js";
4
- import { t as fieldErrorsOf } from "../field-errors-VF1yb8yI.js";
5
- import "../react-F80mF4-t.js";
3
+ import { a as useBroadcast, c as useLiveQuery, i as useAuth, l as useSupabase, t as BetterSupabaseProvider } from "../hooks-Bhza9Hnr.js";
4
+ import { t as fieldErrorsOf } from "../field-errors-DZVRWRkf.js";
5
+ import "../react-Bmpo59D7.js";
6
6
  import { t as tenantOf } from "../tenant-I1TEZ_BX.js";
7
7
  import { SessionProvider } from "./session.js";
8
8
  //#region src/react/server.ts
@@ -1,5 +1,5 @@
1
- import { t as AuthSession } from "../view-CF7ihnkg.js";
2
- import { t as SupportView } from "../support-view-CVOJJLpc.js";
1
+ import { t as AuthSession } from "../view-TpXEUcVN.js";
2
+ import { t as SupportView } from "../support-view-scqMgtOo.js";
3
3
  import { ReactNode } from "react";
4
4
  //#region src/react/session.d.ts
5
5
  export interface SessionProviderProps {
@@ -1,9 +1,9 @@
1
- import { n as dbError } from "./errors-B11Duf73.js";
1
+ import { n as dbError } from "./errors-2M6CKMP4.js";
2
2
  import { t as escapeLike } from "./escape-like-DHfx6jRr.js";
3
- import { r as err, s as toDbError } from "./result-DzUbqgdW.js";
3
+ import { r as err, s as toDbError } from "./result-DEqHCMKP.js";
4
4
  import "./react/session.js";
5
- import { n as ClientContext, o as useBroadcastAuth } from "./hooks-1BTCJsiw.js";
6
- import { t as fieldErrorsOf } from "./field-errors-VF1yb8yI.js";
5
+ import { n as ClientContext, o as useBroadcastAuth } from "./hooks-Bhza9Hnr.js";
6
+ import { t as fieldErrorsOf } from "./field-errors-DZVRWRkf.js";
7
7
  import { n as ttlSeconds } from "./ttl-Hr34gRu8.js";
8
8
  import { useCallback, useContext, useEffect, useMemo, useRef, useState, useTransition } from "react";
9
9
  //#region src/react/actions.ts
@@ -1,9 +1,9 @@
1
- import { a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
2
- import { t as BetterSupabase } from "../define-CJJkkr1-.js";
3
- import { t as BetterServer } from "../server-ZSJ9rCcV.js";
4
- import { a as AuthorizedContext, c as Unwrapped, i as AuthorizeOptions, n as ActionParsed, o as BlockActionOptions, r as ActionResult, s as BlockRequireOptions } from "../kit-CkNzZUqv.js";
5
- import { t as RefusalRedirects } from "../refusal-DhSU2Vvr.js";
6
- import { n as FrameworkOptions, t as FrameworkLocals } from "../framework-KIPvRQJU.js";
1
+ import { a as AnyModels, i as AnyFunctions } from "../types-CoE5Zwy4.js";
2
+ import { t as BetterSupabase } from "../define-DmcfoNXB.js";
3
+ import { t as BetterServer } from "../server-types-CrAmZ8jv.js";
4
+ import { a as AuthorizedContext, c as Unwrapped, i as AuthorizeOptions, n as ActionParsed, o as BlockActionOptions, r as ActionResult, s as BlockRequireOptions } from "../kit-W99LCPBS.js";
5
+ import { t as RefusalRedirects } from "../refusal-CFI8-5nf.js";
6
+ import { n as FrameworkOptions, t as FrameworkLocals } from "../framework-148t1m3C.js";
7
7
  import { t as Validated } from "../shared-DDSjEGDR.js";
8
8
  import { AnyEntry, Contributions } from "@supabase/middleware";
9
9
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -1,10 +1,10 @@
1
- import { a as problemResponse } from "../problem-BreOl8b8.js";
2
- import { c as extendServer, n as flushEvents, s as createServer } from "../adapter-B-tL8hqg.js";
3
- import { o as settle, t as defaultExpose } from "../respond-BUgsXNgk.js";
4
- import { i as requireCaller, o as runAction } from "../kit-Fm-Fv7q5.js";
1
+ import { o as problemResponse } from "../problem-CJvFeGu7.js";
2
+ import { c as extendServer, o as withFlush, s as createServer } from "../adapter-CN45ibbV.js";
3
+ import { o as settle, t as defaultExpose } from "../respond-volM3ByS.js";
4
+ import { i as requireCaller, o as runAction } from "../kit-BhHr9T9v.js";
5
5
  import { n as bufferInPlace, t as around } from "../shared-CBxosKK3.js";
6
- import { i as localsOf, n as actionInput, r as frameworkEntry } from "../framework-BDCpJI7o.js";
7
- import { r as refusalResponse } from "../refusal-CeJWxmkH.js";
6
+ import { i as localsOf, n as actionInput, r as frameworkEntry } from "../framework-3ey3QmrO.js";
7
+ import { r as refusalResponse } from "../refusal-K78A1Vmq.js";
8
8
  //#region src/bridges/react-router.ts
9
9
  /**
10
10
  * Runs an entry array as React Router server middleware. The contributions
@@ -51,16 +51,14 @@ function createReactRouter(betterSupabase, options) {
51
51
  bufferInPlace(args.request);
52
52
  return run(args.request, options.platformEnv?.(args), async (contributions) => {
53
53
  args.context.set(key, localsOf(contributions));
54
- const response = await next();
55
- flushEvents(server, options.waitUntil);
56
- return response;
54
+ return withFlush(server, options.waitUntil, next);
57
55
  });
58
56
  },
59
57
  locals,
60
58
  loader(loaderOptions, fn) {
61
59
  return async (args) => {
62
60
  const scope = locals(args);
63
- const caller = await requireCaller(scope.bs.auth, loaderOptions, scope.tenant);
61
+ const caller = await requireCaller(scope.bs.auth, loaderOptions, scope.tenant, options.authorizer);
64
62
  if ("kind" in caller) throw refusalResponse(caller, args.request, options, expose);
65
63
  const ctx = {
66
64
  ...scope,
@@ -80,7 +78,7 @@ function createReactRouter(betterSupabase, options) {
80
78
  return await runAction(scope.bs.auth, actionOptions, await actionInput(args.request), scope.tenant, (parsed, caller) => fn(parsed, {
81
79
  ...scope,
82
80
  ...caller
83
- }, args));
81
+ }, args), options.authorizer);
84
82
  };
85
83
  }
86
84
  });
@@ -1,5 +1,5 @@
1
- import { n as dbError } from "./errors-B11Duf73.js";
2
- import { i as tableMeta, t as builderFor } from "./build-BXIzE6Xv.js";
1
+ import { n as dbError } from "./errors-2M6CKMP4.js";
2
+ import { i as tableMeta, t as builderFor } from "./build-meLuYGri.js";
3
3
  import { n as touchedTables } from "./tables-Cb-3_VWc.js";
4
4
  //#region src/core/spec.ts
5
5
  const READ_METHODS = [
@@ -1,4 +1,4 @@
1
- import { n as AccessPolicySql, r as AccessTopicPolicy } from "../types-6BdhkmZe.js";
2
- import { n as TemplateValues, t as TemplateParams } from "../template-CwO38Do8.js";
3
- import { A as TopicSubscription, C as TopicEvent, D as TopicPayload, E as TopicOptions, F as rowChange, M as TriggerOptions, N as TriggerValue, O as TopicSqlOptions, P as defineTopic, S as Topic, T as TopicMessage, _ as RealtimeClient, a as LiveSource, b as Subscription, c as liveQuery, d as PresenceInput, f as PresenceMember, g as PresenceSubscription, h as PresenceSchema, i as LiveQueryOptions, j as TriggerLookup, k as TopicSubscribeOptions, l as liveTopic, m as PresenceOutput, n as LiveCountOptions, o as LiveSubscription, p as PresenceOptions, r as LiveCountSeed, s as liveCount, t as CountRunner, u as EventSchemas, v as RowChange, w as TopicHandlers, x as SubscriptionStatus, y as SubscribeOptions } from "../index-DunNRdnT.js";
1
+ import { n as AccessPolicySql, r as AccessTopicPolicy } from "../types-CoE5Zwy4.js";
2
+ import { J as TemplateValues, q as TemplateParams } from "../storage-api-CB7Zl1Ci.js";
3
+ import { A as TopicSubscription, C as TopicEvent, D as TopicPayload, E as TopicOptions, F as rowChange, M as TriggerOptions, N as TriggerValue, O as TopicSqlOptions, P as defineTopic, S as Topic, T as TopicMessage, _ as RealtimeClient, a as LiveSource, b as Subscription, c as liveQuery, d as PresenceInput, f as PresenceMember, g as PresenceSubscription, h as PresenceSchema, i as LiveQueryOptions, j as TriggerLookup, k as TopicSubscribeOptions, l as liveTopic, m as PresenceOutput, n as LiveCountOptions, o as LiveSubscription, p as PresenceOptions, r as LiveCountSeed, s as liveCount, t as CountRunner, u as EventSchemas, v as RowChange, w as TopicHandlers, x as SubscriptionStatus, y as SubscribeOptions } from "../index-BCHR4Ucl.js";
4
4
  export { type AccessPolicySql, type AccessTopicPolicy, type CountRunner, type EventSchemas, type LiveCountOptions, type LiveCountSeed, type LiveQueryOptions, type LiveSource, type LiveSubscription, type PresenceInput, type PresenceMember, type PresenceOptions, type PresenceOutput, type PresenceSchema, type PresenceSubscription, type RealtimeClient, type RowChange, type SubscribeOptions, type Subscription, type SubscriptionStatus, type TemplateParams, type TemplateValues, type Topic, type TopicEvent, type TopicHandlers, type TopicMessage, type TopicOptions, type TopicPayload, type TopicSqlOptions, type TopicSubscribeOptions, type TopicSubscription, type TriggerLookup, type TriggerOptions, type TriggerValue, defineTopic, liveCount, liveQuery, liveTopic, rowChange };
@@ -1,25 +1,42 @@
1
- import { n as dbError } from "../errors-B11Duf73.js";
2
- import { a as ok, r as err, t as AsyncResult } from "../result-DzUbqgdW.js";
1
+ import { n as dbError } from "../errors-2M6CKMP4.js";
2
+ import { a as ok, r as err, t as AsyncResult } from "../result-DEqHCMKP.js";
3
3
  import { a as tenantClaimPaths } from "../claims-PqzCxaTD.js";
4
4
  import { i as refreshRealtimeAuth, n as liveQuery, r as liveTopic, t as liveCount } from "../live-CTAZQkwl.js";
5
- import { i as sqlString, n as slug, r as sqlIdent, t as parseTemplate } from "../template--jDkl3UP.js";
6
- import { c as toApp } from "../shared-CxWmcyqB.js";
5
+ import { a as sqlString, i as sqlIdent, n as parseTemplate, r as slug, t as claimSql } from "../template-lPVh-EwW.js";
7
6
  import { t as joinTopic } from "../channels-CkgQ_X60.js";
8
- import { o as resolveProviderSql, r as accessCheck } from "../access-sql-B0dF-SoF.js";
7
+ import { t as toApp } from "../casing-DdFWEtqr.js";
8
+ import { o as resolveProviderSql, r as accessCheck } from "../access-sql-CrSbK1q-.js";
9
9
  import "@supabase/supabase-js";
10
+ //#region src/realtime/topic-sql.ts
11
+ function columnSql(meta, column, where) {
12
+ const db = meta.columns[column]?.db;
13
+ if (!db) throw new TypeError(`defineTopic: no column for ${where} on "${meta.key}" ("${column}")`);
14
+ return sqlIdent(db);
15
+ }
16
+ /** A trigger value as SQL on `rec`, with one subquery per lookup. */
17
+ function triggerValueSql(tables, meta, value, where, depth = 0) {
18
+ if (typeof value === "string") return `rec.${columnSql(meta, value, where)}`;
19
+ const joined = tables[value.from];
20
+ if (!joined) throw new TypeError(`defineTopic: unknown table "${value.from}" for ${where}`);
21
+ const key = value.key ?? (joined.primaryKey.length === 1 ? joined.primaryKey[0] : void 0);
22
+ if (key === void 0) throw new TypeError(`defineTopic: "${value.from}" has no single-column primary key; name its key for ${where}`);
23
+ const alias = `j${String(depth)}`;
24
+ const via = triggerValueSql(tables, meta, value.via, where, depth + 1);
25
+ return `(select ${alias}.${columnSql(joined, value.select, where)} from ${sqlIdent(joined.schema)}.${sqlIdent(joined.name)} ${alias} where ${alias}.${columnSql(joined, key, where)} = ${via} limit 1)`;
26
+ }
27
+ /** The event name: one for every operation, one per operation, or the operation. */
28
+ function eventSql(event) {
29
+ if (event === void 0) return "tg_op";
30
+ if (typeof event === "string") return sqlString(event);
31
+ const cases = Object.entries(event).filter((entry) => entry[1] !== void 0).map(([operation, name]) => ` when ${sqlString(operation.toUpperCase())} then ${sqlString(name)}`);
32
+ return cases.length === 0 ? "tg_op" : `case tg_op${cases.join("")} else tg_op end`;
33
+ }
34
+ //#endregion
10
35
  //#region src/realtime/topic.ts
11
36
  const VALUE = /^[\w.@+=-]+$/;
12
37
  function validateValue(_name, value) {
13
38
  return VALUE.test(value) ? void 0 : "contains characters topics do not allow";
14
39
  }
15
- function claimSql(claim) {
16
- const expressions = (typeof claim === "string" ? [claim] : claim).map((path) => {
17
- const keys = path.split(".");
18
- const last = keys.pop();
19
- return `(select auth.jwt())${keys.map((key) => ` -> ${sqlString(key)}`).join("")} ->> ${sqlString(last)}`;
20
- });
21
- return expressions.length === 1 ? expressions[0] : `coalesce(${expressions.join(", ")})`;
22
- }
23
40
  async function validate(schema, value) {
24
41
  if (!schema) return {
25
42
  ok: true,
@@ -44,29 +61,6 @@ function sendError(status, message) {
44
61
  if (status === 429 || status >= 500 || status === 0) return dbError("network", message, status ? { status } : {});
45
62
  return dbError("invalid_request", message, { status });
46
63
  }
47
- function columnSql(meta, column, where) {
48
- const db = meta.columns[column]?.db;
49
- if (!db) throw new TypeError(`defineTopic: no column for ${where} on "${meta.key}" ("${column}")`);
50
- return sqlIdent(db);
51
- }
52
- /** A trigger value as SQL on `rec`, with one subquery per lookup. */
53
- function triggerValueSql(tables, meta, value, where, depth = 0) {
54
- if (typeof value === "string") return `rec.${columnSql(meta, value, where)}`;
55
- const joined = tables[value.from];
56
- if (!joined) throw new TypeError(`defineTopic: unknown table "${value.from}" for ${where}`);
57
- const key = value.key ?? (joined.primaryKey.length === 1 ? joined.primaryKey[0] : void 0);
58
- if (key === void 0) throw new TypeError(`defineTopic: "${value.from}" has no single-column primary key; name its key for ${where}`);
59
- const alias = `j${String(depth)}`;
60
- const via = triggerValueSql(tables, meta, value.via, where, depth + 1);
61
- return `(select ${alias}.${columnSql(joined, value.select, where)} from ${sqlIdent(joined.schema)}.${sqlIdent(joined.name)} ${alias} where ${alias}.${columnSql(joined, key, where)} = ${via} limit 1)`;
62
- }
63
- /** The event name: one for every operation, one per operation, or the operation. */
64
- function eventSql(event) {
65
- if (event === void 0) return "tg_op";
66
- if (typeof event === "string") return sqlString(event);
67
- const cases = Object.entries(event).filter((entry) => entry[1] !== void 0).map(([operation, name]) => ` when ${sqlString(operation.toUpperCase())} then ${sqlString(name)}`);
68
- return cases.length === 0 ? "tg_op" : `case tg_op${cases.join("")} else tg_op end`;
69
- }
70
64
  /**
71
65
  * A typed Realtime broadcast topic: names from a template, RLS policies for
72
66
  * private channels, row-change triggers, and disposable subscriptions.
@@ -1,4 +1,5 @@
1
- import { s as BlockRequireOptions } from "./kit-CkNzZUqv.js";
1
+ import { t as AnyAuthorizer } from "./authorizer-eiOjo-3l.js";
2
+ import { s as BlockRequireOptions } from "./kit-W99LCPBS.js";
2
3
  //#region src/server/refusal.d.ts
3
4
  /** Where refused callers go instead of a Problem Details response. */
4
5
  interface RefusalRedirects {
@@ -10,6 +11,8 @@ interface RefusalRedirects {
10
11
  interface RouteGuardOptions<C = unknown, P = unknown> extends BlockRequireOptions<C, P>, RefusalRedirects {
11
12
  /** Include internal error messages in Problem Details. Defaults to development only. */
12
13
  readonly expose?: boolean;
14
+ /** Decides `permission`; without one, a route with a `permission` refuses every caller. */
15
+ readonly authorizer?: AnyAuthorizer;
13
16
  }
14
17
  //#endregion
15
18
  export { RouteGuardOptions as n, RefusalRedirects as t };
@@ -1,7 +1,7 @@
1
- import { r as dbErrorOf } from "./errors-B11Duf73.js";
2
- import { a as problemResponse } from "./problem-BreOl8b8.js";
3
- import { t as defaultExpose } from "./respond-BUgsXNgk.js";
4
- import { i as requireCaller } from "./kit-Fm-Fv7q5.js";
1
+ import { r as dbErrorOf } from "./errors-2M6CKMP4.js";
2
+ import { o as problemResponse } from "./problem-CJvFeGu7.js";
3
+ import { t as defaultExpose } from "./respond-volM3ByS.js";
4
+ import { i as requireCaller } from "./kit-BhHr9T9v.js";
5
5
  //#region src/server/refusal.ts
6
6
  function isAalRefusal(error) {
7
7
  return error.kind === "forbidden" && "required" in error && error.required === "aal2";
@@ -30,7 +30,7 @@ function refusalResponse(error, request, redirects, expose) {
30
30
  }
31
31
  /** The refusal for a caller `options` refuses, or `undefined` to let it through. */
32
32
  async function routeRefusal(locals, request, options) {
33
- const caller = await requireCaller(locals.bs.auth, options, locals.tenant);
33
+ const caller = await requireCaller(locals.bs.auth, options, locals.tenant, options.authorizer);
34
34
  if (!("kind" in caller)) return void 0;
35
35
  return refusalResponse(caller, request, options, options.expose ?? defaultExpose());
36
36
  }
@@ -1,7 +1,7 @@
1
- import { n as dbError } from "./errors-B11Duf73.js";
1
+ import { n as dbError } from "./errors-2M6CKMP4.js";
2
2
  import { t as consoleLogger } from "./logger-glM28NVN.js";
3
- import { n as decodeJwtPayload } from "./base64-D2gsioCY.js";
4
- import { a as actorOf, i as userContext } from "./impersonation-DcqaTBHx.js";
3
+ import { n as decodeJwtPayload, r as fromBase64, t as base64ToText } from "./base64-D2gsioCY.js";
4
+ import { a as actorOf } from "./impersonation-DcqaTBHx.js";
5
5
  import { DEFAULT_COOKIE_OPTIONS, createChunks, isChunkLike, parseCookieHeader, serializeCookieHeader, stringFromBase64URL, stringToBase64URL } from "@supabase/ssr";
6
6
  import { extractCredentials, verifyCredentials } from "@supabase/server/core";
7
7
  //#region src/auth/session.ts
@@ -179,6 +179,92 @@ function clearSessionCookies(request, response, options) {
179
179
  return response;
180
180
  }
181
181
  //#endregion
182
+ //#region src/auth/hs256.ts
183
+ const encoder = /* @__PURE__ */ new TextEncoder();
184
+ /** The most HMAC keys kept at once; the oldest goes first. */
185
+ const KEYS_SIZE = 64;
186
+ const keys = /* @__PURE__ */ new Map();
187
+ function keyFor(secret) {
188
+ let key = keys.get(secret);
189
+ if (!key) {
190
+ key = crypto.subtle.importKey("raw", encoder.encode(secret), {
191
+ name: "HMAC",
192
+ hash: "SHA-256"
193
+ }, false, ["verify"]);
194
+ keys.set(secret, key);
195
+ if (keys.size > KEYS_SIZE) {
196
+ const oldest = keys.keys().next();
197
+ if (!oldest.done) keys.delete(oldest.value);
198
+ }
199
+ }
200
+ return key;
201
+ }
202
+ function parseJson(part) {
203
+ try {
204
+ const parsed = JSON.parse(base64ToText(part));
205
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? parsed : void 0;
206
+ } catch {
207
+ return;
208
+ }
209
+ }
210
+ /**
211
+ * Whether the token is HS256 without a `kid`, the shape Supabase Lite (and
212
+ * legacy shared-secret projects) issue.
213
+ */
214
+ function isSharedSecretToken(token) {
215
+ const part = token.split(".", 1)[0];
216
+ const header = part ? parseJson(part) : void 0;
217
+ return header?.["alg"] === "HS256" && header["kid"] === void 0;
218
+ }
219
+ function fail(message) {
220
+ return {
221
+ ok: false,
222
+ code: "INVALID_JWT",
223
+ message
224
+ };
225
+ }
226
+ function matches(claim, expected) {
227
+ const wanted = typeof expected === "string" ? [expected] : expected;
228
+ return (Array.isArray(claim) ? claim : [claim]).some((value) => typeof value === "string" && wanted.includes(value));
229
+ }
230
+ /**
231
+ * Verifies an HS256 user token against a shared secret with WebCrypto:
232
+ * the signature, `exp`, `nbf`, and `aud` and `iss` when they are given.
233
+ */
234
+ async function verifyHs256(token, secret, options) {
235
+ const parts = token.split(".");
236
+ const [encodedHeader, encodedPayload, encodedSignature] = parts;
237
+ if (parts.length !== 3 || !encodedHeader || !encodedPayload || encodedSignature === void 0) return fail("The token is not a JWT");
238
+ if (parseJson(encodedHeader)?.["alg"] !== "HS256") return fail("The token is not signed with HS256");
239
+ let signature;
240
+ try {
241
+ signature = fromBase64(encodedSignature);
242
+ } catch {
243
+ return fail("The token signature is not base64url");
244
+ }
245
+ if (!await crypto.subtle.verify("HMAC", await keyFor(secret), signature, encoder.encode(`${encodedHeader}.${encodedPayload}`))) return fail("The token signature does not match the JWT secret");
246
+ const payload = parseJson(encodedPayload);
247
+ if (!payload) return fail("The token payload is not a JSON object");
248
+ const { exp, nbf, sub } = payload;
249
+ if (typeof exp === "number" && exp <= options.now) return fail("The token has expired");
250
+ if (typeof nbf === "number" && nbf > options.now) return fail("The token is not valid yet");
251
+ if (options.audience !== void 0 && !matches(payload["aud"], options.audience)) return fail("The token audience does not match");
252
+ if (options.issuer !== void 0 && !matches(payload["iss"], options.issuer)) return fail("The token issuer does not match");
253
+ if (typeof sub !== "string") return fail("The token has no sub claim, so it identifies no user");
254
+ const claims = payload;
255
+ return {
256
+ ok: true,
257
+ claims,
258
+ user: {
259
+ id: sub,
260
+ ...typeof claims.role === "string" ? { role: claims.role } : {},
261
+ ...typeof claims.email === "string" ? { email: claims.email } : {},
262
+ ...claims.app_metadata ? { appMetadata: claims.app_metadata } : {},
263
+ ...claims.user_metadata ? { userMetadata: claims.user_metadata } : {}
264
+ }
265
+ };
266
+ }
267
+ //#endregion
182
268
  //#region src/auth/refresh.ts
183
269
  /**
184
270
  * How long a finished refresh is reused for requests still carrying the old
@@ -304,6 +390,24 @@ function serverEnv(options) {
304
390
  const MEMO_SIZE = 256;
305
391
  const memoByUrl = /* @__PURE__ */ new Map();
306
392
  let memoByJwks = /* @__PURE__ */ new WeakMap();
393
+ /** The most JWT secrets remembered at once; the oldest goes first. */
394
+ const SECRET_IDS_SIZE = 64;
395
+ /** A number per JWT secret, so memo keys tell secrets apart. Bounded, and never reuses a number. */
396
+ const secretIds = /* @__PURE__ */ new Map();
397
+ let nextSecretId = 1;
398
+ function secretId(secret) {
399
+ if (secret === void 0) return null;
400
+ let id = secretIds.get(secret);
401
+ if (id === void 0) {
402
+ id = nextSecretId++;
403
+ secretIds.set(secret, id);
404
+ if (secretIds.size > SECRET_IDS_SIZE) {
405
+ const oldest = secretIds.keys().next();
406
+ if (!oldest.done) secretIds.delete(oldest.value);
407
+ }
408
+ }
409
+ return id;
410
+ }
307
411
  /**
308
412
  * Tokens that already verified, until they expire. Every private-cache scope
309
413
  * and island resolves the same token again; this skips the signature check.
@@ -316,7 +420,8 @@ function memoFor(options) {
316
420
  inline ? null : String(jwks ?? options.env.jwksUrl),
317
421
  options.env.url,
318
422
  options.audience ?? null,
319
- options.issuer ?? null
423
+ options.issuer ?? null,
424
+ secretId(options.jwtSecret)
320
425
  ]);
321
426
  if (inline) {
322
427
  let byKey = memoByJwks.get(jwks);
@@ -472,6 +577,27 @@ function prefetchJwks(options) {
472
577
  }).then(() => {}, () => {});
473
578
  }
474
579
  async function verifyOnce(credentials, modes, options, source) {
580
+ const token = credentials.token;
581
+ if (options.jwtSecret !== void 0 && token && modes.length === 1 && modes[0] === "user" && isSharedSecretToken(token)) {
582
+ const verified = await verifyHs256(token, options.jwtSecret, {
583
+ now: Math.floor((options.now ?? Date.now)() / 1e3),
584
+ ...options.audience === void 0 ? {} : { audience: options.audience },
585
+ ...options.issuer === void 0 ? {} : { issuer: options.issuer }
586
+ });
587
+ if (!verified.ok) return {
588
+ kind: "invalid",
589
+ reason: "token",
590
+ error: dbError("unauthorized", verified.message, { code: verified.code })
591
+ };
592
+ return {
593
+ kind: "user",
594
+ token,
595
+ claims: verified.claims,
596
+ user: verified.user,
597
+ source,
598
+ expiresAt: typeof verified.claims.exp === "number" ? verified.claims.exp : null
599
+ };
600
+ }
475
601
  const { data, error } = await verifyCredentials(credentials, {
476
602
  auth: modes,
477
603
  env: serverEnv(options),
@@ -656,42 +782,5 @@ async function resolveAuth(request, options) {
656
782
  apikey: null
657
783
  }, ["user"], options, "cookie"), cookies, writes);
658
784
  }
659
- /** The repository context (`actor`, `claims`) for an auth state. */
660
- function authContext(auth) {
661
- switch (auth.kind) {
662
- case "user": return userContext(auth.user, auth.claims);
663
- case "service": return {
664
- actor: {
665
- id: `service:${auth.keyName}`,
666
- kind: "service",
667
- role: "service_role"
668
- },
669
- claims: { role: "service_role" }
670
- };
671
- case "apiKey": return {
672
- actor: auth.userId ? {
673
- id: auth.userId,
674
- kind: "user",
675
- role: "authenticated"
676
- } : {
677
- id: `api-key:${auth.keyId}`,
678
- kind: "service",
679
- role: "authenticated"
680
- },
681
- claims: auth.claims,
682
- ...auth.organizationId ? { tenant: auth.organizationId } : {}
683
- };
684
- case "anon":
685
- case "invalid": return {
686
- actor: {
687
- id: "anon",
688
- kind: "anon",
689
- role: "anon"
690
- },
691
- claims: { role: "anon" }
692
- };
693
- default: return auth;
694
- }
695
- }
696
785
  //#endregion
697
- export { writeSession as _, refreshSession as a, AUTH_CACHE_HEADERS as c, clearSessionAtScopes as d, parseCookies as f, sessionEncoding as g, sessionCookieName as h, resolveAuth as i, DEFAULT_SESSION_ENCODING as l, serializeCookie as m, clientIp as n, clearSessionCookies as o, readSession as p, prefetchJwks as r, sessionStatus as s, authContext as t, applyCookieWrites as u };
786
+ export { clearSessionCookies as a, DEFAULT_SESSION_ENCODING as c, parseCookies as d, readSession as f, writeSession as g, sessionEncoding as h, refreshSession as i, applyCookieWrites as l, sessionCookieName as m, prefetchJwks as n, sessionStatus as o, serializeCookie as p, resolveAuth as r, AUTH_CACHE_HEADERS as s, clientIp as t, clearSessionAtScopes as u };
@@ -1,10 +1,9 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { b as DbError } from "./result-D7y2fT87.js";
3
- import { m as RequestContext } from "./plugin-FGY8UhYm.js";
4
- import { l as RefreshEvent } from "./events-DWDhx77e.js";
2
+ import { b as DbError } from "./result-BchM1XZn.js";
3
+ import { l as RefreshEvent } from "./events-D1BOCll8.js";
5
4
  import { n as Logger } from "./logger-DWVYUmwi.js";
6
- import { t as StandardSchemaV1 } from "./standard-CYsm7xpT.js";
7
- import { t as BetterSupabaseEnv } from "./index-CLg87OBW.js";
5
+ import { t as StandardSchemaV1 } from "./standard-lmkbOtPB.js";
6
+ import { t as BetterSupabaseEnv } from "./index-BUK7jUzR.js";
8
7
  import { a as CookieWrite, n as CookieOptions, r as CookieRecord, s as SessionEncoding } from "./session-ChiXDZdZ.js";
9
8
  import { JWTClaims, SupabaseEnv, UserClaims } from "@supabase/server";
10
9
  //#region src/auth/resolve.d.ts
@@ -110,6 +109,13 @@ interface ResolveAuthOptions {
110
109
  readonly cookies?: boolean;
111
110
  /** Inline JWKS instead of fetching `env.jwksUrl` (tests, air-gapped). */
112
111
  readonly jwks?: SupabaseEnv["jwks"];
112
+ /**
113
+ * Verify HS256 tokens without a `kid` locally with this shared secret, the
114
+ * tokens Supabase Lite issues (`auth.jwt_secret`). Tokens with a `kid`
115
+ * still verify against the JWKS. `createServer` sets it from
116
+ * `SUPABASE_JWT_SECRET` with `backend: "lite"`.
117
+ */
118
+ readonly jwtSecret?: string;
113
119
  /**
114
120
  * Validates the verified claims (`betterSupabase.claims(schema)` sets it). A failure
115
121
  * resolves to `{ kind: 'invalid', reason: 'claims' }`.
@@ -163,7 +169,5 @@ declare function clientIp(request: Request): string | undefined;
163
169
  * set, through a single-flight request, and only then are cookies written.
164
170
  */
165
171
  declare function resolveAuth(request: Request, options: ResolveAuthOptions): Promise<AuthResolution>;
166
- /** The repository context (`actor`, `claims`) for an auth state. */
167
- declare function authContext(auth: AuthState): RequestContext;
168
172
  //#endregion
169
- export { ResolveAuthOptions as a, clientIp as c, InvalidReason as i, resolveAuth as l, AuthResolver as n, ResolvedState as o, AuthState as r, authContext as s, AuthResolution as t };
173
+ export { ResolveAuthOptions as a, resolveAuth as c, InvalidReason as i, AuthResolver as n, ResolvedState as o, AuthState as r, clientIp as s, AuthResolution as t };
@@ -0,0 +1,103 @@
1
+ import { R as TableMeta } from "./types-CoE5Zwy4.js";
2
+ import { D as SecurityRequirement, E as ResourceOperation, r as JsonObject } from "./model-OgBxvk3N.js";
3
+ //#region src/spec/schemas.d.ts
4
+ /** A Standard Schema, or anything else that might carry `~standard`. */
5
+ interface StandardLike {
6
+ readonly "~standard": object;
7
+ }
8
+ //#endregion
9
+ //#region src/spec/resource.d.ts
10
+ type ResourcePagination = "offset" | "cursor";
11
+ type ActionMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
12
+ /** A custom endpoint on a resource, documented next to its CRUD operations. */
13
+ interface ResourceActionSpec<Ref = string> {
14
+ readonly method: ActionMethod;
15
+ /**
16
+ * Relative to the collection: `/{id}/send` acts on one row (the key
17
+ * parameter is the table's primary key), `/export` on the table.
18
+ */
19
+ readonly path: string;
20
+ /** The JSON body. */
21
+ readonly input?: StandardLike;
22
+ /** The query parameters, as an object schema. */
23
+ readonly query?: StandardLike;
24
+ /** The JSON response. Without it the action answers 204. */
25
+ readonly output?: StandardLike;
26
+ /** Success status. Defaults to 200 with an output, 204 without. */
27
+ readonly status?: number;
28
+ readonly summary?: string;
29
+ readonly description?: string;
30
+ readonly deprecated?: boolean;
31
+ readonly permission?: Ref;
32
+ /** Names of the events the action emits, for AsyncAPI. */
33
+ readonly emits?: readonly string[];
34
+ }
35
+ /** One shared error response: its component name, status and description. */
36
+ interface ErrorResponse {
37
+ readonly name: string;
38
+ readonly status: number;
39
+ readonly description: string;
40
+ }
41
+ /**
42
+ * What a resource serves and documents. `defineResource` and `defineApi`
43
+ * read the same object, so the routes and the spec cannot drift.
44
+ */
45
+ interface ResourceDescription<Ref = string> {
46
+ /** Defaults to every operation for tables, `list` and `get` for views. */
47
+ readonly operations?: readonly ResourceOperation[];
48
+ /** Filters, search and sorts for `list`, from `defineListQuery`. */
49
+ readonly list?: {
50
+ readonly openapi: readonly unknown[];
51
+ readonly pagination?: ResourcePagination;
52
+ };
53
+ /** Paging of the default list. Defaults to `offset`. */
54
+ readonly pagination?: ResourcePagination;
55
+ /** Largest page of the default list. Defaults to 200. */
56
+ readonly maxPageSize?: number;
57
+ /** Path of the collection in the spec. Defaults to `/<table>`. */
58
+ readonly path?: string;
59
+ readonly tag?: string;
60
+ readonly description?: string;
61
+ /** Validates request bodies; their JSON Schema replaces the table's in the spec. */
62
+ readonly input?: {
63
+ readonly create?: StandardLike;
64
+ readonly update?: StandardLike;
65
+ };
66
+ /** The response shape of an operation whose hooks change it. */
67
+ readonly output?: Partial<Readonly<Record<ResourceOperation, StandardLike>>>;
68
+ readonly actions?: Readonly<Record<string, ResourceActionSpec<Ref>>>;
69
+ /**
70
+ * The permission of each operation. `true` asks the authorizer
71
+ * (`forOperation`) for every enabled operation.
72
+ */
73
+ readonly permissions?: true | Partial<Readonly<Record<ResourceOperation, Ref>>>;
74
+ /** Overrides the model's security for this resource; `[]` makes it public. */
75
+ readonly security?: readonly SecurityRequirement[];
76
+ /** The shared error responses. Defaults to the API's `errors`. */
77
+ readonly errors?: readonly ErrorResponse[];
78
+ /** Deep-merged into the lowered operation, by operation or action name (`*` for all). */
79
+ readonly extend?: Readonly<Record<string, JsonObject>>;
80
+ }
81
+ interface PlannedAction<Ref = string> extends ResourceActionSpec<Ref> {
82
+ readonly name: string;
83
+ /** The `{name}` segments of `path`. */
84
+ readonly params: readonly string[];
85
+ /** The path split into segments; `{name}` segments are params. */
86
+ readonly segments: readonly string[];
87
+ }
88
+ /** A resolved `ResourceDescription`. */
89
+ interface ResourcePlan<Ref = string> {
90
+ readonly table: string;
91
+ readonly meta: TableMeta;
92
+ readonly operations: readonly ResourceOperation[];
93
+ /** Name of the key parameter, or `undefined` for tables without a single-column key. */
94
+ readonly keyParam: string | undefined;
95
+ readonly pagination: ResourcePagination;
96
+ readonly maxPageSize: number;
97
+ readonly description: ResourceDescription<Ref>;
98
+ readonly actions: readonly PlannedAction<Ref>[];
99
+ /** The permission reference of each operation and action that has one. */
100
+ readonly permissions: Readonly<Record<string, Ref>>;
101
+ }
102
+ //#endregion
103
+ export { ResourcePlan as a, ResourcePagination as i, ResourceActionSpec as n, StandardLike as o, ResourceDescription as r, ErrorResponse as t };