void 0.20.3 → 0.21.1

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 (296) hide show
  1. package/README.md +2 -2
  2. package/dist/agents-gni4eqBu.mjs +111 -0
  3. package/dist/auth-3sGB0zJ1.mjs +22 -0
  4. package/dist/{auth-DPl6kck4.mjs → auth-B9_D6ygs.mjs} +6 -241
  5. package/dist/auth-CAw7zHqj.mjs +2 -0
  6. package/dist/auth-client-BWBT8HLp.mjs +6 -0
  7. package/dist/auth-client-Bawdj38n.d.mts +7 -0
  8. package/dist/auth-client-react-7GFffu8R.d.mts +7 -0
  9. package/dist/auth-client-react-CMLwT2xI.mjs +6 -0
  10. package/dist/auth-client-solid-DyTFL4cq.d.mts +7 -0
  11. package/dist/auth-client-solid-UoreJWZG.mjs +6 -0
  12. package/dist/auth-client-svelte-Cv_WvrRk.mjs +6 -0
  13. package/dist/auth-client-svelte-zetW0KIH.d.mts +7 -0
  14. package/dist/auth-client-vue-CFk7Xbv3.mjs +6 -0
  15. package/dist/auth-client-vue-bChShbQP.d.mts +7 -0
  16. package/dist/{auth-cmd-CzwquNiP.mjs → auth-cmd-g_ymMkUe.mjs} +5 -5
  17. package/dist/{auth-link-ElDTgF7j.mjs → auth-link-DFvxIyZi.mjs} +5 -5
  18. package/dist/{better-auth-shared-DSCeohOK.d.mts → better-auth-shared-BoVwA5Vm.d.mts} +1 -6
  19. package/dist/{better-auth-shared-CYw1T3k4.mjs → better-auth-shared-syGYYmnY.mjs} +1 -1
  20. package/dist/{build-cmd-BpJe6boP.mjs → build-cmd-wJAv808h.mjs} +6 -4
  21. package/dist/{cache-D98YTqeE.mjs → cache-Be0Fu5Ka.mjs} +6 -4
  22. package/dist/{cancel-deploy-CPbEQLMG.mjs → cancel-deploy-BgmyOwhe.mjs} +5 -3
  23. package/dist/cf-access-rAZxzMkL.mjs +181 -0
  24. package/dist/cf-build-output-CTdlo6Rt.mjs +520 -0
  25. package/dist/cli/cf-compat.d.mts +1 -0
  26. package/dist/cli/cf-compat.mjs +944 -0
  27. package/dist/cli/cli.mjs +60 -38
  28. package/dist/cli/env-schema-probe.mjs +3 -3
  29. package/dist/client-DAAivdid.mjs +2 -0
  30. package/dist/{client-BQBrZoCX.mjs → client-PdAJ-F0t.mjs} +6 -12
  31. package/dist/{cloudflare-auth-6M5llVPC.mjs → cloudflare-auth-BCmTc1X_.mjs} +13 -44
  32. package/dist/{cloudflare-cmd-4RPGN3KB.mjs → cloudflare-cmd-D6PrKn7o.mjs} +4 -7
  33. package/dist/{cloudflare-connect-t1UU5svD.mjs → cloudflare-connect-DloREDlc.mjs} +6 -6
  34. package/dist/cloudflare-operations-BHNJVDbN.mjs +2 -0
  35. package/dist/{cloudflare-operations-BzWnlC1_.mjs → cloudflare-operations-CPEdHYhM.mjs} +37 -39
  36. package/dist/cloudflare-user-output-Q-k0QoNQ.mjs +20 -0
  37. package/dist/collect-DAUItMDS.mjs +2 -0
  38. package/dist/collect-DXHNWHcT.mjs +48 -0
  39. package/dist/config--T87TD8T.mjs +2 -0
  40. package/dist/{config-NOG_U1aK.mjs → config-BSe70f4T.mjs} +4 -6
  41. package/dist/config-DDIFxQYx.mjs +2 -0
  42. package/dist/{config-uNGuFsI2.mjs → config-Dxr6cTXn.mjs} +22 -37
  43. package/dist/config-DywxBLQC.d.mts +185 -0
  44. package/dist/config-entry.d.mts +6 -0
  45. package/dist/config-entry.mjs +7 -0
  46. package/dist/config-uP7ZDtVZ.mjs +21 -0
  47. package/dist/config-write-y3CBI_ux.mjs +60 -0
  48. package/dist/{connect-WCQZ_u3m.mjs → connect-LnvW4HKx.mjs} +8 -6
  49. package/dist/{create-project-D0oXA090.mjs → create-project-BZBl_gQ0.mjs} +8 -23
  50. package/dist/create-project-JV9-6ICF.mjs +2 -0
  51. package/dist/database-provider-Cx525bwX.mjs +6 -0
  52. package/dist/database-provider.mjs +1 -5
  53. package/dist/{db-DJ-9qs3S.mjs → db-Mzv88E1C.mjs} +48 -44
  54. package/dist/{delete-BZ4-WaGm.mjs → delete-Ri6JemSU.mjs} +6 -4
  55. package/dist/deploy-DAH2-m_-.mjs +2 -0
  56. package/dist/{deploy-BAhhcg5q.mjs → deploy-DEsMVrCY.mjs} +796 -198
  57. package/dist/discover-BBzDZe_o.mjs +2 -0
  58. package/dist/{discover-xvfrgJeo.mjs → discover-C4O6YxVS.mjs} +3 -8
  59. package/dist/{dist-BrsS7cai.mjs → dist-4WkAWhWx.mjs} +1 -15
  60. package/dist/{dist-m40_XgNh.mjs → dist-Bn8Kodjp.mjs} +1 -1
  61. package/dist/dist-C5fND3R0.mjs +2 -0
  62. package/dist/dist-D7-nEOXi.mjs +2 -0
  63. package/dist/{output-B0cfNSx5.mjs → dist-Dn6nn2IU.mjs} +3 -926
  64. package/dist/{domain-BxAyhxXN.mjs → domain-BA37Ye7T.mjs} +7 -5
  65. package/dist/{route-types-Da-DpyUp.mjs → drizzle-Beb2Am5S.mjs} +1 -280
  66. package/dist/{email-Bj7Cvdwp.mjs → email-C5NsxrQG.mjs} +14 -12
  67. package/dist/{email-Ce6SQq-i.mjs → email-C5kaZXzJ.mjs} +2 -2
  68. package/dist/{entry-DU3oDoQ3.mjs → entry-DdRFGK0y.mjs} +2 -2
  69. package/dist/{env-DBKmK4vc.mjs → env-DX_v-Q-v.mjs} +1 -1
  70. package/dist/{env-DP_EErve.mjs → env-U_ohASB0.mjs} +9 -7
  71. package/dist/env-Yz4HcvHs.mjs +78 -0
  72. package/dist/env-helpers--wFmQ_5Q.mjs +136 -0
  73. package/dist/{env-types-BNPhro-M.mjs → env-types-CWDtqHgw.mjs} +6 -2
  74. package/dist/{env-validation-CF6KvTRf.mjs → env-validation-BsFEXps5.mjs} +19 -28
  75. package/dist/env-validation-DIDGM7h4.mjs +2 -0
  76. package/dist/fetch-CXDChK7B.mjs +18 -0
  77. package/dist/fetch-_SeGZao9.d.mts +57 -0
  78. package/dist/fetch-stream-AOByI7Ki.mjs +81 -0
  79. package/dist/fetch-stream-Bjf0hoZb.d.mts +49 -0
  80. package/dist/gen-B87rlalt.mjs +2 -0
  81. package/dist/{gen-B_wPnVTK.mjs → gen-pg-Ojg8Y.mjs} +13 -11
  82. package/dist/{generate-RTK8_kK1.mjs → generate-C0VY6RVf.mjs} +2 -2
  83. package/dist/{github-cmd-C-z_xRrQ.mjs → github-cmd-DsrkweIl.mjs} +6 -4
  84. package/dist/{handler-D1hLsObx.d.mts → handler-BXJTXd02.d.mts} +6 -1
  85. package/dist/handler-DghKr6dU.mjs +150 -0
  86. package/dist/head-D_QRR5Yd.mjs +112 -0
  87. package/dist/head-client-DzmJGN4C.mjs +90 -0
  88. package/dist/{headers-BAHwgHdW.mjs → headers-B_HBMgi0.mjs} +2 -2
  89. package/dist/help-B403BLBB.mjs +2 -0
  90. package/dist/{help-CwOX-zmI.mjs → help-sBhFH6pi.mjs} +17 -12
  91. package/dist/index.d.mts +2 -20
  92. package/dist/index.mjs +116 -60
  93. package/dist/{init-BGktCXgA.mjs → init-C--Yyj1b.mjs} +49 -50
  94. package/dist/{link-D2kbqhWb.mjs → link-BC-mNG9-.mjs} +7 -5
  95. package/dist/{list-CvkK_G7k.mjs → list-DHU1Wj6c.mjs} +7 -5
  96. package/dist/live-CB1y5IuC.mjs +411 -0
  97. package/dist/live-CKiJilLr.d.mts +105 -0
  98. package/dist/local-d1-DzykTWY8.mjs +104 -0
  99. package/dist/login-BwiopVdg.mjs +2 -0
  100. package/dist/{login-WIjNc77c.mjs → login-jKe_0QZL.mjs} +6 -11
  101. package/dist/{logs-dLUFCapG.mjs → logs-BG11f5PR.mjs} +6 -4
  102. package/dist/migrate-BV8qHiCb.mjs +285 -0
  103. package/dist/migrate-BXY3B3m7.mjs +2 -0
  104. package/dist/migration-handler-DM4clYj5.d.mts +51 -0
  105. package/dist/{neon-DHwd2zvC.mjs → neon-n74ta1Pr.mjs} +1 -1
  106. package/dist/{node-Ez5KW5rn.mjs → node-Cupyf7-s.mjs} +6 -6
  107. package/dist/{operator-auth-B3e08unv.mjs → operator-auth-BkVgJqv-.mjs} +2 -2
  108. package/dist/{operator-client-LUZnlnYk.mjs → operator-client-A0iex2yi.mjs} +2 -1
  109. package/dist/{operator-cmd-CKJ7xIRs.mjs → operator-cmd-BwAS2XZt.mjs} +6 -6
  110. package/dist/output-CCH48AMM.mjs +146 -0
  111. package/dist/{package-json-CPoWX79C.mjs → package-json-iCbMg5XF.mjs} +1 -1
  112. package/dist/pages/client.d.mts +5 -2
  113. package/dist/pages/client.mjs +5 -3
  114. package/dist/pages/head-client.mjs +1 -89
  115. package/dist/pages/head.mjs +1 -111
  116. package/dist/pages/index.d.mts +2 -3
  117. package/dist/pages/index.mjs +7 -7
  118. package/dist/pages/islands-plugin.mjs +2 -2
  119. package/dist/pages/prefetch.d.mts +2 -30
  120. package/dist/pages/prefetch.mjs +1 -89
  121. package/dist/pages/protocol.d.mts +2 -2
  122. package/dist/pages/protocol.mjs +3 -3
  123. package/dist/pages/serialize.d.mts +2 -9
  124. package/dist/pages/serialize.mjs +1 -13
  125. package/dist/plan-BEZ8VJW0.mjs +256 -0
  126. package/dist/plan-DpuOr14e.mjs +2 -0
  127. package/dist/{platform-auth-config-CdVWRRJr.mjs → platform-auth-config-C-hv-_Ok.mjs} +6 -6
  128. package/dist/{platform-auth-protection-Drl0qhrn.mjs → platform-auth-protection-DjTE5Hj-.mjs} +7 -5
  129. package/dist/{platform-auth-recovery-CmKEWpDo.mjs → platform-auth-recovery-Cr0r8TEb.mjs} +6 -5
  130. package/dist/{platform-cmd-5q_k56xS.mjs → platform-cmd-0tEh2ZtA.mjs} +8 -5
  131. package/dist/platform-cmd-DE6dw45v.mjs +2 -0
  132. package/dist/{platform-domain-4GiDlcqx.mjs → platform-domain-B_7x6Iqx.mjs} +4 -3
  133. package/dist/platform-lifecycle-Dhx9Pnub.mjs +2 -0
  134. package/dist/{platform-lifecycle-R9xAxvtG.mjs → platform-lifecycle-Di0LbhPM.mjs} +208 -37
  135. package/dist/platform-management-B9LUtMt9.mjs +2 -0
  136. package/dist/{platform-management-BfWsXHEW.mjs → platform-management-eaiaU3uM.mjs} +8 -5
  137. package/dist/{platform-recovery-CbK-I1FB.mjs → platform-recovery-BxfA8E5C.mjs} +3 -3
  138. package/dist/platform-registry-BJbgZLS1.mjs +431 -0
  139. package/dist/{plugin-inference-BDRfZngg.mjs → plugin-inference-DsvtJLll.mjs} +4 -4
  140. package/dist/prefetch-Bsc_Pb6c.mjs +90 -0
  141. package/dist/prefetch-Ce6la4EI.d.mts +31 -0
  142. package/dist/prepare-D4CkM3_v.mjs +2 -0
  143. package/dist/{prepare-blNRQvQl.mjs → prepare-_T-Haxrr.mjs} +3 -2
  144. package/dist/{prepare-CtDJjoOj.mjs → prepare-pcWcxSCh.mjs} +13 -11
  145. package/dist/prerender-render-Cf_WDE9W.mjs +111 -0
  146. package/dist/prerender-render.mjs +1 -110
  147. package/dist/{preset-lAy0B0BQ.mjs → preset-Dowh9tTt.mjs} +16 -118
  148. package/dist/project-BEBFDFLz.mjs +2 -0
  149. package/dist/project-CWNIPoXc.mjs +209 -0
  150. package/dist/{project-cmd-CTdmnzvc.mjs → project-cmd-DrnRJdep.mjs} +18 -16
  151. package/dist/{project-paths-SK8nMHPp.mjs → project-paths-CKQ-Q5JS.mjs} +47 -14
  152. package/dist/project-slug-23TpquG4.mjs +8 -0
  153. package/dist/project-slug-DofjTFd-.mjs +2 -0
  154. package/dist/{project-team-CGxsQe3_.mjs → project-team-CzRbO_kA.mjs} +6 -4
  155. package/dist/{project-token-Cirx7uwZ.mjs → project-token-Bwxjf4y6.mjs} +6 -4
  156. package/dist/{project-tsconfig-Ql2XsSQp.mjs → project-tsconfig-CwfqUnVp.mjs} +2 -2
  157. package/dist/{protocol-C-pqYJjE.d.mts → protocol-ZH3jP4a7.d.mts} +1 -1
  158. package/dist/providers-BNKRacMr.d.mts +7 -0
  159. package/dist/provision-CNgEBkVA.mjs +3 -0
  160. package/dist/{provision-CSJOjjQk.mjs → provision-Cck2m3jJ.mjs} +11 -25
  161. package/dist/queues-BWKt1Xo4.d.mts +7 -0
  162. package/dist/{requests-4Nq59hOr.mjs → requests-DwrqUQZ8.mjs} +5 -3
  163. package/dist/resolve-project-BTotl8Nn.mjs +2 -0
  164. package/dist/{resolve-project--Vxawf7z.mjs → resolve-project-Xvis70DG.mjs} +2 -8
  165. package/dist/response-Tn7rU0MV.mjs +30 -0
  166. package/dist/{rollback-Dr7u0Ljx.mjs → rollback-B4tFWmkN.mjs} +6 -4
  167. package/dist/{rolldown-runtime-rQ84J-ij.mjs → rolldown-runtime-DXIUcv95.mjs} +1 -10
  168. package/dist/route-types-Id82-veQ.mjs +280 -0
  169. package/dist/{local-d1-D2I6Ox5F.mjs → runner-BGVsGgkb.mjs} +6 -114
  170. package/dist/runner-CQs_cDSG.mjs +2 -0
  171. package/dist/runner-mysql-1o47achK.mjs +2 -0
  172. package/dist/{runner-mysql-7BPUNGmL.mjs → runner-mysql-BhwMk2Bm.mjs} +2 -9
  173. package/dist/{runner-pg-BkEza-dX.mjs → runner-pg-CJ_JeGF6.mjs} +2 -9
  174. package/dist/runner-pg-D7z01mQS.mjs +2 -0
  175. package/dist/runtime/ai.mjs +1 -1
  176. package/dist/runtime/auth-client-react.d.mts +2 -6
  177. package/dist/runtime/auth-client-react.mjs +1 -5
  178. package/dist/runtime/auth-client-solid.d.mts +2 -6
  179. package/dist/runtime/auth-client-solid.mjs +1 -5
  180. package/dist/runtime/auth-client-svelte.d.mts +2 -6
  181. package/dist/runtime/auth-client-svelte.mjs +1 -5
  182. package/dist/runtime/auth-client-vue.d.mts +2 -6
  183. package/dist/runtime/auth-client-vue.mjs +1 -5
  184. package/dist/runtime/auth-client.d.mts +2 -6
  185. package/dist/runtime/auth-client.mjs +1 -5
  186. package/dist/runtime/auth.mjs +1 -21
  187. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  188. package/dist/runtime/better-auth-mysql.mjs +1 -1
  189. package/dist/runtime/better-auth-pg.d.mts +1 -1
  190. package/dist/runtime/better-auth-pg.mjs +1 -1
  191. package/dist/runtime/better-auth.d.mts +1 -1
  192. package/dist/runtime/better-auth.mjs +1 -1
  193. package/dist/runtime/client-react.d.mts +3 -3
  194. package/dist/runtime/client-react.mjs +3 -3
  195. package/dist/runtime/client-solid.d.mts +3 -3
  196. package/dist/runtime/client-solid.mjs +3 -3
  197. package/dist/runtime/client-svelte.d.mts +3 -3
  198. package/dist/runtime/client-svelte.mjs +3 -3
  199. package/dist/runtime/client-vue.d.mts +3 -3
  200. package/dist/runtime/client-vue.mjs +3 -3
  201. package/dist/runtime/client.d.mts +3 -3
  202. package/dist/runtime/client.mjs +3 -3
  203. package/dist/runtime/db.mjs +1 -1
  204. package/dist/runtime/durable.mjs +1 -1
  205. package/dist/runtime/email/testing.mjs +1 -1
  206. package/dist/runtime/env-helpers.mjs +1 -135
  207. package/dist/runtime/env-public-client.mjs +1 -1
  208. package/dist/runtime/env-public.mjs +2 -2
  209. package/dist/runtime/env.mjs +1 -77
  210. package/dist/runtime/fetch-stream.d.mts +2 -49
  211. package/dist/runtime/fetch-stream.mjs +2 -80
  212. package/dist/runtime/fetch.d.mts +2 -57
  213. package/dist/runtime/fetch.mjs +2 -17
  214. package/dist/runtime/handler.d.mts +1 -1
  215. package/dist/runtime/handler.mjs +1 -149
  216. package/dist/runtime/kv.mjs +1 -1
  217. package/dist/runtime/live-client.d.mts +1 -1
  218. package/dist/runtime/live-server.mjs +2 -2
  219. package/dist/runtime/live.d.mts +2 -104
  220. package/dist/runtime/live.mjs +1 -410
  221. package/dist/runtime/migration-handler-mysql.d.mts +1 -1
  222. package/dist/runtime/migration-handler-pg.d.mts +1 -1
  223. package/dist/runtime/migration-handler.d.mts +2 -50
  224. package/dist/runtime/queues.d.mts +2 -6
  225. package/dist/runtime/queues.mjs +1 -1
  226. package/dist/runtime/response.mjs +1 -29
  227. package/dist/runtime/sandbox.mjs +1 -1
  228. package/dist/runtime/sse.mjs +1 -171
  229. package/dist/runtime/storage.mjs +1 -1
  230. package/dist/runtime/validator.d.mts +1 -1
  231. package/dist/runtime/validator.mjs +1 -71
  232. package/dist/runtime/ws-server.d.mts +2 -2
  233. package/dist/runtime/ws-server.mjs +2 -2
  234. package/dist/runtime/ws.d.mts +2 -121
  235. package/dist/{scan-CpK-57ug.mjs → scan-DJbooZm2.mjs} +3 -3
  236. package/dist/{scan-BMH4rzlv.mjs → scan-DdDvRCU1.mjs} +8 -26
  237. package/dist/{secret-AcPi-FoA.mjs → secret-UtrRjhEO.mjs} +8 -6
  238. package/dist/serialize-BPvnNQuA.mjs +14 -0
  239. package/dist/serialize-CfSwWfF2.d.mts +10 -0
  240. package/dist/{skills-C0RvGjeE.mjs → skills-B-690E7h.mjs} +3 -2
  241. package/dist/sse-BaC1jXko.mjs +172 -0
  242. package/dist/{subcommand-prompt-Bmyn5Rlc.mjs → subcommand-prompt-BuGYkAkC.mjs} +2 -1
  243. package/dist/sveltekit.d.mts +2 -1
  244. package/dist/sveltekit.mjs +3 -2
  245. package/dist/validate-DqJ33oHj.mjs +2 -0
  246. package/dist/validate-qNhV00PD.mjs +180 -0
  247. package/dist/validator-BTOu0fB0.mjs +72 -0
  248. package/dist/{wrangler--imS8n0d.mjs → wrangler-D01qs6VB.mjs} +259 -71
  249. package/dist/ws-BwcqizuH.d.mts +122 -0
  250. package/dist/{yarn-pnp-DxSInkzL.mjs → yarn-pnp-CVEc3gE7.mjs} +1 -1
  251. package/package.json +19 -8
  252. package/skills/void/SKILL.md +6 -4
  253. package/skills/void/docs/guide/ai.md +3 -3
  254. package/skills/void/docs/guide/app-types.md +12 -11
  255. package/skills/void/docs/guide/auth.md +2 -2
  256. package/skills/void/docs/guide/database/d1.md +1 -1
  257. package/skills/void/docs/guide/database/mysql.md +1 -1
  258. package/skills/void/docs/guide/database/postgresql.md +3 -3
  259. package/skills/void/docs/guide/deployment.md +8 -15
  260. package/skills/void/docs/guide/durable-state.md +2 -2
  261. package/skills/void/docs/guide/edge/headers.md +3 -3
  262. package/skills/void/docs/guide/edge/prerendering.md +1 -1
  263. package/skills/void/docs/guide/edge/redirects.md +4 -4
  264. package/skills/void/docs/guide/edge/revalidation.md +6 -6
  265. package/skills/void/docs/guide/edge/rewrites.md +28 -27
  266. package/skills/void/docs/guide/edge/static-assets.md +1 -1
  267. package/skills/void/docs/guide/email.md +60 -66
  268. package/skills/void/docs/guide/env-migration.md +1 -1
  269. package/skills/void/docs/guide/index.md +15 -41
  270. package/skills/void/docs/guide/pages-routing/head.md +1 -1
  271. package/skills/void/docs/guide/platform/administration/access.md +13 -5
  272. package/skills/void/docs/guide/platform/administration/projects.md +3 -1
  273. package/skills/void/docs/guide/platform/installation/ci.md +3 -0
  274. package/skills/void/docs/guide/platform/installation/credentials.md +15 -5
  275. package/skills/void/docs/guide/platform/installation/prerequisites.md +2 -0
  276. package/skills/void/docs/guide/platform/installation/setup.md +1 -1
  277. package/skills/void/docs/guide/quickstart.md +11 -78
  278. package/skills/void/docs/guide/remote-dev.md +2 -2
  279. package/skills/void/docs/guide/sandboxes.md +1 -1
  280. package/skills/void/docs/guide/ssg.md +1 -1
  281. package/skills/void/docs/guide/websockets.md +1 -1
  282. package/skills/void/docs/index.md +17 -17
  283. package/skills/void/docs/integrations/cloudflare.md +91 -96
  284. package/skills/void/docs/integrations/frameworks/analog.md +14 -9
  285. package/skills/void/docs/integrations/frameworks/astro.md +14 -10
  286. package/skills/void/docs/integrations/frameworks/nuxt.md +14 -9
  287. package/skills/void/docs/integrations/frameworks/overview.md +35 -29
  288. package/skills/void/docs/integrations/frameworks/react-router.md +1 -1
  289. package/skills/void/docs/integrations/frameworks/sveltekit.md +33 -30
  290. package/skills/void/docs/integrations/frameworks/tanstack-start.md +1 -1
  291. package/skills/void/docs/integrations/nodejs-bun-deno.md +5 -5
  292. package/skills/void/docs/reference/api.md +21 -4
  293. package/skills/void/docs/reference/cli.md +40 -25
  294. package/skills/void/docs/reference/config.md +58 -35
  295. package/skills/void/docs/reference/structure.md +2 -2
  296. package/dist/validate-tBBN_dXH.mjs +0 -505
@@ -40,6 +40,7 @@ export default defineConfig({
40
40
  ssr: true,
41
41
  nitro: {
42
42
  preset: 'cloudflare-module',
43
+ cloudflareDev: { configPath: './.void-wrangler.jsonc' },
43
44
  modules: ['nitro-cloudflare-dev'],
44
45
  alias: {
45
46
  // Nitro has its own bundler that doesn't use Vite aliases.
@@ -53,16 +54,20 @@ export default defineConfig({
53
54
  });
54
55
  ```
55
56
 
56
- ### 4. Create `wrangler.jsonc`
57
+ ### 4. Create `void.config.ts`
57
58
 
58
- `voidPlugin()` auto-syncs inferred bindings into this file on dev startup:
59
+ Void generates the Cloudflare config used by Analog's development runtime:
59
60
 
60
- ```jsonc
61
- {
62
- "name": "my-app",
63
- "compatibility_date": "2026-02-24",
64
- "compatibility_flags": ["nodejs_compat", "nodejs_als"],
65
- }
61
+ ```ts
62
+ import { defineConfig } from 'void/config';
63
+
64
+ export default defineConfig({
65
+ cloudflare: {
66
+ name: 'my-app',
67
+ compatibility_date: '2026-02-24',
68
+ compatibility_flags: ['nodejs_compat', 'nodejs_als'],
69
+ },
70
+ });
66
71
  ```
67
72
 
68
73
  `nodejs_compat` is required for Nitro's Cloudflare runtime. `nodejs_als` is required for `void/*` runtime helpers (e.g. `void/db`, `void/kv`).
@@ -127,7 +132,7 @@ import { eventHandler } from 'h3';
127
132
  import { ai } from 'void/ai';
128
133
 
129
134
  export default eventHandler(async () => {
130
- return ai.run('@cf/meta/llama-3.1-8b-instruct', {
135
+ return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
131
136
  prompt: 'Summarize the latest news',
132
137
  });
133
138
  });
@@ -35,23 +35,27 @@ import cloudflare from '@astrojs/cloudflare';
35
35
  import { voidPlugin } from 'void';
36
36
 
37
37
  export default defineConfig({
38
- adapter: cloudflare(),
38
+ adapter: cloudflare({ configPath: './.void-wrangler.jsonc' }),
39
39
  vite: { plugins: [voidPlugin()] },
40
40
  });
41
41
  ```
42
42
 
43
43
  By default, Astro's Cloudflare runtime and `voidPlugin()` migrations share local state at `.wrangler/state/v3`, so no extra persistence configuration is required.
44
44
 
45
- ### 4. Create `wrangler.jsonc`
45
+ ### 4. Create `void.config.ts`
46
46
 
47
- `voidPlugin()` auto-syncs inferred bindings into this file on dev startup:
47
+ Void uses this config for the Cloudflare adapter during development and deployment:
48
48
 
49
- ```jsonc
50
- {
51
- "name": "my-app",
52
- "compatibility_date": "2026-02-24",
53
- "compatibility_flags": ["nodejs_als"],
54
- }
49
+ ```ts
50
+ import { defineConfig } from 'void/config';
51
+
52
+ export default defineConfig({
53
+ cloudflare: {
54
+ name: 'my-app',
55
+ compatibility_date: '2026-02-24',
56
+ compatibility_flags: ['nodejs_als'],
57
+ },
58
+ });
55
59
  ```
56
60
 
57
61
  `nodejs_als` is required for `void/*` runtime helpers (for example `void/db`, `void/kv`) in Astro.
@@ -126,7 +130,7 @@ import type { APIRoute } from 'astro';
126
130
  import { ai } from 'void/ai';
127
131
 
128
132
  export const POST: APIRoute = async () => {
129
- const result = await ai.run('@cf/meta/llama-3.1-8b-instruct', {
133
+ const result = await ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
130
134
  prompt: 'Summarize the latest news',
131
135
  });
132
136
  return Response.json(result);
@@ -32,6 +32,7 @@ import { voidPlugin } from 'void';
32
32
  export default defineNuxtConfig({
33
33
  nitro: {
34
34
  preset: 'cloudflare-module',
35
+ cloudflareDev: { configPath: './.void-wrangler.jsonc' },
35
36
  alias: {
36
37
  // Nitro has its own bundler that doesn't use Vite aliases.
37
38
  // Duplicate @schema here so Nitro can resolve it.
@@ -44,16 +45,20 @@ export default defineNuxtConfig({
44
45
 
45
46
  By default, Nuxt's Cloudflare development runtime and `voidPlugin()` migrations share local state at `.wrangler/state/v3`, so no extra persistence configuration is required.
46
47
 
47
- ### 4. Create `wrangler.jsonc`
48
+ ### 4. Create `void.config.ts`
48
49
 
49
- `voidPlugin()` auto-syncs inferred bindings into this file on dev startup:
50
+ Void generates the Cloudflare config used by Nuxt's development runtime:
50
51
 
51
- ```jsonc
52
- {
53
- "name": "my-app",
54
- "compatibility_date": "2026-02-24",
55
- "compatibility_flags": ["nodejs_compat", "nodejs_als"],
56
- }
52
+ ```ts
53
+ import { defineConfig } from 'void/config';
54
+
55
+ export default defineConfig({
56
+ cloudflare: {
57
+ name: 'my-app',
58
+ compatibility_date: '2026-02-24',
59
+ compatibility_flags: ['nodejs_compat', 'nodejs_als'],
60
+ },
61
+ });
57
62
  ```
58
63
 
59
64
  ### 5. Deploy
@@ -111,7 +116,7 @@ export default defineEventHandler(async () => {
111
116
  import { ai } from 'void/ai';
112
117
 
113
118
  export default defineEventHandler(async () => {
114
- return ai.run('@cf/meta/llama-3.1-8b-instruct', {
119
+ return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
115
120
  prompt: 'Summarize the latest news',
116
121
  });
117
122
  });
@@ -45,29 +45,32 @@ With `voidPlugin()` added to the framework's Vite config, frameworks get most of
45
45
  - **Auth:** Void-managed auth is not supported in framework mode yet. For now, use Better Auth's official integration for your framework.
46
46
  - **Cron jobs:** scheduled handlers via the `crons/` directory.
47
47
  - **Queue consumers:** typed producers and consumers via the `queues/` directory.
48
- - **Revalidation and prerendering:** configure them with [`routing.revalidate`](../../guide/edge/revalidation.md) and [`routing.prerender`](../../guide/edge/prerendering.md) in `void.json`. Void apps can also set these per page in component files.
48
+ - **Revalidation and prerendering:** configure them with [`routing.revalidate`](../../guide/edge/revalidation.md) and [`routing.prerender`](../../guide/edge/prerendering.md) in `void.config.ts`. Void apps can also set these per page in component files.
49
+
50
+ For framework apps, Void revalidation caches public HTML document responses with both `void deploy` and `void deploy --platform cloudflare`. Client data requests continue to use the framework's own behavior. A response with `Set-Cookie` or `Cache-Control: private`, `no-store`, or `no-cache` is never shared.
49
51
 
50
52
  Frameworks can also access bindings directly via the framework's own mechanisms (e.g. `platform.env` in SvelteKit, `event.context.cloudflare.env` in Nuxt, `env` from `cloudflare:workers` in Analog, `Astro.locals.runtime.env` in Astro).
51
53
 
52
54
  ## Configuration
53
55
 
54
- ### `void.json`
56
+ ### `void.config.ts`
57
+
58
+ Most configuration is inferred automatically. Use `void.config.ts` to override defaults or fine-tune behavior:
55
59
 
56
- Most configuration is inferred automatically. Use `void.json` to override defaults or fine-tune behavior:
60
+ ```ts
61
+ import { defineConfig } from 'void/config';
57
62
 
58
- ```json
59
- {
60
- "$schema": "./node_modules/void/schema.json",
61
- "inference": {
62
- "build": "nuxt build",
63
- "scanDirs": ["src", "server", "lib"],
64
- "bindings": { "db": "MY_DB" }
63
+ export default defineConfig({
64
+ inference: {
65
+ build: 'nuxt build',
66
+ scanDirs: ['src', 'server', 'lib'],
67
+ bindings: { db: 'MY_DB' },
68
+ },
69
+ routing: {
70
+ prerender: ['/', '/about', '/pricing'],
71
+ revalidate: 60,
65
72
  },
66
- "routing": {
67
- "prerender": ["/", "/about", "/pricing"],
68
- "revalidate": 60
69
- }
70
- }
73
+ });
71
74
  ```
72
75
 
73
76
  | Field | Purpose |
@@ -81,22 +84,25 @@ Most configuration is inferred automatically. Use `void.json` to override defaul
81
84
 
82
85
  See [Configuration](../../reference/config.md) for the full reference.
83
86
 
84
- ### `wrangler.jsonc`
87
+ ### Cloudflare settings
85
88
 
86
- Frameworks that use Cloudflare's dev runtime for local dev (SvelteKit, Nuxt with `nitro-cloudflare-dev`, Astro) need a `wrangler.jsonc` for binding configuration. `voidPlugin()` auto-syncs inferred bindings into this file on dev startup:
89
+ Frameworks that use Cloudflare's dev runtime need their adapters pointed at Void's generated `.void-wrangler.jsonc`. Their setup guides show the adapter options. Define your Cloudflare settings in `void.config.ts`:
87
90
 
88
- ```jsonc
89
- {
90
- "name": "my-app",
91
- "compatibility_date": "2026-02-24",
92
- "compatibility_flags": ["nodejs_compat"],
93
- // Bindings below are auto-managed by voidPlugin()
94
- }
91
+ ```ts
92
+ import { defineConfig } from 'void/config';
93
+
94
+ export default defineConfig({
95
+ cloudflare: {
96
+ name: 'my-app',
97
+ compatibility_date: '2026-02-24',
98
+ compatibility_flags: ['nodejs_compat'],
99
+ },
100
+ });
95
101
  ```
96
102
 
97
- Existing bindings are preserved. Only missing ones are added with local placeholder IDs.
103
+ Existing bindings are preserved. D1, KV, and R2 use local placeholder IDs until deployment. For a project connected directly to Cloudflare, importing `void/ai` adds a remote Workers AI binding during development; [Cloudflare login](../../guide/ai.md#local-development) is required to use it. Direct deployments also include the inferred AI binding.
98
104
 
99
- For `void deploy`, compatibility settings are read from `wrangler.jsonc` automatically (no need to duplicate them in `void.json`).
105
+ Void combines these settings with inferred bindings and records provisioned resource IDs in `void.lock.json`. Commit both files.
100
106
 
101
107
  ## Deploy Pipeline
102
108
 
@@ -109,7 +115,7 @@ void deploy
109
115
  │ Reads package.json → determines framework + output conventions
110
116
  │
111
117
  ├─ 2. Build
112
- │ Runs framework's build command (or void.json `build` override)
118
+ │ Runs framework's build command (or void.config.ts `build` override)
113
119
  │ SvelteKit: vite build → .svelte-kit/cloudflare/
114
120
  │ Nuxt: nuxt build → .output/
115
121
  │ Analog: vite build → dist/analog/
@@ -117,10 +123,10 @@ void deploy
117
123
  │
118
124
  ├─ 3. Analyze
119
125
  │ ├─ Locate worker entry + static assets from known output paths
120
- │ ├─ Infer bindings from source or read from void.json
126
+ │ ├─ Infer bindings from source or read from void.config.ts
121
127
  │ ├─ Collect migrations from db/migrations/*.sql
122
128
  │ ├─ Detect cron and queue handlers
123
- │ └─ Read wrangler.jsonc compat settings
129
+ │ └─ Read void.config.ts Cloudflare settings
124
130
  │
125
131
  ├─ 4. Wrap (if needed)
126
132
  │ If crons or queues are configured:
@@ -87,7 +87,7 @@ export async function loader() {
87
87
  import { ai } from 'void/ai';
88
88
 
89
89
  export async function action() {
90
- return ai.run('@cf/meta/llama-3.1-8b-instruct', {
90
+ return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
91
91
  prompt: 'Summarize the latest news',
92
92
  });
93
93
  }
@@ -21,53 +21,56 @@ cd my-app
21
21
  npm install -D @sveltejs/adapter-cloudflare void
22
22
  ```
23
23
 
24
- ### 3. Configure `svelte.config.js`
25
-
26
- ```js
27
- import adapter from '@sveltejs/adapter-cloudflare';
28
- import { withVoidTSConfig } from 'void/sveltekit';
29
-
30
- export default {
31
- kit: {
32
- adapter: adapter(),
33
- typescript: {
34
- config: withVoidTSConfig(),
35
- },
36
- },
37
- };
38
- ```
39
-
40
- ### 4. Add `voidPlugin()` to `vite.config.ts`
24
+ ### 3. Configure `vite.config.ts`
41
25
 
42
26
  ```ts
27
+ import adapter from '@sveltejs/adapter-cloudflare';
43
28
  import { sveltekit } from '@sveltejs/kit/vite';
44
29
  import { voidPlugin } from 'void';
30
+ import { withVoidTSConfig } from 'void/sveltekit';
45
31
  import { defineConfig } from 'vite';
46
32
 
47
33
  export default defineConfig({
48
- plugins: [voidPlugin(), sveltekit()],
34
+ plugins: [
35
+ voidPlugin(),
36
+ sveltekit({
37
+ adapter: adapter({
38
+ config: './.void-wrangler.jsonc',
39
+ platformProxy: { configPath: './.void-wrangler.jsonc' },
40
+ }),
41
+ typescript: {
42
+ config: withVoidTSConfig(),
43
+ },
44
+ }),
45
+ ],
49
46
  });
50
47
  ```
51
48
 
52
- ### 5. Create `wrangler.jsonc`
49
+ If your project already configures SvelteKit in `svelte.config.js`, keep that file and add `typescript.config: withVoidTSConfig()` under its `kit` options instead. SvelteKit ignores `svelte.config.js` when options are passed directly to `sveltekit()`.
53
50
 
54
- SvelteKit's adapter reads bindings from `wrangler.jsonc` for local dev. `voidPlugin()` auto-syncs inferred bindings into this file on dev startup, so you only need the base config:
51
+ ### 4. Create `void.config.ts`
55
52
 
56
- ```jsonc
57
- {
58
- "name": "my-app",
59
- "compatibility_date": "2026-02-24",
60
- "compatibility_flags": ["nodejs_compat"],
61
- }
53
+ Point SvelteKit's adapter at Void's generated Cloudflare config as shown above. Add your Cloudflare settings to `void.config.ts`:
54
+
55
+ ```ts
56
+ import { defineConfig } from 'void/config';
57
+
58
+ export default defineConfig({
59
+ cloudflare: {
60
+ name: 'my-app',
61
+ compatibility_date: '2026-02-24',
62
+ compatibility_flags: ['nodejs_compat'],
63
+ },
64
+ });
62
65
  ```
63
66
 
64
67
  By default, SvelteKit's Cloudflare adapter, `voidPlugin()` migrations, and `void db` commands share local state at `.wrangler/state/v3`, so no extra `platformProxy.persist` configuration is required.
65
68
 
66
- ### 6. Configure `tsconfig.json`
69
+ ### 5. Configure `tsconfig.json`
67
70
 
68
71
  SvelteKit generates `.svelte-kit/tsconfig.json` and expects your root config to extend it. Void generates `.void/tsconfig.json` for project-specific aliases such as `void/db` and `@schema`.
69
72
 
70
- Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit warns because root-level paths override its generated aliases. The `withVoidTSConfig()` hook above merges Void's generated files and aliases into SvelteKit's generated config instead.
73
+ Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit warns because root-level paths override its generated aliases. The `withVoidTSConfig()` hook merges Void's generated files and aliases into SvelteKit's generated config instead.
71
74
 
72
75
  ```json
73
76
  {
@@ -80,7 +83,7 @@ Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit
80
83
 
81
84
  Run `void prepare` after a fresh clone or before typechecking in CI so `.void/tsconfig.json` exists before SvelteKit syncs its config.
82
85
 
83
- ### 7. Deploy
86
+ ### 6. Deploy
84
87
 
85
88
  ```bash
86
89
  void auth login
@@ -132,7 +135,7 @@ import { ai } from 'void/ai';
132
135
 
133
136
  export const actions = {
134
137
  summarize: async () => {
135
- return ai.run('@cf/meta/llama-3.1-8b-instruct', {
138
+ return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
136
139
  prompt: 'Summarize the latest news',
137
140
  });
138
141
  },
@@ -92,7 +92,7 @@ import { createServerFn } from '@tanstack/react-start';
92
92
  import { ai } from 'void/ai';
93
93
 
94
94
  const summarize = createServerFn().handler(async () => {
95
- return ai.run('@cf/meta/llama-3.1-8b-instruct', {
95
+ return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
96
96
  prompt: 'Summarize the latest news',
97
97
  });
98
98
  });
@@ -4,7 +4,7 @@ outline: deep
4
4
 
5
5
  # Node.js, Bun, and Deno
6
6
 
7
- Set `target` in `void.json` to build for Node.js, Bun, or Deno. You can run the resulting server on your own machine, in a container, or with a hosting provider.
7
+ Set `target` in `void.config.ts` to build for Node.js, Bun, or Deno. You can run the resulting server on your own machine, in a container, or with a hosting provider.
8
8
 
9
9
  ```json
10
10
  { "target": "node" }
@@ -25,7 +25,7 @@ All three produce the same project structure and use the same Hono-based routing
25
25
  ### 1. Configure the target
26
26
 
27
27
  ```json
28
- // void.json
28
+ // void.config.ts
29
29
  { "target": "node" }
30
30
  ```
31
31
 
@@ -140,7 +140,7 @@ Inbound [email handlers](../guide/email.md#inbound) in `email/` need Cloudflare
140
140
 
141
141
  ### Ignored config fields
142
142
 
143
- Void warns and ignores these Cloudflare-specific `void.json` fields on other targets:
143
+ Void warns and ignores these Cloudflare-specific `void.config.ts` fields on other targets:
144
144
 
145
145
  - `inference.bindings`: Cloudflare binding configuration
146
146
  - `remote`: remote binding proxy
@@ -166,11 +166,11 @@ my-app/
166
166
  hello.ts
167
167
  package.json
168
168
  vite.config.ts
169
- void.json
169
+ void.config.ts
170
170
  ```
171
171
 
172
172
  ```json
173
- // void.json
173
+ // void.config.ts
174
174
  { "target": "node" }
175
175
  ```
176
176
 
@@ -10,7 +10,7 @@ This page is the source of truth for user-facing `void` exports. Use it when you
10
10
 
11
11
  ### `voidPlugin(options?)`
12
12
 
13
- Named export from `"void"`. Returns an array of Vite plugins that set up file-based routing, migration support, and the Cloudflare Workers runtime. Application-level configuration is read from [`void.json`](./config.md); the optional `options` object controls Vite/Cloudflare plugin behavior.
13
+ Named export from `"void"`. Returns an array of Vite plugins that set up file-based routing, migration support, and the Cloudflare Workers runtime. Application-level configuration is read from [`void.config.ts`](./config.md); the optional `options` object controls Vite/Cloudflare plugin behavior.
14
14
 
15
15
  ```ts
16
16
  import { voidPlugin } from 'void';
@@ -25,6 +25,23 @@ export default defineConfig({
25
25
  | `persistTo` | `string` | Directory path for persisting local dev state (D1, KV, R2). Defaults to `.void/` in the project root. |
26
26
  | `auxiliaryWorkers` | `AuxiliaryWorkerConfig[]` | Additional workers to run inside the same Miniflare instance during dev. Passed through to `@cloudflare/vite-plugin`. Useful for running multiple workers that share bindings (e.g. a separate API worker alongside a dashboard). |
27
27
 
28
+ ## Project configuration
29
+
30
+ ### `defineConfig(config)`
31
+
32
+ Import from `void/config` in the root `void.config.ts`. It returns the config with editor completion and TypeScript checking. Void validates the result when loading it, including values computed at runtime.
33
+
34
+ ```ts
35
+ import { defineConfig } from 'void/config';
36
+
37
+ export default defineConfig({
38
+ cloudflare: { name: 'my-app' },
39
+ routing: { revalidate: 60 },
40
+ });
41
+ ```
42
+
43
+ See the [config reference](./config.md) for all fields.
44
+
28
45
  ## Handlers
29
46
 
30
47
  Imported from `"void"` or `"void/handler"`.
@@ -278,7 +295,7 @@ function defineHead<P = Record<string, unknown>>(
278
295
 
279
296
  ## Rewrites
280
297
 
281
- URL rewrites re-dispatch a request at a different internal path without changing the browser's URL. `c.rewrite()`, `c.originalUrl()`, and `c.isRewritten()` are available on every Hono `Context` the Void runtime hands you. See the [Rewrites guide](../guide/edge/rewrites.md) for the full overview, including static `routing.rewrites` / `routing.fallbacks` in [`void.json`](./config.md#routing).
298
+ URL rewrites re-dispatch a request at a different internal path without changing the browser's URL. `c.rewrite()`, `c.originalUrl()`, and `c.isRewritten()` are available on every Hono `Context` the Void runtime hands you. See the [Rewrites guide](../guide/edge/rewrites.md) for the full overview, including static `routing.rewrites` / `routing.fallbacks` in [`void.config.ts`](./config.md#routing).
282
299
 
283
300
  ### `c.rewrite(destination)`
284
301
 
@@ -345,7 +362,7 @@ import type { RewriteDestination } from 'void/routes';
345
362
  Union of the exact route patterns from your generated `RouteMap` plus a `string` fallback (`RouteName | (string & {})`). Known route patterns (e.g. `/posts/[id]`) are offered as autocomplete entries in your editor, while the `string` branch keeps the type assignable from concrete runtime paths like `` `/posts/${id}` `` — there is no `:id` template-literal resolution at the type level. Used as:
346
363
 
347
364
  - The parameter type of [`c.rewrite()`](#c-rewrite-destination).
348
- - The type of `destination` entries in `routing.rewrites` and `routing.fallbacks` in [`void.json`](./config.md#routing).
365
+ - The type of `destination` entries in `routing.rewrites` and `routing.fallbacks` in [`void.config.ts`](./config.md#routing).
349
366
 
350
367
  Like [`RouteMap`](#routemap), `RewriteDestination` lives in the virtual `void/routes` module and is refreshed whenever routes change.
351
368
 
@@ -752,7 +769,7 @@ Typed AI client for Cloudflare AI models and provider-native AI Gateway requests
752
769
  ```ts
753
770
  import { ai } from 'void/ai';
754
771
 
755
- const result = await ai.run('@cf/meta/llama-3.1-8b-instruct', {
772
+ const result = await ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
756
773
  messages: [{ role: 'user', content: 'Summarize this release note.' }],
757
774
  });
758
775