void 0.26.0 → 0.27.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 (365) hide show
  1. package/AGENTS_TEMPLATE.md +1 -3
  2. package/README.md +19 -9
  3. package/dist/{account-cmd-CDry3B5V.mjs → account-cmd-l-FM7Ioq.mjs} +8 -7
  4. package/dist/{application-analysis-DC2yPvzY.mjs → application-analysis-DKy02UY0.mjs} +21 -32
  5. package/dist/{application-routing-C9khgLiS.mjs → application-routing-DQyUh_5S.mjs} +1 -1
  6. package/dist/{auth-D52yG7hl.mjs → auth-Dn2vw-SG.mjs} +9 -9
  7. package/dist/{auth-B60QDbjg.mjs → auth-LMJcNESe.mjs} +1 -1
  8. package/dist/{auth-link-DjeOptYi.mjs → auth-link-vz9Z2kmG.mjs} +5 -5
  9. package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
  10. package/dist/{auth-router-BRxIuqDi.mjs → auth-router-DvsCUVw4.mjs} +6 -19
  11. package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
  12. package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
  13. package/dist/{build-cmd-Ce3C8huo.mjs → build-cmd-D6we0VjO.mjs} +8 -7
  14. package/dist/{cache-CS8Yxr5a.mjs → cache-CZRdzKx1.mjs} +8 -8
  15. package/dist/{cancel-deploy-mZsD88Xa.mjs → cancel-deploy-CQ3NnMvf.mjs} +6 -5
  16. package/dist/{cf-access-YTlqvAsk.mjs → cf-access-BcIBSKqG.mjs} +11 -12
  17. package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
  18. package/dist/cf-build-output-H9a97vME.mjs +2 -0
  19. package/dist/cf-user-agent-lKblH3zU.mjs +17 -0
  20. package/dist/cli/cli.mjs +48 -83
  21. package/dist/cli/cloudflare-operation-process.mjs +78 -78
  22. package/dist/cli/env-schema-probe.mjs +5 -6
  23. package/dist/{client-mC-dFGDD.mjs → client-DlDJuY0s.mjs} +30 -8
  24. package/dist/client-tso2OfcG.mjs +2 -0
  25. package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
  26. package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
  27. package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
  28. package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
  29. package/dist/{cloudflare-operations-DoQrVHAt.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
  30. package/dist/{cloudflare-operations-DYa3coIk.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
  31. package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
  32. package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
  33. package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
  34. package/dist/config-BtSFvXZx.mjs +2 -0
  35. package/dist/config-CLYAosnQ.mjs +78 -0
  36. package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
  37. package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
  38. package/dist/config-entry.d.mts +1 -1
  39. package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
  40. package/dist/{connect-H6EvP62X.mjs → connect-BfPBHHm-.mjs} +12 -11
  41. package/dist/{create-project-B2kk9Q0o.mjs → create-project-BdXEFKal.mjs} +7 -7
  42. package/dist/{create-project-Dbb4uiN-.mjs → create-project-qFDC45zg.mjs} +1 -1
  43. package/dist/{db-DpCKZto0.mjs → db-Xs80hcaA.mjs} +101 -133
  44. package/dist/{delete-CxlSvsvW.mjs → delete-d2vuou3j.mjs} +7 -7
  45. package/dist/{deploy-CeEbnv4b.mjs → deploy-Bqe1PYBw.mjs} +2351 -2497
  46. package/dist/deploy-VsWsVQkw.mjs +2 -0
  47. package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
  48. package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
  49. package/dist/discover-EDUf6JJw.mjs +2 -0
  50. package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
  51. package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
  52. package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
  53. package/dist/{domain-B_9VgOm6.mjs → domain-BsDUBAvt.mjs} +29 -30
  54. package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
  55. package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
  56. package/dist/{email-BokHgjKj.mjs → email-_lGAHOhp.mjs} +24 -19
  57. package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
  58. package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
  59. package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
  60. package/dist/{env-BdTc-K2L.mjs → env-C74QepDE.mjs} +10 -10
  61. package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
  62. package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
  63. package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
  64. package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
  65. package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
  66. package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
  67. package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
  68. package/dist/{fetch-stream-Nm3hkZbT.mjs → fetch-stream-PGgz4uGz.mjs} +18 -23
  69. package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
  70. package/dist/{gen-BhDlTpwW.mjs → gen-DtkQhvQg.mjs} +40 -57
  71. package/dist/gen-dA9hW7AV.mjs +2 -0
  72. package/dist/{github-cmd-hhkTzlGS.mjs → github-cmd-DaDdBbSS.mjs} +65 -164
  73. package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
  74. package/dist/{handler-BeK3weD4.d.mts → handler-CNAwjRcW.d.mts} +4 -11
  75. package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
  76. package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
  77. package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
  78. package/dist/{help-Bv44e2tm.mjs → help-0bTe_lID.mjs} +13 -32
  79. package/dist/help-DfQYVfGY.mjs +2 -0
  80. package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
  81. package/dist/index.d.mts +19 -2
  82. package/dist/index.mjs +619 -532
  83. package/dist/{info-DhtTKh65.mjs → info-PYWwkWyt.mjs} +4 -4
  84. package/dist/{init-BMf4T03q.mjs → init-DaBGmaXC.mjs} +161 -198
  85. package/dist/{link-BqYsSS_I.mjs → link-C6fjafep.mjs} +10 -10
  86. package/dist/{list-_kBToO-l.mjs → list-BTFBlqKl.mjs} +9 -8
  87. package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
  88. package/dist/{live-iAuEH1hd.d.mts → live-Du8jXwOW.d.mts} +4 -2
  89. package/dist/{local-d1-fGxYrVD6.mjs → local-d1-ga5O_idV.mjs} +2 -2
  90. package/dist/{login-DFuo-RWO.mjs → login-GKcNUmtI.mjs} +7 -7
  91. package/dist/login-mx_ydhmp.mjs +2 -0
  92. package/dist/{logs-DYgnh6dH.mjs → logs-BiMSULmc.mjs} +28 -11
  93. package/dist/migrate-BHp07yJE.mjs +2 -0
  94. package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
  95. package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
  96. package/dist/{node-C6Q6e1Es.mjs → node-DJicPvPj.mjs} +5 -5
  97. package/dist/{operator-args-DdY54Bgb.mjs → operator-args-DOBhIaIg.mjs} +10 -1
  98. package/dist/{operator-auth-2dsGlTT5.mjs → operator-auth-BEZ_u0Cz.mjs} +2 -2
  99. package/dist/{operator-client-BFqpp6z0.mjs → operator-client-DbDv4vtE.mjs} +2 -2
  100. package/dist/{operator-cmd-CUGHXrQf.mjs → operator-cmd-BT4hgavL.mjs} +24 -11
  101. package/dist/operator-cmd-CwBB-1yb.mjs +2 -0
  102. package/dist/{output-BvdaehtE.mjs → output-C50ag2r3.mjs} +20 -2
  103. package/dist/pages/client.d.mts +19 -51
  104. package/dist/pages/client.mjs +204 -225
  105. package/dist/pages/head-client.d.mts +1 -1
  106. package/dist/pages/head.d.mts +1 -1
  107. package/dist/pages/head.mjs +1 -1
  108. package/dist/pages/index.d.mts +2 -2
  109. package/dist/pages/index.mjs +6 -12
  110. package/dist/pages/islands-plugin.d.mts +1 -1
  111. package/dist/pages/islands-plugin.mjs +21 -25
  112. package/dist/pages/protocol.d.mts +2 -2
  113. package/dist/pages/protocol.mjs +2 -2
  114. package/dist/{plan-CJGEeTEI.mjs → plan-BhLO2p4w.mjs} +2 -1
  115. package/dist/plan-CH2G51je.mjs +2 -0
  116. package/dist/platform-args-D4E1PjVw.mjs +2 -0
  117. package/dist/{platform-args-DSV2p4nY.mjs → platform-args-DUeXY9Om.mjs} +1 -1
  118. package/dist/{platform-auth-config-Bosx7U1h.mjs → platform-auth-config-CkSx3usH.mjs} +40 -36
  119. package/dist/{platform-auth-protection-DcbL_LW_.mjs → platform-auth-protection-BJimB_p9.mjs} +9 -8
  120. package/dist/{platform-auth-recovery-WfTZ8K6o.mjs → platform-auth-recovery-BU6izFAU.mjs} +8 -7
  121. package/dist/{platform-cmd-DbKtQb_4.mjs → platform-cmd-BbY1dWiM.mjs} +14 -13
  122. package/dist/{platform-cmd-dyFUof0t.mjs → platform-cmd-BbmJiq5O.mjs} +1 -1
  123. package/dist/{platform-discovery-BC0HCKYt.mjs → platform-discovery-DIYz8V63.mjs} +1 -1
  124. package/dist/{platform-domain-Bsq43AJp.mjs → platform-domain-CHVS6cV0.mjs} +6 -6
  125. package/dist/{platform-lifecycle--5gWmDoI.mjs → platform-lifecycle-ByAlpkhV.mjs} +1 -1
  126. package/dist/{platform-lifecycle-Cfi0o6xM.mjs → platform-lifecycle-DzCwqhFq.mjs} +76 -387
  127. package/dist/{platform-management-Bbwf6-Dq.mjs → platform-management-CBOT4BSM.mjs} +1 -1
  128. package/dist/{platform-management-BrF9STZp.mjs → platform-management-CuuVDhyt.mjs} +7 -7
  129. package/dist/{platform-plans-config-DU-8nC2Y.mjs → platform-plans-config-CN-heS4q.mjs} +5 -4
  130. package/dist/{platform-recovery-DQAqAQYu.mjs → platform-recovery-CskSJgLh.mjs} +3 -3
  131. package/dist/{platform-registry-P387v42A.mjs → platform-registry-Cjv2Qf0r.mjs} +5 -1
  132. package/dist/platform-setup-BBxRxmFC.mjs +299 -0
  133. package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
  134. package/dist/prepare-DRUV-g3X.mjs +2 -0
  135. package/dist/{prepare-WoUubFKL.mjs → prepare-Do96654b.mjs} +8 -8
  136. package/dist/{prepare-BMrRWLwP.mjs → prepare-Dq9hTIbo.mjs} +4 -4
  137. package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
  138. package/dist/prerender-render.mjs +1 -1
  139. package/dist/{project-DQstYTxO.mjs → project-BAm2aB6Q.mjs} +1 -1
  140. package/dist/{project-BiaPQ7ur.mjs → project-DedqCp59.mjs} +1 -1
  141. package/dist/{project-cmd-BbH2LptN.mjs → project-cmd-DaoRrn-8.mjs} +19 -19
  142. package/dist/{project-team-Yiww3-go.mjs → project-team-Q_lCA7Io.mjs} +15 -18
  143. package/dist/{project-token-BrtT2NkY.mjs → project-token-BArgK9o1.mjs} +14 -17
  144. package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
  145. package/dist/{project-zero-trust-nYJ2V2nc.mjs → project-zero-trust-KO9Hu2Pq.mjs} +12 -9
  146. package/dist/{protocol-BX8t2jiw.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
  147. package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
  148. package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
  149. package/dist/{provision-VeqAC77A.mjs → provision-BfaLiWbj.mjs} +38 -41
  150. package/dist/{provision-DMTPG8Rh.mjs → provision-Wu9ZBk9L.mjs} +2 -3
  151. package/dist/{requests-TIz_jtSu.mjs → requests-C7Oeoh5u.mjs} +5 -5
  152. package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
  153. package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
  154. package/dist/{rollback-dBqICPzj.mjs → rollback-DVAtrLAl.mjs} +30 -37
  155. package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
  156. package/dist/route-url-BgPja1GS.d.mts +5 -0
  157. package/dist/route-url-BjGv_KKY.mjs +28 -0
  158. package/dist/runner-9wjsSZx-.mjs +2 -0
  159. package/dist/{runner--2KF6Kua.mjs → runner-DMBKSrRk.mjs} +2 -2
  160. package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
  161. package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
  162. package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
  163. package/dist/runtime/ai.d.mts +1 -1
  164. package/dist/runtime/ai.mjs +34 -95
  165. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  166. package/dist/runtime/better-auth-mysql.mjs +4 -9
  167. package/dist/runtime/better-auth-pg.d.mts +1 -1
  168. package/dist/runtime/better-auth-pg.mjs +5 -10
  169. package/dist/runtime/better-auth.d.mts +1 -1
  170. package/dist/runtime/better-auth.mjs +3 -3
  171. package/dist/runtime/client-react.d.mts +2 -3
  172. package/dist/runtime/client-react.mjs +2 -2
  173. package/dist/runtime/client-solid.d.mts +2 -3
  174. package/dist/runtime/client-solid.mjs +2 -2
  175. package/dist/runtime/client-svelte.d.mts +2 -3
  176. package/dist/runtime/client-svelte.mjs +2 -2
  177. package/dist/runtime/client-vue.d.mts +2 -3
  178. package/dist/runtime/client-vue.mjs +2 -2
  179. package/dist/runtime/client.d.mts +2 -3
  180. package/dist/runtime/client.mjs +2 -2
  181. package/dist/runtime/db.mjs +1 -1
  182. package/dist/runtime/durable.mjs +3 -10
  183. package/dist/runtime/email/testing.mjs +5 -5
  184. package/dist/runtime/email.d.mts +2 -1
  185. package/dist/runtime/email.mjs +11 -27
  186. package/dist/runtime/env-public.mjs +15 -20
  187. package/dist/runtime/env.mjs +1 -1
  188. package/dist/runtime/fetch-stream.d.mts +2 -2
  189. package/dist/runtime/fetch-stream.mjs +1 -1
  190. package/dist/runtime/fetch.d.mts +2 -3
  191. package/dist/runtime/fetch.mjs +1 -1
  192. package/dist/runtime/handler.d.mts +1 -1
  193. package/dist/runtime/handler.mjs +2 -2
  194. package/dist/runtime/isr.mjs +1 -1
  195. package/dist/runtime/kv.mjs +10 -11
  196. package/dist/runtime/live-client.d.mts +1 -1
  197. package/dist/runtime/live-client.mjs +12 -22
  198. package/dist/runtime/live-server.mjs +27 -35
  199. package/dist/runtime/live.d.mts +2 -2
  200. package/dist/runtime/live.mjs +2 -2
  201. package/dist/runtime/migration-handler.mjs +4 -81
  202. package/dist/runtime/queues.mjs +1 -1
  203. package/dist/runtime/remote/binding-handler.d.mts +2 -2
  204. package/dist/runtime/remote/binding-handler.mjs +8 -9
  205. package/dist/runtime/remote/index.mjs +27 -77
  206. package/dist/runtime/route-url.d.mts +2 -4
  207. package/dist/runtime/route-url.mjs +1 -1
  208. package/dist/runtime/routing.d.mts +1 -1
  209. package/dist/runtime/routing.mjs +15 -26
  210. package/dist/runtime/sandbox.mjs +2 -2
  211. package/dist/runtime/sse.mjs +1 -1
  212. package/dist/runtime/storage.mjs +1 -1
  213. package/dist/runtime/validator.d.mts +1 -1
  214. package/dist/runtime/ws-server.d.mts +2 -2
  215. package/dist/runtime/ws-server.mjs +30 -61
  216. package/dist/runtime/ws.d.mts +1 -1
  217. package/dist/runtime/ws.mjs +1 -1
  218. package/dist/{scan-C8dA7iM4.mjs → scan-C3uDzz6J.mjs} +12 -13
  219. package/dist/{secret-AKnNXNP5.mjs → secret-BvtB7IjY.mjs} +15 -15
  220. package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
  221. package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
  222. package/dist/{subcommand-prompt-B6WS9Aoz.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
  223. package/dist/sveltekit.d.mts +0 -2
  224. package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
  225. package/dist/validate-BJr9LfXy.mjs +2 -0
  226. package/dist/{validate-ymhap6M_.mjs → validate-C9qJArv7.mjs} +9 -28
  227. package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
  228. package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
  229. package/dist/{ws-C79j4aED.d.mts → ws-CChrrAU-.d.mts} +1 -1
  230. package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
  231. package/{skills/void/docs → docs}/guide/ai.md +5 -3
  232. package/{skills/void/docs → docs}/guide/auth.md +37 -1
  233. package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
  234. package/{skills/void/docs → docs}/guide/deployment.md +2 -2
  235. package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
  236. package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
  237. package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
  238. package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
  239. package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
  240. package/{skills/void/docs → docs}/guide/jobs.md +2 -2
  241. package/{skills/void/docs → docs}/guide/live.md +10 -5
  242. package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +20 -8
  243. package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
  244. package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
  245. package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
  246. package/{skills/void/docs → docs}/guide/platform/administration/access.md +3 -11
  247. package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
  248. package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
  249. package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
  250. package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
  251. package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
  252. package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
  253. package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +4 -2
  254. package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +4 -0
  255. package/{skills/void/docs → docs}/guide/project-collaboration.md +7 -3
  256. package/{skills/void/docs → docs}/guide/queues.md +0 -2
  257. package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
  258. package/{skills/void/docs → docs}/guide/sandboxes.md +2 -2
  259. package/{skills/void/docs → docs}/guide/sse.md +0 -2
  260. package/{skills/void/docs → docs}/guide/storage.md +7 -2
  261. package/{skills/void/docs → docs}/guide/websockets.md +4 -0
  262. package/docs/integrations/agents.md +37 -0
  263. package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
  264. package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
  265. package/{skills/void/docs → docs}/integrations/hono.md +15 -7
  266. package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
  267. package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
  268. package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
  269. package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
  270. package/{skills/void/docs → docs}/reference/cli/auth.md +1 -6
  271. package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
  272. package/{skills/void/docs → docs}/reference/cli/deploy.md +1 -1
  273. package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
  274. package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
  275. package/{skills/void/docs → docs}/reference/cli/platform-config.md +1 -1
  276. package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
  277. package/{skills/void/docs → docs}/reference/cli/platform-installation.md +1 -1
  278. package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
  279. package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
  280. package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
  281. package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
  282. package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
  283. package/{skills/void/docs → docs}/reference/cli.md +1 -1
  284. package/{skills/void/docs → docs}/reference/config.md +13 -13
  285. package/{skills/void/docs → docs}/reference/resource-inference.md +1 -16
  286. package/package.json +34 -30
  287. package/schema.json +1 -1
  288. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
  289. package/skills/void/SKILL.md +9 -5
  290. package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
  291. package/dist/client-BxVixJBI.mjs +0 -2
  292. package/dist/config-0acf1oys.mjs +0 -2
  293. package/dist/config-D8MOgiQV.mjs +0 -32
  294. package/dist/deploy-qmiLE1G1.mjs +0 -2
  295. package/dist/discover-AMCBXivQ.mjs +0 -2
  296. package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
  297. package/dist/gen-qCBwH3fZ.mjs +0 -2
  298. package/dist/help-Dw5f9Xrg.mjs +0 -2
  299. package/dist/login-D7meQg_3.mjs +0 -2
  300. package/dist/migrate-CEu2X5DB.mjs +0 -2
  301. package/dist/operator-cmd-DRPvhpjM.mjs +0 -2
  302. package/dist/plan-COtUvdMA.mjs +0 -2
  303. package/dist/platform-args-Dcy_5b_Y.mjs +0 -2
  304. package/dist/prepare-BBknoZI1.mjs +0 -2
  305. package/dist/resolve-project-DtbidV4y.mjs +0 -2
  306. package/dist/route-url-CG7U-cRN.mjs +0 -15
  307. package/dist/runner-voIltZrY.mjs +0 -2
  308. package/dist/validate-pna7R3Pv.mjs +0 -2
  309. package/skills/void/docs/integrations/agents.md +0 -26
  310. package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
  311. package/{skills/void/docs → docs}/guide/app-types.md +0 -0
  312. package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
  313. package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
  314. package/{skills/void/docs → docs}/guide/database.md +8 -8
  315. package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
  316. package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
  317. package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
  318. package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
  319. package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
  320. package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
  321. package/{skills/void/docs → docs}/guide/email.md +0 -0
  322. package/{skills/void/docs → docs}/guide/index.md +0 -0
  323. package/{skills/void/docs → docs}/guide/kv.md +0 -0
  324. package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
  325. package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
  326. package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
  327. package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
  328. package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
  329. package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
  330. package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
  331. package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
  332. package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +0 -0
  333. package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
  334. package/{skills/void/docs → docs}/guide/platform/installation/setup.md +0 -0
  335. package/{skills/void/docs → docs}/guide/platform/installation/uninstall.md +0 -0
  336. package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
  337. package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
  338. package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
  339. package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
  340. package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
  341. package/{skills/void/docs → docs}/guide/ssg.md +0 -0
  342. package/{skills/void/docs → docs}/guide/ssr.md +0 -0
  343. package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
  344. package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
  345. package/{skills/void/docs → docs}/index.md +0 -0
  346. package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
  347. package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
  348. package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
  349. package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
  350. package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
  351. package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
  352. package/{skills/void/docs → docs}/reference/api/client.md +0 -0
  353. package/{skills/void/docs → docs}/reference/api/database.md +2 -2
  354. /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
  355. /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
  356. /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
  357. /package/{skills/void/docs → docs}/reference/api/resources.md +0 -0
  358. /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
  359. /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
  360. /package/{skills/void/docs → docs}/reference/api.md +0 -0
  361. /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
  362. /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
  363. /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
  364. /package/{skills/void/docs → docs}/reference/cli/platform.md +0 -0
  365. /package/{skills/void/docs → docs}/reference/structure.md +0 -0
@@ -1,5 +1,5 @@
1
1
  import { t as cfAccessHeaders } from "../cf-access-TWNzXltp.mjs";
2
- import { a as getRawRuntimeEnv } from "../env-raw-Cx8ElDdj.mjs";
2
+ import { a as getRawRuntimeEnv } from "../env-raw-jZpP5n47.mjs";
3
3
  import { r as limitFromResponse, t as UsageLimit } from "../limits-D0vD1M9A.mjs";
4
4
  //#region src/runtime/ai-types.ts
5
5
  /** Maps provider prefix to expected env var name for the API key */
@@ -143,9 +143,6 @@ async function serializeProxyValue(value, serializeDataObjectAsFile = false) {
143
143
  }
144
144
  return value;
145
145
  }
146
- function formFileName(value, fallback) {
147
- return fileNameFromBlob(value) ?? fallback;
148
- }
149
146
  async function serializeFormData(form) {
150
147
  const entries = [];
151
148
  for (const [name, value] of form.entries()) {
@@ -161,7 +158,7 @@ async function serializeFormData(form) {
161
158
  value: {
162
159
  [VOID_FILE_MARKER]: true,
163
160
  data: arrayBufferToBase64(await value.arrayBuffer()),
164
- name: formFileName(value, name),
161
+ name: fileNameFromBlob(value) ?? name,
165
162
  type: value.type || void 0
166
163
  }
167
164
  });
@@ -260,7 +257,7 @@ function isUnsafeProviderPath(path) {
260
257
  return false;
261
258
  }
262
259
  /**
263
- * Build a real outgoing HTTP body for the user's own AI Gateway (P3 self-host).
260
+ * Build a real outgoing HTTP body for the user's own AI Gateway (self-host).
264
261
  *
265
262
  * Unlike `serializeProviderBody`/`providerRequestBody` (which build the proxy
266
263
  * envelope decoded on the proxy side), this emits an actual `BodyInit` +
@@ -304,16 +301,10 @@ async function providerRequestBody(provider, path, init, options, runtimeEnv) {
304
301
  apiKeyPrefix: options?.apiKeyPrefix
305
302
  };
306
303
  }
307
- function makeServiceBindingBackend(proxy, runtimeEnv) {
308
- async function proxyFetch(action, body, options = {}) {
309
- const res = await proxy.fetch(`https://ai-proxy/ai/${action}`, {
310
- method: "POST",
311
- headers: { "content-type": "application/json" },
312
- body: JSON.stringify({
313
- action,
314
- ...body
315
- })
316
- });
304
+ /** Backend for the Void platform proxy, reached by service binding or HTTPS. */
305
+ function makeProxyBackend(send, runtimeEnv) {
306
+ async function proxyFetch(action, payload, options = {}) {
307
+ const res = await send(action, payload);
317
308
  const limit = await limitFromResponse(res, "ai");
318
309
  if (limit) throw limit;
319
310
  if (options.throwOnError !== false && !res.ok) {
@@ -324,60 +315,48 @@ function makeServiceBindingBackend(proxy, runtimeEnv) {
324
315
  }
325
316
  return {
326
317
  async run(model, inputs, options) {
327
- const projectId = runtimeEnv.__PROJECT_ID;
328
- const aiToken = runtimeEnv.__VOID_PROXY_TOKEN;
329
318
  const res = await proxyFetch("run", {
330
319
  model,
331
320
  inputs,
332
- options,
333
- projectId,
334
- aiToken
321
+ options
335
322
  });
336
323
  if (hasStreamFlag(inputs) && inputs.stream) return res.body;
337
324
  return readProxyResult(res);
338
325
  },
339
326
  async image(model, inputs, options) {
340
- const projectId = runtimeEnv.__PROJECT_ID;
341
- const aiToken = runtimeEnv.__VOID_PROXY_TOKEN;
342
327
  const { runOptions } = splitImageOptions(options);
343
328
  return proxyFetch("run", {
344
329
  model,
345
330
  inputs,
346
- options: runOptions,
347
- projectId,
348
- aiToken
331
+ options: runOptions
349
332
  });
350
333
  },
351
334
  async providerFetch(provider, path, init, options) {
352
- const projectId = runtimeEnv.__PROJECT_ID;
353
- const aiToken = runtimeEnv.__VOID_PROXY_TOKEN;
354
- return proxyFetch("provider", {
355
- ...await providerRequestBody(provider, path, init, options, runtimeEnv),
356
- projectId,
357
- aiToken
358
- }, { throwOnError: false });
335
+ return proxyFetch("provider", await providerRequestBody(provider, path, init, options, runtimeEnv), { throwOnError: false });
359
336
  },
360
337
  async models(params) {
361
- const projectId = runtimeEnv.__PROJECT_ID;
362
- const aiToken = runtimeEnv.__VOID_PROXY_TOKEN;
363
- return (await proxyFetch("models", {
364
- inputs: params,
365
- projectId,
366
- aiToken
367
- })).json();
338
+ return (await proxyFetch("models", { inputs: params })).json();
368
339
  },
369
340
  async toMarkdown(items, options) {
370
- const projectId = runtimeEnv.__PROJECT_ID;
371
- const aiToken = runtimeEnv.__VOID_PROXY_TOKEN;
372
341
  return (await proxyFetch("toMarkdown", {
373
342
  inputs: items,
374
- options,
375
- projectId,
376
- aiToken
343
+ options
377
344
  })).json();
378
345
  }
379
346
  };
380
347
  }
348
+ function makeServiceBindingBackend(proxy, runtimeEnv) {
349
+ return makeProxyBackend((action, payload) => proxy.fetch(`https://ai-proxy/ai/${action}`, {
350
+ method: "POST",
351
+ headers: { "content-type": "application/json" },
352
+ body: JSON.stringify({
353
+ action,
354
+ ...payload,
355
+ projectId: runtimeEnv.__PROJECT_ID,
356
+ aiToken: runtimeEnv.__VOID_PROXY_TOKEN
357
+ })
358
+ }), runtimeEnv);
359
+ }
381
360
  function makeHttpBackend(token, projectId, runtimeEnv) {
382
361
  const base = getProxyUrl(runtimeEnv);
383
362
  const headers = {
@@ -385,56 +364,16 @@ function makeHttpBackend(token, projectId, runtimeEnv) {
385
364
  authorization: `Bearer ${token}`,
386
365
  ...cfAccessHeaders(runtimeEnv, base)
387
366
  };
388
- async function proxyFetch(action, body, options = {}) {
389
- const res = await fetch(`${base}/${action}`, {
390
- method: "POST",
391
- headers,
392
- body: JSON.stringify({
393
- action,
394
- ...body,
395
- projectId
396
- }),
397
- redirect: "manual"
398
- });
399
- const limit = await limitFromResponse(res, "ai");
400
- if (limit) throw limit;
401
- if (options.throwOnError !== false && !res.ok) {
402
- const text = await res.text();
403
- throw new Error(`ai: Proxy request failed with ${res.status}: '${text}'.`);
404
- }
405
- return res;
406
- }
407
- return {
408
- async run(model, inputs, options) {
409
- const res = await proxyFetch("run", {
410
- model,
411
- inputs,
412
- options
413
- });
414
- if (hasStreamFlag(inputs) && inputs.stream) return res.body;
415
- return readProxyResult(res);
416
- },
417
- async image(model, inputs, options) {
418
- const { runOptions } = splitImageOptions(options);
419
- return proxyFetch("run", {
420
- model,
421
- inputs,
422
- options: runOptions
423
- });
424
- },
425
- async providerFetch(provider, path, init, options) {
426
- return proxyFetch("provider", await providerRequestBody(provider, path, init, options, runtimeEnv), { throwOnError: false });
427
- },
428
- async models(params) {
429
- return (await proxyFetch("models", { inputs: params })).json();
430
- },
431
- async toMarkdown(items, options) {
432
- return (await proxyFetch("toMarkdown", {
433
- inputs: items,
434
- options
435
- })).json();
436
- }
437
- };
367
+ return makeProxyBackend((action, payload) => fetch(`${base}/${action}`, {
368
+ method: "POST",
369
+ headers,
370
+ body: JSON.stringify({
371
+ action,
372
+ ...payload,
373
+ projectId
374
+ }),
375
+ redirect: "manual"
376
+ }), runtimeEnv);
438
377
  }
439
378
  function makeDirectBackend(directAi, runtimeEnv, gatewayId) {
440
379
  const run = async (model, inputs, options) => {
@@ -1,4 +1,4 @@
1
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-BVkjZ3vM.mjs";
1
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-CPvWD3nG.mjs";
2
2
  //#region src/runtime/better-auth-mysql.d.ts
3
3
  export declare const resolveVoidAuthOptions: VoidAuthRuntimeApi["resolveVoidAuthOptions"];
4
4
  export declare const createVoidAuth: VoidAuthRuntimeApi["createVoidAuth"];
@@ -1,15 +1,10 @@
1
- import { t as applyMySqlAuthMigrations } from "../auth-migrations-9vif1uj8.mjs";
2
- import { t as createVoidAuthRuntime } from "../better-auth-shared-hy6RPh9W.mjs";
1
+ import { t as applyMySqlAuthMigrations } from "../auth-migrations-BwHgeEsD.mjs";
2
+ import { n as createVoidAuthRuntime, r as resolveConnectionString } from "../better-auth-shared-DPpj8zxc.mjs";
3
3
  //#region src/runtime/better-auth-mysql.ts
4
- function resolveConnectionString(env) {
5
- const connectionString = typeof env.DATABASE_URL === "string" && env.DATABASE_URL.length > 0 ? env.DATABASE_URL : typeof env.HYPERDRIVE?.connectionString === "string" && env.HYPERDRIVE.connectionString.length > 0 ? env.HYPERDRIVE.connectionString : void 0;
6
- if (!connectionString) throw new Error("auth: Better Auth requires DATABASE_URL for local MySQL dev or HYPERDRIVE in production.");
7
- return connectionString;
8
- }
9
4
  async function resolveDatabase(env) {
10
5
  const { createPool } = await import("mysql2/promise");
11
6
  const pool = createPool({
12
- uri: resolveConnectionString(env),
7
+ uri: resolveConnectionString(env, "MySQL"),
13
8
  connectionLimit: 1
14
9
  });
15
10
  return {
@@ -23,7 +18,7 @@ async function runMySqlAuthMigrations(_request, env, runtime, migrationSchema) {
23
18
  if (!migrationSchema) throw new Error("auth: Migration schema is unavailable.");
24
19
  if (runtime.dialect !== "mysql" || migrationSchema.dialect !== "mysql") throw new Error("auth: Runtime mismatch. Expected mysql.");
25
20
  const { createConnection } = await import("mysql2/promise");
26
- const connection = await createConnection(resolveConnectionString(env));
21
+ const connection = await createConnection(resolveConnectionString(env, "MySQL"));
27
22
  try {
28
23
  await applyMySqlAuthMigrations({
29
24
  async all(sql, params) {
@@ -1,4 +1,4 @@
1
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-BVkjZ3vM.mjs";
1
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-CPvWD3nG.mjs";
2
2
  //#region src/runtime/better-auth-pg.d.ts
3
3
  export declare const resolveVoidAuthOptions: VoidAuthRuntimeApi["resolveVoidAuthOptions"];
4
4
  export declare const createVoidAuth: VoidAuthRuntimeApi["createVoidAuth"];
@@ -1,15 +1,10 @@
1
- import { n as applyPgAuthMigrations } from "../auth-migrations-9vif1uj8.mjs";
2
- import { t as createVoidAuthRuntime } from "../better-auth-shared-hy6RPh9W.mjs";
1
+ import { n as applyPgAuthMigrations } from "../auth-migrations-BwHgeEsD.mjs";
2
+ import { n as createVoidAuthRuntime, r as resolveConnectionString, t as assertRuntimeDialect } from "../better-auth-shared-DPpj8zxc.mjs";
3
3
  import { t as disablePgPassFallback } from "../pg-J2HbZIkX.mjs";
4
4
  //#region src/runtime/better-auth-pg.ts
5
- function resolveConnectionString(env) {
6
- const connectionString = typeof env.DATABASE_URL === "string" && env.DATABASE_URL.length > 0 ? env.DATABASE_URL : typeof env.HYPERDRIVE?.connectionString === "string" && env.HYPERDRIVE.connectionString.length > 0 ? env.HYPERDRIVE.connectionString : void 0;
7
- if (!connectionString) throw new Error("auth: Better Auth requires DATABASE_URL for local PostgreSQL dev or HYPERDRIVE in production.");
8
- return connectionString;
9
- }
10
5
  async function resolveDatabase(env) {
11
6
  const { default: pg } = await import("pg");
12
- const connectionString = resolveConnectionString(env);
7
+ const connectionString = resolveConnectionString(env, "PostgreSQL");
13
8
  const pool = new pg.Pool({
14
9
  connectionString,
15
10
  max: 1
@@ -23,10 +18,10 @@ async function resolveDatabase(env) {
23
18
  }
24
19
  async function runPostgresAuthMigrations(_request, env, runtime, migrationSchema) {
25
20
  if (!migrationSchema) throw new Error("auth: Migration schema is unavailable.");
26
- if (runtime.dialect !== "postgresql") throw new Error(`auth: Runtime mismatch. Expected postgresql, received '${runtime.dialect}'.`);
21
+ assertRuntimeDialect(runtime, "postgresql");
27
22
  if (migrationSchema.dialect !== "postgresql") throw new Error(`auth: Runtime mismatch. Expected postgresql, received '${migrationSchema.dialect}'.`);
28
23
  const { Client } = await import("pg");
29
- const client = new Client({ connectionString: resolveConnectionString(env) });
24
+ const client = new Client({ connectionString: resolveConnectionString(env, "PostgreSQL") });
30
25
  disablePgPassFallback(client);
31
26
  await client.connect();
32
27
  try {
@@ -1,4 +1,4 @@
1
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-BVkjZ3vM.mjs";
1
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-CPvWD3nG.mjs";
2
2
  //#region src/runtime/better-auth.d.ts
3
3
  export declare const resolveVoidAuthOptions: VoidAuthRuntimeApi["resolveVoidAuthOptions"];
4
4
  export declare const createVoidAuth: VoidAuthRuntimeApi["createVoidAuth"];
@@ -1,5 +1,5 @@
1
- import { r as applySqliteAuthMigrations } from "../auth-migrations-9vif1uj8.mjs";
2
- import { t as createVoidAuthRuntime } from "../better-auth-shared-hy6RPh9W.mjs";
1
+ import { r as applySqliteAuthMigrations } from "../auth-migrations-BwHgeEsD.mjs";
2
+ import { n as createVoidAuthRuntime, t as assertRuntimeDialect } from "../better-auth-shared-DPpj8zxc.mjs";
3
3
  //#region src/runtime/better-auth.ts
4
4
  async function resolveDatabase(env) {
5
5
  if (!env.DB) throw new Error("auth: Better Auth requires the \"DB\" D1 binding for sqlite apps.");
@@ -10,7 +10,7 @@ async function resolveDatabase(env) {
10
10
  }
11
11
  async function runSqliteAuthMigrations(_request, env, runtime, migrationSchema) {
12
12
  if (!migrationSchema) throw new Error("auth: Migration schema is unavailable.");
13
- if (runtime.dialect !== "sqlite") throw new Error(`auth: Runtime mismatch. Expected sqlite, received '${runtime.dialect}'.`);
13
+ assertRuntimeDialect(runtime, "sqlite");
14
14
  if (migrationSchema.dialect !== "sqlite") throw new Error(`auth: Runtime mismatch. Expected sqlite, received '${migrationSchema.dialect}'.`);
15
15
  if (!env.DB) throw new Error("auth: Better Auth requires the \"DB\" D1 binding for sqlite apps.");
16
16
  await applySqliteAuthMigrations({
@@ -1,6 +1,5 @@
1
1
  import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-DkcFflXV.mjs";
2
2
  import { n as createAuthClient, t as auth } from "../auth-client-react-7GFffu8R.mjs";
3
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
4
- import { t as fetch } from "../fetch-_SeGZao9.mjs";
5
- import { t as fetchStream } from "../fetch-stream-Bjf0hoZb.mjs";
3
+ import { a as fetch, o as FetchError } from "../fetch-BPCYVi3H.mjs";
4
+ import { t as fetchStream } from "../fetch-stream-obvZ7fvO.mjs";
6
5
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,5 +1,5 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetch } from "../fetch-BIZJh7vR.mjs";
3
- import { t as fetchStream } from "../fetch-stream-Nm3hkZbT.mjs";
2
+ import { t as fetch } from "../fetch-sAcwjzLO.mjs";
3
+ import { t as fetchStream } from "../fetch-stream-PGgz4uGz.mjs";
4
4
  import { n as createAuthClient, t as auth } from "../auth-client-react-CMLwT2xI.mjs";
5
5
  export { FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,5 @@
1
1
  import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-DkcFflXV.mjs";
2
2
  import { n as createAuthClient, t as auth } from "../auth-client-solid-DyTFL4cq.mjs";
3
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
4
- import { t as fetch } from "../fetch-_SeGZao9.mjs";
5
- import { t as fetchStream } from "../fetch-stream-Bjf0hoZb.mjs";
3
+ import { a as fetch, o as FetchError } from "../fetch-BPCYVi3H.mjs";
4
+ import { t as fetchStream } from "../fetch-stream-obvZ7fvO.mjs";
6
5
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,5 +1,5 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetch } from "../fetch-BIZJh7vR.mjs";
3
- import { t as fetchStream } from "../fetch-stream-Nm3hkZbT.mjs";
2
+ import { t as fetch } from "../fetch-sAcwjzLO.mjs";
3
+ import { t as fetchStream } from "../fetch-stream-PGgz4uGz.mjs";
4
4
  import { n as createAuthClient, t as auth } from "../auth-client-solid-UoreJWZG.mjs";
5
5
  export { FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,5 @@
1
1
  import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-DkcFflXV.mjs";
2
2
  import { n as createAuthClient, t as auth } from "../auth-client-svelte-zetW0KIH.mjs";
3
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
4
- import { t as fetch } from "../fetch-_SeGZao9.mjs";
5
- import { t as fetchStream } from "../fetch-stream-Bjf0hoZb.mjs";
3
+ import { a as fetch, o as FetchError } from "../fetch-BPCYVi3H.mjs";
4
+ import { t as fetchStream } from "../fetch-stream-obvZ7fvO.mjs";
6
5
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,5 +1,5 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetch } from "../fetch-BIZJh7vR.mjs";
3
- import { t as fetchStream } from "../fetch-stream-Nm3hkZbT.mjs";
2
+ import { t as fetch } from "../fetch-sAcwjzLO.mjs";
3
+ import { t as fetchStream } from "../fetch-stream-PGgz4uGz.mjs";
4
4
  import { n as createAuthClient, t as auth } from "../auth-client-svelte-Cv_WvrRk.mjs";
5
5
  export { FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,5 @@
1
1
  import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-DkcFflXV.mjs";
2
2
  import { n as createAuthClient, t as auth } from "../auth-client-vue-bChShbQP.mjs";
3
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
4
- import { t as fetch } from "../fetch-_SeGZao9.mjs";
5
- import { t as fetchStream } from "../fetch-stream-Bjf0hoZb.mjs";
3
+ import { a as fetch, o as FetchError } from "../fetch-BPCYVi3H.mjs";
4
+ import { t as fetchStream } from "../fetch-stream-obvZ7fvO.mjs";
6
5
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,5 +1,5 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetch } from "../fetch-BIZJh7vR.mjs";
3
- import { t as fetchStream } from "../fetch-stream-Nm3hkZbT.mjs";
2
+ import { t as fetch } from "../fetch-sAcwjzLO.mjs";
3
+ import { t as fetchStream } from "../fetch-stream-PGgz4uGz.mjs";
4
4
  import { n as createAuthClient, t as auth } from "../auth-client-vue-CFk7Xbv3.mjs";
5
5
  export { FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,5 @@
1
1
  import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-DkcFflXV.mjs";
2
2
  import { n as createAuthClient, t as auth } from "../auth-client-Bawdj38n.mjs";
3
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
4
- import { t as fetch } from "../fetch-_SeGZao9.mjs";
5
- import { t as fetchStream } from "../fetch-stream-Bjf0hoZb.mjs";
3
+ import { a as fetch, o as FetchError } from "../fetch-BPCYVi3H.mjs";
4
+ import { t as fetchStream } from "../fetch-stream-obvZ7fvO.mjs";
6
5
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,5 +1,5 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetch } from "../fetch-BIZJh7vR.mjs";
3
- import { t as fetchStream } from "../fetch-stream-Nm3hkZbT.mjs";
2
+ import { t as fetch } from "../fetch-sAcwjzLO.mjs";
3
+ import { t as fetchStream } from "../fetch-stream-PGgz4uGz.mjs";
4
4
  import { n as createAuthClient, t as auth } from "../auth-client-BWBT8HLp.mjs";
5
5
  export { FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,4 +1,4 @@
1
- import { a as requireRuntimeBinding, r as getRuntimeRequestResource } from "../env-D5liuQYR.mjs";
1
+ import { a as requireRuntimeBinding, r as getRuntimeRequestResource } from "../env-DMA3cXZt.mjs";
2
2
  import { drizzle } from "drizzle-orm/d1";
3
3
  import { and, asc, avg, between, count, desc, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, max, min, ne, not, notBetween, notExists, notInArray, notLike, or, sql, sum } from "drizzle-orm";
4
4
  //#region src/runtime/db.ts
@@ -1,11 +1,8 @@
1
1
  import { t as isResourceName } from "../resource-name-C7LVpcRm.mjs";
2
- import { a as requireRuntimeBinding, o as withRuntimeEnv } from "../env-D5liuQYR.mjs";
2
+ import { a as requireRuntimeBinding, o as withRuntimeEnv } from "../env-DMA3cXZt.mjs";
3
3
  import { DurableObject } from "cloudflare:workers";
4
4
  //#region src/runtime/durable.ts
5
5
  const DEFAULT_STORAGE_KEY = "__void_durable_state";
6
- function cloneInitialState(state) {
7
- return structuredClone(state);
8
- }
9
6
  function assertMigrations(version, migrations) {
10
7
  const byVersion = /* @__PURE__ */ new Map();
11
8
  for (const migration of migrations) {
@@ -43,7 +40,7 @@ function defineDurableState(definition) {
43
40
  async #load() {
44
41
  const stored = await this.#objectState.storage.get(storageKey);
45
42
  if (!stored) {
46
- const initial = typeof definition.initialState === "function" ? await definition.initialState(this.#runtimeEnv) : cloneInitialState(definition.initialState);
43
+ const initial = typeof definition.initialState === "function" ? await definition.initialState(this.#runtimeEnv) : structuredClone(definition.initialState);
47
44
  this.#value = initial;
48
45
  await this.#persist();
49
46
  return;
@@ -51,11 +48,7 @@ function defineDurableState(definition) {
51
48
  if (stored.__voidDurableState !== true || !Number.isInteger(stored.version)) throw new Error(`durable: invalid state record at storage key '${storageKey}'.`);
52
49
  if (stored.version > version) throw new Error(`durable: stored state version ${stored.version} is newer than supported version ${version}.`);
53
50
  let value = stored.value;
54
- for (let nextVersion = stored.version + 1; nextVersion <= version; nextVersion++) {
55
- const migration = migrations.get(nextVersion);
56
- if (!migration) throw new Error(`durable: missing state migration for version ${nextVersion}.`);
57
- value = await migration.migrate(value);
58
- }
51
+ for (let nextVersion = stored.version + 1; nextVersion <= version; nextVersion++) value = await migrations.get(nextVersion).migrate(value);
59
52
  this.#value = value;
60
53
  if (stored.version !== version) await this.#persist();
61
54
  }
@@ -1,7 +1,7 @@
1
- import { i as normalizeEmail, r as buildMime } from "../../mime-D5Nmdzf7.mjs";
2
- import { n as compileEmailPattern, t as compareEmailRoutes } from "../../email--tEtMoj_.mjs";
3
- import { y as registerEmailSink } from "../../dev-inbox-D64ZKUod.mjs";
4
- import { i as createMessageProxy, n as MAX_INBOUND_HEADERS, t as MAX_INBOUND_BYTES } from "../../inbound-fRkqcXaC.mjs";
1
+ import { i as normalizeEmail, r as buildMime } from "../../mime-DxCznlJq.mjs";
2
+ import { n as compileEmailPattern, t as compareEmailRoutes } from "../../email-d_Aux1vM.mjs";
3
+ import { b as registerEmailSink } from "../../dev-inbox-CK-UuPob.mjs";
4
+ import { a as createMessageProxy, n as MAX_INBOUND_HEADERS, t as MAX_INBOUND_BYTES } from "../../inbound-PfQDLXc5.mjs";
5
5
  //#region src/runtime/email/testing.ts
6
6
  /**
7
7
  * Test harnesses for void/email.
@@ -163,7 +163,7 @@ function createInboundTestHarness(opts) {
163
163
  else {
164
164
  const at = input.to.indexOf("@");
165
165
  const label = at === -1 ? "void email" : input.to.slice(at + 1).toLowerCase() || "void email";
166
- if (raw.byteLength > 10485760) return refuse(`${label}: message too large (max ${MAX_INBOUND_BYTES} bytes)`);
166
+ if (raw.byteLength > MAX_INBOUND_BYTES) return refuse(`${label}: message too large (max ${MAX_INBOUND_BYTES} bytes)`);
167
167
  try {
168
168
  headers = parseHeaderBlock(raw, MAX_INBOUND_HEADERS);
169
169
  } catch (e) {
@@ -9,7 +9,8 @@ export declare class MimeError extends Error {
9
9
  //#endregion
10
10
  //#region src/runtime/email.d.ts
11
11
  /**
12
- * Send an email via the Void platform proxy.
12
+ * Send an email via the worker's own `SEND_EMAIL` binding or the Void
13
+ * platform proxy.
13
14
  *
14
15
  * During `void dev` the message is captured by the local inbox
15
16
  * (`/__void/inbox`) and never reaches the proxy; an in-process sink
@@ -1,7 +1,7 @@
1
- import { i as normalizeEmail, n as MimeError, r as buildMime } from "../mime-D5Nmdzf7.mjs";
2
- import { a as DEV_INBOX_ENV_VAR, b as serializeCapturedMessage, c as DEV_INBOX_TOKEN_ENV_VAR, d as captureMessage, h as hasActiveSink, i as DEV_INBOX_CAPTURE_URL, p as dispatchToSinks } from "../dev-inbox-D64ZKUod.mjs";
3
- import { a as getRawRuntimeEnv } from "../env-raw-Cx8ElDdj.mjs";
4
- import { a as defineEmail, c as parseEmail, i as createMessageProxy, l as replyEmail, o as enactEmailActions, r as ParseEmailError, s as isForwardableEmailMessage } from "../inbound-fRkqcXaC.mjs";
1
+ import { i as normalizeEmail, n as MimeError, r as buildMime } from "../mime-DxCznlJq.mjs";
2
+ import { a as DEV_INBOX_ENV_VAR, c as DEV_INBOX_TOKEN_ENV_VAR, d as bytesToBase64, f as captureMessage, g as hasActiveSink, i as DEV_INBOX_CAPTURE_URL, m as dispatchToSinks, x as serializeCapturedMessage } from "../dev-inbox-CK-UuPob.mjs";
3
+ import { a as getRawRuntimeEnv } from "../env-raw-jZpP5n47.mjs";
4
+ import { a as createMessageProxy, c as isForwardableEmailMessage, i as bytesToReadableStream, l as parseEmail, o as defineEmail, r as ParseEmailError, s as enactEmailActions, u as replyEmail } from "../inbound-PfQDLXc5.mjs";
5
5
  import { isRecord } from "@void/deploy-core";
6
6
  //#region src/runtime/email.ts
7
7
  const VALID_SLUG = /^[a-z0-9](?:[a-z0-9-]{0,54}[a-z0-9])?$/;
@@ -78,7 +78,6 @@ function resolveSendEmailBinding(env) {
78
78
  * `OUTCOME_UNKNOWN` with the original error as `cause`: once `send()` has
79
79
  * started, an undocumented rejection does not prove the provider declined
80
80
  * the message before accepting it.
81
- *
82
81
  */
83
82
  function classifyBindingError(e) {
84
83
  const message = e instanceof Error ? e.message : String(e);
@@ -93,12 +92,6 @@ function classifyBindingError(e) {
93
92
  return makeError("OUTCOME_UNKNOWN", message, e);
94
93
  }
95
94
  const UNVERIFIED_DESTINATION_RE = /^[^\n]{0,200}destination address[^\n]{0,200}not (?:yet )?verified/i;
96
- function bytesToReadableStream(bytes) {
97
- return new ReadableStream({ start(controller) {
98
- controller.enqueue(bytes);
99
- controller.close();
100
- } });
101
- }
102
95
  /**
103
96
  * Deliver through the worker's own `SEND_EMAIL` binding. One `EmailMessage`
104
97
  * per recipient, within one bounded batch, and the same `deliveries` shape
@@ -213,15 +206,6 @@ function err(code, message, cause) {
213
206
  error: makeError(code, message, cause)
214
207
  };
215
208
  }
216
- function bytesToBase64(bytes) {
217
- const CHUNK = 8192;
218
- let binary = "";
219
- for (let i = 0; i < bytes.byteLength; i += CHUNK) {
220
- const slice = bytes.subarray(i, Math.min(i + CHUNK, bytes.byteLength));
221
- binary += String.fromCharCode(...slice);
222
- }
223
- return btoa(binary);
224
- }
225
209
  function coerceErrorCode(code) {
226
210
  return [
227
211
  "BINDING_MISSING",
@@ -342,12 +326,13 @@ function readFailureDeliveries(raw, recipients, fallbackId) {
342
326
  ...entry.state === "provider_accepted" ? { state: "provider_accepted" } : {}
343
327
  } : void 0;
344
328
  if (entry.ok === false) {
329
+ const state = readDeliveryState(entry.state);
345
330
  const error = entry.error;
346
331
  return typeof error === "object" && error !== null && typeof error.message === "string" ? {
347
332
  recipient,
348
333
  ok: false,
349
334
  error: makeError(coerceErrorCode(error.code), error.message),
350
- ...readDeliveryState(entry.state) ? { state: readDeliveryState(entry.state) } : {}
335
+ ...state ? { state } : {}
351
336
  } : void 0;
352
337
  }
353
338
  });
@@ -569,11 +554,9 @@ async function postToDevInbox(inbox, captured) {
569
554
  * `ids` is built from the same deduplicated, lowercased list the two
570
555
  * production transports send to, so code written against a captured result
571
556
  * sees exactly what a deploy returns: one entry per unique address, keyed the
572
- * way `sendViaBinding` and the proxy report it. Mapping every `to`/`cc`/`bcc`
573
- * occurrence instead handed a test or `void dev` handler one success per
574
- * occurrence in its original case — deliveries that never happen once
575
- * deployed. The captured message itself keeps the original fields; the
576
- * inbox displays what was asked for, the result reports what would be sent.
557
+ * way `sendViaBinding` and the proxy report it. The captured message itself
558
+ * keeps the original fields; the inbox displays what was asked for, the
559
+ * result reports what would be sent.
577
560
  */
578
561
  function capturedResult(normalized, captureId) {
579
562
  const recipients = uniqueRecipients(normalized);
@@ -587,7 +570,8 @@ function capturedResult(normalized, captureId) {
587
570
  };
588
571
  }
589
572
  /**
590
- * Send an email via the Void platform proxy.
573
+ * Send an email via the worker's own `SEND_EMAIL` binding or the Void
574
+ * platform proxy.
591
575
  *
592
576
  * During `void dev` the message is captured by the local inbox
593
577
  * (`/__void/inbox`) and never reaches the proxy; an in-process sink
@@ -1,5 +1,5 @@
1
- import { a as getRawRuntimeEnv } from "../env-raw-Cx8ElDdj.mjs";
2
- import { i as isInternalBinding, n as getRuntimeEnv } from "../env-D5liuQYR.mjs";
1
+ import { a as getRawRuntimeEnv } from "../env-raw-jZpP5n47.mjs";
2
+ import { i as isInternalBinding, n as getRuntimeEnv } from "../env-DMA3cXZt.mjs";
3
3
  import { a as oneOf, i as number, n as email, o as string, r as json, s as url, t as boolean } from "../env-helpers--wFmQ_5Q.mjs";
4
4
  //#region src/shared/env-mask.ts
5
5
  /**
@@ -93,6 +93,16 @@ const registry = registryGlobal[ENV_REGISTRY_SYMBOL] ??= {
93
93
  bootValidation: null
94
94
  };
95
95
  const validatedCache = /* @__PURE__ */ new WeakMap();
96
+ const cacheList = [];
97
+ function getValidatedCache(rawEnv) {
98
+ let cache = validatedCache.get(rawEnv);
99
+ if (!cache) {
100
+ cache = /* @__PURE__ */ new Map();
101
+ validatedCache.set(rawEnv, cache);
102
+ cacheList.push(cache);
103
+ }
104
+ return cache;
105
+ }
96
106
  /** Vite embeds the same public build inputs into server and browser bundles. */
97
107
  function getClientEnvValues() {
98
108
  const values = import.meta.env;
@@ -112,7 +122,7 @@ function getClientEnvValues() {
112
122
  function defineEnv(schema) {
113
123
  registry.schema = schema;
114
124
  registry.hasDefineEnvBeenCalled = true;
115
- for (const map of validatedCacheValues()) map.clear();
125
+ for (const map of cacheList) map.clear();
116
126
  registry.bootValidation = null;
117
127
  return env;
118
128
  }
@@ -150,12 +160,7 @@ async function _validateEnvOnce(envValues) {
150
160
  if (report.valid) {
151
161
  try {
152
162
  const cacheKey = getRawRuntimeEnv();
153
- let cache = validatedCache.get(cacheKey);
154
- if (!cache) {
155
- cache = /* @__PURE__ */ new Map();
156
- validatedCache.set(cacheKey, cache);
157
- cacheList.push(cache);
158
- }
163
+ const cache = getValidatedCache(cacheKey);
159
164
  for (const [key, value] of report.values) {
160
165
  if (isInternalBinding(key, cacheKey)) continue;
161
166
  if (!cache.has(key)) cache.set(key, value);
@@ -174,10 +179,6 @@ async function _validateEnvOnce(envValues) {
174
179
  };
175
180
  throw error;
176
181
  }
177
- function validatedCacheValues() {
178
- return cacheList;
179
- }
180
- const cacheList = [];
181
182
  /** Internal: framework-only access to the registered schema (for plugin/CLI). */
182
183
  function _getRegisteredSchema() {
183
184
  return registry.schema;
@@ -240,13 +241,7 @@ function readKey(key) {
240
241
  if (!registry.schema) return rawValue;
241
242
  const validator = registry.schema[key];
242
243
  if (!validator) return rawValue;
243
- const cacheKey = rawEnv;
244
- let cache = validatedCache.get(cacheKey);
245
- if (!cache) {
246
- cache = /* @__PURE__ */ new Map();
247
- validatedCache.set(cacheKey, cache);
248
- cacheList.push(cache);
249
- }
244
+ const cache = getValidatedCache(rawEnv);
250
245
  if (cache.has(key)) return cache.get(key);
251
246
  const result = validator["~standard"].validate(rawValue);
252
247
  if (result instanceof Promise) throw new Error(`env: Async validator for '${key}' cannot be resolved synchronously. Proxy property access is synchronous, so async Standard Schema validators must be pre-resolved by calling \`_validateEnvOnce(env)\` at worker boot (Void splices this into the generated entry) or by awaiting \`validateAllEnv(env)\` before the first \`env.${key}\` read. Once pre-validated, the resolved value is cached and served synchronously here.`);
@@ -1,2 +1,2 @@
1
- import { a as requireRuntimeBinding, i as isInternalBinding, n as getRuntimeEnv, o as withRuntimeEnv, r as getRuntimeRequestResource, t as getRuntimeBinding } from "../env-D5liuQYR.mjs";
1
+ import { a as requireRuntimeBinding, i as isInternalBinding, n as getRuntimeEnv, o as withRuntimeEnv, r as getRuntimeRequestResource, t as getRuntimeBinding } from "../env-DMA3cXZt.mjs";
2
2
  export { getRuntimeBinding, getRuntimeEnv, getRuntimeRequestResource, isInternalBinding, requireRuntimeBinding, withRuntimeEnv };