void 1.4.0 → 1.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 (455) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-cmd-HP8bixYo.mjs → account-cmd-DRhmCWcm.mjs} +7 -8
  3. package/dist/{action-key-XZ9HkWAO.mjs → action-key-XtKKbbsi.mjs} +1 -2
  4. package/dist/{agents-CuNtT0D_.mjs → agents-DRo8gzni.mjs} +2 -3
  5. package/dist/{application-analysis-DDOQwiXk.mjs → application-analysis-HRFsZOv3.mjs} +18 -24
  6. package/dist/{application-routing-4719u_kf.mjs → application-routing-P4TggvWp.mjs} +2 -3
  7. package/dist/{ast-CsZ_q_gc.mjs → ast-Cv0JwXqb.mjs} +1 -2
  8. package/dist/{ast-bindings-C3yaPs1y.mjs → ast-bindings-BkivMJIo.mjs} +6 -11
  9. package/dist/{atomic-write-Dq6R0BPN.mjs → atomic-write-DA6eD1Kp.mjs} +1 -2
  10. package/dist/{auth-g2TQbDLD.d.mts → auth-CH4PLAX1.d.mts} +0 -2
  11. package/dist/{auth-Cbqi1iVX.mjs → auth-CL-p_rqV.mjs} +1 -1
  12. package/dist/{auth-B6iOCjKI.mjs → auth-Dy8svcqQ.mjs} +6 -7
  13. package/dist/{auth-3sGB0zJ1.mjs → auth-YVjBX5NY.mjs} +1 -2
  14. package/dist/{auth-client-Bawdj38n.d.mts → auth-client-6-Ft9i9T.d.mts} +0 -2
  15. package/dist/{auth-client-BWBT8HLp.mjs → auth-client-DwCdwKbw.mjs} +1 -2
  16. package/dist/{auth-client-react-CMLwT2xI.mjs → auth-client-react-CJdeErvM.mjs} +1 -2
  17. package/dist/{auth-client-react-7GFffu8R.d.mts → auth-client-react-DvQLe5Zb.d.mts} +0 -2
  18. package/dist/{auth-client-solid-UoreJWZG.mjs → auth-client-solid-BRvgvp6h.mjs} +1 -2
  19. package/dist/{auth-client-solid-DyTFL4cq.d.mts → auth-client-solid-P9pEtKGp.d.mts} +0 -2
  20. package/dist/{auth-client-svelte-zetW0KIH.d.mts → auth-client-svelte-B5j8irT6.d.mts} +0 -2
  21. package/dist/{auth-client-svelte-Cv_WvrRk.mjs → auth-client-svelte-BSqUCEed.mjs} +1 -2
  22. package/dist/{auth-client-vue-bChShbQP.d.mts → auth-client-vue-BEiAfavk.d.mts} +0 -2
  23. package/dist/{auth-client-vue-CFk7Xbv3.mjs → auth-client-vue-CPkbRtOO.mjs} +1 -2
  24. package/dist/{auth-link-CedYpDCy.mjs → auth-link-CVXP1G6G.mjs} +7 -8
  25. package/dist/{auth-migrations-BO27GDNr.mjs → auth-migrations-DDeifS3v.mjs} +1 -2
  26. package/dist/{auth-router-vafo7x8w.mjs → auth-router-D1pGdbvB.mjs} +6 -7
  27. package/dist/{base64-DVrOndmI.mjs → base64-ikl9yBy3.mjs} +1 -2
  28. package/dist/{better-auth-shared-BHB8kiTE.d.mts → better-auth-shared-BJyG2mH0.d.mts} +2 -6
  29. package/dist/{better-auth-shared-7FM3Uk2N.mjs → better-auth-shared-C958aM7W.mjs} +31 -7
  30. package/dist/{build-cmd-9vUAQ1_V.mjs → build-cmd-DmjbuT6d.mjs} +7 -8
  31. package/dist/{cache-jvwLNb0h.mjs → cache-2khBO1MR.mjs} +7 -8
  32. package/dist/{cancel-deploy-Dw0UmWKO.mjs → cancel-deploy-_itbbvY3.mjs} +6 -7
  33. package/dist/{cf-access-CWP4avfP.mjs → cf-access-BmBT2h8_.mjs} +3 -4
  34. package/dist/{cf-access-BM9G0lhO.mjs → cf-access-pejlJmuy.mjs} +1 -2
  35. package/dist/{cf-build-output-XpNR9zoh.mjs → cf-build-output-B1C8U83u.mjs} +41 -314
  36. package/dist/cf-build-output-CmDOcA7K.mjs +1 -0
  37. package/dist/{cf-command-values-ByHk0xg4.mjs → cf-command-values-Ccl-zRhl.mjs} +10 -7
  38. package/dist/cf-config-migrate-Dy8MrKgF.mjs +326 -0
  39. package/dist/{cf-worker-settings-Dg27RzyT.mjs → cf-worker-settings-CARs4Wy9.mjs} +3 -5
  40. package/dist/cli/cli.mjs +66 -76
  41. package/dist/cli/cloudflare-operation-process.mjs +14 -18
  42. package/dist/cli/env-schema-probe.d.mts +1 -5
  43. package/dist/cli/env-schema-probe.mjs +4 -5
  44. package/dist/client-CEtr5UOR.mjs +1 -0
  45. package/dist/{client-B3LnB_bE.mjs → client-CoxPEhJq.mjs} +15 -13
  46. package/dist/{cloudflare-auth-DyD_kVFr.mjs → cloudflare-auth-CEu-1Ps_.mjs} +2 -3
  47. package/dist/{cloudflare-cmd-D-b_u3T4.mjs → cloudflare-cmd-fZ6AMSWk.mjs} +7 -8
  48. package/dist/{cloudflare-config-CH1AylZT.mjs → cloudflare-config-eQunqX6A.mjs} +22 -17
  49. package/dist/{cloudflare-connect-zTJh8UnN.mjs → cloudflare-connect-9OZe4XVQ.mjs} +5 -6
  50. package/dist/{cloudflare-operations-Bc-7fN44.mjs → cloudflare-operations-CrskD4_O.mjs} +8 -9
  51. package/dist/{cloudflare-operations-BtulCNOg.mjs → cloudflare-operations-oLvAd9Nd.mjs} +1 -1
  52. package/dist/{cloudflare-process-8jEYIeim.mjs → cloudflare-process-DjJ638A-.mjs} +7 -9
  53. package/dist/{cloudflare-user-output-Q-k0QoNQ.mjs → cloudflare-user-output-zEwuGrEJ.mjs} +1 -2
  54. package/dist/collect-8i0wU63d.mjs +1 -0
  55. package/dist/{collect-Dew86qce.mjs → collect-C6Blu9yw.mjs} +2 -3
  56. package/dist/{config-tqMM6DwY.mjs → config-BBlVXZCU.mjs} +5 -6
  57. package/dist/{config-OFOAimzt.mjs → config-BITKQ3O6.mjs} +5 -5
  58. package/dist/{config-BV2ASlpn.mjs → config-BgysUhnm.mjs} +1 -1
  59. package/dist/{config-CAdZVTLN.d.mts → config-CPxJmt4M.d.mts} +4 -6
  60. package/dist/{config-D-6q7EBH.mjs → config-WlvEcL82.mjs} +3 -4
  61. package/dist/config-entry.d.mts +1 -3
  62. package/dist/config-entry.mjs +1 -2
  63. package/dist/{connect-BOM6zvFX.mjs → connect-CKvmkl2R.mjs} +10 -11
  64. package/dist/{create-project-C2K0DN2O.mjs → create-project-BiMmR5wA.mjs} +1 -1
  65. package/dist/{create-project-Bxd02EHN.mjs → create-project-Bq0M8MtO.mjs} +9 -11
  66. package/dist/{database-provider-Cx525bwX.mjs → database-provider-DkZo4VwN.mjs} +1 -2
  67. package/dist/database-provider.d.mts +1 -3
  68. package/dist/database-provider.mjs +1 -1
  69. package/dist/{db-Cdvr3zwG.mjs → db-cq5RW4Vy.mjs} +52 -54
  70. package/dist/{db-types-0eCiqYb1.mjs → db-types-C_8amnB0.mjs} +3 -4
  71. package/dist/{delete-lETE6Tpt.mjs → delete-CY4L8fi2.mjs} +7 -8
  72. package/dist/deploy-B029oHlE.mjs +2 -0
  73. package/dist/{deploy-CdM-LAxX.mjs → deploy-D_gEojD2.mjs} +144 -136
  74. package/dist/{deploy-managed-static-DjeBFG2c.mjs → deploy-managed-static-BHVbB_-A.mjs} +33 -40
  75. package/dist/{deploy-transport-DIq_gFTP.mjs → deploy-transport-DEyOUfac.mjs} +6 -7
  76. package/dist/deploy.d.mts +1 -3
  77. package/dist/deploy.mjs +11 -11
  78. package/dist/{dev-inbox-D0jxye_D.mjs → dev-inbox-CUUS6iUg.mjs} +3 -4
  79. package/dist/discover-D4mQthao.mjs +1 -0
  80. package/dist/{discover-LaV0tbIu.mjs → discover-Dhkzxgdt.mjs} +3 -4
  81. package/dist/{dispatch-CLa2LThw.mjs → dispatch-BNLB5_Gm.mjs} +12 -15
  82. package/dist/{dist-Cegxq8gs.mjs → dist-B6eN80gc.mjs} +199 -118
  83. package/dist/{dist-D15hFhP0.mjs → dist-BWNkVq50.mjs} +8 -15
  84. package/dist/{dist-Cor9XGoz.mjs → dist-D23AAMxT.mjs} +9 -16
  85. package/dist/{dist-ipQi0Q8y.mjs → dist-DMYe8CZJ.mjs} +1 -2
  86. package/dist/{dist-B1PLt4_8.mjs → dist-eV_Ep60B.mjs} +1 -1
  87. package/dist/{domain-DyhNtdYf.mjs → domain-BlH90Ods.mjs} +8 -9
  88. package/dist/{dotenv-CNazY3-w.mjs → dotenv-CEI8hapP.mjs} +1 -2
  89. package/dist/{drizzle-9TubSZvI.mjs → drizzle-C8MPqt5m.mjs} +1 -1
  90. package/dist/{drizzle-BQfyvQKX.mjs → drizzle-lFdzSEa9.mjs} +2 -3
  91. package/dist/{email-B9ayYQEG.mjs → email-BHY72ixO.mjs} +3 -4
  92. package/dist/{email-DM2wDcBN.mjs → email-Bkq8ZL1p.mjs} +14 -15
  93. package/dist/{email-cloudflare-PMbAev9Q.mjs → email-cloudflare-MvJIxrwx.mjs} +18 -123
  94. package/dist/{email-protocol-D9nTvhCp.mjs → email-protocol-DTs_TjCS.mjs} +1 -2
  95. package/dist/{entry-BEM8ZuGP.mjs → entry-CBZsCy3O.mjs} +5 -6
  96. package/dist/{env-78hbN-oI.mjs → env-AvuCSeCH.mjs} +10 -11
  97. package/dist/{env-BaMz0j7H.mjs → env-CuzZZyjB.mjs} +3 -4
  98. package/dist/{env-0jrMQJI_.mjs → env-DtKg5G26.mjs} +2 -3
  99. package/dist/{env-helpers--wFmQ_5Q.mjs → env-helpers-Dj_SIwPu.mjs} +1 -2
  100. package/dist/{env-helpers-CyKtOBpj.d.mts → env-helpers-U56xuFgL.d.mts} +1 -3
  101. package/dist/{env-public-6lqiSD2b.d.mts → env-public-CeNeO_AT.d.mts} +2 -4
  102. package/dist/{env-raw-D74P4ebM.mjs → env-raw-e8qgqAzQ.mjs} +1 -2
  103. package/dist/{env-types-BicfKBhV.mjs → env-types-DqzVBKnS.mjs} +4 -5
  104. package/dist/{env-validation-BUfFZ6bt.mjs → env-validation-C8Cmvas0.mjs} +1 -1
  105. package/dist/{env-validation-B3VobvXm.mjs → env-validation-GV1oD4EV.mjs} +9 -10
  106. package/dist/{error-pages-CLIJ7aYq.mjs → error-pages-COVBnzK7.mjs} +6 -12
  107. package/dist/{fetch-CUX0tB78.d.mts → fetch-B-gLGYVl.d.mts} +0 -4
  108. package/dist/{fetch-CtESUYWd.mjs → fetch-C8yhLoF3.mjs} +3 -4
  109. package/dist/{fetch-error-Bw0n-IY-.mjs → fetch-error-DmlRM6e4.mjs} +2 -4
  110. package/dist/{fetch-stream-BspOeTAI.mjs → fetch-stream-DafNtVJC.mjs} +4 -5
  111. package/dist/{fetch-stream-DfkAzZf-.d.mts → fetch-stream-DuwxWmBM.d.mts} +1 -3
  112. package/dist/{gen-CFmsUsW1.mjs → gen-BD-dfjxY.mjs} +12 -13
  113. package/dist/gen-CIHXh9I8.mjs +1 -0
  114. package/dist/{generate-DkEb9rL-.mjs → generate-BOp1g1H_.mjs} +1 -1
  115. package/dist/{generate-B1m4Cm4n.mjs → generate-CWb8aOsm.mjs} +4 -5
  116. package/dist/{generated-wrangler-config-DeWj5F9Y.mjs → generated-wrangler-config-CoDaaFsA.mjs} +1 -2
  117. package/dist/{git-metadata-D-gurjzG.mjs → git-metadata-Cukp5kV5.mjs} +1 -2
  118. package/dist/{github-cmd-De-_IWbM.mjs → github-cmd-CA-lBdkn.mjs} +8 -9
  119. package/dist/{handler-BHktmuTL.d.mts → handler-BR6Tvjkp.d.mts} +18 -26
  120. package/dist/{handler-BZ1t7-Rv.mjs → handler-CKeTtYID.mjs} +6 -17
  121. package/dist/{head-D2VF4ApL.mjs → head-5XPcnG-j.mjs} +1 -2
  122. package/dist/{head-C8K_iGe6.d.mts → head-MeF_5M_3.d.mts} +0 -2
  123. package/dist/headers-CuTEdP9C.mjs +445 -0
  124. package/dist/{help-CKbrhZha.mjs → help-1OCFDsRr.mjs} +28 -12
  125. package/dist/help-Ba8Dq5-r.mjs +1 -0
  126. package/dist/{inbound-Da7XsjH3.d.mts → inbound-BHt4dIlL.d.mts} +16 -9
  127. package/dist/{inbound-VrOLqwZY.mjs → inbound-CdO-qY0w.mjs} +6 -81
  128. package/dist/index.d.mts +23 -13
  129. package/dist/index.mjs +495 -223
  130. package/dist/{info-Yg0-V5Rs.mjs → info-CJxua_db.mjs} +6 -7
  131. package/dist/{init-CDiJQycf.mjs → init-B-4CluYx.mjs} +43 -59
  132. package/dist/{isr-config-fZaJJ8t7.mjs → isr-config-Czzb4mIq.mjs} +5 -55
  133. package/dist/{limits-D0vD1M9A.mjs → limits-CrHLm5Tk.mjs} +1 -2
  134. package/dist/{limits-CFsDKQvU.d.mts → limits-_xIf5z_P.d.mts} +0 -2
  135. package/dist/{link-Dllip08S.mjs → link-DAXOT-G_.mjs} +8 -9
  136. package/dist/{list-BYRP6am0.mjs → list-BYSOo9fm.mjs} +8 -9
  137. package/dist/{live-BllfDuzA.d.mts → live-0xrcVpyq.d.mts} +2 -4
  138. package/dist/{live-BcHoTDFe.mjs → live-DF4HUl2m.mjs} +5 -7
  139. package/dist/{load-user-env-DD5qveNU.mjs → load-user-env-CSwdofj0.mjs} +1 -2
  140. package/dist/{local-d1-CAwAs9GH.mjs → local-d1-BLgsNUj9.mjs} +4 -5
  141. package/dist/{log-BMwmN5Ae.mjs → log-D9hwSySP.mjs} +3 -4
  142. package/dist/login-BpbYeu-n.mjs +1 -0
  143. package/dist/{login-PcFy5mlC.mjs → login-CJopTWX4.mjs} +6 -7
  144. package/dist/{logs-DmJTBhed.mjs → logs-DE0weBsR.mjs} +19 -18
  145. package/dist/{migrate-B8S2xTcb.mjs → migrate-ChHHZBTi.mjs} +20 -16
  146. package/dist/migrate-HdA6Kh2p.mjs +1 -0
  147. package/dist/{migration-handler-CwlEQUoo.d.mts → migration-handler-D8mDx3Ew.d.mts} +0 -4
  148. package/dist/{migration-handler-Cg0Y4EPu.mjs → migration-handler-DCehTlWs.mjs} +1 -2
  149. package/dist/{mime-BAyHPskU.mjs → mime-CtP6-qAF.mjs} +145 -18
  150. package/dist/{mysql-migration-sql-BIS5vbNk.mjs → mysql-migration-sql-CI9VTwjt.mjs} +3 -5
  151. package/dist/{neon-DTZr7Bu7.mjs → neon-CJzQSycr.mjs} +2 -3
  152. package/dist/nitro.d.mts +0 -2
  153. package/dist/nitro.mjs +5 -6
  154. package/dist/{node-CDOPrGSl.mjs → node-CZ6lGNLn.mjs} +8 -9
  155. package/dist/{operator-args-BsJIYXaT.mjs → operator-args-D79WQP70.mjs} +2 -3
  156. package/dist/{operator-auth-Cr2zCc-J.mjs → operator-auth-CfDcmzpo.mjs} +2 -3
  157. package/dist/{operator-client-C-ROjk1I.mjs → operator-client-BIY4-N_6.mjs} +3 -4
  158. package/dist/{operator-cmd-DmkmS2wL.mjs → operator-cmd-BUqsdk2K.mjs} +32 -15
  159. package/dist/operator-cmd-wBYyp8iQ.mjs +1 -0
  160. package/dist/{output-BpgYODYx.mjs → output-BCdLioKP.mjs} +4 -5
  161. package/dist/output-E6gecbbV.mjs +1 -0
  162. package/dist/{package-json-BjYqR-So.mjs → package-json-DvS6IFRv.mjs} +2 -3
  163. package/dist/pages/client.d.mts +147 -31
  164. package/dist/pages/client.mjs +199 -43
  165. package/dist/pages/head.d.mts +1 -1
  166. package/dist/pages/head.mjs +1 -1
  167. package/dist/pages/index.d.mts +25 -18
  168. package/dist/pages/index.mjs +24 -12
  169. package/dist/pages/islands-plugin.d.mts +75 -13
  170. package/dist/pages/islands-plugin.mjs +92 -7
  171. package/dist/pages/prefetch.d.mts +2 -2
  172. package/dist/pages/prefetch.mjs +1 -1
  173. package/dist/pages/protocol.d.mts +2 -2
  174. package/dist/pages/protocol.mjs +2 -2
  175. package/dist/pages/serialize.d.mts +1 -1
  176. package/dist/pages/serialize.mjs +1 -1
  177. package/dist/{pg-J2HbZIkX.mjs → pg-DoyPxa_X.mjs} +1 -2
  178. package/dist/{picocolors-BsDfhxIw.mjs → picocolors-D1NxSLw-.mjs} +2 -3
  179. package/dist/{plan-BhLO2p4w.mjs → plan-BOD70XGS.mjs} +1 -2
  180. package/dist/plan-CQ-N4gws.mjs +1 -0
  181. package/dist/platform-args-C7XUw9mw.mjs +1 -0
  182. package/dist/{platform-args-BMD2gjc_.mjs → platform-args-Cx1M-7bq.mjs} +22 -11
  183. package/dist/{platform-auth-config-CImnfohz.mjs → platform-auth-config-K4m_LE8b.mjs} +10 -11
  184. package/dist/{platform-auth-protection-BogLhtHi.mjs → platform-auth-protection-KF5Vo-1I.mjs} +10 -11
  185. package/dist/{platform-auth-recovery-B-mEaWEi.mjs → platform-auth-recovery-BOdFrl7R.mjs} +9 -11
  186. package/dist/{platform-cmd-CV8NxIIn.mjs → platform-cmd-DpCHawGF.mjs} +1 -1
  187. package/dist/{platform-cmd-DZK2ixMl.mjs → platform-cmd-Ds3EAV5t.mjs} +13 -13
  188. package/dist/{platform-discovery-CHhNs8Nn.mjs → platform-discovery-B0eZjZ3B.mjs} +2 -3
  189. package/dist/{platform-domain-CRvelPGE.mjs → platform-domain-rWJshybd.mjs} +7 -8
  190. package/dist/{platform-lifecycle-DwXq7kZt.mjs → platform-lifecycle-BH34I0rh.mjs} +1 -1
  191. package/dist/{platform-lifecycle-CPYY7E9B.mjs → platform-lifecycle-D9RdGub1.mjs} +110 -110
  192. package/dist/{platform-management-BOnGbMSM.mjs → platform-management-BRefdHGD.mjs} +27 -11
  193. package/dist/{platform-management-lXdgGgAM.mjs → platform-management-BfLW0Zlo.mjs} +1 -1
  194. package/dist/{platform-plans-config-CeydDSj0.mjs → platform-plans-config-Dx1agneU.mjs} +5 -6
  195. package/dist/{platform-recovery-noaALXnE.mjs → platform-recovery-DZuZGJtt.mjs} +5 -6
  196. package/dist/{platform-registry-B9mWX9LO.mjs → platform-registry-DZ_2Xuqd.mjs} +4 -6
  197. package/dist/platform-runtime-logs-CdJGnk3f.mjs +68 -0
  198. package/dist/{platform-setup-Ca53gtt0.mjs → platform-setup-Vw1AaUN8.mjs} +19 -7
  199. package/dist/{plugin-inference-CeiB6BG5.mjs → plugin-inference-CdLbxZL_.mjs} +16 -24
  200. package/dist/{prefetch-Bsc_Pb6c.mjs → prefetch-Dx2jIbtg.mjs} +20 -3
  201. package/dist/{prefetch-Ce6la4EI.d.mts → prefetch-NdNeubbH.d.mts} +7 -3
  202. package/dist/{prepare-D604Yiyr.mjs → prepare-BJW-f1f1.mjs} +13 -14
  203. package/dist/{prepare-BuOS18AM.mjs → prepare-BMGeKL16.mjs} +4 -5
  204. package/dist/prepare-BdxJJCMv.mjs +1 -0
  205. package/dist/{prerender-render-CaShbHJ3.mjs → prerender-render-RlAj6hh8.mjs} +2 -3
  206. package/dist/prerender-render.d.mts +1 -3
  207. package/dist/prerender-render.mjs +1 -1
  208. package/dist/{project-rqDnVsJN.mjs → project-CLwxcEdq.mjs} +3 -4
  209. package/dist/{project-zdB3fs9G.mjs → project-DVsTAWFh.mjs} +1 -1
  210. package/dist/{project-cmd-DBYqAIbe.mjs → project-cmd-B_bUyZ3J.mjs} +21 -23
  211. package/dist/{project-paths-DGu_QZ_Q.mjs → project-paths-CdGv9Tmi.mjs} +3 -5
  212. package/dist/project-slug-BUy0lmyR.mjs +1 -0
  213. package/dist/{project-slug-23TpquG4.mjs → project-slug-CO6ci9XG.mjs} +0 -1
  214. package/dist/{project-team-BjCLgTRC.mjs → project-team-MjT5K4rQ.mjs} +7 -8
  215. package/dist/{project-token-BB6PwaA9.mjs → project-token-BKHGwY3k.mjs} +7 -8
  216. package/dist/{project-tsconfig-CVvk6Z_e.mjs → project-tsconfig-Cf2NFjlM.mjs} +4 -6
  217. package/dist/{project-zero-trust-CWDh1P_t.mjs → project-zero-trust-Bzdd05-h.mjs} +7 -8
  218. package/dist/{protocol-DimNxVRr.mjs → protocol-COyySMki.mjs} +135 -113
  219. package/dist/{protocol-D5XDySYu.d.mts → protocol-CkwjASep.d.mts} +4 -6
  220. package/dist/{providers-BNKRacMr.d.mts → providers-D5P8j_8D.d.mts} +0 -2
  221. package/dist/{providers-BUHwJlmM.mjs → providers-ZARwX2cL.mjs} +1 -2
  222. package/dist/{provision-DztLJ97X.mjs → provision-BbCzpbXs.mjs} +6 -7
  223. package/dist/{provision-DfxLCg-d.mjs → provision-DQF6Kw-6.mjs} +1 -1
  224. package/dist/{queues-BWKt1Xo4.d.mts → queues-DdM42xXW.d.mts} +0 -2
  225. package/dist/{r2-conditions-B8xUgJRc.mjs → r2-conditions-BqkQNt2n.mjs} +1 -2
  226. package/dist/{requests-D_pbzDyz.mjs → requests-daJmVpjk.mjs} +6 -7
  227. package/dist/resolve-project-CgfjtOwz.mjs +1 -0
  228. package/dist/{resolve-project-Xoi6eTWY.mjs → resolve-project-D0YNnJfm.mjs} +4 -5
  229. package/dist/{resource-name-C7LVpcRm.mjs → resource-name-DlJ9QXzg.mjs} +1 -2
  230. package/dist/{response-Tn7rU0MV.mjs → response-HmNjB30w.mjs} +1 -2
  231. package/dist/{rollback-CjfIYsJx.mjs → rollback-BgL0wY1J.mjs} +7 -8
  232. package/dist/{rolldown-runtime-3h0WiCiA.mjs → rolldown-runtime-uD8oG6U2.mjs} +1 -2
  233. package/dist/{route-types-DvEGmPif.mjs → route-types-CZc1YXjF.mjs} +80 -9
  234. package/dist/route-url-CRDF-I0I.mjs +57 -0
  235. package/dist/route-url-C_YIH_zO.d.mts +37 -0
  236. package/dist/routes-stub.d.mts +8 -3
  237. package/dist/routes-stub.mjs +1 -1
  238. package/dist/{routing-assets-DdSFxoLp.mjs → routing-assets-DJIVOrCh.mjs} +1 -2
  239. package/dist/{runner-3uGC-oLF.mjs → runner-5MCSimKx.mjs} +5 -6
  240. package/dist/{runner-WCdfeI0q.mjs → runner-QMeOpScZ.mjs} +1 -1
  241. package/dist/{runner-mysql-BcHnLUuM.mjs → runner-mysql-0zVmB1JW.mjs} +1 -1
  242. package/dist/{runner-mysql-BWmbk5IE.mjs → runner-mysql-Bdmsp_x4.mjs} +3 -4
  243. package/dist/{runner-pg-Cgp-cr_p.mjs → runner-pg-2pjltt0t.mjs} +1 -1
  244. package/dist/{runner-pg-Cr3qrqi4.mjs → runner-pg-mYc75KfH.mjs} +2 -3
  245. package/dist/runtime/ai.d.mts +0 -4
  246. package/dist/runtime/ai.mjs +6 -8
  247. package/dist/runtime/auth-client-react.d.mts +1 -1
  248. package/dist/runtime/auth-client-react.mjs +1 -1
  249. package/dist/runtime/auth-client-solid.d.mts +1 -1
  250. package/dist/runtime/auth-client-solid.mjs +1 -1
  251. package/dist/runtime/auth-client-svelte.d.mts +1 -1
  252. package/dist/runtime/auth-client-svelte.mjs +1 -1
  253. package/dist/runtime/auth-client-vue.d.mts +1 -1
  254. package/dist/runtime/auth-client-vue.mjs +1 -1
  255. package/dist/runtime/auth-client.d.mts +1 -1
  256. package/dist/runtime/auth-client.mjs +1 -1
  257. package/dist/runtime/auth.d.mts +1 -1
  258. package/dist/runtime/auth.mjs +1 -1
  259. package/dist/runtime/better-auth-mysql.d.mts +2 -4
  260. package/dist/runtime/better-auth-mysql.mjs +3 -4
  261. package/dist/runtime/better-auth-pg.d.mts +2 -4
  262. package/dist/runtime/better-auth-pg.mjs +4 -5
  263. package/dist/runtime/better-auth.d.mts +2 -4
  264. package/dist/runtime/better-auth.mjs +3 -4
  265. package/dist/runtime/client-react.d.mts +4 -4
  266. package/dist/runtime/client-react.mjs +4 -4
  267. package/dist/runtime/client-solid.d.mts +4 -4
  268. package/dist/runtime/client-solid.mjs +4 -4
  269. package/dist/runtime/client-svelte.d.mts +4 -4
  270. package/dist/runtime/client-svelte.mjs +4 -4
  271. package/dist/runtime/client-vue.d.mts +4 -4
  272. package/dist/runtime/client-vue.mjs +4 -4
  273. package/dist/runtime/client.d.mts +4 -4
  274. package/dist/runtime/client.mjs +4 -4
  275. package/dist/runtime/db.d.mts +0 -2
  276. package/dist/runtime/db.mjs +2 -3
  277. package/dist/runtime/durable.d.mts +0 -2
  278. package/dist/runtime/durable.mjs +3 -4
  279. package/dist/runtime/email/testing.d.mts +1 -5
  280. package/dist/runtime/email/testing.mjs +5 -6
  281. package/dist/runtime/email-protocol.d.mts +0 -2
  282. package/dist/runtime/email-protocol.mjs +1 -1
  283. package/dist/runtime/email.d.mts +1 -5
  284. package/dist/runtime/email.mjs +6 -7
  285. package/dist/runtime/env-public-client.d.mts +1 -3
  286. package/dist/runtime/env-public-client.mjs +2 -3
  287. package/dist/runtime/env-public.d.mts +2 -2
  288. package/dist/runtime/env-public.mjs +5 -7
  289. package/dist/runtime/env.d.mts +0 -4
  290. package/dist/runtime/env.mjs +1 -1
  291. package/dist/runtime/fetch-server.d.mts +1 -3
  292. package/dist/runtime/fetch-server.mjs +3 -4
  293. package/dist/runtime/fetch-stream.d.mts +2 -2
  294. package/dist/runtime/fetch-stream.mjs +2 -2
  295. package/dist/runtime/fetch.d.mts +1 -1
  296. package/dist/runtime/fetch.mjs +2 -2
  297. package/dist/runtime/handler.d.mts +1 -1
  298. package/dist/runtime/handler.mjs +2 -2
  299. package/dist/runtime/isr.d.mts +1 -3
  300. package/dist/runtime/isr.mjs +2 -3
  301. package/dist/runtime/kv.d.mts +1 -3
  302. package/dist/runtime/kv.mjs +2 -3
  303. package/dist/runtime/limits.d.mts +1 -1
  304. package/dist/runtime/limits.mjs +1 -1
  305. package/dist/runtime/live-client.d.mts +1 -3
  306. package/dist/runtime/live-client.mjs +1 -2
  307. package/dist/runtime/live-server.d.mts +0 -2
  308. package/dist/runtime/live-server.mjs +3 -4
  309. package/dist/runtime/live.d.mts +1 -1
  310. package/dist/runtime/live.mjs +1 -1
  311. package/dist/runtime/log.d.mts +3 -3
  312. package/dist/runtime/log.mjs +26 -18
  313. package/dist/runtime/migration-handler-mysql.d.mts +2 -4
  314. package/dist/runtime/migration-handler-mysql.mjs +2 -3
  315. package/dist/runtime/migration-handler-pg.d.mts +2 -4
  316. package/dist/runtime/migration-handler-pg.mjs +2 -3
  317. package/dist/runtime/migration-handler.d.mts +1 -1
  318. package/dist/runtime/migration-handler.mjs +1 -1
  319. package/dist/runtime/queues.d.mts +1 -1
  320. package/dist/runtime/queues.mjs +2 -3
  321. package/dist/runtime/remote/binding-handler.d.mts +1 -3
  322. package/dist/runtime/remote/binding-handler.mjs +3 -4
  323. package/dist/runtime/remote/index.d.mts +1 -3
  324. package/dist/runtime/remote/index.mjs +8 -13
  325. package/dist/runtime/response.d.mts +1 -3
  326. package/dist/runtime/response.mjs +1 -1
  327. package/dist/runtime/route-url.d.mts +2 -2
  328. package/dist/runtime/route-url.mjs +1 -1
  329. package/dist/runtime/routing.d.mts +8 -11
  330. package/dist/runtime/routing.mjs +52 -32
  331. package/dist/runtime/sandbox-container.d.mts +1 -1
  332. package/dist/runtime/sandbox-container.mjs +1 -1
  333. package/dist/runtime/sandbox.d.mts +2 -2
  334. package/dist/runtime/sandbox.mjs +5 -6
  335. package/dist/runtime/seed.d.mts +0 -2
  336. package/dist/runtime/seed.mjs +1 -2
  337. package/dist/runtime/sse-client.d.mts +1 -3
  338. package/dist/runtime/sse-client.mjs +1 -2
  339. package/dist/runtime/sse.d.mts +1 -3
  340. package/dist/runtime/sse.mjs +1 -1
  341. package/dist/runtime/storage.d.mts +1 -3
  342. package/dist/runtime/storage.mjs +2 -3
  343. package/dist/runtime/validator.d.mts +1 -1
  344. package/dist/runtime/validator.mjs +1 -1
  345. package/dist/runtime/ws-server.d.mts +3 -5
  346. package/dist/runtime/ws-server.mjs +3 -4
  347. package/dist/runtime/ws.d.mts +1 -1
  348. package/dist/runtime/ws.mjs +3 -4
  349. package/dist/{sandbox-q3waMc2T.d.mts → sandbox-DE1WsxuB.d.mts} +2 -4
  350. package/dist/{sandbox-container-a9LRUtii.mjs → sandbox-container-BuxhwCgt.mjs} +1 -2
  351. package/dist/{sandbox-container-ChQRum-j.d.mts → sandbox-container-CZFZdMso.d.mts} +0 -2
  352. package/dist/{scan-N9WzdcAl.mjs → scan-X2rDDRNa.mjs} +49 -35
  353. package/dist/{secret-3X0PxmuX.mjs → secret-CPq-B_vp.mjs} +17 -15
  354. package/dist/{serialize-YHvlcG3Q.mjs → serialize-DUuYuaY3.mjs} +2 -4
  355. package/dist/{serialize-DtR8Vwa_.d.mts → serialize-I4EmS-Wf.d.mts} +0 -2
  356. package/dist/{skills-CrUO3PJ0.mjs → skills-D393E4lB.mjs} +4 -5
  357. package/dist/{sqlite-validation-BzKMWnO4.mjs → sqlite-validation-CLJXXN93.mjs} +1 -2
  358. package/dist/{sse-CMvCgjNk.mjs → sse-CxR30yMF.mjs} +1 -2
  359. package/dist/{standard-schema-Fo_vCAZh.d.mts → standard-schema-CuDawHOC.d.mts} +0 -2
  360. package/dist/{static-asset-marker-Btf-6oCD.mjs → static-asset-marker-DsQKz6lt.mjs} +9 -3
  361. package/dist/{subcommand-prompt-D9OhhbGG.mjs → subcommand-prompt-CxJXporl.mjs} +3 -4
  362. package/dist/sveltekit.d.mts +0 -2
  363. package/dist/sveltekit.mjs +2 -3
  364. package/dist/{terminal-log-text-D9ACPOuG.mjs → terminal-log-text-DNsWJREL.mjs} +1 -2
  365. package/dist/{types-w72dljaA.d.mts → types-agfx0alu.d.mts} +0 -4
  366. package/dist/validate-DY1U9rET.mjs +1 -0
  367. package/dist/{validate-CnZPMq4q.mjs → validate-Ddzl-IwT.mjs} +4 -5
  368. package/dist/validation-error-uAAjlsiW.mjs +82 -0
  369. package/dist/{validator-BTOu0fB0.mjs → validator-CTfmzZYb.mjs} +2 -5
  370. package/dist/{version-metadata-D2vfMQzv.mjs → version-metadata-C8hLzQkv.mjs} +4 -6
  371. package/dist/{worker-conditions-AWFRcFxR.mjs → worker-conditions-CBZ0RYsZ.mjs} +1 -2
  372. package/dist/{wrangler-I-scB_1t.mjs → wrangler-DESSbN8L.mjs} +6 -8
  373. package/dist/wrangler-DUB3MGHV.mjs +1 -0
  374. package/dist/{wrapper-BBl1rC32.mjs → wrapper-C9SUxoj7.mjs} +17 -14
  375. package/dist/{ws-B3ClMVDh.d.mts → ws-Dmjg5NH2.d.mts} +3 -5
  376. package/dist/{yarn-pnp-DLbEFMT0.mjs → yarn-pnp-DgWbE7z5.mjs} +2 -3
  377. package/docs/guide/database.md +4 -4
  378. package/docs/guide/deployment.md +1 -1
  379. package/docs/guide/edge/headers.md +4 -6
  380. package/docs/guide/edge/redirects.md +4 -4
  381. package/docs/guide/edge/rewrites.md +1 -1
  382. package/docs/guide/edge/static-assets.md +0 -10
  383. package/docs/guide/email/domains.md +3 -1
  384. package/docs/guide/email/receiving.md +4 -4
  385. package/docs/guide/email/sending.md +43 -13
  386. package/docs/guide/pages-routing/actions-and-forms.md +26 -9
  387. package/docs/guide/pages-routing/islands.md +5 -5
  388. package/docs/guide/pages-routing/layouts.md +16 -2
  389. package/docs/guide/pages-routing/loaders.md +5 -5
  390. package/docs/guide/pages-routing/markdown.md +7 -7
  391. package/docs/guide/pages-routing/overview.md +137 -27
  392. package/docs/guide/platform/administration/connected-apps.md +4 -2
  393. package/docs/guide/platform/administration/email.md +6 -8
  394. package/docs/guide/platform/installation/credentials.md +12 -10
  395. package/docs/guide/platform/installation/maintenance.md +18 -21
  396. package/docs/guide/platform/installation/prerequisites.md +1 -1
  397. package/docs/guide/platform/installation/setup.md +23 -2
  398. package/docs/guide/platform/installation/uninstall.md +1 -1
  399. package/docs/guide/queues.md +4 -8
  400. package/docs/guide/self-hosted-platform.md +3 -3
  401. package/docs/guide/server-routing.md +7 -7
  402. package/docs/guide/ssg.md +3 -3
  403. package/docs/guide/type-safety.md +84 -1
  404. package/docs/guide/typed-fetch.md +1 -1
  405. package/docs/guide/websockets.md +1 -1
  406. package/docs/integrations/cloudflare.md +2 -2
  407. package/docs/integrations/frameworks/analog.md +1 -1
  408. package/docs/integrations/frameworks/astro.md +17 -12
  409. package/docs/integrations/frameworks/nuxt.md +1 -1
  410. package/docs/integrations/frameworks/overview.md +2 -2
  411. package/docs/integrations/frameworks/sveltekit.md +1 -1
  412. package/docs/integrations/frameworks/tanstack-start.md +1 -1
  413. package/docs/integrations/hono.md +5 -5
  414. package/docs/reference/api/auth.md +1 -1
  415. package/docs/reference/api/deploy.md +6 -6
  416. package/docs/reference/api/pages.md +109 -50
  417. package/docs/reference/api/plugin.md +4 -4
  418. package/docs/reference/api/resources.md +4 -1
  419. package/docs/reference/api/rewrites.md +24 -3
  420. package/docs/reference/api/types.md +45 -0
  421. package/docs/reference/api.md +2 -2
  422. package/docs/reference/cli/database.md +15 -9
  423. package/docs/reference/cli/email.md +4 -2
  424. package/docs/reference/cli/platform-installation.md +6 -3
  425. package/docs/reference/cli/project.md +2 -2
  426. package/docs/reference/cli/secrets.md +3 -1
  427. package/docs/reference/cli/setup.md +4 -4
  428. package/docs/reference/cli.md +1 -1
  429. package/docs/reference/config.md +12 -2
  430. package/package.json +36 -32
  431. package/sandbox.Dockerfile +1 -1
  432. package/schema.json +4 -0
  433. package/skills/void/SKILL.md +5 -0
  434. package/dist/cf-build-output-bd8Uwv1P.mjs +0 -1
  435. package/dist/client-BZb9j66F.mjs +0 -1
  436. package/dist/collect-BWhkgtAn.mjs +0 -1
  437. package/dist/deploy-CX94CmKa.mjs +0 -2
  438. package/dist/discover-D4TPKo57.mjs +0 -1
  439. package/dist/gen-BhWBT4iu.mjs +0 -1
  440. package/dist/headers--vaK_chu.mjs +0 -226
  441. package/dist/help-qOZr3wng.mjs +0 -1
  442. package/dist/login-BAPmYnb7.mjs +0 -1
  443. package/dist/migrate-BIYTPQE6.mjs +0 -1
  444. package/dist/operator-cmd-CjazwOyb.mjs +0 -1
  445. package/dist/output-BW9uK099.mjs +0 -1
  446. package/dist/plan-CKX_jWnD.mjs +0 -1
  447. package/dist/platform-args-BC8_hsDj.mjs +0 -1
  448. package/dist/prepare-DU-tOpS5.mjs +0 -1
  449. package/dist/project-slug-6cyz8E7k.mjs +0 -1
  450. package/dist/resolve-project-DD1vu8s9.mjs +0 -1
  451. package/dist/route-url-BgPja1GS.d.mts +0 -5
  452. package/dist/route-url-BjGv_KKY.mjs +0 -28
  453. package/dist/validate-D7Wn8PUX.mjs +0 -1
  454. package/dist/validation-error-Dg9Recn1.mjs +0 -49
  455. package/dist/wrangler-UnwdISay.mjs +0 -1
@@ -20,7 +20,7 @@ For SQLite, Void checks that the migration history applies to a fresh database.
20
20
 
21
21
  ## `void db status` {#void-db-status}
22
22
 
23
- Show migration status. Displays which migrations are applied or pending locally, then uses the saved deployment target for remote status: the hosted API for Void projects, the pinned D1 database and its configured migration table for direct Cloudflare SQLite projects, or the shell `DATABASE_URL` for direct Cloudflare PostgreSQL/MySQL projects. If the remote credential or service is unavailable, local status is still shown. If the local PostgreSQL or MySQL database cannot be read, local status shows `unknown`; the command fails when remote status is not available either.
23
+ Show applied and pending migrations locally and on the saved deployment target. Direct Cloudflare PostgreSQL and MySQL projects use `DATABASE_URL` from the current shell for remote status.
24
24
 
25
25
  ## `void db reset` {#void-db-reset}
26
26
 
@@ -28,7 +28,7 @@ Show migration status. Displays which migrations are applied or pending locally,
28
28
  void db reset [--yes]
29
29
  ```
30
30
 
31
- Drop the development database and re-apply all migrations. D1 resets the local database. PostgreSQL drops the tables, views, sequences, and custom types in the `public` schema of the `DATABASE_URL` database from `.env` and keeps installed extensions. If a table, view, or function in another schema uses one of those views, sequences, or types, reset stops before it drops anything and lists those objects. MySQL drops every table and view in that database.
31
+ Reset the development database and re-apply all migrations. D1 resets local data. PostgreSQL clears tables, views, sequences, and custom types from the `public` schema while preserving extensions; dependencies from other schemas must be resolved first. MySQL drops all tables and views. PostgreSQL and MySQL use `DATABASE_URL` from `.env`.
32
32
 
33
33
  When that `DATABASE_URL` points to a host other than `localhost`, Void names the database and asks before dropping its tables. Pass `--yes` to skip the prompt in scripts and CI; without a terminal, the command stops unless `--yes` is set. If `.env` uses the same URL as your deployment (for example after `void db connect`), reset drops the deployed tables.
34
34
 
@@ -87,7 +87,7 @@ By default, targets the local database. Pass `--remote` to open Studio against t
87
87
 
88
88
  - **Hosted PostgreSQL and MySQL projects**: fetch the stored connection string from the platform and open Studio against it. If the URL isn't stored yet, run `void db set-url` first.
89
89
  - **Direct Cloudflare PostgreSQL and MySQL projects**: use `DATABASE_URL` from the current shell.
90
- - **D1 projects**: remote Studio is not available. Use `void db execute --remote` to query your deployed D1 database.
90
+ - **D1 projects**: use `void db execute --remote` to query the deployed database.
91
91
 
92
92
  ## `void db restore` {#void-db-restore}
93
93
 
@@ -96,19 +96,25 @@ void db restore --bookmark <bookmark> [--platform cloudflare] [--yes]
96
96
  void db restore --timestamp <iso-time> [--platform cloudflare] [--yes]
97
97
  ```
98
98
 
99
- Restore the deployed D1 database of a direct Cloudflare deploy with D1 [Time Travel](https://developers.cloudflare.com/d1/reference/time-travel/). Before `void deploy --platform cloudflare` applies migrations, it prints the `--bookmark` that undoes them. `--timestamp` restores the state at an ISO 8601 time with `Z` or an offset instead, such as `2026-10-16T09:30:00Z`, with at most millisecond precision. Time Travel keeps 7 days of history on Workers Free and 30 days on Workers Paid. An older bookmark or time can no longer be restored: Cloudflare rejects it and the database stays unchanged. To undo an older migration, write a new migration that reverses it.
99
+ Restore a directly deployed Cloudflare D1 database using [Time Travel](https://developers.cloudflare.com/d1/reference/time-travel/). Use the bookmark printed before deployment migrations, or an ISO 8601 timestamp with a timezone, such as `2026-10-16T09:30:00Z`.
100
100
 
101
- If the project's saved destination is not Cloudflare and you deployed once with `void deploy --platform cloudflare`, pass `--platform cloudflare`; deploy prints the command with it.
101
+ Time Travel keeps 7 days of history on Workers Free and 30 days on Workers Paid. Reverse older migrations with a new migration.
102
102
 
103
- Restoring replaces the whole database and discards every write made after that point. Void names the database and asks before it restores. Pass `--yes` to skip the prompt in scripts and CI; without a terminal, the command stops unless `--yes` is set. Afterwards Void prints the `void db restore` command that undoes the restore.
103
+ Restoring discards every write made after the selected point. Void asks for confirmation and prints a command to undo the restore afterward. Pass `--yes` for scripts and CI.
104
104
 
105
- A restore also rewinds the record of applied migrations. Void lists the migration files the database no longer has applied; the next deploy applies them, so fix or remove the one that caused the problem first. Restoring does not change the deployed code: use [`void project rollback`](./project.md#void-project-rollback-deployid) if the live version needs the newer schema. After a one-off Cloudflare deploy, pass `--platform cloudflare` to `void project rollback` and `void deploy` as well.
105
+ To recover from a bad migration:
106
+
107
+ 1. Roll back the code with [`void project rollback`](./project.md#void-project-rollback-deployid) if the live version needs the newer schema.
108
+ 2. Restore the database using the printed bookmark.
109
+ 3. Fix or remove the failed migration before deploying again. The restore also rewinds migration history, so the next deploy reapplies pending files.
110
+
111
+ For a one-off Cloudflare deployment, add `--platform cloudflare` to restore, rollback, and deploy commands.
106
112
 
107
113
  ## `void db rename-migrations` {#void-db-rename-migrations}
108
114
 
109
- Rename existing migrations from the old numeric prefix format (`0001_name.sql`) to timestamp-based format (`20260410161500_name.sql`). Updates local tracking table and remote records if logged in with a linked project. A project that deploys to Void must be linked first with `void project link`; otherwise the command stops without changes.
115
+ For linked Void platform projects, rename migrations from numeric prefixes (`0001_name.sql`) to timestamps (`20260410161500_name.sql`) and update local and remote migration records. Sign in and run `void project link` first.
110
116
 
111
- Direct Cloudflare deploys are not supported: Void cannot rename the records in the deployed database, so the command stops without changes. Keep the existing names; new migrations use timestamps and run after them.
117
+ For direct Cloudflare deployments, keep existing filenames. New migrations use timestamps and run after them.
112
118
 
113
119
  ## `void db connect` {#void-db-connect}
114
120
 
@@ -59,9 +59,11 @@ void email alias <name> [--yes] [--project <name>]
59
59
 
60
60
  With no name, show the project's address on the platform's shared mail domain and whether inbound mail reaches it.
61
61
 
62
- With a name, give that address a shorter name: `void email alias acme` makes `acme@<mail domain>` and `acme+<tag>@<mail domain>` reach the project and lets it send from them. Only the project owner can set it. The name follows the same rules as a project slug, must not be used by any other project's slug or alias, and names of five characters or fewer need a plan that allows short names.
62
+ As the project owner, run `void email alias acme` to send and receive at `acme@<mail domain>` and `acme+<tag>@<mail domain>`. Choose an available name that follows the project slug rules. Names of five characters or fewer require a plan that allows short names.
63
63
 
64
- The alias is permanent: it cannot be changed or removed, and it is freed only when the project is deleted. The slug address keeps working for sending and receiving, so nothing that already uses it breaks. The CLI asks for confirmation; pass `--yes` to skip the prompt, which is required outside an interactive terminal. Inbound mail at the alias starts once the project has `email/` handlers deployed and its recipient rule is ready; run `void email alias` to check. Redeploy with the current `void` before you share the alias: an app built with an older version sees `message.to` with the alias still in front (`acme+support@…` instead of `support@…`).
64
+ An alias is permanent and reserved until the project is deleted. The original slug address keeps working. The CLI asks for confirmation; use `--yes` in scripts and CI.
65
+
66
+ Before sharing the alias, redeploy with the current Void version so handlers receive the expected `message.to` address. Inbound mail starts when the project's `email/` handlers and recipient rule are ready; run `void email alias` to check.
65
67
 
66
68
  ## `void email domain` {#void-email-domain}
67
69
 
@@ -25,6 +25,7 @@ void platform install [options] [--yes]
25
25
  | `--dedicated-zone` | Add zone-wide catch-all routes; valid only when the app domain is the whole zone |
26
26
  | `--no-dedicated-zone` | Skip zone-wide application catch-all routes |
27
27
  | `--custom-domains` | Let projects add their own domains; needs a dedicated zone |
28
+ | `--runtime-logs <full\|minimal>` | `minimal` keeps request URLs and log and exception messages out of runtime logs |
28
29
  | `--control-plane-domain <domain>` | Optional API custom hostname; defaults to `workers.dev` |
29
30
  | `--no-control-plane-domain` | Use the default `workers.dev` API hostname |
30
31
  | `--dashboard-url <origin>` | HTTPS origin of an optional dashboard deployed separately |
@@ -41,7 +42,7 @@ The installed platform needs a separate runtime token to provision resources for
41
42
 
42
43
  To enable email during install or upgrade, set both `VOID_EMAIL_SENDER_DOMAIN` and `VOID_EMAIL_SHARED_ZONE_ID`. Void records the pair for later upgrades; supplying only one is an error.
43
44
 
44
- Use `--dashboard-url `[`https://dash.example.com`](https://dash.example.com) when deploying the optional user
45
+ Use `--dashboard-url https://dash.example.com` when deploying the optional user
45
46
  dashboard separately. The URL must be an HTTPS origin without credentials, a
46
47
  path, query, or fragment. Void permits that origin's login callbacks and saves
47
48
  it for later maintenance; it does not deploy a dashboard Worker. Omission keeps
@@ -101,7 +102,7 @@ Use these commands to recover, update, pause, or remove an installation:
101
102
 
102
103
  ```sh
103
104
  void platform discover [--account <id>] [--installation <id-or-name>]
104
- void platform upgrade [id] [--runtime <path>] [--dashboard-url <origin>] [--custom-domains] [--plan] [--yes]
105
+ void platform upgrade [id] [--runtime <path>] [--dashboard-url <origin>] [--custom-domains] [--runtime-logs <full|minimal>] [--plan] [--yes]
105
106
  void platform rollback [id] --runtime <earlier-path> [--from-runtime <current-path>] [--plan] [--yes]
106
107
  void platform repair [id] [--runtime <path>] [--dashboard-url <origin>] [--custom-domains] [--auth-config <path>] [--plan] [--yes]
107
108
  void platform disable [id] [--plan] [--yes]
@@ -113,6 +114,8 @@ void platform uninstall [id] [--plan] [--purge-data | --purge-resources] [--yes]
113
114
 
114
115
  Use the installation slug shown beside its name in `void platform list`. Installation IDs and saved connection IDs also work. Lifecycle commands require local installation records; use `discover` to restore them on another machine. Omit `id` when only one installation is configured, or choose from the interactive picker. Non-interactive commands need a slug or ID when several installations exist. Commands that make changes also require `--yes`; `--plan` only previews changes.
115
116
 
117
+ `upgrade --runtime-logs <full|minimal>` changes what runtime logs record; without it, upgrades keep the current setting. See [Choose what runtime logs record](../../guide/platform/installation/setup.md#runtime-logs).
118
+
116
119
  To add or explicitly change a separately deployed dashboard after installation,
117
120
  use `repair --dashboard-url <origin>` or `upgrade --dashboard-url <origin>`.
118
121
  Preview with `--plan` first. Existing Access protection must cover the configured
@@ -138,7 +141,7 @@ After discovery on another machine, set `VOID_PLATFORM_DATABASE_URL`. See [Manag
138
141
 
139
142
  Repair and upgrade preserve disabled state. New, resumed, and previously disabled installations block user traffic until all target Workers pass verification; the installer's health probes can still run. Routes and custom domains remain attached.
140
143
 
141
- If a platform Worker was changed outside Void, or has an active version without a Void deployment record, a command that deploys the platform Workers stops before it changes a platform Worker or pauses traffic, unless you agree in a terminal to replace the changes. See [Platform Workers changed outside Void](../../guide/platform/installation/maintenance.md#workers-changed-outside-void).
144
+ Replacing platform Worker configuration changed outside Void requires interactive approval. Follow [Platform Workers changed outside Void](../../guide/platform/installation/maintenance.md#workers-changed-outside-void) if maintenance asks for it.
142
145
 
143
146
  `--runtime` selects a custom platform build. Relative paths resolve from your current directory. Void verifies the build before making changes; see [Platform Development](../../guide/platform/development/runtime.md#deploying-your-runtime) for creating one.
144
147
 
@@ -179,9 +179,9 @@ Roll back to a previous deployment or Worker Version.
179
179
 
180
180
  On a Void platform, you can select a retained deployment. On Cloudflare, use a complete Worker Version ID or an unambiguous prefix. Void activates that version at 100%. When both versions have complete trigger snapshots, it also restores the selected version's schedules, queues, workflows, routes, and custom domains. Otherwise, rollback keeps the current triggers and restores the code, including versions originally deployed outside Void.
181
181
 
182
- If the project's saved destination is not Cloudflare and you deployed once with `void deploy --platform cloudflare`, pass `--platform cloudflare` to roll back that Worker.
182
+ Pass `--platform cloudflare` to roll back a one-off Cloudflare deployment.
183
183
 
184
- Rollback doesn't reverse database migrations. If older code may run against a newer schema, or migration metadata is missing, Void explains the risk and asks for confirmation. On Cloudflare, undo D1 migrations with [`void db restore`](./database.md#void-db-restore) and the restore point that deploy printed before it applied them, within 7 days on Workers Free or 30 days on Workers Paid.
184
+ Database recovery is separate from code rollback. Void asks for confirmation when the earlier code may be incompatible with the current schema. For D1 on Cloudflare, use [`void db restore`](./database.md#void-db-restore) with the restore point printed during deployment.
185
185
 
186
186
  ## `void project cancel [deployId]` {#void-project-cancel-deployid}
187
187
 
@@ -30,7 +30,7 @@ On a direct Cloudflare target, the value is stored as an encrypted Worker secret
30
30
  ## `void secret sync` {#void-secret-sync}
31
31
 
32
32
  ```
33
- void secret sync <file> [--project <name>]
33
+ void secret sync <file> [--project <name>] [--yes]
34
34
  ```
35
35
 
36
36
  Upload production server values from a dotenv file stored outside your project. Include only keys declared in `env.ts`; leave out local development credentials and public `VITE_*` values.
@@ -39,6 +39,8 @@ Upload production server values from a dotenv file stored outside your project.
39
39
  void secret sync /secure/path/production.env
40
40
  ```
41
41
 
42
+ Pass `--yes` to skip confirmation in scripts and CI.
43
+
42
44
  Existing remote secrets absent from the file are kept. Every entry must be a server key declared in `env.ts`, and its value must pass validation.
43
45
 
44
46
  ## `void secret delete` {#void-secret-delete}
@@ -23,7 +23,7 @@ Resources recorded in `void.lock.json` without a matching definition appear sepa
23
23
 
24
24
  `void migrate` converts legacy `void.json` and root `wrangler.jsonc` or `wrangler.json` files into `void.config.ts`. It also accepts one root `wrangler*.json(c)` file referenced by a supported framework adapter. Void saves backups in `.void/config-migration/`, records resource IDs in `void.lock.json`, and updates supported adapters to use its generated Cloudflare config.
25
25
 
26
- `.void-wrangler.jsonc` is generated for Cloudflare tooling and belongs in `.gitignore`; migration adds the entry. Review and commit `void.config.ts`, `void.lock.json`, and `.gitignore`. `void init` and `void deploy` migrate legacy files automatically. If the project has conflicting or multiple Cloudflare configs, resolve them first. The project's installed `void` package must match the CLI version before Cloudflare deployment.
26
+ The command adds generated `.cloudflare/` and `.void-wrangler.jsonc` files to `.gitignore` as needed. Review and commit `void.config.ts`, `void.lock.json`, and `.gitignore`. `void init` and `void deploy` migrate legacy files automatically. Resolve conflicting Cloudflare configs first, and keep the project's `void` package and CLI on the same version.
27
27
 
28
28
  ## `void init` {#void-init}
29
29
 
@@ -32,9 +32,9 @@ void init [--tsconfig] [--github] [--git | --no-git]
32
32
  [--toolchain <name>] [--framework <name>] [--starter <name>] [--deploy <target>]
33
33
  ```
34
34
 
35
- Set up a new or existing Void project. In an empty directory, choose Vite+ or Vite, a framework, and a D1, PostgreSQL, MySQL, or Static Pages starter.
35
+ Set up a new or existing Void project. In an empty directory, choose Vite+ or Vite, a framework, and a D1, PostgreSQL, MySQL, or Static Pages starter. The new app's `void.config.ts` turns on [`routing.typedRoutes`](../config.md#routing-typedroutes).
36
36
 
37
- To scaffold without prompts, for example from a script or a coding agent, pass the choices as flags. Without an interactive terminal, init stops and names the flag it needs instead of prompting.
37
+ Pass your choices as flags to scaffold from a script or coding agent:
38
38
 
39
39
  | Flag | Values |
40
40
  | ------------- | ----------------------------------------- |
@@ -48,7 +48,7 @@ void init --toolchain vite-plus --framework react --starter sqlite --deploy none
48
48
  npm create void@latest my-app -- --toolchain vite-plus --framework react --starter sqlite --deploy none
49
49
  ```
50
50
 
51
- Cloudflare and Void platform setup still sign in interactively. Without a terminal, choose `--deploy none` and run `void connect` later.
51
+ For non-interactive scaffolding, choose `--deploy none` and run `void connect` later to sign in.
52
52
 
53
53
  Vite+ projects install dependencies through `vp install`; no global Vite+ installation is required. Void preserves existing package-manager versions and lockfiles. New Vite+ projects without a package-manager configuration use pnpm without pinning a version.
54
54
 
@@ -76,7 +76,7 @@ Use this page as a command reference. If you are setting up a project for the fi
76
76
  | `void email alias [name]` | Show the shared mail address, or give it a shorter permanent name |
77
77
  | `void email domain` | Send and receive at your own domain on a Cloudflare zone |
78
78
  | `void init` | Set up a new or existing project, including coding agents |
79
- | `void migrate` | Convert legacy `void.json` and root Wrangler JSON/JSONC into `void.config.ts` |
79
+ | `void migrate` | Update project configuration |
80
80
 
81
81
  ## Binary Invocation {#binary-invocation}
82
82
 
@@ -63,7 +63,7 @@ With that config, Void reads `src/pages`, `src/routes`, `src/db/schema.ts`, `src
63
63
 
64
64
  ### `ai`
65
65
 
66
- `ai.gateway` names the Cloudflare AI Gateway that `ai.provider().fetch()` uses when your app runs on your own Cloudflare account. `ai.run()`, `ai.stream()`, and `ai.image()` use the Workers AI binding and do not need a gateway. On a Void platform, the platform selects the gateway and ignores this setting.
66
+ Set `ai.gateway` to the Cloudflare AI Gateway used by `ai.provider().fetch()` on your own Cloudflare account. `ai.run()`, `ai.stream()`, and `ai.image()` use the Workers AI binding. On a Void platform, the platform selects the gateway.
67
67
 
68
68
  ```json
69
69
  { "ai": { "gateway": "my-gateway" } }
@@ -297,7 +297,7 @@ Void-managed WebSocket route files (`*.ws.ts`) are Cloudflare-only because they
297
297
 
298
298
  ### `worker`
299
299
 
300
- Curated Cloudflare Workers configuration. `void init` pins `compatibility_date` here. If a project has no config file and no date, the first dev server or build creates `void.config.ts` with only this date and adds `.void-wrangler.jsonc` to `.gitignore`. Astro, SvelteKit, Nuxt, and Analog apps get the date in a root `wrangler.jsonc` instead, which their adapter reads by default. A project with a `wrangler.toml` gets it in `void.json`. Binding arrays such as `d1_databases`, `kv_namespaces`, and `r2_buckets` go in [`cloudflare`](#cloudflare), where Void preserves custom settings and resolved IDs during deployment.
300
+ Cloudflare Workers settings, including the `compatibility_date` pinned by `void init`. Put binding arrays such as `d1_databases`, `kv_namespaces`, and `r2_buckets` in [`cloudflare`](#cloudflare).
301
301
 
302
302
  | Field | Type | Description |
303
303
  | --------------------- | ---------- | -------------------------------------- |
@@ -376,6 +376,16 @@ routing: {
376
376
  }
377
377
  ```
378
378
 
379
+ #### `routing.typedRoutes`
380
+
381
+ Type-check URL strings against your app's routes in `Link`'s `href`, `router.visit()`, `router.prefetch()`, `router.flush()`, and `c.rewrite()`. Omitted or `false` means off; `void init` turns it on for new apps. It changes types only, not navigation at runtime. Strings may also be same-page queries or hashes, or `http://`, `https://`, `mailto:`, and `tel:` URLs. See [Checked URL strings](../guide/type-safety#checked-url-strings).
382
+
383
+ ```ts
384
+ routing: {
385
+ typedRoutes: true,
386
+ }
387
+ ```
388
+
379
389
  #### `routing.headers`
380
390
 
381
391
  Custom response headers. Keys are URL patterns, values are arrays of `"Name: value"` strings. See [Custom Headers](../guide/edge/headers) for details.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "void",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Full-stack framework and deployment CLI for Cloudflare Workers, powered by Vite.",
5
5
  "homepage": "https://void.cloud",
6
6
  "bugs": {
@@ -90,7 +90,9 @@
90
90
  "require": "./dist/runtime/validator.mjs"
91
91
  },
92
92
  "./routes": {
93
- "types": "./dist/routes-stub.d.mts"
93
+ "types": "./dist/routes-stub.d.mts",
94
+ "import": "./dist/routes-stub.mjs",
95
+ "require": "./dist/routes-stub.mjs"
94
96
  },
95
97
  "./nitro": {
96
98
  "types": "./dist/nitro.d.mts",
@@ -341,56 +343,58 @@
341
343
  }
342
344
  },
343
345
  "dependencies": {
344
- "@cloudflare/build-output-utils": "^0.9.3",
345
- "@cloudflare/codemods": "^0.5.1",
346
- "@cloudflare/config": "^0.27.0",
347
- "@cloudflare/sandbox": "^1.0.2",
348
- "@cloudflare/vite-plugin": "^1.64.0",
349
- "@cloudflare/workers-auth": "^0.14.1",
350
- "@cloudflare/workers-types": "^5.20261019.1",
351
- "@cloudflare/workers-utils": "^0.47.3",
346
+ "@cloudflare/build-output-utils": "^0.9.7",
347
+ "@cloudflare/codemods": "^0.7.1",
348
+ "@cloudflare/config": "^0.29.1",
349
+ "@cloudflare/sandbox": "^1.0.3",
350
+ "@cloudflare/vite-plugin": "^2.0.0-beta.v.9",
351
+ "@cloudflare/workers-auth": "^0.15.4",
352
+ "@cloudflare/workers-types": "^5.20261102.1",
353
+ "@cloudflare/workers-utils": "^0.50.2",
352
354
  "@napi-rs/keyring": "^2.1.2",
353
- "@void/deploy-cloudflare": "1.4.0",
354
- "@void/deploy-core": "1.4.0",
355
- "@void/edge": "1.4.0",
356
- "@void/isr": "1.4.0",
357
- "@void/platform": "1.4.0",
358
- "better-auth": "^1.7.11",
355
+ "@void/deploy-cloudflare": "1.6.0",
356
+ "@void/deploy-core": "1.6.0",
357
+ "@void/edge": "1.6.0",
358
+ "@void/isr": "1.6.0",
359
+ "@void/platform": "1.6.0",
360
+ "better-auth": "^1.7.14",
359
361
  "better-sqlite3": "^13.0.3",
360
362
  "blake3-jit": "^1.1.0",
361
- "cf": ">=1.0.0-beta.18 <1.0.0-beta.19",
363
+ "cf": "^1.0.0-beta.26",
362
364
  "drizzle-arktype": "^0.1.3",
363
365
  "drizzle-kit": "^0.31.11",
364
366
  "drizzle-orm": "^0.45.4",
365
367
  "drizzle-valibot": "^0.4.2",
366
368
  "drizzle-zod": "^0.8.3",
367
369
  "email-validator": "^2.0.4",
368
- "hono": "^4.13.13",
369
- "ignore": "^7.0.12",
370
+ "gray-matter": "^4.0.3",
371
+ "hono": "^4.13.16",
372
+ "ignore": "^7.0.14",
370
373
  "jiti": "^2.7.0",
371
374
  "jsonc-parser": "^3.3.1",
372
- "mime": "^4.1.1",
373
- "miniflare": "^5.20261012.1-beta",
374
- "minimatch": "^10.2.6",
375
+ "mime": "^4.1.2",
376
+ "miniflare": "^5.20261101.0-beta",
377
+ "minimatch": "^11.0.3",
375
378
  "mysql2": "^3.24.6",
376
379
  "pg": "^8.23.1",
377
- "postal-mime": "^4.0.11",
380
+ "postal-mime": "^4.2.0",
378
381
  "proper-lockfile": "^4.1.2",
382
+ "smol-toml": "^1.9.1",
379
383
  "terminal-link": "^5.0.0",
380
384
  "yaml": "^2.9.1"
381
385
  },
382
386
  "devDependencies": {
383
- "@electric-sql/pglite": "0.5.10",
387
+ "@electric-sql/pglite": "0.5.14",
384
388
  "@types/better-sqlite3": "^9.6.0",
385
- "@types/node": "^26.6.5",
389
+ "@types/node": "^26.6.6",
386
390
  "@types/pg": "^8.23.1",
387
391
  "@types/proper-lockfile": "^4.1.4",
388
- "@voidzero-dev/vite-plus-prompts": "1.3.0",
389
- "arktype": "^2.2.8",
392
+ "@voidzero-dev/vite-plus-prompts": "1.4.0",
393
+ "arktype": "^2.2.9",
390
394
  "ci-info": "^4.4.0",
391
395
  "estree-walker": "^3.0.3",
392
396
  "fast-wrap-ansi": "^0.2.2",
393
- "magic-string": "^1.4.3",
397
+ "magic-string": "^1.4.5",
394
398
  "ofetch": "2.0.0-alpha.3",
395
399
  "pathslash": "^0.1.0",
396
400
  "pglite-server": "0.1.5",
@@ -398,12 +402,12 @@
398
402
  "tinyglobby": "^0.2.17",
399
403
  "typescript": "7.0.2",
400
404
  "valibot": "^1.5.0",
401
- "vite": "npm:@voidzero-dev/vite-plus-core@1.3.0",
402
- "vite-plus": "1.3.0",
405
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0",
406
+ "vite-plus": "1.4.0",
403
407
  "zod": "^4.6.7"
404
408
  },
405
409
  "peerDependencies": {
406
- "@void/md": "1.4.0",
410
+ "@void/md": "1.6.0",
407
411
  "arktype": ">=2.0.0",
408
412
  "valibot": ">=1.0.0-beta.7",
409
413
  "vite": "^8.0.0",
@@ -424,7 +428,7 @@
424
428
  }
425
429
  },
426
430
  "engines": {
427
- "node": ">=24.21.0"
431
+ "node": "^24.22.0 || >=26.12.0"
428
432
  },
429
433
  "scripts": {
430
434
  "build": "node scripts/sync-docs.mjs && vp pack",
@@ -1,4 +1,4 @@
1
1
  FROM node:26.12.1-trixie-slim
2
- COPY --from=docker.io/cloudflare/sandbox:1.0.2 /usr/local/bin/sandbox-shim /usr/local/bin/sandbox-shim
2
+ COPY --from=docker.io/cloudflare/sandbox:1.0.3 /usr/local/bin/sandbox-shim /usr/local/bin/sandbox-shim
3
3
  WORKDIR /workspace
4
4
  CMD ["sleep", "infinity"]
package/schema.json CHANGED
@@ -152,6 +152,10 @@
152
152
  "type": "boolean",
153
153
  "description": "Enable inferred ISR caching. Set false to disable ISR and edge prerendering, including per-page prerender and revalidate policies. Does not disable output: static build-time prerendering."
154
154
  },
155
+ "typedRoutes": {
156
+ "type": "boolean",
157
+ "description": "Type-check URL strings in Link href, router navigation, and c.rewrite() against the app's routes. Omitted or false means off."
158
+ },
155
159
  "notFound": {
156
160
  "type": "string",
157
161
  "enum": ["single-page-application", "404-page", "none"],
@@ -84,6 +84,11 @@ the app's existing saved destination, including when the target project is new.
84
84
  guides and use `void info` to preserve resource names and instance keys.
85
85
  - Declare application environment keys in `env.ts` and access them through
86
86
  `void/env`; follow `docs/guide/env-vars.md` for local and production values.
87
+ - In Pages navigation, style the current link with `Link`'s `aria-current` and `data-void-active`
88
+ attributes (`activeMatch="prefix"` for sections) instead of comparing `useRouter().path`; see
89
+ `docs/guide/pages-routing/overview.md#active-links`. Show a loading state on
90
+ the clicked link with `data-void-pending` instead of matching `useNavigation().location`
91
+ yourself; see `docs/guide/pages-routing/overview.md#pending-links`.
87
92
  - For platform setup, follow the pages linked from
88
93
  `docs/guide/self-hosted-platform.md`. Use `void platform list` to find the
89
94
  installation slug for maintenance. For recovery, use its documented resume
@@ -1 +0,0 @@
1
- export { t as prepareCfBuildOutput } from "./cf-build-output-XpNR9zoh.mjs";
@@ -1 +0,0 @@
1
- export { r as PlatformClient } from "./client-B3LnB_bE.mjs";
@@ -1 +0,0 @@
1
- export { t as collectMigrations } from "./collect-Dew86qce.mjs";
@@ -1,2 +0,0 @@
1
- import "./deploy-transport-DIq_gFTP.mjs";
2
- export { i as checkWranglerMigrationApplySet, t as parseRootWranglerConfig, r as runDeploy } from "./deploy-CdM-LAxX.mjs";
@@ -1 +0,0 @@
1
- export { t as discoverSchema } from "./discover-LaV0tbIu.mjs";
@@ -1 +0,0 @@
1
- export { r as runGenCommand } from "./gen-CFmsUsW1.mjs";