void 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/AGENTS_TEMPLATE.md +1 -3
  2. package/README.md +19 -9
  3. package/dist/{account-cmd-CDry3B5V.mjs → account-cmd-l-FM7Ioq.mjs} +8 -7
  4. package/dist/{application-analysis-DC2yPvzY.mjs → application-analysis-DKy02UY0.mjs} +21 -32
  5. package/dist/{application-routing-C9khgLiS.mjs → application-routing-DQyUh_5S.mjs} +1 -1
  6. package/dist/{auth-D52yG7hl.mjs → auth-Dn2vw-SG.mjs} +9 -9
  7. package/dist/{auth-B60QDbjg.mjs → auth-LMJcNESe.mjs} +1 -1
  8. package/dist/{auth-link-DjeOptYi.mjs → auth-link-vz9Z2kmG.mjs} +5 -5
  9. package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
  10. package/dist/{auth-router-BRxIuqDi.mjs → auth-router-DvsCUVw4.mjs} +6 -19
  11. package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
  12. package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
  13. package/dist/{build-cmd-Ce3C8huo.mjs → build-cmd-D6we0VjO.mjs} +8 -7
  14. package/dist/{cache-CS8Yxr5a.mjs → cache-CZRdzKx1.mjs} +8 -8
  15. package/dist/{cancel-deploy-mZsD88Xa.mjs → cancel-deploy-CQ3NnMvf.mjs} +6 -5
  16. package/dist/{cf-access-YTlqvAsk.mjs → cf-access-BcIBSKqG.mjs} +11 -12
  17. package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
  18. package/dist/cf-build-output-H9a97vME.mjs +2 -0
  19. package/dist/cf-user-agent-lKblH3zU.mjs +17 -0
  20. package/dist/cli/cli.mjs +48 -83
  21. package/dist/cli/cloudflare-operation-process.mjs +78 -78
  22. package/dist/cli/env-schema-probe.mjs +5 -6
  23. package/dist/{client-mC-dFGDD.mjs → client-DlDJuY0s.mjs} +30 -8
  24. package/dist/client-tso2OfcG.mjs +2 -0
  25. package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
  26. package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
  27. package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
  28. package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
  29. package/dist/{cloudflare-operations-DoQrVHAt.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
  30. package/dist/{cloudflare-operations-DYa3coIk.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
  31. package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
  32. package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
  33. package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
  34. package/dist/config-BtSFvXZx.mjs +2 -0
  35. package/dist/config-CLYAosnQ.mjs +78 -0
  36. package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
  37. package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
  38. package/dist/config-entry.d.mts +1 -1
  39. package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
  40. package/dist/{connect-H6EvP62X.mjs → connect-BfPBHHm-.mjs} +12 -11
  41. package/dist/{create-project-B2kk9Q0o.mjs → create-project-BdXEFKal.mjs} +7 -7
  42. package/dist/{create-project-Dbb4uiN-.mjs → create-project-qFDC45zg.mjs} +1 -1
  43. package/dist/{db-DpCKZto0.mjs → db-Xs80hcaA.mjs} +101 -133
  44. package/dist/{delete-CxlSvsvW.mjs → delete-d2vuou3j.mjs} +7 -7
  45. package/dist/{deploy-CeEbnv4b.mjs → deploy-Bqe1PYBw.mjs} +2351 -2497
  46. package/dist/deploy-VsWsVQkw.mjs +2 -0
  47. package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
  48. package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
  49. package/dist/discover-EDUf6JJw.mjs +2 -0
  50. package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
  51. package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
  52. package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
  53. package/dist/{domain-B_9VgOm6.mjs → domain-BsDUBAvt.mjs} +29 -30
  54. package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
  55. package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
  56. package/dist/{email-BokHgjKj.mjs → email-_lGAHOhp.mjs} +24 -19
  57. package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
  58. package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
  59. package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
  60. package/dist/{env-BdTc-K2L.mjs → env-C74QepDE.mjs} +10 -10
  61. package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
  62. package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
  63. package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
  64. package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
  65. package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
  66. package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
  67. package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
  68. package/dist/{fetch-stream-Nm3hkZbT.mjs → fetch-stream-PGgz4uGz.mjs} +18 -23
  69. package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
  70. package/dist/{gen-BhDlTpwW.mjs → gen-DtkQhvQg.mjs} +40 -57
  71. package/dist/gen-dA9hW7AV.mjs +2 -0
  72. package/dist/{github-cmd-hhkTzlGS.mjs → github-cmd-DaDdBbSS.mjs} +65 -164
  73. package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
  74. package/dist/{handler-BeK3weD4.d.mts → handler-CNAwjRcW.d.mts} +4 -11
  75. package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
  76. package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
  77. package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
  78. package/dist/{help-Bv44e2tm.mjs → help-0bTe_lID.mjs} +13 -32
  79. package/dist/help-DfQYVfGY.mjs +2 -0
  80. package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
  81. package/dist/index.d.mts +19 -2
  82. package/dist/index.mjs +619 -532
  83. package/dist/{info-DhtTKh65.mjs → info-PYWwkWyt.mjs} +4 -4
  84. package/dist/{init-BMf4T03q.mjs → init-DaBGmaXC.mjs} +161 -198
  85. package/dist/{link-BqYsSS_I.mjs → link-C6fjafep.mjs} +10 -10
  86. package/dist/{list-_kBToO-l.mjs → list-BTFBlqKl.mjs} +9 -8
  87. package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
  88. package/dist/{live-iAuEH1hd.d.mts → live-Du8jXwOW.d.mts} +4 -2
  89. package/dist/{local-d1-fGxYrVD6.mjs → local-d1-ga5O_idV.mjs} +2 -2
  90. package/dist/{login-DFuo-RWO.mjs → login-GKcNUmtI.mjs} +7 -7
  91. package/dist/login-mx_ydhmp.mjs +2 -0
  92. package/dist/{logs-DYgnh6dH.mjs → logs-BiMSULmc.mjs} +28 -11
  93. package/dist/migrate-BHp07yJE.mjs +2 -0
  94. package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
  95. package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
  96. package/dist/{node-C6Q6e1Es.mjs → node-DJicPvPj.mjs} +5 -5
  97. package/dist/{operator-args-DdY54Bgb.mjs → operator-args-DOBhIaIg.mjs} +10 -1
  98. package/dist/{operator-auth-2dsGlTT5.mjs → operator-auth-BEZ_u0Cz.mjs} +2 -2
  99. package/dist/{operator-client-BFqpp6z0.mjs → operator-client-DbDv4vtE.mjs} +2 -2
  100. package/dist/{operator-cmd-CUGHXrQf.mjs → operator-cmd-BT4hgavL.mjs} +24 -11
  101. package/dist/operator-cmd-CwBB-1yb.mjs +2 -0
  102. package/dist/{output-BvdaehtE.mjs → output-C50ag2r3.mjs} +20 -2
  103. package/dist/pages/client.d.mts +19 -51
  104. package/dist/pages/client.mjs +204 -225
  105. package/dist/pages/head-client.d.mts +1 -1
  106. package/dist/pages/head.d.mts +1 -1
  107. package/dist/pages/head.mjs +1 -1
  108. package/dist/pages/index.d.mts +2 -2
  109. package/dist/pages/index.mjs +6 -12
  110. package/dist/pages/islands-plugin.d.mts +1 -1
  111. package/dist/pages/islands-plugin.mjs +21 -25
  112. package/dist/pages/protocol.d.mts +2 -2
  113. package/dist/pages/protocol.mjs +2 -2
  114. package/dist/{plan-CJGEeTEI.mjs → plan-BhLO2p4w.mjs} +2 -1
  115. package/dist/plan-CH2G51je.mjs +2 -0
  116. package/dist/platform-args-D4E1PjVw.mjs +2 -0
  117. package/dist/{platform-args-DSV2p4nY.mjs → platform-args-DUeXY9Om.mjs} +1 -1
  118. package/dist/{platform-auth-config-Bosx7U1h.mjs → platform-auth-config-CkSx3usH.mjs} +40 -36
  119. package/dist/{platform-auth-protection-DcbL_LW_.mjs → platform-auth-protection-BJimB_p9.mjs} +9 -8
  120. package/dist/{platform-auth-recovery-WfTZ8K6o.mjs → platform-auth-recovery-BU6izFAU.mjs} +8 -7
  121. package/dist/{platform-cmd-DbKtQb_4.mjs → platform-cmd-BbY1dWiM.mjs} +14 -13
  122. package/dist/{platform-cmd-dyFUof0t.mjs → platform-cmd-BbmJiq5O.mjs} +1 -1
  123. package/dist/{platform-discovery-BC0HCKYt.mjs → platform-discovery-DIYz8V63.mjs} +1 -1
  124. package/dist/{platform-domain-Bsq43AJp.mjs → platform-domain-CHVS6cV0.mjs} +6 -6
  125. package/dist/{platform-lifecycle--5gWmDoI.mjs → platform-lifecycle-ByAlpkhV.mjs} +1 -1
  126. package/dist/{platform-lifecycle-Cfi0o6xM.mjs → platform-lifecycle-DzCwqhFq.mjs} +76 -387
  127. package/dist/{platform-management-Bbwf6-Dq.mjs → platform-management-CBOT4BSM.mjs} +1 -1
  128. package/dist/{platform-management-BrF9STZp.mjs → platform-management-CuuVDhyt.mjs} +7 -7
  129. package/dist/{platform-plans-config-DU-8nC2Y.mjs → platform-plans-config-CN-heS4q.mjs} +5 -4
  130. package/dist/{platform-recovery-DQAqAQYu.mjs → platform-recovery-CskSJgLh.mjs} +3 -3
  131. package/dist/{platform-registry-P387v42A.mjs → platform-registry-Cjv2Qf0r.mjs} +5 -1
  132. package/dist/platform-setup-BBxRxmFC.mjs +299 -0
  133. package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
  134. package/dist/prepare-DRUV-g3X.mjs +2 -0
  135. package/dist/{prepare-WoUubFKL.mjs → prepare-Do96654b.mjs} +8 -8
  136. package/dist/{prepare-BMrRWLwP.mjs → prepare-Dq9hTIbo.mjs} +4 -4
  137. package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
  138. package/dist/prerender-render.mjs +1 -1
  139. package/dist/{project-DQstYTxO.mjs → project-BAm2aB6Q.mjs} +1 -1
  140. package/dist/{project-BiaPQ7ur.mjs → project-DedqCp59.mjs} +1 -1
  141. package/dist/{project-cmd-BbH2LptN.mjs → project-cmd-DaoRrn-8.mjs} +19 -19
  142. package/dist/{project-team-Yiww3-go.mjs → project-team-Q_lCA7Io.mjs} +15 -18
  143. package/dist/{project-token-BrtT2NkY.mjs → project-token-BArgK9o1.mjs} +14 -17
  144. package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
  145. package/dist/{project-zero-trust-nYJ2V2nc.mjs → project-zero-trust-KO9Hu2Pq.mjs} +12 -9
  146. package/dist/{protocol-BX8t2jiw.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
  147. package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
  148. package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
  149. package/dist/{provision-VeqAC77A.mjs → provision-BfaLiWbj.mjs} +38 -41
  150. package/dist/{provision-DMTPG8Rh.mjs → provision-Wu9ZBk9L.mjs} +2 -3
  151. package/dist/{requests-TIz_jtSu.mjs → requests-C7Oeoh5u.mjs} +5 -5
  152. package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
  153. package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
  154. package/dist/{rollback-dBqICPzj.mjs → rollback-DVAtrLAl.mjs} +30 -37
  155. package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
  156. package/dist/route-url-BgPja1GS.d.mts +5 -0
  157. package/dist/route-url-BjGv_KKY.mjs +28 -0
  158. package/dist/runner-9wjsSZx-.mjs +2 -0
  159. package/dist/{runner--2KF6Kua.mjs → runner-DMBKSrRk.mjs} +2 -2
  160. package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
  161. package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
  162. package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
  163. package/dist/runtime/ai.d.mts +1 -1
  164. package/dist/runtime/ai.mjs +34 -95
  165. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  166. package/dist/runtime/better-auth-mysql.mjs +4 -9
  167. package/dist/runtime/better-auth-pg.d.mts +1 -1
  168. package/dist/runtime/better-auth-pg.mjs +5 -10
  169. package/dist/runtime/better-auth.d.mts +1 -1
  170. package/dist/runtime/better-auth.mjs +3 -3
  171. package/dist/runtime/client-react.d.mts +2 -3
  172. package/dist/runtime/client-react.mjs +2 -2
  173. package/dist/runtime/client-solid.d.mts +2 -3
  174. package/dist/runtime/client-solid.mjs +2 -2
  175. package/dist/runtime/client-svelte.d.mts +2 -3
  176. package/dist/runtime/client-svelte.mjs +2 -2
  177. package/dist/runtime/client-vue.d.mts +2 -3
  178. package/dist/runtime/client-vue.mjs +2 -2
  179. package/dist/runtime/client.d.mts +2 -3
  180. package/dist/runtime/client.mjs +2 -2
  181. package/dist/runtime/db.mjs +1 -1
  182. package/dist/runtime/durable.mjs +3 -10
  183. package/dist/runtime/email/testing.mjs +5 -5
  184. package/dist/runtime/email.d.mts +2 -1
  185. package/dist/runtime/email.mjs +11 -27
  186. package/dist/runtime/env-public.mjs +15 -20
  187. package/dist/runtime/env.mjs +1 -1
  188. package/dist/runtime/fetch-stream.d.mts +2 -2
  189. package/dist/runtime/fetch-stream.mjs +1 -1
  190. package/dist/runtime/fetch.d.mts +2 -3
  191. package/dist/runtime/fetch.mjs +1 -1
  192. package/dist/runtime/handler.d.mts +1 -1
  193. package/dist/runtime/handler.mjs +2 -2
  194. package/dist/runtime/isr.mjs +1 -1
  195. package/dist/runtime/kv.mjs +10 -11
  196. package/dist/runtime/live-client.d.mts +1 -1
  197. package/dist/runtime/live-client.mjs +12 -22
  198. package/dist/runtime/live-server.mjs +27 -35
  199. package/dist/runtime/live.d.mts +2 -2
  200. package/dist/runtime/live.mjs +2 -2
  201. package/dist/runtime/migration-handler.mjs +4 -81
  202. package/dist/runtime/queues.mjs +1 -1
  203. package/dist/runtime/remote/binding-handler.d.mts +2 -2
  204. package/dist/runtime/remote/binding-handler.mjs +8 -9
  205. package/dist/runtime/remote/index.mjs +27 -77
  206. package/dist/runtime/route-url.d.mts +2 -4
  207. package/dist/runtime/route-url.mjs +1 -1
  208. package/dist/runtime/routing.d.mts +1 -1
  209. package/dist/runtime/routing.mjs +15 -26
  210. package/dist/runtime/sandbox.mjs +2 -2
  211. package/dist/runtime/sse.mjs +1 -1
  212. package/dist/runtime/storage.mjs +1 -1
  213. package/dist/runtime/validator.d.mts +1 -1
  214. package/dist/runtime/ws-server.d.mts +2 -2
  215. package/dist/runtime/ws-server.mjs +30 -61
  216. package/dist/runtime/ws.d.mts +1 -1
  217. package/dist/runtime/ws.mjs +1 -1
  218. package/dist/{scan-C8dA7iM4.mjs → scan-C3uDzz6J.mjs} +12 -13
  219. package/dist/{secret-AKnNXNP5.mjs → secret-BvtB7IjY.mjs} +15 -15
  220. package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
  221. package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
  222. package/dist/{subcommand-prompt-B6WS9Aoz.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
  223. package/dist/sveltekit.d.mts +0 -2
  224. package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
  225. package/dist/validate-BJr9LfXy.mjs +2 -0
  226. package/dist/{validate-ymhap6M_.mjs → validate-C9qJArv7.mjs} +9 -28
  227. package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
  228. package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
  229. package/dist/{ws-C79j4aED.d.mts → ws-CChrrAU-.d.mts} +1 -1
  230. package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
  231. package/{skills/void/docs → docs}/guide/ai.md +5 -3
  232. package/{skills/void/docs → docs}/guide/auth.md +37 -1
  233. package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
  234. package/{skills/void/docs → docs}/guide/deployment.md +2 -2
  235. package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
  236. package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
  237. package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
  238. package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
  239. package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
  240. package/{skills/void/docs → docs}/guide/jobs.md +2 -2
  241. package/{skills/void/docs → docs}/guide/live.md +10 -5
  242. package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +20 -8
  243. package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
  244. package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
  245. package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
  246. package/{skills/void/docs → docs}/guide/platform/administration/access.md +3 -11
  247. package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
  248. package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
  249. package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
  250. package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
  251. package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
  252. package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
  253. package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +4 -2
  254. package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +4 -0
  255. package/{skills/void/docs → docs}/guide/project-collaboration.md +7 -3
  256. package/{skills/void/docs → docs}/guide/queues.md +0 -2
  257. package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
  258. package/{skills/void/docs → docs}/guide/sandboxes.md +2 -2
  259. package/{skills/void/docs → docs}/guide/sse.md +0 -2
  260. package/{skills/void/docs → docs}/guide/storage.md +7 -2
  261. package/{skills/void/docs → docs}/guide/websockets.md +4 -0
  262. package/docs/integrations/agents.md +37 -0
  263. package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
  264. package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
  265. package/{skills/void/docs → docs}/integrations/hono.md +15 -7
  266. package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
  267. package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
  268. package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
  269. package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
  270. package/{skills/void/docs → docs}/reference/cli/auth.md +1 -6
  271. package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
  272. package/{skills/void/docs → docs}/reference/cli/deploy.md +1 -1
  273. package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
  274. package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
  275. package/{skills/void/docs → docs}/reference/cli/platform-config.md +1 -1
  276. package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
  277. package/{skills/void/docs → docs}/reference/cli/platform-installation.md +1 -1
  278. package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
  279. package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
  280. package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
  281. package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
  282. package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
  283. package/{skills/void/docs → docs}/reference/cli.md +1 -1
  284. package/{skills/void/docs → docs}/reference/config.md +13 -13
  285. package/{skills/void/docs → docs}/reference/resource-inference.md +1 -16
  286. package/package.json +34 -30
  287. package/schema.json +1 -1
  288. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
  289. package/skills/void/SKILL.md +9 -5
  290. package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
  291. package/dist/client-BxVixJBI.mjs +0 -2
  292. package/dist/config-0acf1oys.mjs +0 -2
  293. package/dist/config-D8MOgiQV.mjs +0 -32
  294. package/dist/deploy-qmiLE1G1.mjs +0 -2
  295. package/dist/discover-AMCBXivQ.mjs +0 -2
  296. package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
  297. package/dist/gen-qCBwH3fZ.mjs +0 -2
  298. package/dist/help-Dw5f9Xrg.mjs +0 -2
  299. package/dist/login-D7meQg_3.mjs +0 -2
  300. package/dist/migrate-CEu2X5DB.mjs +0 -2
  301. package/dist/operator-cmd-DRPvhpjM.mjs +0 -2
  302. package/dist/plan-COtUvdMA.mjs +0 -2
  303. package/dist/platform-args-Dcy_5b_Y.mjs +0 -2
  304. package/dist/prepare-BBknoZI1.mjs +0 -2
  305. package/dist/resolve-project-DtbidV4y.mjs +0 -2
  306. package/dist/route-url-CG7U-cRN.mjs +0 -15
  307. package/dist/runner-voIltZrY.mjs +0 -2
  308. package/dist/validate-pna7R3Pv.mjs +0 -2
  309. package/skills/void/docs/integrations/agents.md +0 -26
  310. package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
  311. package/{skills/void/docs → docs}/guide/app-types.md +0 -0
  312. package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
  313. package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
  314. package/{skills/void/docs → docs}/guide/database.md +8 -8
  315. package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
  316. package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
  317. package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
  318. package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
  319. package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
  320. package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
  321. package/{skills/void/docs → docs}/guide/email.md +0 -0
  322. package/{skills/void/docs → docs}/guide/index.md +0 -0
  323. package/{skills/void/docs → docs}/guide/kv.md +0 -0
  324. package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
  325. package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
  326. package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
  327. package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
  328. package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
  329. package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
  330. package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
  331. package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
  332. package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +0 -0
  333. package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
  334. package/{skills/void/docs → docs}/guide/platform/installation/setup.md +0 -0
  335. package/{skills/void/docs → docs}/guide/platform/installation/uninstall.md +0 -0
  336. package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
  337. package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
  338. package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
  339. package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
  340. package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
  341. package/{skills/void/docs → docs}/guide/ssg.md +0 -0
  342. package/{skills/void/docs → docs}/guide/ssr.md +0 -0
  343. package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
  344. package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
  345. package/{skills/void/docs → docs}/index.md +0 -0
  346. package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
  347. package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
  348. package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
  349. package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
  350. package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
  351. package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
  352. package/{skills/void/docs → docs}/reference/api/client.md +0 -0
  353. package/{skills/void/docs → docs}/reference/api/database.md +2 -2
  354. /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
  355. /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
  356. /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
  357. /package/{skills/void/docs → docs}/reference/api/resources.md +0 -0
  358. /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
  359. /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
  360. /package/{skills/void/docs → docs}/reference/api.md +0 -0
  361. /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
  362. /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
  363. /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
  364. /package/{skills/void/docs → docs}/reference/cli/platform.md +0 -0
  365. /package/{skills/void/docs → docs}/reference/structure.md +0 -0
@@ -297,6 +297,18 @@ Curated Cloudflare Workers configuration. `void init` pins `compatibility_date`
297
297
 
298
298
  `worker.vars` values must be strings. Root `.env` values override them during local development only. Production builds do not load `.env`, and reject any `worker.vars` name declared as a server key in `env.ts`. Use `void secret put` for production server values.
299
299
 
300
+ `worker.limits.cpu_ms` sets the CPU time limit per request, from 1 to 300000 ms. On a Void platform, deploy fails if the limit exceeds the account plan; lower it in `void.config.ts` before retrying. Rollback instead caps the old limit at the current plan ceiling. On direct deploys, [Cloudflare enforces the value](https://developers.cloudflare.com/workers/platform/limits/#cpu-time): Workers Free allows up to 10 ms and Workers Paid up to 300000 ms per request.
301
+
302
+ ```json
303
+ {
304
+ "worker": {
305
+ "limits": {
306
+ "cpu_ms": 30000
307
+ }
308
+ }
309
+ }
310
+ ```
311
+
300
312
  ### `cloudflare`
301
313
 
302
314
  The complete Cloudflare Worker configuration for direct Cloudflare builds and deployment. Put custom bindings, `name`, `account_id`, routes, services, vars, migrations, and any other Cloudflare fields here. Void passes these fields through to the generated Cloudflare build configuration. Settings you edit here take precedence over values Void previously recorded in `void.lock.json`.
@@ -325,18 +337,6 @@ deploy: { cloudflare: { mode: 'atomic' } },
325
337
 
326
338
  This choice applies to subsequent `void deploy` runs. Atomic deployment sends traffic to the new Worker before Void checks readiness; a Durable Object class migration cannot be rolled back across its migration boundary. Use `--atomic` for a single deployment instead. `deploy` is a Void setting and is not passed to Cloudflare's Worker config.
327
339
 
328
- `worker.limits.cpu_ms` sets the CPU time limit per request, from 1 to 300000 ms. On a Void platform, deploy fails if the limit exceeds the account plan; lower it in `void.config.ts` before retrying. Rollback instead caps the old limit at the current plan ceiling. On direct deploys, [Cloudflare enforces the value](https://developers.cloudflare.com/workers/platform/limits/#cpu-time): Workers Free allows up to 10 ms and Workers Paid up to 300000 ms per request.
329
-
330
- ```json
331
- {
332
- "worker": {
333
- "limits": {
334
- "cpu_ms": 30000
335
- }
336
- }
337
- }
338
- ```
339
-
340
340
  ### `routing`
341
341
 
342
342
  Routing and edge configuration for headers, redirects, rewrites, and caching.
@@ -434,7 +434,7 @@ ISR revalidation TTL in seconds, either globally or per path. See [Revalidation]
434
434
 
435
435
  #### `routing.revalidateQueryAllowlist`
436
436
 
437
- Query parameters that participate in ISR variant keys for dispatch rewrites. Keys are source URL patterns, values are query parameter names to keep. When omitted, rewritten ISR cache keys drop every incoming query parameter to avoid unbounded cache fanout.
437
+ Query parameters to keep in ISR cache keys. Keys are source URL patterns, values are query parameter names to keep. The listed parameters are part of the cache key for every request to a matching path; all other query parameters are left out of the key. When omitted, ISR cache keys drop every incoming query parameter to avoid unbounded cache fanout.
438
438
 
439
439
  ```json
440
440
  {
@@ -80,22 +80,7 @@ Paths are relative to the project root. When `inference.scanDirs` is set, it rep
80
80
 
81
81
  ## Explicit Binding Overrides
82
82
 
83
- Override individual bindings when inference does not match your setup:
84
-
85
- ```json
86
- {
87
- "inference": {
88
- "bindings": {
89
- "db": true,
90
- "kv": true,
91
- "storage": false,
92
- "ai": false
93
- }
94
- }
95
- }
96
- ```
97
-
98
- Explicit values override only their named bindings. Omitted bindings continue to be inferred, so setting `kv` does not disable storage, auth, or other features. Auth and checked-in migrations still require a database even when `db` is `false`.
83
+ Use [`inference.bindings`](./config.md#inference-bindings) to enable, disable, or rename a binding when inference does not match your setup. It overrides only the bindings you name; the rest are still inferred.
99
84
 
100
85
  ## File Types
101
86
 
package/package.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "name": "void",
3
- "version": "0.26.0",
3
+ "version": "0.27.0",
4
+ "description": "Full-stack framework and deployment CLI for Cloudflare Workers, powered by Vite.",
5
+ "homepage": "https://void.cloud",
6
+ "bugs": {
7
+ "url": "https://github.com/voidzero-dev/void/issues"
8
+ },
9
+ "license": "MIT",
4
10
  "repository": {
5
11
  "type": "git",
6
12
  "url": "git+https://github.com/voidzero-dev/void.git",
@@ -11,6 +17,7 @@
11
17
  },
12
18
  "files": [
13
19
  "dist",
20
+ "docs",
14
21
  "schema.json",
15
22
  "skills",
16
23
  "AGENTS_TEMPLATE.md",
@@ -331,43 +338,40 @@
331
338
  }
332
339
  },
333
340
  "dependencies": {
334
- "@cloudflare/build-output-utils": "0.8.5",
335
- "@cloudflare/codemods": "0.4.0",
336
- "@cloudflare/config": "0.23.0",
341
+ "@cloudflare/build-output-utils": "^0.9.0",
342
+ "@cloudflare/codemods": "^0.4.2",
343
+ "@cloudflare/config": "^0.24.1",
337
344
  "@cloudflare/sandbox": "1.0.0",
338
- "@cloudflare/vite-plugin": "1.62.5",
339
- "@cloudflare/workers-auth": "0.12.0",
340
- "@cloudflare/workers-types": "^4.20260702.1",
341
- "@napi-rs/keyring": "2.1.0",
342
- "@void/deploy-cloudflare": "0.26.0",
343
- "@void/deploy-core": "0.26.0",
344
- "@void/edge": "0.26.0",
345
- "@void/isr": "0.26.0",
346
- "@void/platform": "0.26.0",
347
- "acorn": "^8.18.0",
345
+ "@cloudflare/vite-plugin": "^1.63.1",
346
+ "@cloudflare/workers-auth": "^0.13.1",
347
+ "@cloudflare/workers-types": "^5.20261009.1",
348
+ "@napi-rs/keyring": "^2.1.0",
349
+ "@void/deploy-cloudflare": "0.27.0",
350
+ "@void/deploy-core": "0.27.0",
351
+ "@void/edge": "0.27.0",
352
+ "@void/isr": "0.27.0",
353
+ "@void/platform": "0.27.0",
348
354
  "better-auth": "^1.7.7",
349
355
  "better-sqlite3": "^13.0.3",
350
356
  "blake3-jit": "^1.1.0",
351
- "cf": "1.0.0-beta.12",
357
+ "cf": "^1.0.0-beta.14",
352
358
  "drizzle-arktype": "^0.1.3",
353
359
  "drizzle-kit": "^0.31.11",
354
360
  "drizzle-orm": "^0.45.3",
355
361
  "drizzle-valibot": "^0.4.2",
356
362
  "drizzle-zod": "^0.8.3",
357
363
  "email-validator": "^2.0.4",
358
- "es-module-lexer": "^3.0.2",
359
364
  "hono": "^4.13.13",
360
365
  "ignore": "^7.0.12",
361
366
  "jiti": "^2.7.0",
362
- "jsonc-parser": "3.3.1",
363
- "mime": "4.1.0",
364
- "miniflare": "5.20261001.0-alpha",
367
+ "jsonc-parser": "^3.3.1",
368
+ "mime": "^4.1.0",
369
+ "miniflare": "5.20261006.1-alpha",
365
370
  "minimatch": "^10.2.6",
366
- "mysql2": "3.24.5",
367
- "pg": "8.23.1",
368
- "postal-mime": "^4.0.4",
369
- "proper-lockfile": "^4.1.2",
370
- "undici": "8.11.2"
371
+ "mysql2": "^3.24.5",
372
+ "pg": "^8.23.1",
373
+ "postal-mime": "^4.0.5",
374
+ "proper-lockfile": "^4.1.2"
371
375
  },
372
376
  "devDependencies": {
373
377
  "@electric-sql/pglite": "0.5.8",
@@ -375,12 +379,12 @@
375
379
  "@types/node": "^26.6.4",
376
380
  "@types/pg": "^8.23.1",
377
381
  "@types/proper-lockfile": "^4.1.4",
378
- "@voidzero-dev/vite-plus-prompts": "0.0.0",
382
+ "@voidzero-dev/vite-plus-prompts": "1.1.0",
379
383
  "arktype": "^2.2.7",
380
384
  "ci-info": "^4.4.0",
381
385
  "estree-walker": "^3.0.3",
382
386
  "fast-wrap-ansi": "^0.2.2",
383
- "magic-string": "^1.4.2",
387
+ "magic-string": "^1.4.3",
384
388
  "ofetch": "2.0.0-alpha.3",
385
389
  "pathslash": "^0.1.0",
386
390
  "pglite-server": "0.1.5",
@@ -388,12 +392,12 @@
388
392
  "tinyglobby": "^0.2.17",
389
393
  "typescript": "7.0.2",
390
394
  "valibot": "^1.5.0",
391
- "vite": "npm:@voidzero-dev/vite-plus-core@1.0.0",
392
- "vite-plus": "1.0.0",
395
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.1.0",
396
+ "vite-plus": "1.1.0",
393
397
  "zod": "^4.6.5"
394
398
  },
395
399
  "peerDependencies": {
396
- "@void/md": "0.26.0",
400
+ "@void/md": "0.27.0",
397
401
  "arktype": ">=2.0.0",
398
402
  "valibot": ">=1.0.0-beta.7",
399
403
  "vite": "^8.0.0",
@@ -417,7 +421,7 @@
417
421
  "node": ">=24.21.0"
418
422
  },
419
423
  "scripts": {
420
- "build": "node scripts/sync-skill-docs.mjs && vp pack",
424
+ "build": "node scripts/sync-docs.mjs && vp pack",
421
425
  "dev": "vp pack --watch",
422
426
  "typecheck": "tsc --noEmit --rootDir ../.."
423
427
  }
package/schema.json CHANGED
@@ -212,7 +212,7 @@
212
212
  },
213
213
  "revalidateQueryAllowlist": {
214
214
  "type": "object",
215
- "description": "Query parameters that participate in ISR variant keys for dispatch rewrites. Keys are source URL patterns; values are arrays of query parameter names. When omitted, rewritten ISR drops every query parameter from the variant key.",
215
+ "description": "Query parameters that are part of the ISR cache key for every request to a matching path. Keys are source URL patterns; values are arrays of query parameter names. All other query parameters are left out of the key. When omitted, ISR drops every query parameter from the cache key.",
216
216
  "patternProperties": {
217
217
  "^(\\/|\\*$)": {
218
218
  "type": "array",
@@ -9,7 +9,10 @@ Read the app's package manifest, Vite config, Worker entry, Cloudflare config,
9
9
  and migrations. Identify its framework, endpoints, bindings, and deployed Worker
10
10
  before changing them.
11
11
 
12
- Use the bundled guides under `../void/docs/`:
12
+ Use the bundled guides under `node_modules/void/docs/`. Without a local Void
13
+ installation, use `../../docs/` relative to this skill's real directory in the
14
+ Void package, following any symlink. If the skill was copied without the package,
15
+ use the guides at [https://void.cloud](https://void.cloud) instead:
13
16
 
14
17
  - `integrations/cloudflare.md` for existing Worker handoff and configuration.
15
18
  - `integrations/frameworks/overview.md` and the matching framework guide when
@@ -5,9 +5,12 @@ description: Build Void apps and use the Void CLI by loading the relevant bundle
5
5
 
6
6
  # Void
7
7
 
8
- Read only the guides needed for the user's task. The bundled documentation lives
9
- under `docs/` beside this skill; in an installed project it is available at
10
- `node_modules/void/skills/void/docs/`.
8
+ Read only the guides needed for the user's task. Prefer the app's installed
9
+ documentation at `node_modules/void/docs/` so it matches the app's Void version.
10
+ All `docs/` paths below are relative to that package's root. When using this
11
+ skill globally without a local Void installation, follow the skill's symlink to
12
+ its real directory and use `../../docs/` in the same Void package. If the skill
13
+ was copied without the package, use the guides at [https://void.cloud](https://void.cloud) instead.
11
14
 
12
15
  Before running a Void command, find its group in `docs/reference/cli.md`, then
13
16
  read the matching page under `docs/reference/cli/` for syntax, options, and
@@ -19,8 +22,9 @@ Use `void` and `@void/*` in imports, examples, and package manifests. Follow the
19
22
  project's existing framework and deployment destination. Deploying to a Void
20
23
  platform requires an explicit `void connect <url>` first; never infer a platform
21
24
  from old examples, tokens, or project IDs.
22
- Platform hostnames passed to `void connect` default to HTTPS; include `http://`
23
- explicitly when connecting to a local HTTP platform.
25
+ Platform hostnames passed to `void connect` default to HTTPS. Loopback hosts
26
+ (`localhost`, `127.0.0.1`, and `[::1]`) default to HTTP: `void connect localhost:8787`.
27
+ An explicit scheme overrides the default.
24
28
  For a one-time deployment elsewhere, connect to that platform, then set
25
29
  `VOID_API_URL` for the deploy command and pass `--project <slug>`. This preserves
26
30
  the app's existing saved destination, including when the target project is new.
@@ -1,2 +0,0 @@
1
- import { t as prepareCfBuildOutput } from "./cf-build-output-U8o1Gl6X.mjs";
2
- export { prepareCfBuildOutput };
@@ -1,2 +0,0 @@
1
- import { r as PlatformClient } from "./client-mC-dFGDD.mjs";
2
- export { PlatformClient };
@@ -1,2 +0,0 @@
1
- import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
2
- export { writeDrizzleConfig };
@@ -1,32 +0,0 @@
1
- import { a as join, l as relative } from "./dist-BVqXeR_h.mjs";
2
- import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
- import { n as schemaSpecifier, t as discoverSchema } from "./discover-BcPPiF1o.mjs";
4
- import { mkdirSync, writeFileSync } from "node:fs";
5
- //#region src/drizzle/config.ts
6
- /**
7
- * Write a temporary drizzle-kit config to `.void/drizzle.config.json`.
8
- * All paths are relative to the project root (drizzle-kit resolves
9
- * relative to `--config` file location, so we use project-root-relative).
10
- *
11
- * @returns Absolute path to the written config file.
12
- */
13
- function writeDrizzleConfig(root, dbPath, dialect = "sqlite", options) {
14
- const paths = readProjectPaths(root);
15
- const schema = discoverSchema(root, paths);
16
- const schemaPaths = [...schema ? [schemaSpecifier(schema, root)] : [], ...(options?.additionalSchemas ?? []).map((path) => `./${relative(root, path)}`)];
17
- if (schemaPaths.length === 0) throw new Error(`db: No Drizzle schema found. Create ${paths.sourceRelative("db/schema.ts")} or run \`void gen model <name>\`.`);
18
- const outDir = join(root, ".void");
19
- mkdirSync(outDir, { recursive: true });
20
- const config = {
21
- dialect,
22
- schema: schemaPaths.length === 1 ? schemaPaths[0] : schemaPaths,
23
- out: `./${relative(root, paths.migrationsDir)}`,
24
- migrations: { prefix: "timestamp" },
25
- dbCredentials: { url: dbPath }
26
- };
27
- const configPath = join(outDir, "drizzle.config.json");
28
- writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
29
- return configPath;
30
- }
31
- //#endregion
32
- export { writeDrizzleConfig as t };
@@ -1,2 +0,0 @@
1
- import { r as runDeploy, t as parseRootWranglerConfig, y as checkWranglerMigrationApplySet } from "./deploy-CeEbnv4b.mjs";
2
- export { checkWranglerMigrationApplySet, parseRootWranglerConfig, runDeploy };
@@ -1,2 +0,0 @@
1
- import { t as discoverSchema } from "./discover-BcPPiF1o.mjs";
2
- export { discoverSchema };
@@ -1,20 +0,0 @@
1
- //#region src/runtime/fetch-error.d.ts
2
- type FetchResponse<T = unknown> = Response & {
3
- _data?: T;
4
- };
5
- type FetchError<T = unknown> = Error & {
6
- request?: RequestInfo;
7
- options?: RequestInit & Record<string, unknown>;
8
- response?: FetchResponse<T>;
9
- data?: T;
10
- status?: number;
11
- statusText?: string;
12
- statusCode?: number;
13
- statusMessage?: string;
14
- };
15
- type FetchErrorConstructor = new <T = unknown>(message: string, opts?: {
16
- cause: unknown;
17
- }) => FetchError<T>;
18
- declare const FetchError: FetchErrorConstructor;
19
- //#endregion
20
- export { FetchError as t };
@@ -1,2 +0,0 @@
1
- import { r as runGenCommand } from "./gen-BhDlTpwW.mjs";
2
- export { runGenCommand };
@@ -1,2 +0,0 @@
1
- import { r as printHelpPage } from "./help-Bv44e2tm.mjs";
2
- export { printHelpPage };
@@ -1,2 +0,0 @@
1
- import { r as selectPlatformLoginMethod } from "./login-DFuo-RWO.mjs";
2
- export { selectPlatformLoginMethod };
@@ -1,2 +0,0 @@
1
- import { n as runMigrateCommand } from "./migrate-CV1on-yJ.mjs";
2
- export { runMigrateCommand };
@@ -1,2 +0,0 @@
1
- import { a as runOperatorCommand } from "./operator-cmd-CUGHXrQf.mjs";
2
- export { runOperatorCommand };
@@ -1,2 +0,0 @@
1
- import { n as buildMigrationPlanBundle } from "./plan-CJGEeTEI.mjs";
2
- export { buildMigrationPlanBundle };
@@ -1,2 +0,0 @@
1
- import { t as parsePlatformArgs } from "./platform-args-DSV2p4nY.mjs";
2
- export { parsePlatformArgs };
@@ -1,2 +0,0 @@
1
- import { t as prepareProject } from "./prepare-WoUubFKL.mjs";
2
- export { prepareProject };
@@ -1,2 +0,0 @@
1
- import { n as inferDefaultSlug } from "./resolve-project-BG5ORGID.mjs";
2
- export { inferDefaultSlug };
@@ -1,15 +0,0 @@
1
- //#region src/runtime/route-url.ts
2
- /** Expand complete route tokens without changing query strings or fragments. */
3
- function interpolateRouteParams(path, params) {
4
- if (!params) return path;
5
- const suffixIndex = path.search(/[?#]/);
6
- const pathname = suffixIndex === -1 ? path : path.slice(0, suffixIndex);
7
- const suffix = suffixIndex === -1 ? "" : path.slice(suffixIndex);
8
- return pathname.replace(/(^|\/):([^/{}]+)(\{\.\+\})?(?=\/|$)/g, (token, prefix, name, catchAll) => {
9
- if (!Object.hasOwn(params, name)) return token;
10
- const value = params[name];
11
- return prefix + (catchAll ? value.split("/").map(encodeURIComponent).join("/") : encodeURIComponent(value));
12
- }) + suffix;
13
- }
14
- //#endregion
15
- export { interpolateRouteParams as t };
@@ -1,2 +0,0 @@
1
- import { i as openSqliteDatabase, n as getAppliedMigrations, o as runMigrations, r as getMiniflareDatabasePath, t as getApplicationTables } from "./runner--2KF6Kua.mjs";
2
- export { getApplicationTables, getAppliedMigrations, getMiniflareDatabasePath, openSqliteDatabase, runMigrations };
@@ -1,2 +0,0 @@
1
- import { i as validateMigrations } from "./validate-ymhap6M_.mjs";
2
- export { validateMigrations };
@@ -1,26 +0,0 @@
1
- ---
2
- outline: deep
3
- ---
4
-
5
- # Using Void with Coding Agents
6
-
7
- `void init` gives your coding agent Void instructions and reference docs. To add or refresh just that setup, run:
8
-
9
- ```sh
10
- npx void init --agents
11
- ```
12
-
13
- Void updates `AGENTS.md` with development guidance and links to the docs, preserving your existing instructions.
14
-
15
- The complete Markdown docs ship with the installed package at `node_modules/void/skills/void/docs/`. Agents can read them directly, even without a linked skill.
16
-
17
- ## Skills
18
-
19
- Skills point your agent to the commands and docs it needs for the task. They link to the installed `void` package, so the guidance matches the version your app uses.
20
-
21
- Void ships two skills:
22
-
23
- - **`void`:** commands and docs for app development.
24
- - **`migrate-vite-cloudflare-to-void`:** migration skill for converting existing `@cloudflare/vite-plugin` apps to Void.
25
-
26
- Skills are linked automatically by `void init --agents` when it detects a supported agent's configuration. For example, Claude Code uses `.claude/skills/`. If no agent is detected, skill linking is skipped and `AGENTS.md` points directly to the bundled docs.
@@ -8,10 +8,6 @@ async function readPgAppliedMigrations(client) {
8
8
  throw error;
9
9
  }
10
10
  }
11
- /**
12
- * Apply unapplied SQL migrations via a connected PostgreSQL client.
13
- * Each migration runs in its own transaction (BEGIN/COMMIT).
14
- */
15
11
  async function getPgAppliedMigrations(url) {
16
12
  const { Client } = await import("pg");
17
13
  const client = new Client({ connectionString: url });
@@ -22,6 +18,10 @@ async function getPgAppliedMigrations(url) {
22
18
  await client.end();
23
19
  }
24
20
  }
21
+ /**
22
+ * Apply unapplied SQL migrations via a connected PostgreSQL client.
23
+ * Each migration runs in its own transaction (BEGIN/COMMIT).
24
+ */
25
25
  async function applyPgMigrations(client, migrations) {
26
26
  if (migrations.length === 0) return [];
27
27
  await client.query(`CREATE TABLE IF NOT EXISTS _void_migrations (name TEXT PRIMARY KEY, applied_at TEXT NOT NULL)`);
File without changes
@@ -29,8 +29,8 @@ See [Database commands](../../reference/cli/database.md#database) for the full w
29
29
  D1 supports batching multiple statements into a single round-trip:
30
30
 
31
31
  ```ts
32
- import { db, eq } from 'void/db';
33
32
  import { users, posts } from '@schema';
33
+ import { db, eq } from 'void/db';
34
34
 
35
35
  await db.batch([
36
36
  db.delete(posts).where(eq(posts.userId, userId)),
@@ -51,9 +51,9 @@ Use `env.DB` from `cloudflare:workers` with another query library or the raw D1
51
51
  ### Kysely
52
52
 
53
53
  ```ts
54
+ import { env } from 'cloudflare:workers';
54
55
  import { Kysely } from 'kysely';
55
56
  import { D1Dialect } from 'kysely-d1';
56
- import { env } from 'cloudflare:workers';
57
57
 
58
58
  const db = new Kysely<Database>({ dialect: new D1Dialect({ database: env.DB }) });
59
59
  ```
@@ -54,9 +54,9 @@ Define your tables in `db/schema.ts` using column helpers from `void/schema-d1`,
54
54
  ::: code-group
55
55
 
56
56
  ```ts [SQLite (D1)]
57
+ import { sql } from 'void/db';
57
58
  // db/schema.ts
58
59
  import { sqliteTable, text, integer } from 'void/schema-d1';
59
- import { sql } from 'void/db';
60
60
 
61
61
  export const users = sqliteTable('users', {
62
62
  id: integer('id').primaryKey({ autoIncrement: true }),
@@ -117,8 +117,8 @@ export * from "./schema/posts";
117
117
  Void re-exports all common [Drizzle query operators](https://orm.drizzle.team/docs/select) from `void/db` so you don't need to install `drizzle-orm` separately. Import `db` from `void/db` and your tables from `@schema`:
118
118
 
119
119
  ```ts
120
- import { db } from 'void/db';
121
120
  import { users } from '@schema';
121
+ import { db } from 'void/db';
122
122
  ```
123
123
 
124
124
  ::: info What is `@schema`?
@@ -134,8 +134,8 @@ const allUsers = await db.select().from(users);
134
134
  ### Filter with `where`
135
135
 
136
136
  ```ts
137
- import { db, eq, and, or } from 'void/db';
138
137
  import { users } from '@schema';
138
+ import { db, eq, and, or } from 'void/db';
139
139
 
140
140
  // Single condition
141
141
  const user = await db.select().from(users).where(eq(users.id, 1));
@@ -200,8 +200,8 @@ const names = await db.select({ name: users.name, email: users.email }).from(use
200
200
  ### Ordering and pagination
201
201
 
202
202
  ```ts
203
- import { db, desc } from 'void/db';
204
203
  import { users } from '@schema';
204
+ import { db, desc } from 'void/db';
205
205
 
206
206
  const page = await db.select().from(users).orderBy(desc(users.createdAt)).limit(10).offset(20);
207
207
  ```
@@ -209,8 +209,8 @@ const page = await db.select().from(users).orderBy(desc(users.createdAt)).limit(
209
209
  ### Joins
210
210
 
211
211
  ```ts
212
- import { db, eq } from 'void/db';
213
212
  import { users, posts } from '@schema';
213
+ import { db, eq } from 'void/db';
214
214
 
215
215
  const results = await db
216
216
  .select({
@@ -290,9 +290,9 @@ export const insertUserSchema = createInsertSchema(users, {
290
290
  ```
291
291
 
292
292
  ```ts [Valibot]
293
+ import { pipe, minLength, email } from 'valibot';
293
294
  // db/schema.ts
294
295
  import { createInsertSchema } from 'void/drizzle-valibot';
295
- import { pipe, minLength, email } from 'valibot';
296
296
 
297
297
  export const insertUserSchema = createInsertSchema(users, {
298
298
  name: (schema) => pipe(schema, minLength(1)),
@@ -301,9 +301,9 @@ export const insertUserSchema = createInsertSchema(users, {
301
301
  ```
302
302
 
303
303
  ```ts [ArkType]
304
+ import { type } from 'arktype';
304
305
  // db/schema.ts
305
306
  import { createInsertSchema } from 'void/drizzle-arktype';
306
- import { type } from 'arktype';
307
307
 
308
308
  export const insertUserSchema = createInsertSchema(users, {
309
309
  name: type('string > 0'),
@@ -318,10 +318,10 @@ export const insertUserSchema = createInsertSchema(users, {
318
318
  Use the derived schema in your route handlers with [`withValidator()`](./server-routing.md#validation):
319
319
 
320
320
  ```ts
321
+ import { users, insertUserSchema } from '@schema';
321
322
  // routes/api/users/index.ts
322
323
  import { defineHandler } from 'void';
323
324
  import { db } from 'void/db';
324
- import { users, insertUserSchema } from '@schema';
325
325
 
326
326
  export const POST = defineHandler.withValidator({
327
327
  body: insertUserSchema,
File without changes
File without changes
File without changes
File without changes
@@ -135,10 +135,10 @@ let { posts } = $props();
135
135
  ```
136
136
 
137
137
  ```tsx [Solid]
138
+ import { For } from 'solid-js';
138
139
  // pages/blog/index.island.tsx
139
140
  import Counter from './_Counter' with { island: 'load' };
140
141
  import PostForm from './_PostForm' with { island: 'visible' };
141
- import { For } from 'solid-js';
142
142
 
143
143
  export default function BlogIndex(props) {
144
144
  return (
@@ -181,9 +181,9 @@ The `island` attribute value controls _when_ the component hydrates:
181
181
  | `"media:(query)"` | CSS media query matches | Responsive components (e.g., mobile-only) |
182
182
 
183
183
  ```tsx
184
+ import Comments from './_Comments' with { island: 'visible' };
184
185
  import CookieBanner from './_CookieBanner' with { island: 'idle' };
185
186
  import MobileMenu from './_MobileMenu' with { island: 'media:(max-width: 768px)' };
186
- import Comments from './_Comments' with { island: 'visible' };
187
187
  ```
188
188
 
189
189
  ## Server Handlers
File without changes