better-supabase 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +6 -2
  2. package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
  3. package/dist/{adapter-iKgjHVPx.js → adapter-CN45ibbV.js} +658 -157
  4. package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
  5. package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
  6. package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
  7. package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
  8. package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
  9. package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
  10. package/dist/ai-message-DfaP8sis.js +14 -0
  11. package/dist/ai-sdk/agents/index.d.ts +4 -4
  12. package/dist/ai-sdk/batches/index.d.ts +4 -4
  13. package/dist/ai-sdk/batches/index.js +4 -4
  14. package/dist/ai-sdk/cache/index.d.ts +2 -2
  15. package/dist/ai-sdk/cache/index.js +2 -2
  16. package/dist/ai-sdk/chat/index.d.ts +1 -1
  17. package/dist/ai-sdk/chat/index.js +8 -20
  18. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  19. package/dist/ai-sdk/files/index.d.ts +3 -3
  20. package/dist/ai-sdk/files/index.js +4 -4
  21. package/dist/ai-sdk/index.d.ts +37 -9
  22. package/dist/ai-sdk/index.js +3 -2
  23. package/dist/ai-sdk/mcp/index.d.ts +43 -6
  24. package/dist/ai-sdk/mcp/index.js +36 -7
  25. package/dist/ai-sdk/memory/index.d.ts +2 -2
  26. package/dist/ai-sdk/memory/index.js +1 -1
  27. package/dist/ai-sdk/workflow/index.d.ts +6 -6
  28. package/dist/ai-sdk/workflow/index.js +13 -24
  29. package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
  30. package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
  31. package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
  32. package/dist/api-Dnf2q-Ht.d.ts +370 -0
  33. package/dist/api-DtHFC037.js +676 -0
  34. package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
  35. package/dist/arazzo/index.d.ts +255 -0
  36. package/dist/arazzo/index.js +622 -0
  37. package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
  38. package/dist/astro/index.d.ts +7 -7
  39. package/dist/astro/index.js +7 -7
  40. package/dist/asyncapi/index.d.ts +103 -0
  41. package/dist/asyncapi/index.js +569 -0
  42. package/dist/authorizer-ayxUDXXP.js +126 -0
  43. package/dist/authorizer-eiOjo-3l.d.ts +73 -0
  44. package/dist/better-result/index.d.ts +118 -0
  45. package/dist/better-result/index.js +64 -0
  46. package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
  47. package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
  48. package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
  49. package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
  50. package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
  51. package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
  52. package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
  53. package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
  54. package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
  55. package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
  56. package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
  57. package/dist/blocks/agents/index.d.ts +3 -3
  58. package/dist/blocks/agents/index.js +5 -4
  59. package/dist/blocks/ai-cache/index.d.ts +3 -3
  60. package/dist/blocks/ai-cache/index.js +3 -3
  61. package/dist/blocks/ai-chat/index.d.ts +9 -4
  62. package/dist/blocks/ai-chat/index.js +5 -5
  63. package/dist/blocks/ai-chat/react/index.d.ts +3 -3
  64. package/dist/blocks/ai-chat/react/index.js +5 -5
  65. package/dist/blocks/ai-files/index.d.ts +3 -3
  66. package/dist/blocks/ai-files/index.js +3 -3
  67. package/dist/blocks/ai-providers/index.d.ts +3 -3
  68. package/dist/blocks/ai-providers/index.js +8 -7
  69. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  70. package/dist/blocks/ai-tasks/index.js +7 -6
  71. package/dist/blocks/announcements/index.d.ts +3 -3
  72. package/dist/blocks/announcements/index.js +3 -3
  73. package/dist/blocks/announcements/react/index.d.ts +3 -3
  74. package/dist/blocks/announcements/react/index.js +3 -3
  75. package/dist/blocks/api-keys/index.d.ts +5 -5
  76. package/dist/blocks/api-keys/index.js +8 -8
  77. package/dist/blocks/attachments/index.d.ts +12 -8
  78. package/dist/blocks/attachments/index.js +22 -13
  79. package/dist/blocks/audit/index.d.ts +21 -10
  80. package/dist/blocks/audit/index.js +30 -11
  81. package/dist/blocks/billing/index.d.ts +11 -9
  82. package/dist/blocks/billing/index.js +15 -15
  83. package/dist/blocks/comments/index.d.ts +8 -8
  84. package/dist/blocks/comments/index.js +8 -7
  85. package/dist/blocks/connectors/index.d.ts +3 -3
  86. package/dist/blocks/connectors/index.js +7 -6
  87. package/dist/blocks/data-lifecycle/index.d.ts +12 -8
  88. package/dist/blocks/data-lifecycle/index.js +13 -8
  89. package/dist/blocks/entitlements/index.d.ts +3 -3
  90. package/dist/blocks/entitlements/index.js +1 -1
  91. package/dist/blocks/flags/index.d.ts +4 -4
  92. package/dist/blocks/flags/index.js +4 -3
  93. package/dist/blocks/inbox/index.d.ts +3 -3
  94. package/dist/blocks/inbox/index.js +4 -5
  95. package/dist/blocks/inbox/react/index.d.ts +1 -1
  96. package/dist/blocks/inbox/react/index.js +1 -1
  97. package/dist/blocks/inbox/react/server.d.ts +1 -1
  98. package/dist/blocks/index.d.ts +10 -10
  99. package/dist/blocks/index.js +6 -6
  100. package/dist/blocks/jobs/index.d.ts +48 -32
  101. package/dist/blocks/jobs/index.js +44 -287
  102. package/dist/blocks/knowledge/index.d.ts +3 -3
  103. package/dist/blocks/knowledge/index.js +3 -3
  104. package/dist/blocks/memory/index.d.ts +4 -4
  105. package/dist/blocks/memory/index.js +7 -6
  106. package/dist/blocks/notifications/index.d.ts +11 -9
  107. package/dist/blocks/notifications/index.js +20 -25
  108. package/dist/blocks/notifications/react/index.d.ts +1 -1
  109. package/dist/blocks/notifications/react/index.js +1 -1
  110. package/dist/blocks/onboarding/index.d.ts +3 -3
  111. package/dist/blocks/onboarding/index.js +3 -3
  112. package/dist/blocks/onboarding/react/index.d.ts +2 -2
  113. package/dist/blocks/onboarding/react/index.js +2 -2
  114. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  115. package/dist/blocks/organizations/index.d.ts +9 -9
  116. package/dist/blocks/organizations/index.js +11 -18
  117. package/dist/blocks/outbox/index.d.ts +2 -2
  118. package/dist/blocks/outbox/index.js +16 -25
  119. package/dist/blocks/profiles/index.d.ts +7 -7
  120. package/dist/blocks/profiles/index.js +7 -6
  121. package/dist/blocks/push/index.d.ts +4 -4
  122. package/dist/blocks/push/index.js +3 -3
  123. package/dist/blocks/settings/index.d.ts +4 -4
  124. package/dist/blocks/settings/index.js +7 -6
  125. package/dist/blocks/sso/index.d.ts +5 -5
  126. package/dist/blocks/sso/index.js +6 -5
  127. package/dist/blocks/usage/index.d.ts +3 -3
  128. package/dist/blocks/usage/index.js +5 -4
  129. package/dist/blocks/waitlist/index.d.ts +5 -5
  130. package/dist/blocks/waitlist/index.js +5 -4
  131. package/dist/blocks/webhooks/index.d.ts +22 -13
  132. package/dist/blocks/webhooks/index.js +41 -70
  133. package/dist/blocks/workflow-builder/index.d.ts +4 -4
  134. package/dist/blocks/workflow-builder/index.js +3 -3
  135. package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
  136. package/dist/blocks/workflow-builder/react/index.js +4 -4
  137. package/dist/blocks/workflows/index.d.ts +3 -3
  138. package/dist/blocks/workflows/index.js +3 -3
  139. package/dist/blocks/workflows/react/index.d.ts +3 -3
  140. package/dist/blocks/workflows/react/index.js +3 -3
  141. package/dist/build-hPwk3_X5.js +1296 -0
  142. package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
  143. package/dist/casing-DdFWEtqr.js +16 -0
  144. package/dist/chat-sdk/index.d.ts +6 -6
  145. package/dist/chat-sdk/index.js +5 -4
  146. package/dist/chat-sdk/react/index.d.ts +1 -1
  147. package/dist/chat-sdk/react/server.d.ts +1 -1
  148. package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
  149. package/dist/cli/add-1dc5wM5k.js +69 -0
  150. package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
  151. package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
  152. package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
  153. package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
  154. package/dist/cli/bin.js +4 -4
  155. package/dist/cli/cache-CIfA-jBV.js +483 -0
  156. package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
  157. package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
  158. package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
  159. package/dist/cli/config-DpbF8ML3.js +2 -0
  160. package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
  161. package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
  162. package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
  163. package/dist/cli/{doctor-DJk0aeBi.js → doctor-VcDtuusV.js} +316 -221
  164. package/dist/cli/emit-BHHfwUoT.js +1136 -0
  165. package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
  166. package/dist/cli/env-vzBG90Um.js +2 -0
  167. package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
  168. package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
  169. package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
  170. package/dist/cli/files-BVupXPIC.js +34 -0
  171. package/dist/cli/gen-DmVj3u4L.js +322 -0
  172. package/dist/cli/{init-BHuEQrQK.js → glue-C1UE8gQN.js} +16 -313
  173. package/dist/cli/index.d.ts +59 -31
  174. package/dist/cli/index.js +8 -6
  175. package/dist/cli/init-CVZ3s5kl.js +258 -0
  176. package/dist/cli/{introspect-DzR2nyQb.js → introspect-BToGNfm-.js} +14 -14
  177. package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
  178. package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
  179. package/dist/cli/metadata-DSRKCaf-.js +133 -0
  180. package/dist/cli/names-D6LrQnOv.js +6 -0
  181. package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
  182. package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
  183. package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
  184. package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
  185. package/dist/cli/prompts-BdeVmVpg.js +2 -0
  186. package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
  187. package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
  188. package/dist/cli/run-DA6_lg3w.js +389 -0
  189. package/dist/cli/run-DuN1MX-7.js +705 -0
  190. package/dist/cli/scaffold-5DenHSxF.js +292 -0
  191. package/dist/cli/scaffold-CwQUMFRb.js +2 -0
  192. package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
  193. package/dist/cli/seed-DOmit9Hq.js +2 -0
  194. package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
  195. package/dist/cli/snapshot-Bstk6ulj.js +287 -0
  196. package/dist/cli/source-args-BYfq6imV.js +31 -0
  197. package/dist/cli/spec-CzosTYm3.js +7438 -0
  198. package/dist/cli/spec-T_0Bcyw7.js +2 -0
  199. package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
  200. package/dist/cli/sql-DJrNDxQm.js +3 -0
  201. package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
  202. package/dist/cli/typegen-Demi5-VQ.js +486 -0
  203. package/dist/cli/validate-Ca13ktgz.js +7522 -0
  204. package/dist/cli/{version-59gcepIG.js → version-B4k0aUxS.js} +1 -1
  205. package/dist/client/index.d.ts +4 -3
  206. package/dist/client/index.js +60 -3
  207. package/dist/client/native/index.d.ts +3 -3
  208. package/dist/client/native/index.js +3 -3
  209. package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
  210. package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
  211. package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
  212. package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
  213. package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
  214. package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
  215. package/dist/{composite--yqry7uW.d.ts → composite-CWAJTRBF.d.ts} +6 -6
  216. package/dist/{composite-DXVUibdi.js → composite-zTe0TCqj.js} +4 -4
  217. package/dist/config/index.d.ts +3 -4
  218. package/dist/config/index.js +4 -4
  219. package/dist/config-DlKvtt95.js +540 -0
  220. package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
  221. package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
  222. package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
  223. package/dist/context-nPDvQ-Zl.js +41 -0
  224. package/dist/credentials/index.d.ts +5 -5
  225. package/dist/credentials/index.js +9 -17
  226. package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
  227. package/dist/cron-route-D2AN9SA1.js +24 -0
  228. package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
  229. package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
  230. package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
  231. package/dist/edge/index.d.ts +66 -13
  232. package/dist/edge/index.js +65 -39
  233. package/dist/elysia/index.d.ts +1 -1
  234. package/dist/elysia/index.js +1 -1
  235. package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
  236. package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
  237. package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
  238. package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
  239. package/dist/env/index.d.ts +1 -1
  240. package/dist/env/index.js +9 -2
  241. package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
  242. package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
  243. package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
  244. package/dist/eve/index.d.ts +5 -5
  245. package/dist/eve/index.js +5 -11
  246. package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
  247. package/dist/events/index.d.ts +4 -4
  248. package/dist/events/index.js +7 -2
  249. package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
  250. package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
  251. package/dist/executor-B_Hfobee.js +162 -0
  252. package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
  253. package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
  254. package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
  255. package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
  256. package/dist/expo/index.d.ts +4 -4
  257. package/dist/expo/index.js +6 -6
  258. package/dist/expo-sqlite/index.d.ts +3 -3
  259. package/dist/expo-sqlite/index.js +2 -2
  260. package/dist/extra-CGQ2_q3S.js +10 -0
  261. package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
  262. package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
  263. package/dist/format-DTXdu8ya.d.ts +70 -0
  264. package/dist/{framework-BmzgK32X.d.ts → framework-148t1m3C.d.ts} +5 -5
  265. package/dist/{framework-a7aRCIqv.js → framework-3ey3QmrO.js} +2 -2
  266. package/dist/function-contract-BcZenXMO.d.ts +8 -0
  267. package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
  268. package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
  269. package/dist/h3/index.d.ts +1 -1
  270. package/dist/h3/index.js +1 -1
  271. package/dist/h3/v1/index.d.ts +1 -1
  272. package/dist/h3/v1/index.js +1 -1
  273. package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
  274. package/dist/hmac-DCud0myt.js +22 -0
  275. package/dist/hono/index.d.ts +19 -14
  276. package/dist/hono/index.js +21 -16
  277. package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
  278. package/dist/http-sbmBe5d2.js +25 -0
  279. package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
  280. package/dist/index-B72Rvv_j.d.ts +89 -0
  281. package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
  282. package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
  283. package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
  284. package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
  285. package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
  286. package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
  287. package/dist/index-DG2SUXDQ.d.ts +58 -0
  288. package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
  289. package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
  290. package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
  291. package/dist/index.d.ts +89 -14
  292. package/dist/index.js +12 -11
  293. package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
  294. package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
  295. package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
  296. package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
  297. package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
  298. package/dist/list/index.d.ts +1 -2
  299. package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
  300. package/dist/mcp/index.d.ts +49 -19
  301. package/dist/mcp/index.js +158 -94
  302. package/dist/mcp/sdk/index.d.ts +38 -6
  303. package/dist/mcp/sdk/index.js +88 -6
  304. package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
  305. package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
  306. package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
  307. package/dist/model-OgBxvk3N.d.ts +300 -0
  308. package/dist/model-messages-Cxw_Up4f.js +206 -0
  309. package/dist/model-messages-D4GZllOD.d.ts +34 -0
  310. package/dist/modules-DksjZyMW.js +77 -0
  311. package/dist/nestjs/index.d.ts +2 -2
  312. package/dist/nestjs/index.js +1 -1
  313. package/dist/next/index.d.ts +105 -55
  314. package/dist/next/index.js +204 -170
  315. package/dist/node/index.d.ts +2 -2
  316. package/dist/node/index.js +1 -1
  317. package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
  318. package/dist/openapi/index.d.ts +4 -2
  319. package/dist/openapi/index.js +21 -343
  320. package/dist/optional-peer-D1pi-skw.js +24 -0
  321. package/dist/orpc/index.d.ts +8 -8
  322. package/dist/orpc/index.js +21 -20
  323. package/dist/otel/index.d.ts +3 -3
  324. package/dist/otel/index.js +7 -7
  325. package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
  326. package/dist/overlay/index.d.ts +233 -0
  327. package/dist/overlay/index.js +554 -0
  328. package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
  329. package/dist/plugins/actor/index.d.ts +1 -1
  330. package/dist/plugins/actor/index.js +1 -1
  331. package/dist/plugins/rules/index.d.ts +2 -2
  332. package/dist/plugins/rules/index.js +1 -1
  333. package/dist/plugins/soft-delete/index.d.ts +3 -3
  334. package/dist/plugins/soft-delete/index.js +9 -2
  335. package/dist/plugins/tenant/index.d.ts +7 -2
  336. package/dist/plugins/tenant/index.js +16 -2
  337. package/dist/plugins/timestamps/index.d.ts +1 -1
  338. package/dist/plugins/timestamps/index.js +8 -1
  339. package/dist/plugins/validation/index.d.ts +2 -2
  340. package/dist/plugins/validation/index.js +4 -4
  341. package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
  342. package/dist/postgres/index.d.ts +4 -4
  343. package/dist/postgres/index.js +2 -1
  344. package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
  345. package/dist/powersync/index.d.ts +5 -5
  346. package/dist/powersync/index.js +4 -4
  347. package/dist/powersync/react/index.d.ts +3 -3
  348. package/dist/powersync/react/index.js +1 -1
  349. package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
  350. package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
  351. package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
  352. package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
  353. package/dist/query/index.d.ts +2 -2
  354. package/dist/query/index.js +1 -1
  355. package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
  356. package/dist/rate-limit-Bw7HgmFj.js +260 -0
  357. package/dist/react/index.d.ts +9 -9
  358. package/dist/react/index.js +4 -4
  359. package/dist/react/native/index.d.ts +1 -1
  360. package/dist/react/native/index.js +2 -2
  361. package/dist/react/server.d.ts +10 -10
  362. package/dist/react/server.js +3 -3
  363. package/dist/react/session.d.ts +2 -2
  364. package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
  365. package/dist/react-router/index.d.ts +6 -6
  366. package/dist/react-router/index.js +9 -11
  367. package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
  368. package/dist/realtime/index.d.ts +3 -3
  369. package/dist/realtime/index.js +30 -36
  370. package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
  371. package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
  372. package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
  373. package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
  374. package/dist/resource--vTrBe6I.d.ts +103 -0
  375. package/dist/resource-BqNqlYg9.js +91 -0
  376. package/dist/resource-DA811u_4.js +463 -0
  377. package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
  378. package/dist/resource-schemas-BJ518zFH.js +79 -0
  379. package/dist/resource-types-CqB6GWGT.d.ts +141 -0
  380. package/dist/resources-BVYPnuLo.js +56 -0
  381. package/dist/resources-DZSk8tXJ.d.ts +7 -0
  382. package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
  383. package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
  384. package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
  385. package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
  386. package/dist/server/index.d.ts +81 -19
  387. package/dist/server/index.js +16 -14
  388. package/dist/{server-Bh0EVSwU.d.ts → server-types-CrAmZ8jv.d.ts} +92 -36
  389. package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
  390. package/dist/shared-DTneRoxi.js +14 -0
  391. package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
  392. package/dist/signatures-BRS_p3WD.d.ts +34 -0
  393. package/dist/signatures-DsWv_bYR.js +103 -0
  394. package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
  395. package/dist/solid/index.d.ts +9 -18
  396. package/dist/solid/index.js +2 -2
  397. package/dist/solid-start/index.d.ts +6 -6
  398. package/dist/solid-start/index.js +7 -7
  399. package/dist/spec/index.d.ts +134 -0
  400. package/dist/spec/index.js +353 -0
  401. package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
  402. package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
  403. package/dist/sql/index.d.ts +145 -119
  404. package/dist/sql/index.js +19921 -19798
  405. package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
  406. package/dist/ssr/index.d.ts +4 -4
  407. package/dist/ssr/index.js +3 -2
  408. package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
  409. package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
  410. package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
  411. package/dist/storage/index.d.ts +4 -6
  412. package/dist/storage/index.js +16 -17
  413. package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
  414. package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
  415. package/dist/streams/index.d.ts +4 -4
  416. package/dist/streams/index.js +5 -4
  417. package/dist/streams/redis/index.d.ts +1 -1
  418. package/dist/streams/redis/index.js +5 -11
  419. package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
  420. package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
  421. package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
  422. package/dist/{support-ig_K4PvS.js → support-D1pFFouF.js} +71 -35
  423. package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
  424. package/dist/svelte/index.d.ts +8 -17
  425. package/dist/svelte/index.js +2 -2
  426. package/dist/sveltekit/index.d.ts +7 -7
  427. package/dist/sveltekit/index.js +10 -12
  428. package/dist/table-schema-htM_SbCW.js +286 -0
  429. package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
  430. package/dist/tanstack-db/index.d.ts +2 -2
  431. package/dist/tanstack-db/supabase/index.d.ts +52 -0
  432. package/dist/tanstack-db/supabase/index.js +97 -0
  433. package/dist/tanstack-start/index.d.ts +6 -6
  434. package/dist/tanstack-start/index.js +8 -12
  435. package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
  436. package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
  437. package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
  438. package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
  439. package/dist/testing/index.d.ts +249 -118
  440. package/dist/testing/index.js +1418 -870
  441. package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
  442. package/dist/types-BRTSpOIh.js +5 -0
  443. package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
  444. package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
  445. package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
  446. package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
  447. package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
  448. package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
  449. package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
  450. package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
  451. package/dist/vercel-connect/index.d.ts +1 -1
  452. package/dist/vercel-connect/index.js +5 -11
  453. package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
  454. package/dist/verify-CJbYfADA.js +124 -0
  455. package/dist/{version-C6OfRAIn.js → version-Cq8gfDbd.js} +1 -1
  456. package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
  457. package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
  458. package/dist/vue/index.d.ts +9 -18
  459. package/dist/vue/index.js +2 -2
  460. package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
  461. package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
  462. package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
  463. package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
  464. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  465. package/dist/workflow-sdk/index.d.ts +1 -1
  466. package/dist/workflow-sdk/world/index.d.ts +23 -17
  467. package/dist/workflow-sdk/world/index.js +59 -76
  468. package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
  469. package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
  470. package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
  471. package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
  472. package/package.json +54 -3
  473. package/schemas/config-v1.json +243 -0
  474. package/schemas/doctor-report-v1.json +4 -1
  475. package/schemas/spec-manifest-v1.json +95 -0
  476. package/skills/better-supabase/SKILL.md +8 -4
  477. package/skills/better-supabase/references/troubleshooting.md +20 -20
  478. package/skills/better-supabase-api/references/expo.md +6 -3
  479. package/skills/better-supabase-api/references/powersync.md +2 -1
  480. package/dist/cli/config-B9HkL8nF.js +0 -2
  481. package/dist/cli/gen-CCMc39Dx.js +0 -3100
  482. package/dist/cli/gen-DRmzPI75.js +0 -2
  483. package/dist/cli/prompts-BTYQGunc.js +0 -2
  484. package/dist/cli/run-BqDPh9UH.js +0 -361
  485. package/dist/config-Dn7F5k9A.js +0 -202
  486. package/dist/history-BZih6SFP.js +0 -64
  487. package/dist/index-BkWT_uBO.d.ts +0 -51
  488. package/dist/index-Bxih3l0u.d.ts +0 -81
  489. package/dist/index-CaxrMD1A.d.ts +0 -1
  490. package/dist/index-DQh4VCc9.d.ts +0 -98
  491. package/dist/keys-4MnkWTTh.js +0 -35
  492. package/dist/messages-DYP0sUTe.d.ts +0 -59
  493. package/dist/modules-dxrVK3ID.js +0 -228
  494. package/dist/path-Cv__-OTj.d.ts +0 -17
  495. package/dist/resource-BsvzCMlX.js +0 -212
  496. package/dist/resource-IPS5xi9q.d.ts +0 -74
  497. package/dist/template-CwO38Do8.d.ts +0 -6
  498. package/dist/verify-DL41hbvY.js +0 -232
  499. package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
@@ -1,10 +1,24 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { b as DbError, f as Result, t as AsyncResult } from "./result-D7y2fT87.js";
3
- import { G as ObjectVersion, K as VersioningStatus, U as BucketLifecycle, s as BucketPolicyName, t as AccessBucketPolicy } from "./types-6BdhkmZe.js";
4
- import { m as RequestContext } from "./plugin-FGY8UhYm.js";
5
- import { n as StoragePath, t as PathIn } from "./path-Cv__-OTj.js";
6
- import { n as TemplateValues, t as TemplateParams } from "./template-CwO38Do8.js";
2
+ import { b as DbError, f as Result, t as AsyncResult } from "./result-BchM1XZn.js";
3
+ import { G as ObjectVersion, K as VersioningStatus, U as BucketLifecycle, s as BucketPolicyName, t as AccessBucketPolicy } from "./types-CoE5Zwy4.js";
4
+ import { m as RequestContext } from "./plugin-CPK2HsbY.js";
7
5
  import { SupabaseClient } from "@supabase/supabase-js";
6
+ //#region src/storage/path.d.ts
7
+ declare const bucketOf: unique symbol;
8
+ /**
9
+ * An object path in bucket `B`, e.g. `org-1/cust-1/logo/3.webp`. Returned by
10
+ * `bucket.path()` and `upload()`, and the type of columns listed in the
11
+ * `storagePaths` config. Store paths, not URLs: signed URLs expire and public
12
+ * URLs pin the project host.
13
+ */
14
+ type StoragePath<B extends string = string> = string & {
15
+ readonly [bucketOf]: B;
16
+ };
17
+ /** A plain string or a `StoragePath` of bucket `B`; paths of other buckets are rejected. */
18
+ type PathIn<B extends string> = string & {
19
+ readonly [bucketOf]?: B;
20
+ };
21
+ //#endregion
8
22
  //#region src/storage/ttl.d.ts
9
23
  declare const TTL: {
10
24
  readonly minute: 60;
@@ -14,6 +28,11 @@ declare const TTL: {
14
28
  };
15
29
  type TtlPreset = keyof typeof TTL;
16
30
  //#endregion
31
+ //#region src/core/template.d.ts
32
+ /** Placeholder names in a `{name}` template; a rest placeholder `{...name}` is `name`. */
33
+ type TemplateParams<P extends string> = P extends `${string}{${infer K}}${infer R}` ? (K extends `...${infer N}` ? N : K) | TemplateParams<R> : never;
34
+ type TemplateValues<P extends string> = { readonly [K in TemplateParams<P>]: string | number; };
35
+ //#endregion
17
36
  //#region src/storage/apply.d.ts
18
37
  interface AppliedBucket {
19
38
  /** The bucket did not exist and was created. */
@@ -203,7 +222,8 @@ interface ActualBucket {
203
222
  /** `storage.buckets.lifecycle_configuration`; leave it out to skip the comparison. */
204
223
  readonly lifecycle?: unknown;
205
224
  }
206
- type StorageClient = Pick<SupabaseClient, "storage">;
225
+ /** A supabase-js client with the secret key: `apply()` needs the bucket admin API. */
226
+ type StorageAdminClient = Pick<SupabaseClient, "storage">;
207
227
  interface BucketClient<P extends string, Id extends string = string> {
208
228
  readonly bucket: Bucket<P, Id>;
209
229
  /** The object path, checked against the template and, with `tenant`, the caller's tenant. */
@@ -303,7 +323,7 @@ interface Bucket<P extends string, Id extends string = string> {
303
323
  * versioning and the lifecycle policy, which `sql()` can't set. Needs the
304
324
  * secret key. Idempotent.
305
325
  */
306
- apply(client: StorageClient): AsyncResult<AppliedBucket>;
326
+ apply(client: StorageAdminClient): AsyncResult<AppliedBucket>;
307
327
  connect(client: StorageClient, options?: BucketConnectOptions): BucketClient<P, Id>;
308
328
  }
309
329
  interface BucketConnectOptions {
@@ -344,4 +364,219 @@ declare function parseSize(value: string | number): number;
344
364
  */
345
365
  declare function defineBucket<const P extends string, const Id extends string = string>(config: BucketConfig<P, Id>): Bucket<P, Id>;
346
366
  //#endregion
347
- export { UrlOptions as C, TTL as D, AppliedBucket as E, TtlPreset as O, UploadOptions as S, parseSize as T, SweepOptions as _, BucketConnectOptions as a, TransformOptions as b, DownloadOptions as c, PurgeCacheOptions as d, ReplaceOptions as f, StoredObject as g, StorageClient as h, BucketConfig as i, ObjectTarget as l, Reservation as m, Bucket as n, BucketDrift as o, ReplaceResult as p, BucketClient as r, BucketPolicy as s, ActualBucket as t, PathValues as u, SweepResult as v, defineBucket as w, UploadBody as x, TransferOptions as y };
367
+ //#region src/storage/storage-api.d.ts
368
+ /** A failed Storage call's `error`, as supabase-js returns it (`StorageApiError`, `StorageUnknownError`). */
369
+ interface StorageFailure {
370
+ readonly name: string;
371
+ readonly message: string;
372
+ readonly status?: number | undefined;
373
+ readonly statusCode?: string | undefined;
374
+ /** The Storage error code, such as `NoSuchKey` or `AccessDenied`. */
375
+ readonly code?: string | undefined;
376
+ }
377
+ /** What a supabase-js Storage call resolves to: `data` or `error`, never both. */
378
+ type StorageResponse<T> = {
379
+ readonly data: T;
380
+ readonly error: null;
381
+ } | {
382
+ readonly data: null;
383
+ readonly error: StorageFailure;
384
+ };
385
+ interface StorageTransform {
386
+ readonly width?: number;
387
+ readonly height?: number;
388
+ readonly resize?: "cover" | "contain" | "fill";
389
+ readonly quality?: number;
390
+ readonly format?: "origin";
391
+ }
392
+ interface StorageUrlOptions {
393
+ readonly download?: string | boolean;
394
+ readonly transform?: StorageTransform;
395
+ readonly cacheNonce?: string;
396
+ readonly versionId?: string;
397
+ }
398
+ interface StorageDownloadOptions {
399
+ readonly transform?: StorageTransform;
400
+ readonly cacheNonce?: string;
401
+ readonly versionId?: string;
402
+ }
403
+ interface StorageFetchParameters {
404
+ readonly signal?: AbortSignal;
405
+ readonly cache?: "default" | "no-store" | "reload" | "no-cache" | "force-cache" | "only-if-cached";
406
+ }
407
+ interface StorageFileOptions {
408
+ readonly cacheControl?: string;
409
+ readonly contentType?: string;
410
+ readonly upsert?: boolean;
411
+ readonly duplex?: string;
412
+ readonly metadata?: Readonly<Record<string, unknown>>;
413
+ readonly headers?: Readonly<Record<string, string>>;
414
+ }
415
+ interface StorageDestinationOptions {
416
+ readonly destinationBucket?: string;
417
+ readonly sourceVersionId?: string;
418
+ }
419
+ /** `list(prefix, options)`: one folder level, folders first when sorted by name. */
420
+ interface StorageSearchOptions {
421
+ /** Defaults to 100. */
422
+ readonly limit?: number;
423
+ readonly offset?: number;
424
+ /** Defaults to `{ column: "name", order: "asc" }`. */
425
+ readonly sortBy?: {
426
+ readonly column?: string;
427
+ readonly order?: string;
428
+ };
429
+ /** Entries whose name starts with this text, ignoring case. */
430
+ readonly search?: string;
431
+ readonly noncurrentVersions?: "exclude" | "include" | "only";
432
+ readonly deleteMarkers?: "exclude" | "include" | "only";
433
+ readonly exactMatch?: boolean;
434
+ }
435
+ interface StorageSearchV2Options {
436
+ /** Defaults to 1000, the most one page returns. */
437
+ readonly limit?: number;
438
+ readonly prefix?: string;
439
+ /** `nextCursor` of the previous page. */
440
+ readonly cursor?: string;
441
+ /** Group the objects below the next `/` into folders. */
442
+ readonly with_delimiter?: boolean;
443
+ readonly sortBy?: {
444
+ readonly column: "name" | "updated_at" | "created_at";
445
+ readonly order?: "asc" | "desc";
446
+ };
447
+ readonly noncurrentVersions?: "exclude" | "include" | "only";
448
+ readonly deleteMarkers?: "exclude" | "include" | "only";
449
+ readonly exactMatch?: boolean;
450
+ }
451
+ /** An entry of `list`: a file, or a folder when `id` is `null`. */
452
+ interface StorageListEntry {
453
+ readonly name: string;
454
+ readonly id: string | null;
455
+ readonly updated_at: string | null;
456
+ readonly created_at: string | null;
457
+ readonly last_accessed_at?: string | null;
458
+ readonly metadata: Readonly<Record<string, unknown>> | null;
459
+ }
460
+ interface StorageListV2Object {
461
+ readonly name: string;
462
+ readonly key?: string;
463
+ readonly id: string;
464
+ readonly updated_at: string;
465
+ readonly created_at: string;
466
+ readonly last_accessed_at?: string;
467
+ readonly metadata: Readonly<Record<string, unknown>> | null;
468
+ readonly version?: string;
469
+ readonly archived_at?: string | null;
470
+ readonly is_delete_marker?: boolean;
471
+ readonly is_versioned?: boolean;
472
+ }
473
+ interface StorageListV2Folder {
474
+ /** The folder's full path, ending in `/`. */
475
+ readonly name: string;
476
+ readonly key?: string;
477
+ }
478
+ interface StorageListV2Result {
479
+ readonly hasNext: boolean;
480
+ readonly nextCursor?: string;
481
+ readonly folders: readonly StorageListV2Folder[];
482
+ readonly objects: readonly StorageListV2Object[];
483
+ }
484
+ /** `info(path)`, in camelCase as supabase-js returns it. */
485
+ interface StorageObjectInfo {
486
+ readonly id: string;
487
+ readonly name: string;
488
+ readonly version: string;
489
+ readonly bucketId: string;
490
+ readonly createdAt: string;
491
+ readonly size?: number;
492
+ readonly contentType?: string;
493
+ readonly cacheControl?: string;
494
+ readonly etag?: string;
495
+ readonly lastModified?: string;
496
+ readonly metadata?: Readonly<Record<string, unknown>>;
497
+ readonly updatedAt?: string;
498
+ readonly archivedAt?: string | null;
499
+ readonly isDeleteMarker?: boolean;
500
+ readonly isVersioned?: boolean;
501
+ }
502
+ interface StorageSignedUrlEntry {
503
+ readonly error: string | null;
504
+ readonly path: string | null;
505
+ readonly signedUrl: string | null;
506
+ }
507
+ type StorageRemoveEntry = string | {
508
+ readonly path: string;
509
+ readonly versionId: string;
510
+ };
511
+ /**
512
+ * One bucket's file API: the methods of supabase-js
513
+ * `supabase.storage.from(bucket)` that bucket clients and blocks call,
514
+ * typed structurally so another implementation (such as `supportStorage`)
515
+ * can stand in for it.
516
+ */
517
+ interface StorageBucketApi {
518
+ upload(path: string, body: UploadBody, options?: StorageFileOptions): PromiseLike<StorageResponse<{
519
+ readonly path: string;
520
+ }>>;
521
+ update(path: string, body: UploadBody, options?: StorageFileOptions): PromiseLike<StorageResponse<{
522
+ readonly path: string;
523
+ }>>;
524
+ createSignedUploadUrl(path: string, options?: {
525
+ upsert: boolean;
526
+ }): PromiseLike<StorageResponse<{
527
+ readonly signedUrl: string;
528
+ readonly token: string;
529
+ readonly path: string;
530
+ }>>;
531
+ uploadToSignedUrl(path: string, token: string, body: UploadBody, options?: StorageFileOptions): PromiseLike<StorageResponse<{
532
+ readonly path: string;
533
+ }>>;
534
+ download(path: string, options?: StorageDownloadOptions, parameters?: StorageFetchParameters): PromiseLike<StorageResponse<Blob>>;
535
+ info(path: string, options?: {
536
+ versionId?: string;
537
+ }): PromiseLike<StorageResponse<StorageObjectInfo>>;
538
+ /** `data` is `false` with an `error` when Storage answers 400 or 404. */
539
+ exists(path: string): PromiseLike<{
540
+ readonly data: boolean;
541
+ readonly error: null;
542
+ } | {
543
+ readonly data: boolean;
544
+ readonly error: StorageFailure;
545
+ }>;
546
+ createSignedUrl(path: string, expiresIn: number, options?: StorageUrlOptions): PromiseLike<StorageResponse<{
547
+ readonly signedUrl: string;
548
+ }>>;
549
+ createSignedUrls(paths: string[], expiresIn: number, options?: {
550
+ download?: string | boolean;
551
+ cacheNonce?: string;
552
+ }): PromiseLike<StorageResponse<readonly StorageSignedUrlEntry[]>>;
553
+ getPublicUrl(path: string, options?: StorageUrlOptions): {
554
+ readonly data: {
555
+ readonly publicUrl: string;
556
+ };
557
+ };
558
+ remove(paths: StorageRemoveEntry[]): PromiseLike<StorageResponse<readonly StorageListEntry[]>>;
559
+ copy(from: string, to: string, options?: StorageDestinationOptions): PromiseLike<StorageResponse<{
560
+ readonly path: string;
561
+ }>>;
562
+ move(from: string, to: string, options?: StorageDestinationOptions): PromiseLike<StorageResponse<{
563
+ readonly message: string;
564
+ }>>;
565
+ purgeCache(path: string, options?: {
566
+ transformations?: true;
567
+ }, parameters?: StorageFetchParameters): PromiseLike<StorageResponse<{
568
+ readonly message: string;
569
+ }>>;
570
+ list(path?: string, options?: StorageSearchOptions, parameters?: StorageFetchParameters): PromiseLike<StorageResponse<readonly StorageListEntry[]>>;
571
+ listV2(options?: StorageSearchV2Options, parameters?: StorageFetchParameters): PromiseLike<StorageResponse<StorageListV2Result>>;
572
+ }
573
+ /** Storage's file API: `supabase.storage`, or anything with the same `from(bucket)`. */
574
+ interface StorageApi {
575
+ from(bucket: string): StorageBucketApi;
576
+ }
577
+ /** What `bucket.connect()` takes: a `StorageApi`, or a client that carries one as `storage` (a supabase-js client). */
578
+ type StorageClient = StorageApi | {
579
+ readonly storage: StorageApi;
580
+ };
581
+ //#endregion
582
+ export { PathValues as A, TransformOptions as B, BucketClient as C, BucketPolicy as D, BucketDrift as E, StorageAdminClient as F, parseSize as G, UploadOptions as H, StoredObject as I, TemplateValues as J, AppliedBucket as K, SweepOptions as L, ReplaceOptions as M, ReplaceResult as N, DownloadOptions as O, Reservation as P, StoragePath as Q, SweepResult as R, Bucket as S, BucketConnectOptions as T, UrlOptions as U, UploadBody as V, defineBucket as W, TtlPreset as X, TTL as Y, PathIn as Z, StorageSearchV2Options as _, StorageDownloadOptions as a, StorageUrlOptions as b, StorageFileOptions as c, StorageListV2Object as d, StorageListV2Result as f, StorageSearchOptions as g, StorageResponse as h, StorageDestinationOptions as i, PurgeCacheOptions as j, ObjectTarget as k, StorageListEntry as l, StorageRemoveEntry as m, StorageBucketApi as n, StorageFailure as o, StorageObjectInfo as p, TemplateParams as q, StorageClient as r, StorageFetchParameters as s, StorageApi as t, StorageListV2Folder as u, StorageSignedUrlEntry as v, BucketConfig as w, ActualBucket as x, StorageTransform as y, TransferOptions as z };
@@ -1,4 +1,4 @@
1
- import { t as AsyncResult } from "./result-D7y2fT87.js";
1
+ import { t as AsyncResult } from "./result-BchM1XZn.js";
2
2
  //#region src/streams/store.d.ts
3
3
  /** How a stream is opened. */
4
4
  interface StreamOpenOptions {
@@ -1,6 +1,6 @@
1
- import { t as AsyncResult, w as ErrorMapper } from "../result-D7y2fT87.js";
2
- import { i as sqlTransport, r as rpcTransport, t as BlockTransport } from "../block-transport-DvaoPuZ9.js";
3
- import { a as StreamStatus, i as StreamReadOptions, n as StreamOpenOptions, o as StreamStore, r as StreamPurgeOptions, t as StreamAppendResult } from "../store-CGjgWu5n.js";
1
+ import { t as AsyncResult, w as ErrorMapper } from "../result-BchM1XZn.js";
2
+ import { a as dbTransport, o as rpcTransport, s as sqlTransport, t as BlockTransport } from "../block-transport-inD4fFq-.js";
3
+ import { a as StreamStatus, i as StreamReadOptions, n as StreamOpenOptions, o as StreamStore, r as StreamPurgeOptions, t as StreamAppendResult } from "../store-DsIYEBnv.js";
4
4
  import { SupabaseClient } from "@supabase/supabase-js";
5
5
  //#region src/streams/postgres.d.ts
6
6
  interface PostgresStreamStoreOptions {
@@ -73,4 +73,4 @@ interface ResumeFromStoreOptions {
73
73
  */
74
74
  export declare function resumeFromStore(store: StreamStore, id: string, options?: ResumeFromStoreOptions): AsyncResult<ReadableStream<string> | undefined>;
75
75
  //#endregion
76
- export { type BlockTransport, type PostgresStreamStoreOptions, type ResumeFromStoreOptions, type StreamAppendResult, type StreamOpenOptions, type StreamPurgeOptions, type StreamReadOptions, type StreamStatus, type StreamStore, type TeeToStoreOptions, type TeedStream, rpcTransport, sqlTransport };
76
+ export { type BlockTransport, type PostgresStreamStoreOptions, type ResumeFromStoreOptions, type StreamAppendResult, type StreamOpenOptions, type StreamPurgeOptions, type StreamReadOptions, type StreamStatus, type StreamStore, type TeeToStoreOptions, type TeedStream, dbTransport, rpcTransport, sqlTransport };
@@ -1,6 +1,7 @@
1
- import { n as rpcTransport, r as sqlTransport } from "../block-transport-BLr-ZgLc.js";
2
- import { D as stringsOf, d as isRecord, i as blockCall, w as seconds, y as recordOf } from "../block-helpers-DWHxHsEQ.js";
3
- import { n as teeToStore, r as writeToStore, t as resumeFromStore } from "../tee-CoEppCER.js";
1
+ import { n as isRecord } from "../guards-6F2bCtQR.js";
2
+ import { i as sqlTransport, r as rpcTransport, t as dbTransport } from "../block-transport-bAKh-dGc.js";
3
+ import { A as stringsOf, D as seconds, S as recordOf, i as blockCall } from "../block-helpers-Cy3pB96I.js";
4
+ import { n as teeToStore, r as writeToStore, t as resumeFromStore } from "../tee-Cb98Vn3b.js";
4
5
  import { t as pollingRead } from "../store-BdH5ruDx.js";
5
6
  //#region src/streams/postgres.ts
6
7
  function statusOf(value) {
@@ -74,4 +75,4 @@ function postgresStreamStore(options) {
74
75
  };
75
76
  }
76
77
  //#endregion
77
- export { postgresStreamStore, resumeFromStore, rpcTransport, sqlTransport, teeToStore, writeToStore };
78
+ export { dbTransport, postgresStreamStore, resumeFromStore, rpcTransport, sqlTransport, teeToStore, writeToStore };
@@ -1,4 +1,4 @@
1
- import { o as StreamStore } from "../../store-CGjgWu5n.js";
1
+ import { o as StreamStore } from "../../store-DsIYEBnv.js";
2
2
  //#region src/streams/redis/redis.d.ts
3
3
  /**
4
4
  * The commands the store sends, as node-redis 5 and 6 (`createClient()`)
@@ -1,6 +1,7 @@
1
- import { n as dbError } from "../../errors-B11Duf73.js";
2
- import { a as ok, r as err, t as AsyncResult } from "../../result-DzUbqgdW.js";
3
- import { d as isRecord } from "../../block-helpers-DWHxHsEQ.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
+ import { n as isRecord } from "../../guards-6F2bCtQR.js";
4
+ import { t as importOptionalPeer } from "../../optional-peer-D1pi-skw.js";
4
5
  import { t as pollingRead } from "../../store-BdH5ruDx.js";
5
6
  //#region src/streams/redis/redis.ts
6
7
  const isNodeRedis = (value) => isRecord(value) && typeof value["createClient"] === "function";
@@ -8,14 +9,7 @@ const isNodeRedis = (value) => isRecord(value) && typeof value["createClient"] =
8
9
  * Loads `redis` on first use. The specifier is a variable so bundlers leave
9
10
  * the optional peer out of apps that pass their own client.
10
11
  */
11
- async function loadRedis() {
12
- const specifier = "redis";
13
- try {
14
- return await import(specifier);
15
- } catch {
16
- return;
17
- }
18
- }
12
+ const loadRedis = () => importOptionalPeer("redis");
19
13
  async function connectUrl(url, load) {
20
14
  const module = await load();
21
15
  if (!isNodeRedis(module)) throw new TypeError("redisStreamStore({ url }) needs the redis package: pnpm add redis, or pass a connected client");
@@ -1,3 +1,4 @@
1
+ import { t as importOptionalPeer } from "./optional-peer-D1pi-skw.js";
1
2
  //#region src/blocks/stripe.ts
2
3
  const isModule = (value) => typeof value === "object" && value !== null && "default" in value && typeof value.default === "function" && "createFetchHttpClient" in value.default;
3
4
  /**
@@ -5,14 +6,7 @@ const isModule = (value) => typeof value === "object" && value !== null && "defa
5
6
  * the optional peer out of apps that pass their own client; a missing
6
7
  * install returns `undefined` and the caller explains how to add it.
7
8
  */
8
- async function loadStripeModule() {
9
- const specifier = "stripe";
10
- try {
11
- return await import(specifier);
12
- } catch {
13
- return;
14
- }
15
- }
9
+ const loadStripeModule = () => importOptionalPeer("stripe");
16
10
  /**
17
11
  * The client `source` names: itself, or one created with Stripe's fetch HTTP
18
12
  * client so it runs on every WinterTC runtime.
@@ -0,0 +1,43 @@
1
+ //#region src/core/supabase-mcp.d.ts
2
+ /** The feature groups Supabase's MCP server turns on with `features`. */
3
+ type SupabaseMcpFeature = "account" | "branching" | "database" | "debugging" | "development" | "docs" | "functions" | "storage";
4
+ /** Which project and tools a Supabase MCP server exposes. */
5
+ interface SupabaseMcpScope {
6
+ /**
7
+ * Scopes the server to one project. Without it the tools reach every
8
+ * project the Management API token can.
9
+ */
10
+ readonly projectRef?: string;
11
+ /** Runs SQL read-only and leaves out the tools that write. Defaults to true. */
12
+ readonly readOnly?: boolean;
13
+ /** The feature groups to turn on; the server's defaults when unset. */
14
+ readonly features?: readonly SupabaseMcpFeature[];
15
+ }
16
+ /** The parts of `@supabase/mcp-server-supabase` better-supabase calls. */
17
+ interface SupabaseMcpModule {
18
+ createToolSchemas(options: {
19
+ features?: readonly SupabaseMcpFeature[];
20
+ projectScoped?: boolean;
21
+ readOnly?: boolean;
22
+ }): Record<string, unknown>;
23
+ createSupabaseMcpHandler(options: {
24
+ platform: unknown;
25
+ projectId?: string;
26
+ readOnly?: boolean;
27
+ features?: string[];
28
+ }): {
29
+ fetch(request: Request, options?: {
30
+ readonly authInfo?: unknown;
31
+ }): Promise<Response>;
32
+ close(): Promise<void>;
33
+ };
34
+ }
35
+ /** The part of `@supabase/mcp-server-supabase/platform/api` better-supabase calls. */
36
+ interface SupabaseMcpPlatformModule {
37
+ createSupabaseApiPlatform(options: {
38
+ accessToken: string;
39
+ apiUrl?: string;
40
+ }): unknown;
41
+ }
42
+ //#endregion
43
+ export { SupabaseMcpScope as i, SupabaseMcpModule as n, SupabaseMcpPlatformModule as r, SupabaseMcpFeature as t };
@@ -0,0 +1,28 @@
1
+ import { t as importOptionalPeer } from "./optional-peer-D1pi-skw.js";
2
+ //#region src/core/supabase-mcp.ts
3
+ const INSTALL = "Supabase's MCP server needs @supabase/mcp-server-supabase: pnpm add @supabase/mcp-server-supabase";
4
+ const isRecord = (value) => typeof value === "object" && value !== null;
5
+ function isServerModule(value) {
6
+ return isRecord(value) && "createToolSchemas" in value && "createSupabaseMcpHandler" in value && typeof value["createToolSchemas"] === "function" && typeof value["createSupabaseMcpHandler"] === "function";
7
+ }
8
+ function isPlatformModule(value) {
9
+ return isRecord(value) && "createSupabaseApiPlatform" in value && typeof value["createSupabaseApiPlatform"] === "function";
10
+ }
11
+ /**
12
+ * Loads `@supabase/mcp-server-supabase` on first use. The specifiers are
13
+ * variables so bundlers leave the optional peer out of apps that don't call
14
+ * Supabase's MCP server; a missing install throws how to add it.
15
+ */
16
+ async function loadSupabaseMcp() {
17
+ const loaded = await importOptionalPeer("@supabase/mcp-server-supabase");
18
+ if (!isServerModule(loaded)) throw new TypeError(INSTALL);
19
+ return loaded;
20
+ }
21
+ /** Loads the Management API platform of `@supabase/mcp-server-supabase`. */
22
+ async function loadSupabaseMcpPlatform() {
23
+ const loaded = await importOptionalPeer("@supabase/mcp-server-supabase/platform/api");
24
+ if (!isPlatformModule(loaded)) throw new TypeError(INSTALL);
25
+ return loaded;
26
+ }
27
+ //#endregion
28
+ export { loadSupabaseMcp as n, loadSupabaseMcpPlatform as r, isRecord as t };
@@ -1,15 +1,22 @@
1
- import { c as mapDbError, n as dbError } from "./errors-B11Duf73.js";
2
- import { t as temporal } from "./temporal-required-BVvW7SYJ.js";
3
- import { a as ok, r as err, s as toDbError, t as AsyncResult } from "./result-DzUbqgdW.js";
4
- import { n as validate } from "./standard-BK0cqJ7y.js";
5
- import { t as fromPgError } from "./executor-De1Of3m3.js";
6
- import { d as clearSupportCookie, f as supportCookie, m as supportCookieValue } from "./adapter-iKgjHVPx.js";
7
- import { r as sqlIdent } from "./template--jDkl3UP.js";
8
- import { i as emitBlockEvent } from "./block-events-CrT8r7Fe.js";
1
+ import { c as mapDbError, n as dbError } from "./errors-2M6CKMP4.js";
2
+ import { t as temporal } from "./temporal-required-BtynQtM-.js";
3
+ import { a as ok, r as err, s as toDbError, t as AsyncResult } from "./result-DEqHCMKP.js";
4
+ import { n as validate } from "./standard-DkzZUneg.js";
5
+ import { o as problemResponse } from "./problem-CJvFeGu7.js";
6
+ import { t as fromPgError } from "./executor-B_Hfobee.js";
7
+ import { d as clearSupportCookie, f as supportCookie, m as supportCookieValue } from "./adapter-CN45ibbV.js";
8
+ import { i as sqlIdent } from "./template-lPVh-EwW.js";
9
+ import { a as emitBlockEvent } from "./block-events-DTxU5tfr.js";
10
+ import { t as cronRoute } from "./cron-route-D2AN9SA1.js";
11
+ import { t as boundedTtlCache } from "./ttl-cache-XzZ-Q2eX.js";
9
12
  //#region src/auth/support.ts
10
- /** A session from the jsonb the `support-sessions` functions return. */
11
- function supportSessionFromRow(row) {
12
- const instant = (value) => temporal().Instant.from(value);
13
+ /**
14
+ * A session from the jsonb the `support-sessions` functions return, with
15
+ * `namespace` (else the provided or global Temporal) for its time values.
16
+ */
17
+ function supportSessionFromRow(row, namespace) {
18
+ const Instant = (namespace ?? temporal()).Instant;
19
+ const instant = (value) => Instant.from(value);
13
20
  return {
14
21
  id: row.id,
15
22
  adminId: row.admin_id,
@@ -50,11 +57,11 @@ function sqlSupportStore(postgres, options = {}) {
50
57
  input.adminId
51
58
  ]);
52
59
  if (!row) throw new Error("start_support_session returned no session");
53
- return supportSessionFromRow(row);
60
+ return supportSessionFromRow(row, options.temporal);
54
61
  },
55
62
  async get(sessionId, adminId, claims) {
56
63
  const row = await one(as(claims), `select ${fn("active_support_session")}($1, $2) as session`, [sessionId, adminId]);
57
- return row ? supportSessionFromRow(row) : void 0;
64
+ return row ? supportSessionFromRow(row, options.temporal) : void 0;
58
65
  },
59
66
  async end(sessionId, endedBy, claims) {
60
67
  const [row] = await as(claims).queryRaw(`select ${fn("end_support_session")}($1, $2) as ended`, [sessionId, endedBy]);
@@ -66,8 +73,15 @@ function sqlSupportStore(postgres, options = {}) {
66
73
  filter.targetUserId ?? null,
67
74
  filter.active ?? null,
68
75
  filter.limit ?? 50
69
- ])).map((row) => supportSessionFromRow(row.session));
76
+ ])).map((row) => supportSessionFromRow(row.session, options.temporal));
77
+ },
78
+ async expire() {
79
+ return (await postgres.admin.queryRaw(`select session from ${fn("expire_support_sessions")}() as session`)).map((row) => supportSessionFromRow(row.session, options.temporal));
70
80
  },
81
+ withTemporal: (namespace) => options.temporal === void 0 ? sqlSupportStore(postgres, {
82
+ ...options,
83
+ temporal: namespace
84
+ }) : sqlSupportStore(postgres, options),
71
85
  async claims(targetUserId) {
72
86
  const [row] = await postgres.admin.queryRaw(`select ${fn("support_target_claims")}($1) as claims`, [targetUserId]);
73
87
  return row?.claims ?? {};
@@ -113,10 +127,11 @@ function storeError(cause) {
113
127
  function supportSessions(options) {
114
128
  return {
115
129
  options,
116
- create: (events, claimsSchema) => createSupport(options, events, claimsSchema)
130
+ create: (events, claimsSchema, temporal) => createSupport(options, events, claimsSchema, temporal)
117
131
  };
118
132
  }
119
- function createSupport(options, events, claimsSchema) {
133
+ function createSupport(options, events, claimsSchema, temporal) {
134
+ const store = temporal !== void 0 && options.store.withTemporal ? options.store.withTemporal(temporal) : options.store;
120
135
  const policy = options.policy ?? {};
121
136
  const ttl = policy.ttl ?? 1800;
122
137
  const maxTtl = policy.maxTtl ?? 14400;
@@ -133,21 +148,12 @@ function createSupport(options, events, claimsSchema) {
133
148
  return { role: "authenticated" };
134
149
  };
135
150
  /** Target claims per support session; the session itself is loaded every time, so revoking stays immediate. */
136
- const claimsCache = /* @__PURE__ */ new Map();
151
+ const claimsCache = boundedTtlCache({ max: CLAIMS_CACHE_SIZE });
137
152
  const cachedTargetClaims = async (session) => {
138
- const now = Date.now();
139
153
  const cached = claimsCache.get(session.id);
140
- if (cached && cached.until > now) return cached.claims;
141
- const claims = await targetClaims(options.store, session.targetUserId);
142
- claimsCache.delete(session.id);
143
- if (claimsCache.size >= CLAIMS_CACHE_SIZE) {
144
- const oldest = claimsCache.keys().next();
145
- if (!oldest.done) claimsCache.delete(oldest.value);
146
- }
147
- claimsCache.set(session.id, {
148
- claims,
149
- until: Math.min(session.expiresAt.epochMilliseconds, now + CLAIMS_TTL_MS)
150
- });
154
+ if (cached) return cached;
155
+ const claims = await targetClaims(store, session.targetUserId);
156
+ claimsCache.set(session.id, claims, Math.min(session.expiresAt.epochMilliseconds, Date.now() + CLAIMS_TTL_MS));
151
157
  return claims;
152
158
  };
153
159
  const checkPolicy = (admin, request, reason, seconds) => {
@@ -164,7 +170,37 @@ function createSupport(options, events, claimsSchema) {
164
170
  return false;
165
171
  }
166
172
  };
173
+ const expire = () => AsyncResult.from(async () => {
174
+ if (!store.expire) return err(dbError("unsupported", `The "${store.name}" support session store has no expire()`, { code: "SUPPORT_EXPIRE_UNSUPPORTED" }));
175
+ let expired;
176
+ try {
177
+ expired = await store.expire();
178
+ } catch (cause) {
179
+ return err(storeError(cause));
180
+ }
181
+ for (const session of expired) emit("support.ended", {
182
+ sessionId: session.id,
183
+ adminId: session.adminId,
184
+ targetUserId: session.targetUserId,
185
+ reason: session.reason,
186
+ endedBy: "expired",
187
+ ...session.tenant === void 0 ? {} : { organizationId: session.tenant }
188
+ });
189
+ return ok(expired);
190
+ });
167
191
  return {
192
+ expire,
193
+ expireRoute: (routeOptions) => cronRoute({
194
+ name: "expire",
195
+ secret: routeOptions.secret,
196
+ problem: routeOptions.problem
197
+ }, async (_request, instance) => {
198
+ const result = await expire();
199
+ return result.ok ? Response.json({ expired: result.data.length }) : problemResponse(result.error, {
200
+ instance,
201
+ format: routeOptions.problem
202
+ });
203
+ }),
168
204
  start(admin, request) {
169
205
  return AsyncResult.from(async () => {
170
206
  if (admin.kind !== "user") return err(dbError("unauthorized", "Sign in to start a support session"));
@@ -193,7 +229,7 @@ function createSupport(options, events, claimsSchema) {
193
229
  if (!await authorized(input)) return deny(denied("Not allowed to start a support session", "SUPPORT_FORBIDDEN"), "authorize");
194
230
  let session;
195
231
  try {
196
- session = await options.store.start({
232
+ session = await store.start({
197
233
  adminId: admin.user.id,
198
234
  adminClaims: admin.claims,
199
235
  targetUserId: request.targetUserId,
@@ -226,12 +262,12 @@ function createSupport(options, events, claimsSchema) {
226
262
  const cookie = clearSupportCookie(options.cookie);
227
263
  if (admin.kind !== "user") return err(dbError("unauthorized", "Sign in to stop a support session"));
228
264
  try {
229
- const session = await options.store.get(sessionId, admin.user.id, admin.claims);
265
+ const session = await store.get(sessionId, admin.user.id, admin.claims);
230
266
  if (!session) return ok({
231
267
  ended: false,
232
268
  cookie
233
269
  });
234
- const ended = await options.store.end(sessionId, "admin", admin.claims);
270
+ const ended = await store.end(sessionId, "admin", admin.claims);
235
271
  if (ended) emit("support.ended", {
236
272
  sessionId,
237
273
  adminId: session.adminId,
@@ -251,7 +287,7 @@ function createSupport(options, events, claimsSchema) {
251
287
  return AsyncResult.from(async () => {
252
288
  if (caller.kind !== "user") return err(dbError("unauthorized", "Sign in to revoke a support session"));
253
289
  try {
254
- return ok(await options.store.end(sessionId, "revoked", caller.claims));
290
+ return ok(await store.end(sessionId, "revoked", caller.claims));
255
291
  } catch (cause) {
256
292
  return err(storeError(cause));
257
293
  }
@@ -265,7 +301,7 @@ function createSupport(options, events, claimsSchema) {
265
301
  let session;
266
302
  let claims;
267
303
  try {
268
- session = await options.store.get(id, auth.user.id, auth.claims);
304
+ session = await store.get(id, auth.user.id, auth.claims);
269
305
  if (!session || session.expiresAt.epochMilliseconds <= Date.now()) return;
270
306
  if (policy.readOnly !== "default" && !session.readOnly) session = {
271
307
  ...session,
@@ -300,7 +336,7 @@ function createSupport(options, events, claimsSchema) {
300
336
  return AsyncResult.from(async () => {
301
337
  if (caller.kind !== "user") return err(dbError("unauthorized", "Sign in to list support sessions"));
302
338
  try {
303
- return ok(await options.store.list(filter, caller.claims));
339
+ return ok(await store.list(filter, caller.claims));
304
340
  } catch (cause) {
305
341
  return err(storeError(cause));
306
342
  }
@@ -1,4 +1,4 @@
1
- import { t as AuthSession } from "./view-CF7ihnkg.js";
1
+ import { t as AuthSession } from "./view-TpXEUcVN.js";
2
2
  //#region src/auth/support-view.d.ts
3
3
  /** A running support session as the target's view shows it, for a banner. */
4
4
  interface SupportView {