better-supabase 0.5.0 → 0.6.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 (536) hide show
  1. package/README.md +299 -41
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/actor-CQTlc1Hh.d.ts +43 -0
  4. package/dist/adapter-Bc1o3zyy.js +1106 -0
  5. package/dist/agents-CVHGd7It.d.ts +94 -0
  6. package/dist/ai-cache-CBWs1W0k.js +80 -0
  7. package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
  8. package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
  9. package/dist/ai-chat-B24UI962.js +743 -0
  10. package/dist/ai-files-CSPNswUY.js +319 -0
  11. package/dist/ai-sdk/agents/index.d.ts +74 -0
  12. package/dist/ai-sdk/agents/index.js +159 -0
  13. package/dist/ai-sdk/batches/index.d.ts +74 -0
  14. package/dist/ai-sdk/batches/index.js +180 -0
  15. package/dist/ai-sdk/cache/index.d.ts +38 -0
  16. package/dist/ai-sdk/cache/index.js +127 -0
  17. package/dist/ai-sdk/chat/index.d.ts +2 -0
  18. package/dist/ai-sdk/chat/index.js +246 -0
  19. package/dist/ai-sdk/embeddings/index.d.ts +3 -0
  20. package/dist/ai-sdk/embeddings/index.js +2 -0
  21. package/dist/ai-sdk/files/index.d.ts +61 -0
  22. package/dist/ai-sdk/files/index.js +111 -0
  23. package/dist/ai-sdk/index.d.ts +145 -0
  24. package/dist/ai-sdk/index.js +174 -0
  25. package/dist/ai-sdk/mcp/index.d.ts +102 -0
  26. package/dist/ai-sdk/mcp/index.js +362 -0
  27. package/dist/ai-sdk/memory/index.d.ts +67 -0
  28. package/dist/ai-sdk/memory/index.js +175 -0
  29. package/dist/ai-sdk/react/index.d.ts +2 -0
  30. package/dist/ai-sdk/react/index.js +3 -0
  31. package/dist/ai-sdk/react/server.d.ts +6 -0
  32. package/dist/ai-sdk/react/server.js +7 -0
  33. package/dist/ai-sdk/workflow/index.d.ts +249 -0
  34. package/dist/ai-sdk/workflow/index.js +575 -0
  35. package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
  36. package/dist/ai-sdk/workflow/react/index.js +66 -0
  37. package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
  38. package/dist/ai-sdk/workflow/react/server.js +12 -0
  39. package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
  40. package/dist/announcements-CiyOs-xP.js +107 -0
  41. package/dist/announcements-ZRGnScWI.d.ts +72 -0
  42. package/dist/api-keys-rCGtKaZA.d.ts +156 -0
  43. package/dist/assistant-DwdpDH1q.d.ts +147 -0
  44. package/dist/astro/index.d.ts +86 -0
  45. package/dist/astro/index.js +93 -0
  46. package/dist/attributes-5dYul0u0.js +13 -0
  47. package/dist/auth-link-BjFPqwLz.d.ts +97 -0
  48. package/dist/auth-link-DrDX9KOT.js +114 -0
  49. package/dist/authorization-BFCqamMs.d.ts +172 -0
  50. package/dist/before-route-CnR0C0Jr.js +30 -0
  51. package/dist/bind-Bu_ZNa3W.d.ts +62 -0
  52. package/dist/bind-l4kAvYSv.js +97 -0
  53. package/dist/block-events-CrT8r7Fe.js +76 -0
  54. package/dist/block-fields-GFkxl4dP.js +49 -0
  55. package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
  56. package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
  57. package/dist/block-helpers-DWHxHsEQ.js +190 -0
  58. package/dist/block-hooks-BmjMyXTa.js +114 -0
  59. package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
  60. package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
  61. package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
  62. package/dist/blocks/agents/index.d.ts +3 -0
  63. package/dist/blocks/agents/index.js +123 -0
  64. package/dist/blocks/ai-cache/index.d.ts +3 -0
  65. package/dist/blocks/ai-cache/index.js +3 -0
  66. package/dist/blocks/ai-chat/index.d.ts +31 -0
  67. package/dist/blocks/ai-chat/index.js +5 -0
  68. package/dist/blocks/ai-chat/react/index.d.ts +77 -0
  69. package/dist/blocks/ai-chat/react/index.js +387 -0
  70. package/dist/blocks/ai-chat/react/server.d.ts +16 -0
  71. package/dist/blocks/ai-chat/react/server.js +14 -0
  72. package/dist/blocks/ai-files/index.d.ts +14 -0
  73. package/dist/blocks/ai-files/index.js +3 -0
  74. package/dist/blocks/ai-providers/index.d.ts +7 -0
  75. package/dist/blocks/ai-providers/index.js +211 -0
  76. package/dist/blocks/ai-tasks/index.d.ts +3 -0
  77. package/dist/blocks/ai-tasks/index.js +203 -0
  78. package/dist/blocks/announcements/index.d.ts +3 -0
  79. package/dist/blocks/announcements/index.js +3 -0
  80. package/dist/blocks/announcements/react/index.d.ts +31 -0
  81. package/dist/blocks/announcements/react/index.js +86 -0
  82. package/dist/blocks/announcements/react/server.d.ts +6 -0
  83. package/dist/blocks/announcements/react/server.js +7 -0
  84. package/dist/blocks/api-keys/index.d.ts +35 -0
  85. package/dist/blocks/api-keys/index.js +334 -0
  86. package/dist/blocks/attachments/index.d.ts +210 -0
  87. package/dist/blocks/attachments/index.js +222 -0
  88. package/dist/blocks/audit/index.d.ts +366 -0
  89. package/dist/blocks/audit/index.js +714 -0
  90. package/dist/blocks/billing/index.d.ts +265 -0
  91. package/dist/blocks/billing/index.js +400 -0
  92. package/dist/blocks/comments/index.d.ts +200 -0
  93. package/dist/blocks/comments/index.js +207 -0
  94. package/dist/blocks/connectors/index.d.ts +3 -0
  95. package/dist/blocks/connectors/index.js +164 -0
  96. package/dist/blocks/data-lifecycle/index.d.ts +251 -0
  97. package/dist/blocks/data-lifecycle/index.js +353 -0
  98. package/dist/blocks/entitlements/index.d.ts +14 -0
  99. package/dist/blocks/entitlements/index.js +25 -0
  100. package/dist/blocks/flags/index.d.ts +226 -0
  101. package/dist/blocks/flags/index.js +282 -0
  102. package/dist/blocks/inbox/index.d.ts +6 -0
  103. package/dist/blocks/inbox/index.js +499 -0
  104. package/dist/blocks/inbox/react/index.d.ts +2 -0
  105. package/dist/blocks/inbox/react/index.js +225 -0
  106. package/dist/blocks/inbox/react/server.d.ts +10 -0
  107. package/dist/blocks/inbox/react/server.js +12 -0
  108. package/dist/blocks/index.d.ts +65 -0
  109. package/dist/blocks/index.js +77 -0
  110. package/dist/blocks/jobs/index.d.ts +297 -0
  111. package/dist/blocks/jobs/index.js +1051 -0
  112. package/dist/blocks/knowledge/index.d.ts +3 -0
  113. package/dist/blocks/knowledge/index.js +3 -0
  114. package/dist/blocks/memory/index.d.ts +8 -0
  115. package/dist/blocks/memory/index.js +289 -0
  116. package/dist/blocks/notifications/index.d.ts +297 -0
  117. package/dist/blocks/notifications/index.js +425 -0
  118. package/dist/blocks/notifications/react/index.d.ts +44 -0
  119. package/dist/blocks/notifications/react/index.js +67 -0
  120. package/dist/blocks/notifications/react/server.d.ts +6 -0
  121. package/dist/blocks/notifications/react/server.js +7 -0
  122. package/dist/blocks/onboarding/index.d.ts +3 -0
  123. package/dist/blocks/onboarding/index.js +64 -0
  124. package/dist/blocks/onboarding/react/index.d.ts +28 -0
  125. package/dist/blocks/onboarding/react/index.js +78 -0
  126. package/dist/blocks/onboarding/react/server.d.ts +7 -0
  127. package/dist/blocks/onboarding/react/server.js +7 -0
  128. package/dist/blocks/organizations/index.d.ts +241 -0
  129. package/dist/blocks/organizations/index.js +400 -0
  130. package/dist/blocks/outbox/index.d.ts +3 -0
  131. package/dist/blocks/outbox/index.js +266 -0
  132. package/dist/blocks/profiles/index.d.ts +40 -0
  133. package/dist/blocks/profiles/index.js +28 -0
  134. package/dist/blocks/push/index.d.ts +185 -0
  135. package/dist/blocks/push/index.js +258 -0
  136. package/dist/blocks/settings/index.d.ts +89 -0
  137. package/dist/blocks/settings/index.js +104 -0
  138. package/dist/blocks/sso/index.d.ts +198 -0
  139. package/dist/blocks/sso/index.js +1297 -0
  140. package/dist/blocks/usage/index.d.ts +4 -0
  141. package/dist/blocks/usage/index.js +233 -0
  142. package/dist/blocks/waitlist/index.d.ts +117 -0
  143. package/dist/blocks/waitlist/index.js +132 -0
  144. package/dist/blocks/webhooks/index.d.ts +304 -0
  145. package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
  146. package/dist/blocks/workflow-builder/index.d.ts +21 -0
  147. package/dist/blocks/workflow-builder/index.js +5 -0
  148. package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
  149. package/dist/blocks/workflow-builder/react/index.js +119 -0
  150. package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
  151. package/dist/blocks/workflow-builder/react/server.js +11 -0
  152. package/dist/blocks/workflows/index.d.ts +3 -0
  153. package/dist/blocks/workflows/index.js +3 -0
  154. package/dist/blocks/workflows/react/index.d.ts +47 -0
  155. package/dist/blocks/workflows/react/index.js +137 -0
  156. package/dist/blocks/workflows/react/server.d.ts +8 -0
  157. package/dist/blocks/workflows/react/server.js +11 -0
  158. package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
  159. package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
  160. package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
  161. package/dist/channels-CkgQ_X60.js +114 -0
  162. package/dist/chat-sdk/index.d.ts +303 -0
  163. package/dist/chat-sdk/index.js +733 -0
  164. package/dist/chat-sdk/react/index.d.ts +2 -0
  165. package/dist/chat-sdk/react/index.js +3 -0
  166. package/dist/chat-sdk/react/server.d.ts +3 -0
  167. package/dist/chat-sdk/react/server.js +2 -0
  168. package/dist/claims-DDBQT6BK.js +61 -0
  169. package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
  170. package/dist/cli/bin.js +1 -1
  171. package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
  172. package/dist/cli/config-B9HkL8nF.js +2 -0
  173. package/dist/cli/config-DU7EJImt.js +49 -0
  174. package/dist/cli/config-NiPxAmUF.js +1077 -0
  175. package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
  176. package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
  177. package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
  178. package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
  179. package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
  180. package/dist/cli/gen-BGLb_zou.js +3100 -0
  181. package/dist/cli/gen-DAH8FM2W.js +2 -0
  182. package/dist/cli/index.d.ts +44 -5
  183. package/dist/cli/index.js +7 -7
  184. package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
  186. package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
  187. package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
  188. package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
  189. package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
  190. package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
  191. package/dist/cli/read-sets-CETOSFx4.js +223 -0
  192. package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
  193. package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
  194. package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
  195. package/dist/cli/sql-D0GUtUPp.js +536 -0
  196. package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
  197. package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
  198. package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
  199. package/dist/client/index.d.ts +3 -2
  200. package/dist/client/index.js +11 -71
  201. package/dist/client/native/index.d.ts +228 -0
  202. package/dist/client/native/index.js +361 -0
  203. package/dist/client-CI0Z2zWX.js +277 -0
  204. package/dist/cloud-event-BnmD5fb9.js +46 -0
  205. package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
  206. package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
  207. package/dist/compose-BIBNgAnq.js +53 -0
  208. package/dist/composite-Bt1YK3Ke.d.ts +146 -0
  209. package/dist/composite-DhE66P5u.js +130 -0
  210. package/dist/config/index.d.ts +6 -4
  211. package/dist/config/index.js +5 -5
  212. package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
  213. package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
  214. package/dist/connector-Dv8kK0MO.d.ts +107 -0
  215. package/dist/connectors-hkLCwyEz.d.ts +120 -0
  216. package/dist/context-BCrWe7ow.d.ts +237 -0
  217. package/dist/credentials/index.d.ts +31 -0
  218. package/dist/credentials/index.js +168 -0
  219. package/dist/cron-DVPUg5k3.js +145 -0
  220. package/dist/csv-CPAzEmB6.js +25 -0
  221. package/dist/db-exception-CnWcYPxL.js +15 -0
  222. package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
  223. package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
  224. package/dist/edge/index.d.ts +69 -11
  225. package/dist/edge/index.js +191 -75
  226. package/dist/elysia/index.d.ts +59 -0
  227. package/dist/elysia/index.js +62 -0
  228. package/dist/embeddings-4ZvFzjsU.js +127 -0
  229. package/dist/embeddings-C9KGQnXt.d.ts +68 -0
  230. package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
  232. package/dist/entitlements-DRl6ZJUm.js +24 -0
  233. package/dist/envelope-DqnYGRw7.js +47 -0
  234. package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
  235. package/dist/errors-DLjJHPLK.js +44 -0
  236. package/dist/escape-like-DHfx6jRr.js +7 -0
  237. package/dist/escape-like-ImTK0ps_.d.ts +15 -0
  238. package/dist/eve/index.d.ts +220 -0
  239. package/dist/eve/index.js +504 -0
  240. package/dist/eve-gT2Fpjut.d.ts +151 -0
  241. package/dist/events/index.d.ts +4 -3
  242. package/dist/events/index.js +9 -50
  243. package/dist/events-DWDhx77e.d.ts +549 -0
  244. package/dist/executor-Bq28caBo.js +718 -0
  245. package/dist/executor-C-R4pucm.js +83 -0
  246. package/dist/executor-CaWigTyR.d.ts +148 -0
  247. package/dist/executor-D14tGopJ.d.ts +36 -0
  248. package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
  249. package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
  250. package/dist/executor-DvsBbNBS.d.ts +261 -0
  251. package/dist/expo/index.d.ts +79 -0
  252. package/dist/expo/index.js +129 -0
  253. package/dist/expo-sqlite/index.d.ts +58 -0
  254. package/dist/expo-sqlite/index.js +104 -0
  255. package/dist/field-errors-BFOa7WhB.d.ts +99 -0
  256. package/dist/field-errors-VF1yb8yI.js +13 -0
  257. package/dist/framework-CONDyPYx.js +51 -0
  258. package/dist/framework-DuVb4Xa8.d.ts +25 -0
  259. package/dist/gateway-C1ssRHnf.d.ts +130 -0
  260. package/dist/graph-BGyLLFLX.js +265 -0
  261. package/dist/h3/index.d.ts +59 -0
  262. package/dist/h3/index.js +55 -0
  263. package/dist/h3/v1/index.d.ts +63 -0
  264. package/dist/h3/v1/index.js +49 -0
  265. package/dist/history-BZih6SFP.js +64 -0
  266. package/dist/hono/index.d.ts +56 -7
  267. package/dist/hono/index.js +97 -45
  268. package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
  269. package/dist/http-Cv4T29xh.js +40 -0
  270. package/dist/http-DdYadv-o.js +126 -0
  271. package/dist/image-url-pIVlO6R1.js +41 -0
  272. package/dist/impersonation-DcqaTBHx.js +148 -0
  273. package/dist/inbox-i7E1ppo6.d.ts +384 -0
  274. package/dist/index-ACiNPN4Z.d.ts +74 -0
  275. package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
  276. package/dist/index-BkWT_uBO.d.ts +51 -0
  277. package/dist/index-BpFYMsi0.d.ts +53 -0
  278. package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
  279. package/dist/index-CaxrMD1A.d.ts +1 -0
  280. package/dist/index-ClmjK_o-.d.ts +55 -0
  281. package/dist/index-CtuakVRc.d.ts +267 -0
  282. package/dist/index-D48jVS-N.d.ts +246 -0
  283. package/dist/index-DDrYaUcq.d.ts +138 -0
  284. package/dist/index-DQh4VCc9.d.ts +98 -0
  285. package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
  286. package/dist/index.d.ts +65 -18
  287. package/dist/index.js +42 -14
  288. package/dist/invalidate-BBqhpxyB.d.ts +19 -0
  289. package/dist/json-CEnpTHlZ.js +16 -0
  290. package/dist/json-schema-CvER4kgT.js +502 -0
  291. package/dist/keys-4MnkWTTh.js +35 -0
  292. package/dist/kit-B5tid-q5.d.ts +60 -0
  293. package/dist/kit-Fm-Fv7q5.js +78 -0
  294. package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
  295. package/dist/knowledge-CDmiMLew.js +255 -0
  296. package/dist/lint/index.d.ts +1 -1
  297. package/dist/lint/index.js +37 -0
  298. package/dist/list/index.d.ts +3 -2
  299. package/dist/list/index.js +1 -444
  300. package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
  301. package/dist/list-query-gl808ac1.js +459 -0
  302. package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
  303. package/dist/logger-DWVYUmwi.d.ts +18 -0
  304. package/dist/mcp/index.d.ts +38 -11
  305. package/dist/mcp/index.js +82 -46
  306. package/dist/mcp/sdk/index.d.ts +105 -0
  307. package/dist/mcp/sdk/index.js +126 -0
  308. package/dist/message-CaKlqdsX.js +219 -0
  309. package/dist/message-CfDoR0Y6.d.ts +94 -0
  310. package/dist/messages-B9-5887d.js +715 -0
  311. package/dist/messages-DYP0sUTe.d.ts +59 -0
  312. package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
  313. package/dist/modules-DpPwzC7E.d.ts +192 -0
  314. package/dist/modules-dxrVK3ID.js +228 -0
  315. package/dist/nestjs/index.d.ts +68 -0
  316. package/dist/nestjs/index.js +164 -0
  317. package/dist/next/client/index.d.ts +35 -0
  318. package/dist/next/client/index.js +36 -0
  319. package/dist/next/image/index.js +3 -24
  320. package/dist/next/index.d.ts +150 -51
  321. package/dist/next/index.js +261 -107
  322. package/dist/node/index.d.ts +4 -0
  323. package/dist/node/index.js +210 -0
  324. package/dist/node-headers-AO06VhqH.d.ts +24 -0
  325. package/dist/node-headers-C71zNQHe.js +55 -0
  326. package/dist/nuxt/index.d.ts +60 -0
  327. package/dist/nuxt/index.js +64 -0
  328. package/dist/onboarding-BZGHYJks.d.ts +62 -0
  329. package/dist/openapi/index.d.ts +1 -1
  330. package/dist/openapi/index.js +3 -3
  331. package/dist/orpc/index.d.ts +70 -11
  332. package/dist/orpc/index.js +73 -24
  333. package/dist/otel/index.d.ts +7 -7
  334. package/dist/otel/index.js +87 -57
  335. package/dist/outbox-Cq7pPYvl.d.ts +161 -0
  336. package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
  337. package/dist/plugin-tfXW1-qO.js +45 -0
  338. package/dist/plugins/actor/index.d.ts +2 -2
  339. package/dist/plugins/actor/index.js +3 -3
  340. package/dist/plugins/rules/index.d.ts +11 -4
  341. package/dist/plugins/rules/index.js +40 -13
  342. package/dist/plugins/soft-delete/index.d.ts +5 -4
  343. package/dist/plugins/soft-delete/index.js +10 -5
  344. package/dist/plugins/tenant/index.d.ts +2 -2
  345. package/dist/plugins/tenant/index.js +18 -11
  346. package/dist/plugins/timestamps/index.d.ts +5 -3
  347. package/dist/plugins/timestamps/index.js +6 -4
  348. package/dist/plugins/validation/index.d.ts +2 -2
  349. package/dist/plugins/validation/index.js +10 -6
  350. package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
  351. package/dist/postgres/index.d.ts +4 -4
  352. package/dist/postgres/index.js +1 -2
  353. package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
  354. package/dist/powersync/index.d.ts +43 -0
  355. package/dist/powersync/index.js +199 -0
  356. package/dist/powersync/react/index.d.ts +87 -0
  357. package/dist/powersync/react/index.js +108 -0
  358. package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
  359. package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
  360. package/dist/provider-BH5UWZJ6.d.ts +113 -0
  361. package/dist/provider-Di3sRutW.js +57 -0
  362. package/dist/query/index.d.ts +4 -2
  363. package/dist/query/index.js +4 -3
  364. package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
  365. package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
  366. package/dist/react/index.d.ts +11 -7
  367. package/dist/react/index.js +7 -3
  368. package/dist/react/native/index.d.ts +116 -0
  369. package/dist/react/native/index.js +130 -0
  370. package/dist/react/server.d.ts +28 -10
  371. package/dist/react/server.js +22 -5
  372. package/dist/react/session.d.ts +2 -2
  373. package/dist/react-4ZqkP8da.js +79 -0
  374. package/dist/react-F80mF4-t.js +409 -0
  375. package/dist/react-router/index.d.ts +83 -0
  376. package/dist/react-router/index.js +89 -0
  377. package/dist/react-topic-seAWjL3_.js +38 -0
  378. package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
  379. package/dist/realtime/index.d.ts +4 -5
  380. package/dist/realtime/index.js +144 -82
  381. package/dist/refusal-CeJWxmkH.js +61 -0
  382. package/dist/refusal-D1rgbzNq.d.ts +15 -0
  383. package/dist/replicas-CwrYp5Zj.js +94 -0
  384. package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
  385. package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
  386. package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
  388. package/dist/respond-BUgsXNgk.js +91 -0
  389. package/dist/respond-DoBijysA.d.ts +93 -0
  390. package/dist/result-D7y2fT87.d.ts +282 -0
  391. package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
  392. package/dist/run-state-CPo-1X2B.d.ts +12 -0
  393. package/dist/run-state-CgBKzYMW.js +13 -0
  394. package/dist/search-CUWCRYKL.js +9 -0
  395. package/dist/server/index.d.ts +143 -21
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
  398. package/dist/session-ChiXDZdZ.d.ts +72 -0
  399. package/dist/shared-CBxosKK3.js +75 -0
  400. package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
  401. package/dist/shared-DDSjEGDR.d.ts +11 -0
  402. package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
  403. package/dist/sign-in-Cb1mwv6X.js +86 -0
  404. package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
  405. package/dist/simplify-DDO0j0LI.js +83 -0
  406. package/dist/solid/index.d.ts +131 -0
  407. package/dist/solid/index.js +344 -0
  408. package/dist/solid-start/index.d.ts +75 -0
  409. package/dist/solid-start/index.js +58 -0
  410. package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
  411. package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
  412. package/dist/sql/index.d.ts +330 -194
  413. package/dist/sql/index.js +34901 -6489
  414. package/dist/ssr/index.d.ts +6 -5
  415. package/dist/ssr/index.js +3 -3
  416. package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
  417. package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
  418. package/dist/stats-D_AD9GGu.js +1123 -0
  419. package/dist/storage/index.d.ts +5 -5
  420. package/dist/storage/index.js +1027 -368
  421. package/dist/store-BdH5ruDx.js +66 -0
  422. package/dist/store-CGjgWu5n.d.ts +68 -0
  423. package/dist/streams/index.d.ts +76 -0
  424. package/dist/streams/index.js +77 -0
  425. package/dist/streams/redis/index.d.ts +52 -0
  426. package/dist/streams/redis/index.js +185 -0
  427. package/dist/stripe-BMj5LtsT.js +38 -0
  428. package/dist/stripe-D04h-QBT.d.ts +136 -0
  429. package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
  430. package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  431. package/dist/svelte/index.d.ts +114 -0
  432. package/dist/svelte/index.js +344 -0
  433. package/dist/sveltekit/index.d.ts +116 -0
  434. package/dist/sveltekit/index.js +106 -0
  435. package/dist/tags-B99_U9Pp.js +39 -0
  436. package/dist/tags-Cx-LnIQP.d.ts +30 -0
  437. package/dist/tanstack-db/index.d.ts +71 -0
  438. package/dist/tanstack-db/index.js +72 -0
  439. package/dist/tanstack-start/index.d.ts +75 -0
  440. package/dist/tanstack-start/index.js +95 -0
  441. package/dist/tee-CoEppCER.js +101 -0
  442. package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
  443. package/dist/template-CwO38Do8.d.ts +6 -0
  444. package/dist/temporal-BJGitm-h.js +79 -0
  445. package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
  446. package/dist/tenant-I1TEZ_BX.js +27 -0
  447. package/dist/tenant-icPeuUBN.d.ts +17 -0
  448. package/dist/testing/index.d.ts +343 -37
  449. package/dist/testing/index.js +1186 -79
  450. package/dist/timing-CyTQPubY.js +92 -0
  451. package/dist/ttl-Hr34gRu8.js +12 -0
  452. package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
  453. package/dist/types-BI-0Sl2v.d.ts +359 -0
  454. package/dist/types-C05bxW-W.d.ts +220 -0
  455. package/dist/types-DGs5L0VN.d.ts +192 -0
  456. package/dist/types-TaiEeBGA.d.ts +156 -0
  457. package/dist/usage-CrvrL2vw.d.ts +177 -0
  458. package/dist/user-change-XzvgafU4.js +130 -0
  459. package/dist/vault-CSO7ss5C.d.ts +50 -0
  460. package/dist/vercel-connect/index.d.ts +47 -0
  461. package/dist/vercel-connect/index.js +119 -0
  462. package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
  463. package/dist/verify-DPuWngD4.d.ts +172 -0
  464. package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +470 -29
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +21 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +62 -18
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-BJc9vdyu.js +0 -2
  504. package/dist/cli/gen-C2osRcr5.js +0 -2204
  505. package/dist/cli/read-sets-BfMQcKy8.js +0 -289
  506. package/dist/cli/sql-DzPbfngx.js +0 -348
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/impersonation-VfaGc4Q_.js +0 -41
  512. package/dist/index-BGdgBPdf.d.ts +0 -161
  513. package/dist/index-DOESKG27.d.ts +0 -100
  514. package/dist/index-DmXSxbLi.d.ts +0 -62
  515. package/dist/index-Dxn2a5cw.d.ts +0 -50
  516. package/dist/jobs/index.d.ts +0 -226
  517. package/dist/jobs/index.js +0 -1007
  518. package/dist/json-schema-m1fiwKgN.js +0 -208
  519. package/dist/kit-events-CTFDfSwb.js +0 -60
  520. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  521. package/dist/kits-CGLLrNPd.js +0 -157
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-Csx2sRjg.js +0 -655
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-DT-OhSxD.d.ts +0 -88
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. package/skills/better-supabase-auth/references/permdock.md +0 -100
@@ -0,0 +1,55 @@
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";
3
+ //#region src/bridges/h3.ts
4
+ /**
5
+ * Runs an entry array as H3 2 middleware (`app.use(...)`, Nitro and Nuxt
6
+ * server middleware). Every contributed key lands on `event.context`, and
7
+ * the handler's value comes back as a `Response` (JSON for plain values)
8
+ * so response-phase entries can add headers and cookies.
9
+ *
10
+ * ```ts
11
+ * app.use(toH3([withBetterSupabase(server)]))
12
+ * app.get('/notes', (event) => event.context.db.notes.findMany().orThrow())
13
+ * ```
14
+ */
15
+ function toH3(entries, options = {}) {
16
+ const run = around(entries);
17
+ return (event, next) => {
18
+ bufferInPlace(event.req);
19
+ const env = options.env ? options.env(event) : event.context.cloudflare?.env;
20
+ return run(event.req, env, async (contributions) => {
21
+ Object.assign(event.context, contributions);
22
+ const value = await next();
23
+ return toResponse(value, {
24
+ status: event.res?.status,
25
+ statusText: event.res?.statusText,
26
+ headers: event.res?.headers
27
+ });
28
+ });
29
+ };
30
+ }
31
+ //#endregion
32
+ //#region src/h3/guard.ts
33
+ /**
34
+ * Route middleware that refuses callers outside `options`: Problem Details,
35
+ * or a redirect to `signIn` or `mfa`. Runs after `toH3(...)`.
36
+ *
37
+ * ```ts
38
+ * app.get('/admin', handler, { middleware: [guard({ roles: ['admin'] })] })
39
+ * ```
40
+ */
41
+ function guard(options = {}) {
42
+ return async (event, next) => {
43
+ return await routeRefusal(guardedLocals(event.context), event.req, options) ?? next();
44
+ };
45
+ }
46
+ /**
47
+ * An `onError` handler for `new H3({ onError })` that answers thrown
48
+ * `DbException`s (from `.orThrow()`) with Problem Details and leaves every
49
+ * other error to H3.
50
+ */
51
+ function problemOnError(options = {}) {
52
+ return (error, event) => errorResponse(error, event.req, options);
53
+ }
54
+ //#endregion
55
+ export { guard, problemOnError, toH3 };
@@ -0,0 +1,63 @@
1
+ import { n as RouteGuardOptions } from "../../refusal-D1rgbzNq.js";
2
+ import { t as Validated } from "../../shared-DDSjEGDR.js";
3
+ import { n as NodeRequestHead, t as NodeHeaderTarget } from "../../node-headers-AO06VhqH.js";
4
+ import { AnyEntry, Contributions } from "@supabase/middleware";
5
+ //#region src/h3/v1/index.d.ts
6
+ /** The part of an H3 1 event (Nitro 2, Nuxt 3 and 4) the bridge reads and writes. */
7
+ export interface H3V1Event<Context extends object = Record<string, unknown>> {
8
+ readonly node: {
9
+ readonly req: NodeRequestHead;
10
+ readonly res: NodeHeaderTarget;
11
+ };
12
+ readonly context: Context & {
13
+ /** Nitro's Cloudflare presets put the bindings here. */
14
+ readonly cloudflare?: {
15
+ readonly env?: unknown;
16
+ } | undefined;
17
+ };
18
+ }
19
+ export interface ToH3V1Options<Context extends object> {
20
+ /** The host's env object for `getEnv`; defaults to `event.context.cloudflare.env`. */
21
+ readonly env?: (event: H3V1Event<Context>) => unknown;
22
+ /** Read the protocol and host from `x-forwarded-*`. Defaults to false. */
23
+ readonly trustProxy?: boolean;
24
+ }
25
+ /**
26
+ * An H3 1 handler, typed structurally so the package does not import `h3`.
27
+ * It returns a `Response` to end the request or `undefined` to continue.
28
+ */
29
+ export type H3V1Handler<Context extends object> = (event: H3V1Event<Context>) => Promise<Response | undefined>;
30
+ /**
31
+ * Runs an entry array as Nitro 2 server middleware. A short circuit (a 401,
32
+ * a CORS preflight) ends the request; otherwise the entries' cookies and
33
+ * headers go on the response and every contribution lands on
34
+ * `event.context`. Response-phase entries (`withDbStats`) see an empty
35
+ * response under H3 1.
36
+ *
37
+ * ```ts title="server/middleware/supabase.ts"
38
+ * export default defineEventHandler(toH3V1([withBetterSupabase(server)]))
39
+ * ```
40
+ */
41
+ export declare function toH3V1<const Entries extends readonly AnyEntry[]>(entries: Entries & Validated<Entries>, options?: ToH3V1Options<Partial<Contributions<Entries>>>): H3V1Handler<Partial<Contributions<Entries>>>;
42
+ /**
43
+ * Refuses callers outside `options`: Problem Details, or a redirect to
44
+ * `signIn` or `mfa`. Returns `undefined` for callers it lets through, so a
45
+ * route handler can return its result.
46
+ *
47
+ * ```ts title="server/api/admin.get.ts"
48
+ * const admins = guard({ roles: ['admin'] })
49
+ * export default defineEventHandler(async (event) =>
50
+ * (await admins(event)) ?? event.context.db.members.findMany().orThrow())
51
+ * ```
52
+ */
53
+ export declare function guard(options?: RouteGuardOptions): (event: H3V1Event<object>) => Promise<Response | undefined>;
54
+ /**
55
+ * Answers thrown `DbException`s (from `.orThrow()`) with Problem Details
56
+ * and returns `undefined` for every other error, for a Nitro `error` hook
57
+ * or a handler's `catch`.
58
+ */
59
+ export declare function problemOnError(options?: {
60
+ readonly expose?: boolean;
61
+ }): (error: unknown, event: H3V1Event<object>) => Response | undefined;
62
+ //#endregion
63
+ export type { RouteGuardOptions };
@@ -0,0 +1,49 @@
1
+ import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../../refusal-CeJWxmkH.js";
2
+ import { t as beforeRoute } from "../../before-route-CnR0C0Jr.js";
3
+ import { n as headRequest, t as applyWebHeaders } from "../../node-headers-C71zNQHe.js";
4
+ //#region src/h3/v1/index.ts
5
+ /**
6
+ * Runs an entry array as Nitro 2 server middleware. A short circuit (a 401,
7
+ * a CORS preflight) ends the request; otherwise the entries' cookies and
8
+ * headers go on the response and every contribution lands on
9
+ * `event.context`. Response-phase entries (`withDbStats`) see an empty
10
+ * response under H3 1.
11
+ *
12
+ * ```ts title="server/middleware/supabase.ts"
13
+ * export default defineEventHandler(toH3V1([withBetterSupabase(server)]))
14
+ * ```
15
+ */
16
+ function toH3V1(entries, options = {}) {
17
+ const run = beforeRoute(entries);
18
+ return async (event) => {
19
+ const env = options.env ? options.env(event) : event.context.cloudflare?.env;
20
+ const outcome = await run(headRequest(event.node.req, options.trustProxy), env);
21
+ if (!outcome.reached) return outcome.response;
22
+ applyWebHeaders(event.node.res, outcome.headers);
23
+ Object.assign(event.context, outcome.contributions);
24
+ };
25
+ }
26
+ /**
27
+ * Refuses callers outside `options`: Problem Details, or a redirect to
28
+ * `signIn` or `mfa`. Returns `undefined` for callers it lets through, so a
29
+ * route handler can return its result.
30
+ *
31
+ * ```ts title="server/api/admin.get.ts"
32
+ * const admins = guard({ roles: ['admin'] })
33
+ * export default defineEventHandler(async (event) =>
34
+ * (await admins(event)) ?? event.context.db.members.findMany().orThrow())
35
+ * ```
36
+ */
37
+ function guard(options = {}) {
38
+ return (event) => routeRefusal(guardedLocals(event.context), headRequest(event.node.req), options);
39
+ }
40
+ /**
41
+ * Answers thrown `DbException`s (from `.orThrow()`) with Problem Details
42
+ * and returns `undefined` for every other error, for a Nitro `error` hook
43
+ * or a handler's `catch`.
44
+ */
45
+ function problemOnError(options = {}) {
46
+ return (error, event) => errorResponse(error, headRequest(event.node.req), options);
47
+ }
48
+ //#endregion
49
+ export { guard, problemOnError, toH3V1 };
@@ -0,0 +1,64 @@
1
+ import { r as aiMessageSchema } from "./message-CaKlqdsX.js";
2
+ //#region src/blocks/ai-chat/history.ts
3
+ /** Checks an untrusted value (a request body) against the canonical format. */
4
+ function validateMessage(value) {
5
+ const result = aiMessageSchema["~standard"].validate(value);
6
+ if (result instanceof Promise) throw new TypeError("aiMessageSchema validates synchronously");
7
+ return result.issues ? {
8
+ ok: false,
9
+ issues: result.issues
10
+ } : {
11
+ ok: true,
12
+ message: result.value
13
+ };
14
+ }
15
+ /** The canonical messages of a path, in order, without the tree's fields. */
16
+ function pathToHistory(path) {
17
+ return path.map((message) => ({
18
+ id: message.id,
19
+ role: message.role,
20
+ parts: message.parts,
21
+ ...message.metadata === void 0 ? {} : { metadata: message.metadata }
22
+ }));
23
+ }
24
+ /** The output a `tool-result` gets when its call never finished. */
25
+ const INTERRUPTED_TOOL_OUTPUT = "The tool call was interrupted.";
26
+ /**
27
+ * Closes every tool call that has no result yet, so a provider accepts the
28
+ * history after a crash or a stop mid-call: each gets a `tool-result` with
29
+ * `isError` right after it. A call waiting for approval is left alone.
30
+ */
31
+ function repairDanglingToolCalls(messages) {
32
+ const answered = /* @__PURE__ */ new Set();
33
+ const waiting = /* @__PURE__ */ new Set();
34
+ for (const message of messages) for (const part of message.parts) {
35
+ if (part.type === "tool-result") answered.add(part.toolCallId);
36
+ if (part.type === "tool-approval" && part.state === "requested") waiting.add(part.toolCallId);
37
+ }
38
+ return messages.map((message) => {
39
+ if (!message.parts.some((part) => dangling(part, answered, waiting))) return message;
40
+ const parts = [];
41
+ for (const part of message.parts) {
42
+ parts.push(part);
43
+ if (part.type === "tool-call" && dangling(part, answered, waiting)) {
44
+ const result = {
45
+ type: "tool-result",
46
+ toolCallId: part.toolCallId,
47
+ toolName: part.toolName,
48
+ output: INTERRUPTED_TOOL_OUTPUT,
49
+ isError: true
50
+ };
51
+ parts.push(result);
52
+ }
53
+ }
54
+ return {
55
+ ...message,
56
+ parts
57
+ };
58
+ });
59
+ }
60
+ function dangling(part, answered, waiting) {
61
+ return part.type === "tool-call" && part.providerExecuted !== true && !answered.has(part.toolCallId) && !waiting.has(part.toolCallId);
62
+ }
63
+ //#endregion
64
+ export { validateMessage as i, pathToHistory as n, repairDanglingToolCalls as r, INTERRUPTED_TOOL_OUTPUT as t };
@@ -1,9 +1,37 @@
1
- import { P as TableKey, n as AnyFunctions, r as AnyModels } from "../types-Dnf_wRDz.js";
2
- import { t as BetterSupabase } from "../define-Bp_BZa5h.js";
3
- import { r as AuthState } from "../resolve-C15TJq77.js";
4
- import { f as ServerContext, n as GuardOptions, p as ServerOptions, r as MiddlewareOptions, u as BetterServer } from "../respond-D2OQl62-.js";
5
- import { a as ResourceRouteOptions } from "../resource-D8iqWMr-.js";
1
+ import { L as TableKey, a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
2
+ import { r as AuthState } from "../resolve-KW8nCeL6.js";
3
+ import { t as BetterSupabase } from "../define-CJJkkr1-.js";
4
+ import { i as ServerContext, o as ServerOptions, t as BetterServer } from "../server-CeVeeXwz.js";
5
+ import { t as AuthSession } from "../view-DbxLNu8L.js";
6
+ import { i as MiddlewareOptions, r as GuardOptions } from "../respond-DoBijysA.js";
7
+ import { s as BlockRequireOptions } from "../kit-B5tid-q5.js";
8
+ import { a as ResourceRouteOptions } from "../resource-D6Uc7Sk7.js";
9
+ import { AnyEntry, Contributions, ValidateEntries } from "@supabase/middleware";
6
10
  import { Context, ErrorHandler, Hono, MiddlewareHandler } from "hono";
11
+ //#region src/bridges/hono.d.ts
12
+ /**
13
+ * The Hono middleware type when the entries compose, or the engine's error
14
+ * string when they don't, which surfaces at the `app.use` call.
15
+ */
16
+ type HonoBridge<Entries extends readonly AnyEntry[]> = [ValidateEntries<Entries>] extends [true] ? MiddlewareHandler<{
17
+ Variables: Contributions<Entries>;
18
+ }> : ValidateEntries<Entries>;
19
+ /**
20
+ * Runs an entry array in Hono's middleware slot. The pipeline folds once,
21
+ * so entries keep their state across requests; each request publishes every
22
+ * contributed key on `c.var`, runs the rest of the Hono chain, and returns
23
+ * Hono's response back up through the entries, so response-phase entries
24
+ * (refreshed cookies, `withCors`) see it.
25
+ *
26
+ * ```ts
27
+ * const app = new Hono().use(toHono([withBetterSupabase(server)])).get('/notes', (c) => ...)
28
+ * ```
29
+ *
30
+ * Chain `.use()` into the routes it gates: Hono carries the contributed
31
+ * keys through the chained call's type.
32
+ */
33
+ export declare function toHono<const Entries extends readonly AnyEntry[]>(entries: Entries): HonoBridge<Entries>;
34
+ //#endregion
7
35
  //#region src/hono/index.d.ts
8
36
  /** Hono `Env` with the request's better-supabase context in `c.var`. */
9
37
  export interface HonoEnv<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> {
@@ -11,11 +39,20 @@ export interface HonoEnv<M extends AnyModels, F extends AnyFunctions, E, C = unk
11
39
  readonly bs: ServerContext<M, F, E, C, P>;
12
40
  readonly db: ServerContext<M, F, E, C, P>["db"];
13
41
  readonly auth: AuthState<C, P>;
42
+ /** The caller as plain data, safe to return in a response. */
43
+ readonly session: AuthSession<C, P>;
44
+ /** The active tenant: `ServerOptions.tenant`, then the tenant claim. */
45
+ readonly tenant: string | undefined;
14
46
  };
15
47
  }
16
48
  export interface HonoOptions extends ServerOptions {
17
49
  /** Include error details in problem responses. Defaults to `NODE_ENV === 'development'`. */
18
50
  readonly exposeErrors?: boolean;
51
+ /**
52
+ * Keeps the invocation alive for event sink sends a handler started.
53
+ * Defaults to `c.executionCtx.waitUntil` when the runtime passes one (Workers).
54
+ */
55
+ readonly waitUntil?: (promise: Promise<unknown>) => void;
19
56
  }
20
57
  export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> extends BetterServer<M, F, E, C, P> {
21
58
  /**
@@ -27,7 +64,19 @@ export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C =
27
64
  app(): Hono<HonoEnv<M, F, E, C, P>>;
28
65
  /** Resolves the caller, enforces `allow` and sets `c.var.bs`, `c.var.db`, `c.var.auth`. */
29
66
  middleware(options?: MiddlewareOptions): MiddlewareHandler<HonoEnv<M, F, E, C, P>>;
30
- /** Wraps a handler: `Result`s become JSON or Problem Details, `undefined` becomes 204. */
67
+ /**
68
+ * A route guard after `middleware()`: `allow`, `aal`, `scopes`,
69
+ * `requireTenant` and `authorize`. A refused caller gets Problem Details.
70
+ *
71
+ * ```ts
72
+ * app.post('/invites', bs.require({ requireTenant: true, roles: ['admin'] }), handler)
73
+ * ```
74
+ */
75
+ require: (options?: BlockRequireOptions<C, P>) => MiddlewareHandler<HonoEnv<M, F, E, C, P>>;
76
+ /**
77
+ * Wraps a handler: `Result`s and `AsyncResult`s become JSON or Problem
78
+ * Details, `undefined` becomes 204.
79
+ */
31
80
  handler(fn: (c: Context<HonoEnv<M, F, E, C, P>>, ctx: ServerContext<M, F, E, C, P>) => unknown, options?: {
32
81
  readonly status?: number;
33
82
  }): (c: Context<HonoEnv<M, F, E, C, P>>) => Promise<Response>;
@@ -46,4 +95,4 @@ export interface BetterHono<M extends AnyModels, F extends AnyFunctions, E, C =
46
95
  /** Hono integration: a server plus middleware, handlers and REST resources. */
47
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>;
48
97
  //#endregion
49
- export type { GuardOptions, MiddlewareOptions, ResourceRouteOptions };
98
+ export type { BlockRequireOptions, GuardOptions, HonoBridge, MiddlewareOptions, ResourceRouteOptions };
@@ -1,42 +1,72 @@
1
- import { n as dbError, r as dbErrorOf } from "../errors-DtwXa6b8.js";
2
- import { a as problemResponse } from "../problem-BW1KhzSG.js";
3
- import { d as guard, i as rememberVerifiedFor, n as createServer, p as respond, r as extendServer, u as defaultExpose } from "../server-Csx2sRjg.js";
4
- import { t as defineResource } from "../resource-CRxxwkQq.js";
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-Bc1o3zyy.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-DhE66P5u.js";
7
+ import { t as defineResource } from "../resource-BsvzCMlX.js";
8
+ import { i as requireCaller } from "../kit-Fm-Fv7q5.js";
9
+ import { r as handoffOf } from "../shared-CBxosKK3.js";
10
+ import { bufferRequest, pipeline, seedContext } from "@supabase/middleware";
5
11
  import { Hono } from "hono";
6
12
  import { HTTPException } from "hono/http-exception";
13
+ //#region src/bridges/hono.ts
14
+ const HANDOFF = Symbol("toHono.handoff");
15
+ /** Copies every contributed key onto `c.var`. */
16
+ function publishAll(c, ctx) {
17
+ for (const [key, value] of Object.entries(ctx)) c.set(key, value);
18
+ }
19
+ /**
20
+ * The Hono middleware for `entries`. `publish` decides what lands on
21
+ * `c.var`; `createHono` adds `auth` from `ctx.bs`.
22
+ */
23
+ function honoMiddleware(entries, publish = publishAll) {
24
+ const run = pipeline(entries, async (_request, ctx) => {
25
+ const handoff = handoffOf(ctx, HANDOFF);
26
+ handoff.publish(handoff.c, ctx);
27
+ await handoff.next();
28
+ return handoff.c.res;
29
+ });
30
+ return async (c, next) => {
31
+ if (c.req.raw.body) c.req.raw = bufferRequest(c.req.raw);
32
+ const response = await run(c.req.raw, {
33
+ ...seedContext(c.env),
34
+ [HANDOFF]: {
35
+ c,
36
+ next,
37
+ publish
38
+ }
39
+ });
40
+ if (response !== c.res) {
41
+ c.res = void 0;
42
+ c.res = response;
43
+ }
44
+ };
45
+ }
46
+ /**
47
+ * Runs an entry array in Hono's middleware slot. The pipeline folds once,
48
+ * so entries keep their state across requests; each request publishes every
49
+ * contributed key on `c.var`, runs the rest of the Hono chain, and returns
50
+ * Hono's response back up through the entries, so response-phase entries
51
+ * (refreshed cookies, `withCors`) see it.
52
+ *
53
+ * ```ts
54
+ * const app = new Hono().use(toHono([withBetterSupabase(server)])).get('/notes', (c) => ...)
55
+ * ```
56
+ *
57
+ * Chain `.use()` into the routes it gates: Hono carries the contributed
58
+ * keys through the chained call's type.
59
+ */
60
+ function toHono(entries) {
61
+ return honoMiddleware(entries);
62
+ }
63
+ //#endregion
7
64
  //#region src/hono/index.ts
8
65
  function contextOf(c) {
9
66
  const ctx = c.get("bs");
10
67
  if (!ctx) throw new TypeError("better-supabase: no context on this request; add app.use(bs.middleware()) first");
11
68
  return ctx;
12
69
  }
13
- function isRecord(value) {
14
- return typeof value === "object" && value !== null;
15
- }
16
- function isJwtClaims(value) {
17
- return isRecord(value) && typeof value["sub"] === "string";
18
- }
19
- function isUserClaims(value) {
20
- return isRecord(value) && typeof value["id"] === "string";
21
- }
22
- /**
23
- * The bearer token `withSupabase` from `@supabase/server/adapters/hono`
24
- * verified for this request, with the claims it stored in
25
- * `c.var.supabaseContext`.
26
- */
27
- function verifiedBySupabase(c) {
28
- const supabase = c.var["supabaseContext"];
29
- if (!isRecord(supabase) || supabase["authMode"] !== "user") return void 0;
30
- const { jwtClaims, userClaims } = supabase;
31
- const header = c.req.header("authorization");
32
- const token = header?.startsWith("Bearer ") ? header.slice(7) : "";
33
- if (!token || !isJwtClaims(jwtClaims) || !isUserClaims(userClaims)) return void 0;
34
- return {
35
- token,
36
- claims: jwtClaims,
37
- user: userClaims
38
- };
39
- }
40
70
  /** Hono integration: a server plus middleware, handlers and REST resources. */
41
71
  function createHono(betterSupabase, options = {}) {
42
72
  const server = createServer(betterSupabase, options);
@@ -49,12 +79,22 @@ function createHono(betterSupabase, options = {}) {
49
79
  instance,
50
80
  expose
51
81
  });
52
- const error = dbError("unexpected", expose ? cause.message : "Internal server error", { status: 500 });
53
- return problemResponse(error, {
82
+ return unexpectedResponse(cause, {
54
83
  instance,
55
84
  expose
56
85
  });
57
86
  };
87
+ const waitUntilOf = (c) => {
88
+ if (options.waitUntil) return options.waitUntil;
89
+ try {
90
+ const executionContext = c.executionCtx;
91
+ return (promise) => {
92
+ executionContext.waitUntil(promise);
93
+ };
94
+ } catch {
95
+ return;
96
+ }
97
+ };
58
98
  return extendServer(server, {
59
99
  Env: void 0,
60
100
  onError,
@@ -62,20 +102,32 @@ function createHono(betterSupabase, options = {}) {
62
102
  return new Hono().onError(onError);
63
103
  },
64
104
  middleware(middlewareOptions = {}) {
105
+ const run = honoMiddleware([withBetterSupabase(server, {
106
+ ...middlewareOptions,
107
+ expose
108
+ })], (c, ctx) => {
109
+ const bs = ctx.bs;
110
+ const { tenant } = ctx;
111
+ c.set("bs", bs);
112
+ c.set("db", bs.db);
113
+ c.set("auth", bs.auth);
114
+ c.set("session", toSession(bs.auth));
115
+ c.set("tenant", tenant);
116
+ });
65
117
  return async (c, next) => {
66
- const verified = verifiedBySupabase(c);
67
- if (verified) rememberVerifiedFor(server, verified);
68
- const ctx = await server.context(c.req.raw, { refresh: middlewareOptions.refresh ?? false });
69
- const denied = guard(ctx.auth, middlewareOptions.allow, middlewareOptions.aal, middlewareOptions.scopes);
70
- if (denied) return ctx.resolution.apply(problemResponse(denied, {
118
+ await run(c, next);
119
+ flushEvents(server, waitUntilOf(c));
120
+ };
121
+ },
122
+ require: (requireOptions = {}) => {
123
+ return async (c, next) => {
124
+ const ctx = contextOf(c);
125
+ const caller = await requireCaller(ctx.auth, requireOptions, c.get("tenant"));
126
+ if ("kind" in caller) return problemResponse(caller, {
71
127
  instance: new URL(c.req.url).pathname,
72
128
  expose
73
- }));
74
- c.set("bs", ctx);
75
- c.set("db", ctx.db);
76
- c.set("auth", ctx.auth);
77
- await next();
78
- c.res = ctx.apply(c.res);
129
+ });
130
+ return next();
79
131
  };
80
132
  },
81
133
  handler(fn, handlerOptions = {}) {
@@ -102,4 +154,4 @@ function createHono(betterSupabase, options = {}) {
102
154
  });
103
155
  }
104
156
  //#endregion
105
- export { createHono };
157
+ export { createHono, toHono };