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,7 +1,7 @@
1
- import { a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
2
- import { t as BetterSupabase } from "../define-CJJkkr1-.js";
3
- import { i as ServerContext, n as ContextOptions, o as ServerOptions, t as BetterServer } from "../server-Bh0EVSwU.js";
4
- import { i as MiddlewareOptions, r as GuardOptions } from "../respond-DprrgyXX.js";
1
+ import { a as AnyModels, i as AnyFunctions } from "../types-CoE5Zwy4.js";
2
+ import { t as BetterSupabase } from "../define-DmcfoNXB.js";
3
+ import { i as ServerContext, n as ContextOptions, s as ServerOptions, t as BetterServer } from "../server-types-CrAmZ8jv.js";
4
+ import { i as MiddlewareOptions, r as GuardOptions } from "../respond-Cw-zanCm.js";
5
5
  import { t as Validated } from "../shared-DDSjEGDR.js";
6
6
  import { AnyEntry, Contributions } from "@supabase/middleware";
7
7
  import { ImmutableRequest, MiddlewareFunction } from "expo-server";
@@ -1,9 +1,9 @@
1
1
  import { t as DbException } from "../db-exception-CnWcYPxL.js";
2
- import { o as toProblem } from "../problem-BreOl8b8.js";
3
- import { a as unexpectedResponse, c as extendServer, s as createServer, y as refreshFor } from "../adapter-iKgjHVPx.js";
4
- import { m as serializeCookie } from "../resolve-tJZY3FEa.js";
5
- import { a as respond, r as guard, t as defaultExpose } from "../respond-BUgsXNgk.js";
6
- import { t as withBetterSupabase } from "../composite-DXVUibdi.js";
2
+ import { s as toProblem } from "../problem-CJvFeGu7.js";
3
+ import { a as unexpectedResponse, b as refreshFor, c as extendServer, s as createServer } from "../adapter-CN45ibbV.js";
4
+ import { p as serializeCookie } from "../resolve-Bvgf3ut_.js";
5
+ import { a as respond, r as guard, t as defaultExpose } from "../respond-volM3ByS.js";
6
+ import { t as withBetterSupabase } from "../composite-zTe0TCqj.js";
7
7
  import { r as handoffOf } from "../shared-CBxosKK3.js";
8
8
  import { bufferRequest, pipeline, seedContext } from "@supabase/middleware";
9
9
  import { StatusError, setResponseHeaders } from "expo-server";
@@ -76,7 +76,7 @@ function createExpo(betterSupabase, options = {}) {
76
76
  request,
77
77
  loader(fn, loaderOptions) {
78
78
  return async (incoming, params) => {
79
- if (!incoming) throw new StatusError(500, "better-supabase: bs.loader() needs a request; static rendering has none (use createStaticLoader)");
79
+ if (!incoming) throw new StatusError(500, "better-supabase: bs.loader() needs a request, and static rendering has none. Turn on unstable_useServerRendering on Expo SDK 57, or read public data in a loader built with createStaticLoader from \"expo-server\".");
80
80
  const ctx = await request(incoming, loaderOptions);
81
81
  try {
82
82
  return await fn(ctx, params, incoming);
@@ -1,6 +1,6 @@
1
- import { r as Executor } from "../executor-DvsBbNBS.js";
2
- import { n as PowerSyncExecutorOptions, t as PowerSyncDatabaseLike } from "../executor-CaWigTyR.js";
3
- import { i as checkSqlite, n as sqliteTables, r as watch, t as WatchOptions } from "../watch-DI34G86j.js";
1
+ import { r as Executor } from "../executor-Drzu3dBK.js";
2
+ import { n as PowerSyncExecutorOptions, t as PowerSyncDatabaseLike } from "../executor-DfEtf0cq.js";
3
+ import { a as checkSqlite, n as sqliteTables, r as watch, t as WatchOptions } from "../watch-COzRWvVN.js";
4
4
  //#region src/expo-sqlite/executor.d.ts
5
5
  /** What an expo-sqlite database or exclusive transaction can run. */
6
6
  interface ExpoSqliteContextLike {
@@ -1,5 +1,5 @@
1
- import { n as watch, t as sqliteTables } from "../watch-Xuxrvxq-.js";
2
- import { i as checkSqlite, r as powersyncExecutor } from "../executor-Bq28caBo.js";
1
+ import { n as watch, t as sqliteTables } from "../watch-BcvtAHOd.js";
2
+ import { i as checkSqlite, t as powersyncExecutor } from "../executor-B-fD7DLt.js";
3
3
  //#region src/expo-sqlite/executor.ts
4
4
  const DEFAULT_THROTTLE_MS = 30;
5
5
  /** A UUID v4 from SQLite's `randomblob`, for runtimes without `crypto.randomUUID`. */
@@ -0,0 +1,10 @@
1
+ //#region src/server/extra.ts
2
+ /** `{ ...base, ...extra }` that keeps lazy getters lazy. */
3
+ function withExtra(base, extra) {
4
+ return Object.defineProperties({}, {
5
+ ...Object.getOwnPropertyDescriptors(base),
6
+ ...Object.getOwnPropertyDescriptors(extra)
7
+ });
8
+ }
9
+ //#endregion
10
+ export { withExtra as t };
@@ -1,9 +1,10 @@
1
- import { b as DbError } from "./result-D7y2fT87.js";
2
- import { it as QuerySpec } from "./define-CJJkkr1-.js";
3
- import { n as TemplateValues } from "./template-CwO38Do8.js";
4
- import { a as ClientAuth } from "./bind-Bu_ZNa3W.js";
5
- import { T as TopicMessage, _ as RealtimeClient, a as LiveSource, g as PresenceSubscription, p as PresenceOptions, r as LiveCountSeed, y as SubscribeOptions } from "./index-DunNRdnT.js";
1
+ import { b as DbError } from "./result-BchM1XZn.js";
2
+ import { J as TemplateValues } from "./storage-api-CB7Zl1Ci.js";
3
+ import { at as QuerySpec } from "./define-DmcfoNXB.js";
4
+ import { a as ClientAuth } from "./bind-CQ5mPyX1.js";
5
+ import { T as TopicMessage, _ as RealtimeClient, a as LiveSource, g as PresenceSubscription, p as PresenceOptions, r as LiveCountSeed, y as SubscribeOptions } from "./index-BCHR4Ucl.js";
6
6
  import { SupabaseClient } from "@supabase/supabase-js";
7
+ import { StandardSchemaV1 } from "@standard-schema/spec";
7
8
  import { QueryClient } from "@tanstack/query-core";
8
9
  //#region src/bindings/client.d.ts
9
10
  /** The parts of `createClient()` the bindings need. */
@@ -77,6 +78,15 @@ interface PresenceTopic<P extends string, I, O> {
77
78
  match(topic: string): TemplateValues<P> | null;
78
79
  subscribe(client: RealtimeClient, values: TemplateValues<P>, handlers: Readonly<Record<string, never>>, options?: SubscribeOptions & PresenceOptions<O>): PresenceSubscription<I, O>;
79
80
  }
81
+ /** Who a subscription runs as. */
82
+ /** The claims type of a client's `betterSupabase.claims(schema)`, `unknown` without one. */
83
+ type ClaimsOf<B extends ClientLike> = B["betterSupabase"] extends {
84
+ readonly claimsSchema: StandardSchemaV1<unknown, infer C> | undefined;
85
+ } ? C : unknown;
86
+ /** The profile type of a client's `betterSupabase.userMetadata(schema)`, `unknown` without one. */
87
+ type ProfileOf<B extends ClientLike> = B["betterSupabase"] extends {
88
+ readonly userMetadataSchema: StandardSchemaV1<unknown, infer P> | undefined;
89
+ } ? P : unknown;
80
90
  /** A count spec or a `bs.liveCount()` seed. */
81
91
  type LiveCountSource = QuerySpec<string, "count", number> | LiveCountSeed | null | undefined;
82
92
  interface ActionState<I, T> {
@@ -92,8 +102,8 @@ interface ActionState<I, T> {
92
102
  readonly error: DbError | undefined;
93
103
  }
94
104
  //#endregion
95
- //#region src/react/field-errors.d.ts
105
+ //#region src/bindings/field-errors.d.ts
96
106
  /** The first message per top-level field of a `validation` error. */
97
107
  declare function fieldErrorsOf(error: DbError | undefined): Readonly<Partial<Record<string, string>>>;
98
108
  //#endregion
99
- export { BroadcastOptions as a, LiveCountSource as c, PresenceTopic as d, UseActionOptions as f, ActionState as i, LiveQueryHookOptions as l, ActionInputOf as n, ClientLike as o, ActionResultOf as r, LiveCountHookOptions as s, fieldErrorsOf as t, PresenceHookOptions as u };
109
+ export { BroadcastOptions as a, LiveCountHookOptions as c, PresenceHookOptions as d, PresenceTopic as f, ActionState as i, LiveCountSource as l, UseActionOptions as m, ActionInputOf as n, ClaimsOf as o, ProfileOf as p, ActionResultOf as r, ClientLike as s, fieldErrorsOf as t, LiveQueryHookOptions as u };
@@ -1,4 +1,4 @@
1
- //#region src/react/field-errors.ts
1
+ //#region src/bindings/field-errors.ts
2
2
  /** The first message per top-level field of a `validation` error. */
3
3
  function fieldErrorsOf(error) {
4
4
  if (error?.kind !== "validation") return {};
@@ -0,0 +1,70 @@
1
+ import { t as ApiModel } from "./model-OgBxvk3N.js";
2
+ //#region src/spec/format.d.ts
3
+ /** How a version of a format is supported. `preview` follows a draft and is never a default. */
4
+ type VersionStatus = "stable" | "legacy" | "preview";
5
+ interface FormatVersion {
6
+ /** The exact version or commit the output follows (a `SPEC_PINS` value). */
7
+ readonly pin: string;
8
+ readonly status: VersionStatus;
9
+ }
10
+ type DiagnosticSeverity = "error" | "warning" | "info";
11
+ /**
12
+ * A finding from building, lowering or checking a document. `code` is
13
+ * stable: tools and `--fail-on` read it, and a retired code stays reserved.
14
+ */
15
+ interface SpecDiagnostic {
16
+ readonly code: string;
17
+ readonly severity: DiagnosticSeverity;
18
+ readonly message: string;
19
+ /** A JSON Pointer into the document or the model, when there is one. */
20
+ readonly pointer?: string;
21
+ }
22
+ interface LowerContext {
23
+ /** Records a diagnostic; lowering continues. */
24
+ report(diagnostic: SpecDiagnostic): void;
25
+ }
26
+ /**
27
+ * The plugin contract every document format implements, the first-party
28
+ * ones included (API v1). `lower` is pure: it reads the model and returns a
29
+ * new document, so the same model renders to every version. `Docs` maps
30
+ * each version to its document type, so `transform` hooks can switch on the
31
+ * version; it defaults to `Doc` for every version.
32
+ */
33
+ interface DocumentFormat<Id extends string = string, V extends string = string, Doc = unknown, Docs extends Readonly<Record<V, Doc>> = Readonly<Record<V, Doc>>> {
34
+ readonly apiVersion: 1;
35
+ readonly id: Id;
36
+ readonly versions: Readonly<Record<V, FormatVersion>>;
37
+ readonly defaultVersion: V;
38
+ lower(model: ApiModel, version: V, ctx: LowerContext): Doc;
39
+ /** Semantic checks a schema cannot express (unique ids, resolvable references). */
40
+ lint?(doc: Doc, version: V): readonly SpecDiagnostic[];
41
+ /** Default file name for a version, e.g. `openapi.json`. */
42
+ fileName(version: V): string;
43
+ /** Phantom carrying the per-version document types. */
44
+ readonly "~documents"?: Docs;
45
+ }
46
+ type AnyDocumentFormat = DocumentFormat<string, any, any, any>;
47
+ type VersionOf<F> = F extends DocumentFormat<string, infer V> ? V : never;
48
+ type DocumentOf<F> = F extends DocumentFormat<string, any, infer D, any> ? D : never;
49
+ /**
50
+ * What a `transform` hook receives: the document with its format and
51
+ * version, a union discriminated by `version`.
52
+ */
53
+ type RenderedOf<F> = F extends DocumentFormat<infer Id, infer V, any, infer Docs> ? { [K in V]: {
54
+ readonly format: Id;
55
+ readonly version: K;
56
+ readonly document: K extends keyof Docs ? Docs[K] : never;
57
+ }; }[V] : never;
58
+ /** Identity helper that fixes `apiVersion` and checks that the default version exists. */
59
+ declare function defineDocumentFormat<const Id extends string, const V extends string, Doc, Docs extends Readonly<Record<V, Doc>> = Readonly<Record<V, Doc>>>(format: {
60
+ readonly apiVersion?: 1;
61
+ readonly id: Id;
62
+ readonly versions: Readonly<Record<V, FormatVersion>>;
63
+ readonly defaultVersion: NoInfer<V>;
64
+ lower(model: ApiModel, version: NoInfer<V>, ctx: LowerContext): Doc;
65
+ lint?(doc: Doc, version: NoInfer<V>): readonly SpecDiagnostic[];
66
+ fileName(version: NoInfer<V>): string;
67
+ readonly "~documents"?: Docs;
68
+ }): DocumentFormat<Id, V, Doc, Docs>;
69
+ //#endregion
70
+ export { FormatVersion as a, SpecDiagnostic as c, defineDocumentFormat as d, DocumentOf as i, VersionOf as l, DiagnosticSeverity as n, LowerContext as o, DocumentFormat as r, RenderedOf as s, AnyDocumentFormat as t, VersionStatus as u };
@@ -1,8 +1,8 @@
1
- import { a as AnyModels, i as AnyFunctions } from "./types-6BdhkmZe.js";
2
- import { o as ServerOptions } from "./server-Bh0EVSwU.js";
3
- import { t as AuthSession } from "./view-CF7ihnkg.js";
4
- import { a as SessionEntryConfig, n as BetterSupabaseContributions } from "./composite--yqry7uW.js";
5
- import { t as RefusalRedirects } from "./refusal-DhSU2Vvr.js";
1
+ import { a as AnyModels, i as AnyFunctions } from "./types-CoE5Zwy4.js";
2
+ import { s as ServerOptions } from "./server-types-CrAmZ8jv.js";
3
+ import { t as AuthSession } from "./view-TpXEUcVN.js";
4
+ import { a as SessionEntryConfig, n as BetterSupabaseContributions } from "./composite-CWAJTRBF.js";
5
+ import { t as RefusalRedirects } from "./refusal-CFI8-5nf.js";
6
6
  //#region src/server/framework.d.ts
7
7
  /** What the framework factories (`createSvelteKit`, `createReactRouter`, `createTanStackStart`) take. */
8
8
  interface FrameworkOptions extends ServerOptions, RefusalRedirects, Pick<SessionEntryConfig, "checkSession" | "cookieScopes" | "encode"> {
@@ -1,5 +1,5 @@
1
- import { n as toSession } from "./view-BeFcRV6G.js";
2
- import { t as withBetterSupabase } from "./composite-DXVUibdi.js";
1
+ import { n as toSession } from "./view-D5ryq3gz.js";
2
+ import { t as withBetterSupabase } from "./composite-zTe0TCqj.js";
3
3
  //#region src/server/framework.ts
4
4
  /** Every caller: the framework factories guard per loader, action or route instead. */
5
5
  const EVERY_CALLER = [
@@ -0,0 +1,8 @@
1
+ //#region src/core/function-contract.d.ts
2
+ /** What a typed Edge Function takes and returns, as the caller sees them. */
3
+ interface FunctionContract<In = unknown, Out = unknown> {
4
+ readonly input: In;
5
+ readonly output: Out;
6
+ }
7
+ //#endregion
8
+ export { FunctionContract as t };
@@ -1,8 +1,8 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { b as DbError } from "./result-D7y2fT87.js";
3
- import { m as JobHandler } from "./queue-CLJurhdy.js";
4
- import { g as AiModelInput, i as AiChat } from "./ai-chat-7amvXjmQ.js";
5
- import { i as Usage, m as UsageStatus, s as UsageEntry } from "./usage-CrvrL2vw.js";
2
+ import { b as DbError } from "./result-BchM1XZn.js";
3
+ import { m as JobHandler } from "./types-D__3EN0q.js";
4
+ import { g as AiModelInput, i as AiChat } from "./ai-chat-DXkMy74O.js";
5
+ import { i as Usage, m as UsageStatus, s as UsageEntry } from "./usage-D0NNUFfr.js";
6
6
  import { JSONValue, LanguageModelUsage } from "ai";
7
7
  //#region src/ai-sdk/gateway.d.ts
8
8
  /** Who a generation is for, as the AI Gateway reports spend. */
@@ -6,5 +6,7 @@
6
6
  function isList(value) {
7
7
  return Array.isArray(value);
8
8
  }
9
+ /** A plain object: not null and not an array. */
10
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
9
11
  //#endregion
10
- export { isList as t };
12
+ export { isRecord as n, isList as t };
@@ -1,4 +1,4 @@
1
- import { n as RouteGuardOptions } from "../refusal-DhSU2Vvr.js";
1
+ import { n as RouteGuardOptions } from "../refusal-CFI8-5nf.js";
2
2
  import { t as Validated } from "../shared-DDSjEGDR.js";
3
3
  import { AnyEntry, Contributions } from "@supabase/middleware";
4
4
  //#region src/bridges/h3.d.ts
package/dist/h3/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { i as toResponse, n as bufferInPlace, t as around } from "../shared-CBxosKK3.js";
2
- import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../refusal-CeJWxmkH.js";
2
+ import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../refusal-K78A1Vmq.js";
3
3
  //#region src/bridges/h3.ts
4
4
  /**
5
5
  * Runs an entry array as H3 2 middleware (`app.use(...)`, Nitro and Nuxt
@@ -1,4 +1,4 @@
1
- import { n as RouteGuardOptions } from "../../refusal-DhSU2Vvr.js";
1
+ import { n as RouteGuardOptions } from "../../refusal-CFI8-5nf.js";
2
2
  import { t as Validated } from "../../shared-DDSjEGDR.js";
3
3
  import { n as NodeRequestHead, t as NodeHeaderTarget } from "../../node-headers-AO06VhqH.js";
4
4
  import { AnyEntry, Contributions } from "@supabase/middleware";
@@ -1,4 +1,4 @@
1
- import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../../refusal-CeJWxmkH.js";
1
+ import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../../refusal-K78A1Vmq.js";
2
2
  import { t as beforeRoute } from "../../before-route-CnR0C0Jr.js";
3
3
  import { n as headRequest, t as applyWebHeaders } from "../../node-headers-C71zNQHe.js";
4
4
  //#region src/h3/v1/index.ts
@@ -1,18 +1,8 @@
1
- import { d as isRecord } from "./block-helpers-DWHxHsEQ.js";
1
+ import { n as isRecord } from "./guards-6F2bCtQR.js";
2
+ import { t as AI_MESSAGE_PART_TYPES } from "./ai-message-DfaP8sis.js";
2
3
  //#region src/blocks/ai-chat/message.ts
3
4
  /** `$id` of `schemas/ai-message-v1.json`, the JSON Schema of `AiMessage`. */
4
5
  const AI_MESSAGE_SCHEMA_ID = "https://unpkg.com/better-supabase/schemas/ai-message-v1.json";
5
- const AI_MESSAGE_PART_TYPES = [
6
- "text",
7
- "reasoning",
8
- "file",
9
- "tool-call",
10
- "tool-result",
11
- "tool-approval",
12
- "source",
13
- "data",
14
- "step"
15
- ];
16
6
  const ROLES = /* @__PURE__ */ new Set([
17
7
  "system",
18
8
  "user",
@@ -216,4 +206,66 @@ function isAiMessage(value) {
216
206
  return checkMessage(value).length === 0;
217
207
  }
218
208
  //#endregion
219
- export { isAiMessage as i, AI_MESSAGE_SCHEMA_ID as n, aiMessageSchema as r, AI_MESSAGE_PART_TYPES as t };
209
+ //#region src/blocks/ai-chat/history.ts
210
+ /** Checks an untrusted value (a request body) against the canonical format. */
211
+ function validateMessage(value) {
212
+ const result = aiMessageSchema["~standard"].validate(value);
213
+ if (result instanceof Promise) throw new TypeError("aiMessageSchema validates synchronously");
214
+ return result.issues ? {
215
+ ok: false,
216
+ issues: result.issues
217
+ } : {
218
+ ok: true,
219
+ message: result.value
220
+ };
221
+ }
222
+ /** The canonical messages of a path, in order, without the tree's fields. */
223
+ function pathToHistory(path) {
224
+ return path.map((message) => ({
225
+ id: message.id,
226
+ role: message.role,
227
+ parts: message.parts,
228
+ ...message.metadata === void 0 ? {} : { metadata: message.metadata }
229
+ }));
230
+ }
231
+ /** The output a `tool-result` gets when its call never finished. */
232
+ const INTERRUPTED_TOOL_OUTPUT = "The tool call was interrupted.";
233
+ /**
234
+ * Closes every tool call that has no result yet, so a provider accepts the
235
+ * history after a crash or a stop mid-call: each gets a `tool-result` with
236
+ * `isError` right after it. A call waiting for approval is left alone.
237
+ */
238
+ function repairDanglingToolCalls(messages) {
239
+ const answered = /* @__PURE__ */ new Set();
240
+ const waiting = /* @__PURE__ */ new Set();
241
+ for (const message of messages) for (const part of message.parts) {
242
+ if (part.type === "tool-result") answered.add(part.toolCallId);
243
+ if (part.type === "tool-approval" && part.state === "requested") waiting.add(part.toolCallId);
244
+ }
245
+ return messages.map((message) => {
246
+ if (!message.parts.some((part) => dangling(part, answered, waiting))) return message;
247
+ const parts = [];
248
+ for (const part of message.parts) {
249
+ parts.push(part);
250
+ if (part.type === "tool-call" && dangling(part, answered, waiting)) {
251
+ const result = {
252
+ type: "tool-result",
253
+ toolCallId: part.toolCallId,
254
+ toolName: part.toolName,
255
+ output: INTERRUPTED_TOOL_OUTPUT,
256
+ isError: true
257
+ };
258
+ parts.push(result);
259
+ }
260
+ }
261
+ return {
262
+ ...message,
263
+ parts
264
+ };
265
+ });
266
+ }
267
+ function dangling(part, answered, waiting) {
268
+ return part.type === "tool-call" && part.providerExecuted !== true && !answered.has(part.toolCallId) && !waiting.has(part.toolCallId);
269
+ }
270
+ //#endregion
271
+ export { AI_MESSAGE_SCHEMA_ID as a, validateMessage as i, pathToHistory as n, aiMessageSchema as o, repairDanglingToolCalls as r, isAiMessage as s, INTERRUPTED_TOOL_OUTPUT as t };
@@ -0,0 +1,22 @@
1
+ //#region src/core/hmac.ts
2
+ const encoder = /* @__PURE__ */ new TextEncoder();
3
+ /** Constant-time string comparison. */
4
+ function timingSafeEqual(a, b) {
5
+ const left = encoder.encode(a);
6
+ const right = encoder.encode(b);
7
+ let diff = left.length ^ right.length;
8
+ for (let index = 0; index < Math.max(left.length, right.length); index++) diff |= (left[index] ?? 0) ^ (right[index] ?? 0);
9
+ return diff === 0;
10
+ }
11
+ /** Lowercase hex of a byte array. */
12
+ const toHex = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
13
+ /** The hex HMAC-SHA-256 of `message`, keyed with the UTF-8 bytes of `secret`. */
14
+ async function hmacHex(secret, message) {
15
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
16
+ name: "HMAC",
17
+ hash: "SHA-256"
18
+ }, false, ["sign"]);
19
+ return toHex(new Uint8Array(await crypto.subtle.sign("HMAC", key, encoder.encode(message))));
20
+ }
21
+ //#endregion
22
+ export { hmacHex as n, timingSafeEqual as r, encoder as t };
@@ -1,11 +1,13 @@
1
- import { L as TableKey, a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
2
- import { r as AuthState } from "../resolve-ChTYeTEl.js";
3
- import { t as BetterSupabase } from "../define-CJJkkr1-.js";
4
- import { i as ServerContext, o as ServerOptions, t as BetterServer } from "../server-Bh0EVSwU.js";
5
- import { t as AuthSession } from "../view-CF7ihnkg.js";
6
- import { i as MiddlewareOptions, r as GuardOptions } from "../respond-DprrgyXX.js";
7
- import { s as BlockRequireOptions } from "../kit-CkNzZUqv.js";
8
- import { a as ResourceRouteOptions } from "../resource-IPS5xi9q.js";
1
+ import { L as TableKey, a as AnyModels, i as AnyFunctions } from "../types-CoE5Zwy4.js";
2
+ import { r as AuthState } from "../resolve-MxXVWyhd.js";
3
+ import { s as PermissionRef, t as AnyAuthorizer } from "../authorizer-eiOjo-3l.js";
4
+ import { t as BetterSupabase } from "../define-DmcfoNXB.js";
5
+ import { i as ServerContext, s as ServerOptions, t as BetterServer } from "../server-types-CrAmZ8jv.js";
6
+ import { t as AuthSession } from "../view-TpXEUcVN.js";
7
+ import { i as MiddlewareOptions, r as GuardOptions } from "../respond-Cw-zanCm.js";
8
+ import { s as BlockRequireOptions } from "../kit-W99LCPBS.js";
9
+ import { i as ResourceContext, l as ResourceRouteOptions, o as ResourceHooks, r as ResourceAction, t as ActionArgs } from "../resource-types-CqB6GWGT.js";
10
+ import { t as defineAction } from "../resource-execute-rbKvuCsY.js";
9
11
  import { AnyEntry, Contributions, ValidateEntries } from "@supabase/middleware";
10
12
  import { Context, ErrorHandler, Hono, MiddlewareHandler } from "hono";
11
13
  //#region src/bridges/hono.d.ts
@@ -54,7 +56,7 @@ export interface HonoOptions extends ServerOptions {
54
56
  */
55
57
  readonly waitUntil?: (promise: Promise<unknown>) => void;
56
58
  }
57
- export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> extends BetterServer<M, F, E, C, P> {
59
+ export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown, Ref = string> extends BetterServer<M, F, E, C, P> {
58
60
  /**
59
61
  * The app's Hono `Env`, for `new Hono<typeof bs.Env>()` and
60
62
  * `Context<typeof bs.Env>`. Type only: `undefined` at runtime.
@@ -72,7 +74,7 @@ export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C =
72
74
  * app.post('/invites', bs.require({ requireTenant: true, roles: ['admin'] }), handler)
73
75
  * ```
74
76
  */
75
- require: (options?: BlockRequireOptions<C, P>) => MiddlewareHandler<HonoEnv<M, F, E, C, P>>;
77
+ require: (options?: BlockRequireOptions<C, P, boolean, Ref>) => MiddlewareHandler<HonoEnv<M, F, E, C, P>>;
76
78
  /**
77
79
  * Wraps a handler: `Result`s and `AsyncResult`s become JSON or Problem
78
80
  * Details, `undefined` becomes 204.
@@ -87,12 +89,15 @@ export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C =
87
89
  */
88
90
  readonly onError: ErrorHandler<HonoEnv<M, F, E, C, P>>;
89
91
  /**
90
- * REST routes for a table matching `createOpenApi`. Mount with
92
+ * REST routes for a table matching the API model: the collection, the
93
+ * item and each action's path. Mount with
91
94
  * `app.route('/customers', bs.resource('customers'))` behind `middleware()`.
92
95
  */
93
- resource<T extends TableKey<M>>(table: T, options?: ResourceRouteOptions<M, T>): Hono<HonoEnv<M, F, E, C, P>>;
96
+ resource<T extends TableKey<M>>(table: T, options?: ResourceRouteOptions<M, T, Ref, ServerContext<M, F, E, C, P>["db"]>): Hono<HonoEnv<M, F, E, C, P>>;
94
97
  }
95
98
  /** Hono integration: a server plus middleware, handlers and REST resources. */
96
- export declare function createHono<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options?: HonoOptions): BetterHono<M, F, E, C, P>;
99
+ export declare function createHono<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown, A extends AnyAuthorizer | undefined = undefined>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options?: HonoOptions & {
100
+ readonly authorizer?: A;
101
+ }): BetterHono<M, F, E, C, P, PermissionRef<A>>;
97
102
  //#endregion
98
- export type { BlockRequireOptions, GuardOptions, HonoBridge, MiddlewareOptions, ResourceRouteOptions };
103
+ export { type ActionArgs, type BlockRequireOptions, type GuardOptions, type HonoBridge, type MiddlewareOptions, type ResourceAction, type ResourceContext, type ResourceHooks, type ResourceRouteOptions, defineAction };
@@ -1,11 +1,11 @@
1
- import { r as dbErrorOf } from "../errors-B11Duf73.js";
2
- import { a as problemResponse } from "../problem-BreOl8b8.js";
3
- import { a as unexpectedResponse, c as extendServer, n as flushEvents, s as createServer } from "../adapter-iKgjHVPx.js";
4
- import { n as toSession } from "../view-BeFcRV6G.js";
5
- import { a as respond, t as defaultExpose } from "../respond-BUgsXNgk.js";
6
- import { t as withBetterSupabase } from "../composite-DXVUibdi.js";
7
- import { t as defineResource } from "../resource-BsvzCMlX.js";
8
- 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 { a as unexpectedResponse, c as extendServer, n as flushEvents, s as createServer } from "../adapter-CN45ibbV.js";
4
+ import { n as toSession } from "../view-D5ryq3gz.js";
5
+ import { a as respond, t as defaultExpose } from "../respond-volM3ByS.js";
6
+ import { t as withBetterSupabase } from "../composite-zTe0TCqj.js";
7
+ import { r as defineAction, t as defineResource } from "../resource-DA811u_4.js";
8
+ import { i as requireCaller } from "../kit-BhHr9T9v.js";
9
9
  import { r as handoffOf } from "../shared-CBxosKK3.js";
10
10
  import { bufferRequest, pipeline, seedContext } from "@supabase/middleware";
11
11
  import { Hono } from "hono";
@@ -115,14 +115,17 @@ function createHono(betterSupabase, options = {}) {
115
115
  c.set("tenant", tenant);
116
116
  });
117
117
  return async (c, next) => {
118
- await run(c, next);
119
- flushEvents(server, waitUntilOf(c));
118
+ try {
119
+ await run(c, next);
120
+ } finally {
121
+ flushEvents(server, waitUntilOf(c));
122
+ }
120
123
  };
121
124
  },
122
125
  require: (requireOptions = {}) => {
123
126
  return async (c, next) => {
124
127
  const ctx = contextOf(c);
125
- const caller = await requireCaller(ctx.auth, requireOptions, c.get("tenant"));
128
+ const caller = await requireCaller(ctx.auth, requireOptions, c.get("tenant"), options.authorizer);
126
129
  if ("kind" in caller) return problemResponse(caller, {
127
130
  instance: new URL(c.req.url).pathname,
128
131
  expose
@@ -141,17 +144,19 @@ function createHono(betterSupabase, options = {}) {
141
144
  };
142
145
  },
143
146
  resource(table, resourceOptions) {
144
- const resource = defineResource(betterSupabase, table, resourceOptions);
147
+ const resource = defineResource(betterSupabase, table, resourceOptions, options.authorizer);
148
+ const { keyParam } = resource;
145
149
  const app = new Hono();
146
- const serve = (item) => (c) => resource.handle(c.req.raw, contextOf(c).db, item ? c.req.param("id") : void 0, {
150
+ const serve = (template) => (c) => resource.serve(c.req.raw, contextOf(c).db, template.map((segment) => segment.startsWith("{") && keyParam ? c.req.param(keyParam) ?? "" : segment), {
147
151
  instance: new URL(c.req.url).pathname,
148
152
  expose
149
153
  });
150
- app.all("/", serve(false));
151
- if (resource.keyParam) app.all("/:id", serve(true));
154
+ app.all("/", serve([]));
155
+ for (const action of resource.plan.actions) app.all(`/${action.segments.map((segment) => segment.startsWith("{") ? `:${keyParam}` : segment).join("/")}`, serve(action.segments));
156
+ if (keyParam) app.all(`/:${keyParam}`, serve([`{${keyParam}}`]));
152
157
  return app;
153
158
  }
154
159
  });
155
160
  }
156
161
  //#endregion
157
- export { createHono, toHono };
162
+ export { createHono, defineAction, toHono };