void 1.3.0 → 1.5.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.
- package/README.md +1 -1
- package/dist/{account-cmd-B4i71m7k.mjs → account-cmd-ChVKPZ-w.mjs} +7 -8
- package/dist/{action-key-XZ9HkWAO.mjs → action-key-XtKKbbsi.mjs} +1 -2
- package/dist/{agents-CuNtT0D_.mjs → agents-DRo8gzni.mjs} +2 -3
- package/dist/{application-analysis-DYdVoMAY.mjs → application-analysis-2vGZrKzg.mjs} +27 -29
- package/dist/{application-routing-C8EqRDfv.mjs → application-routing-DnUQoOJD.mjs} +2 -3
- package/dist/{ast-CsZ_q_gc.mjs → ast-Cv0JwXqb.mjs} +1 -2
- package/dist/{ast-bindings-C3yaPs1y.mjs → ast-bindings-BkivMJIo.mjs} +6 -11
- package/dist/{atomic-write-Dq6R0BPN.mjs → atomic-write-DA6eD1Kp.mjs} +1 -2
- package/dist/auth-CH4PLAX1.d.mts +68 -0
- package/dist/{auth-Cbqi1iVX.mjs → auth-CL-p_rqV.mjs} +1 -1
- package/dist/{auth-B6iOCjKI.mjs → auth-Dy8svcqQ.mjs} +6 -7
- package/dist/{auth-3sGB0zJ1.mjs → auth-YVjBX5NY.mjs} +1 -2
- package/dist/{auth-client-Bawdj38n.d.mts → auth-client-6-Ft9i9T.d.mts} +0 -2
- package/dist/{auth-client-BWBT8HLp.mjs → auth-client-DwCdwKbw.mjs} +1 -2
- package/dist/{auth-client-react-CMLwT2xI.mjs → auth-client-react-CJdeErvM.mjs} +1 -2
- package/dist/{auth-client-react-7GFffu8R.d.mts → auth-client-react-DvQLe5Zb.d.mts} +0 -2
- package/dist/{auth-client-solid-UoreJWZG.mjs → auth-client-solid-BRvgvp6h.mjs} +1 -2
- package/dist/{auth-client-solid-DyTFL4cq.d.mts → auth-client-solid-P9pEtKGp.d.mts} +0 -2
- package/dist/{auth-client-svelte-zetW0KIH.d.mts → auth-client-svelte-B5j8irT6.d.mts} +0 -2
- package/dist/{auth-client-svelte-Cv_WvrRk.mjs → auth-client-svelte-BSqUCEed.mjs} +1 -2
- package/dist/{auth-client-vue-bChShbQP.d.mts → auth-client-vue-BEiAfavk.d.mts} +0 -2
- package/dist/{auth-client-vue-CFk7Xbv3.mjs → auth-client-vue-CPkbRtOO.mjs} +1 -2
- package/dist/{auth-link-BKwHPbdv.mjs → auth-link-D4uMdOsw.mjs} +7 -8
- package/dist/{auth-migrations-BO27GDNr.mjs → auth-migrations-DDeifS3v.mjs} +1 -2
- package/dist/{auth-router-DqLx8E0F.mjs → auth-router-62dna450.mjs} +14 -10
- package/dist/{base64-DVrOndmI.mjs → base64-ikl9yBy3.mjs} +1 -2
- package/dist/{better-auth-shared-DVk2DkTW.d.mts → better-auth-shared-BJyG2mH0.d.mts} +2 -6
- package/dist/{better-auth-shared-7FM3Uk2N.mjs → better-auth-shared-CiclgPde.mjs} +4 -5
- package/dist/{build-cmd-Dy4psnt1.mjs → build-cmd-D93K_4Sa.mjs} +7 -8
- package/dist/{cache-DV37S6dl.mjs → cache-CiIzEED4.mjs} +7 -8
- package/dist/{cancel-deploy-DMPyu1Vt.mjs → cancel-deploy-BNoGfn2e.mjs} +6 -7
- package/dist/{cf-access-CWP4avfP.mjs → cf-access-BmBT2h8_.mjs} +3 -4
- package/dist/{cf-access-BM9G0lhO.mjs → cf-access-pejlJmuy.mjs} +1 -2
- package/dist/{cf-build-output-Bapzc_8Z.mjs → cf-build-output-B1C8U83u.mjs} +60 -317
- package/dist/cf-build-output-CmDOcA7K.mjs +1 -0
- package/dist/{cf-command-values-ByHk0xg4.mjs → cf-command-values-Ccl-zRhl.mjs} +10 -7
- package/dist/cf-config-migrate-Dy8MrKgF.mjs +326 -0
- package/dist/{cf-worker-settings-BECvvTVd.mjs → cf-worker-settings-CARs4Wy9.mjs} +14 -10
- package/dist/cli/cli.mjs +66 -76
- package/dist/cli/cloudflare-operation-process.mjs +21 -19
- package/dist/cli/env-schema-probe.d.mts +1 -5
- package/dist/cli/env-schema-probe.mjs +4 -5
- package/dist/client-DVtAKeUm.mjs +1 -0
- package/dist/{client-BEMtySaV.mjs → client-Qayy9xEh.mjs} +10 -12
- package/dist/{cloudflare-auth-Byo_0_N9.mjs → cloudflare-auth-CEu-1Ps_.mjs} +3 -4
- package/dist/{cloudflare-cmd-BaqIigwI.mjs → cloudflare-cmd-DiFGaLow.mjs} +7 -8
- package/dist/{cloudflare-config-DchHxPTo.mjs → cloudflare-config-Chet188_.mjs} +25 -9
- package/dist/{cloudflare-connect-pNLQmr_e.mjs → cloudflare-connect-BdgAQBc7.mjs} +5 -6
- package/dist/{cloudflare-operations-vP3b5CQf.mjs → cloudflare-operations-CWA24vCh.mjs} +8 -9
- package/dist/{cloudflare-operations-PCM4wucv.mjs → cloudflare-operations-D8MoezuN.mjs} +1 -1
- package/dist/{cloudflare-process-8jEYIeim.mjs → cloudflare-process-DjJ638A-.mjs} +7 -9
- package/dist/{cloudflare-user-output-Q-k0QoNQ.mjs → cloudflare-user-output-zEwuGrEJ.mjs} +1 -2
- package/dist/collect-8i0wU63d.mjs +1 -0
- package/dist/{collect-Dew86qce.mjs → collect-C6Blu9yw.mjs} +2 -3
- package/dist/{config-BU6hMu1W.mjs → config-BszFVhpk.mjs} +1 -1
- package/dist/{config-BIaXIkkv.mjs → config-Bt4rw93x.mjs} +5 -6
- package/dist/{config-Du88-7Y8.d.mts → config-CzsNzGVH.d.mts} +4 -6
- package/dist/{config-DHgSEWT7.mjs → config-DkA9jYF2.mjs} +9 -8
- package/dist/config-WlvEcL82.mjs +86 -0
- package/dist/config-entry.d.mts +1 -3
- package/dist/config-entry.mjs +1 -2
- package/dist/{connect-DwVsBvVh.mjs → connect-b9mJbb6X.mjs} +10 -11
- package/dist/{create-project-CjzbBlTv.mjs → create-project-eomwm0wa.mjs} +9 -11
- package/dist/{create-project-CgrnvzyA.mjs → create-project-rnjum4_V.mjs} +1 -1
- package/dist/{database-provider-Cx525bwX.mjs → database-provider-DkZo4VwN.mjs} +1 -2
- package/dist/database-provider.d.mts +1 -3
- package/dist/database-provider.mjs +1 -1
- package/dist/{db-rvo64snS.mjs → db-UPWmiSk1.mjs} +52 -54
- package/dist/{db-types-NGxPwnlt.mjs → db-types-C_8amnB0.mjs} +3 -4
- package/dist/{delete-DWX6dP4M.mjs → delete-BeeYi1WO.mjs} +7 -8
- package/dist/deploy-CfU7CR-b.mjs +2 -0
- package/dist/{deploy-hRPvw8ci.mjs → deploy-CwmCcTlq.mjs} +321 -185
- package/dist/{deploy-managed-static-CDYA2p3L.mjs → deploy-managed-static-gPDxyp3v.mjs} +46 -46
- package/dist/{deploy-transport-JCxw7QDi.mjs → deploy-transport-L6zzPE9T.mjs} +17 -17
- package/dist/deploy.d.mts +3 -3
- package/dist/deploy.mjs +13 -12
- package/dist/{dev-inbox-D0jxye_D.mjs → dev-inbox-CwH5VuZj.mjs} +3 -4
- package/dist/discover-D4mQthao.mjs +1 -0
- package/dist/{discover-LaV0tbIu.mjs → discover-Dhkzxgdt.mjs} +3 -4
- package/dist/{dispatch-OVLeWW8K.mjs → dispatch-CiJ1Xrba.mjs} +13 -16
- package/dist/{dist-Cegxq8gs.mjs → dist-B6eN80gc.mjs} +199 -118
- package/dist/{dist-D15hFhP0.mjs → dist-BWNkVq50.mjs} +8 -15
- package/dist/{dist-Cor9XGoz.mjs → dist-D23AAMxT.mjs} +9 -16
- package/dist/{dist-ipQi0Q8y.mjs → dist-DMYe8CZJ.mjs} +1 -2
- package/dist/{dist-B1PLt4_8.mjs → dist-eV_Ep60B.mjs} +1 -1
- package/dist/{domain-CH5iBD9Y.mjs → domain-3xdH9p2L.mjs} +8 -9
- package/dist/{dotenv-CNazY3-w.mjs → dotenv-CEI8hapP.mjs} +1 -2
- package/dist/{drizzle-9TubSZvI.mjs → drizzle-C8MPqt5m.mjs} +1 -1
- package/dist/{drizzle-BQfyvQKX.mjs → drizzle-lFdzSEa9.mjs} +2 -3
- package/dist/{email-B9ayYQEG.mjs → email-BHY72ixO.mjs} +3 -4
- package/dist/{email-CbTO1l78.mjs → email-Du3YRnM5.mjs} +14 -15
- package/dist/{email-cloudflare-B8-pq_-W.mjs → email-cloudflare-CtD8qE13.mjs} +34 -24
- package/dist/{email-protocol-D9nTvhCp.mjs → email-protocol-DTs_TjCS.mjs} +1 -2
- package/dist/{entry-BEM8ZuGP.mjs → entry-CBZsCy3O.mjs} +5 -6
- package/dist/{env-BBdw236G.mjs → env-Cnvp0pGy.mjs} +10 -11
- package/dist/{env-BaMz0j7H.mjs → env-CuzZZyjB.mjs} +3 -4
- package/dist/{env-0jrMQJI_.mjs → env-DtKg5G26.mjs} +2 -3
- package/dist/{env-helpers--wFmQ_5Q.mjs → env-helpers-Dj_SIwPu.mjs} +1 -2
- package/dist/{env-helpers-CyKtOBpj.d.mts → env-helpers-U56xuFgL.d.mts} +1 -3
- package/dist/{env-public-6lqiSD2b.d.mts → env-public-CeNeO_AT.d.mts} +2 -4
- package/dist/{env-raw-D74P4ebM.mjs → env-raw-e8qgqAzQ.mjs} +1 -2
- package/dist/{env-types-BicfKBhV.mjs → env-types-DqzVBKnS.mjs} +4 -5
- package/dist/{env-validation-BfBVvBNe.mjs → env-validation-C8Cmvas0.mjs} +1 -1
- package/dist/{env-validation-XcukUlFM.mjs → env-validation-GV1oD4EV.mjs} +10 -10
- package/dist/error-pages-COVBnzK7.mjs +31 -0
- package/dist/{fetch-CUX0tB78.d.mts → fetch-B-gLGYVl.d.mts} +0 -4
- package/dist/{fetch-CtESUYWd.mjs → fetch-C8yhLoF3.mjs} +3 -4
- package/dist/{fetch-error-Bw0n-IY-.mjs → fetch-error-DmlRM6e4.mjs} +2 -4
- package/dist/{fetch-stream-BspOeTAI.mjs → fetch-stream-DafNtVJC.mjs} +4 -5
- package/dist/{fetch-stream-DfkAzZf-.d.mts → fetch-stream-DuwxWmBM.d.mts} +1 -3
- package/dist/{gen-CCx3t2Ju.mjs → gen-BvVmpZ5f.mjs} +12 -13
- package/dist/gen-i61rdQgg.mjs +1 -0
- package/dist/{generate-DkEb9rL-.mjs → generate-BOp1g1H_.mjs} +1 -1
- package/dist/{generate-B1m4Cm4n.mjs → generate-CWb8aOsm.mjs} +4 -5
- package/dist/{generated-wrangler-config-DeWj5F9Y.mjs → generated-wrangler-config-CoDaaFsA.mjs} +1 -2
- package/dist/{git-metadata-D-gurjzG.mjs → git-metadata-Cukp5kV5.mjs} +1 -2
- package/dist/{github-cmd-BzkRLkbg.mjs → github-cmd-X2GKiLi-.mjs} +8 -9
- package/dist/{handler-CQv5YDS0.d.mts → handler-Drm_lyrV.d.mts} +15 -26
- package/dist/{handler-BZ1t7-Rv.mjs → handler-xmzz0U38.mjs} +4 -5
- package/dist/{head-D2VF4ApL.mjs → head-5XPcnG-j.mjs} +1 -2
- package/dist/{head-C8K_iGe6.d.mts → head-MeF_5M_3.d.mts} +0 -2
- package/dist/{headers-D522zd0A.mjs → headers-DEUBAM6W.mjs} +4 -5
- package/dist/help-BcZDUcTw.mjs +1 -0
- package/dist/{help-CKbrhZha.mjs → help-EWDNxST-.mjs} +19 -11
- package/dist/{inbound-VrOLqwZY.mjs → inbound-DQfekMtz.mjs} +5 -6
- package/dist/{inbound-Da7XsjH3.d.mts → inbound-DSKSHDUj.d.mts} +0 -4
- package/dist/index.d.mts +23 -13
- package/dist/index.mjs +504 -225
- package/dist/{info-oBm8yK8J.mjs → info-jW8_d3VI.mjs} +6 -7
- package/dist/{init-CBp_uMve.mjs → init-jDQ5G9QC.mjs} +62 -64
- package/dist/{isr-config-fZaJJ8t7.mjs → isr-config-DhBkzCdY.mjs} +5 -9
- package/dist/{limits-D0vD1M9A.mjs → limits-CrHLm5Tk.mjs} +1 -2
- package/dist/{limits-CFsDKQvU.d.mts → limits-_xIf5z_P.d.mts} +0 -2
- package/dist/{link-Dt_QXmM4.mjs → link-DOyxX5Xs.mjs} +8 -9
- package/dist/{list-DF6asTdt.mjs → list-C9pTYDtl.mjs} +8 -9
- package/dist/{live-CXJ9yC98.d.mts → live-CDBHyYiR.d.mts} +2 -4
- package/dist/{live-BcHoTDFe.mjs → live-DF4HUl2m.mjs} +5 -7
- package/dist/{load-user-env-DD5qveNU.mjs → load-user-env-CSwdofj0.mjs} +1 -2
- package/dist/{local-d1-CUhH3qtj.mjs → local-d1-CKfek6Z4.mjs} +4 -5
- package/dist/{log-BMwmN5Ae.mjs → log-D9hwSySP.mjs} +3 -4
- package/dist/login-C0MiQrYs.mjs +1 -0
- package/dist/{login-BjSyhXlT.mjs → login-koQbjzPd.mjs} +6 -7
- package/dist/{logs-DmvBl6xA.mjs → logs-cTU5TsRW.mjs} +8 -9
- package/dist/migrate-BG09-KOv.mjs +1 -0
- package/dist/{migrate-BXRHpYwR.mjs → migrate-C62pGTfr.mjs} +22 -79
- package/dist/{migration-handler-CwlEQUoo.d.mts → migration-handler-D8mDx3Ew.d.mts} +0 -4
- package/dist/{migration-handler-Cg0Y4EPu.mjs → migration-handler-DCehTlWs.mjs} +1 -2
- package/dist/{mime-BAyHPskU.mjs → mime-DKkO7ZtA.mjs} +2 -3
- package/dist/{mysql-migration-sql-BIS5vbNk.mjs → mysql-migration-sql-CI9VTwjt.mjs} +3 -5
- package/dist/{neon-DTZr7Bu7.mjs → neon-CJzQSycr.mjs} +2 -3
- package/dist/nitro.d.mts +0 -2
- package/dist/nitro.mjs +6 -7
- package/dist/{node-DtD7ZiPf.mjs → node-BfAt2rz8.mjs} +9 -10
- package/dist/{operator-args-BsJIYXaT.mjs → operator-args-D79WQP70.mjs} +2 -3
- package/dist/{operator-auth-Cr2zCc-J.mjs → operator-auth-CfDcmzpo.mjs} +2 -3
- package/dist/{operator-client-C-ROjk1I.mjs → operator-client-BIY4-N_6.mjs} +3 -4
- package/dist/operator-cmd-BhHXIL2G.mjs +1 -0
- package/dist/{operator-cmd-DjZKGGgN.mjs → operator-cmd-CnAvSqJ5.mjs} +8 -9
- package/dist/{output-BpgYODYx.mjs → output-BCdLioKP.mjs} +4 -5
- package/dist/output-E6gecbbV.mjs +1 -0
- package/dist/{package-json-BjYqR-So.mjs → package-json-DvS6IFRv.mjs} +2 -3
- package/dist/pages/client.d.mts +22 -23
- package/dist/pages/client.mjs +51 -31
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/head.mjs +1 -1
- package/dist/pages/index.d.mts +18 -14
- package/dist/pages/index.mjs +99 -10
- package/dist/pages/islands-plugin.d.mts +29 -11
- package/dist/pages/islands-plugin.mjs +3 -4
- package/dist/pages/prefetch.d.mts +1 -1
- package/dist/pages/prefetch.mjs +1 -1
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -2
- package/dist/pages/serialize.d.mts +1 -1
- package/dist/pages/serialize.mjs +1 -1
- package/dist/{pg-J2HbZIkX.mjs → pg-DoyPxa_X.mjs} +1 -2
- package/dist/{picocolors-BsDfhxIw.mjs → picocolors-D1NxSLw-.mjs} +2 -3
- package/dist/{plan-BhLO2p4w.mjs → plan-BOD70XGS.mjs} +1 -2
- package/dist/plan-CQ-N4gws.mjs +1 -0
- package/dist/{platform-args-BMD2gjc_.mjs → platform-args-Bv9hoLEL.mjs} +4 -7
- package/dist/platform-args-C1kqYUen.mjs +1 -0
- package/dist/{platform-auth-config-BgnuMbml.mjs → platform-auth-config-CLj0EvnB.mjs} +10 -11
- package/dist/{platform-auth-protection-NjRejttU.mjs → platform-auth-protection-DQDSxVhr.mjs} +10 -11
- package/dist/{platform-auth-recovery-Ug12d9W5.mjs → platform-auth-recovery-DD3oLerq.mjs} +9 -11
- package/dist/{platform-cmd-HByuZAO7.mjs → platform-cmd-PLNLg-2N.mjs} +12 -13
- package/dist/{platform-cmd-BYKLMPCn.mjs → platform-cmd-WnOmdLzR.mjs} +1 -1
- package/dist/{platform-discovery-CHhNs8Nn.mjs → platform-discovery-B0eZjZ3B.mjs} +2 -3
- package/dist/{platform-domain-DLSQ8GF8.mjs → platform-domain-Bnq0vg0q.mjs} +7 -8
- package/dist/{platform-lifecycle-3dwFJmnq.mjs → platform-lifecycle-BCsFg1Tl.mjs} +53 -88
- package/dist/{platform-lifecycle-BRqcxerG.mjs → platform-lifecycle-BQiN9HN5.mjs} +1 -1
- package/dist/{platform-management-ZK6XcbCo.mjs → platform-management-CMJR8Zi-.mjs} +1 -1
- package/dist/{platform-management-ZZ6bQM5j.mjs → platform-management-nzCDwtiN.mjs} +7 -9
- package/dist/{platform-plans-config-CeydDSj0.mjs → platform-plans-config-Dx1agneU.mjs} +5 -6
- package/dist/{platform-recovery-8vNE5dNN.mjs → platform-recovery-DBNoME3I.mjs} +5 -6
- package/dist/{platform-registry-B9mWX9LO.mjs → platform-registry-DZ_2Xuqd.mjs} +4 -6
- package/dist/{platform-setup-Ca53gtt0.mjs → platform-setup-VEcHu0Vq.mjs} +4 -5
- package/dist/{plugin-inference-CeiB6BG5.mjs → plugin-inference-DmwjC3y2.mjs} +16 -24
- package/dist/{prefetch-Ce6la4EI.d.mts → prefetch-CG0K6JPd.d.mts} +0 -2
- package/dist/{prefetch-Bsc_Pb6c.mjs → prefetch-L93_1Jk7.mjs} +1 -2
- package/dist/prepare-BJMmfq3W.mjs +1 -0
- package/dist/{prepare-5BR7Splm.mjs → prepare-BPsfLWaW.mjs} +4 -5
- package/dist/{prepare-Dseww74N.mjs → prepare-pfl2LIMy.mjs} +17 -14
- package/dist/{prerender-render-CaShbHJ3.mjs → prerender-render-RlAj6hh8.mjs} +2 -3
- package/dist/prerender-render.d.mts +1 -3
- package/dist/prerender-render.mjs +1 -1
- package/dist/{project-rqDnVsJN.mjs → project-CLwxcEdq.mjs} +3 -4
- package/dist/{project-zdB3fs9G.mjs → project-DVsTAWFh.mjs} +1 -1
- package/dist/{project-cmd-CjLNNxwe.mjs → project-cmd-5Izu4Pg3.mjs} +21 -23
- package/dist/{project-paths-DGu_QZ_Q.mjs → project-paths-CdGv9Tmi.mjs} +3 -5
- package/dist/project-slug-BUy0lmyR.mjs +1 -0
- package/dist/{project-slug-23TpquG4.mjs → project-slug-CO6ci9XG.mjs} +0 -1
- package/dist/{project-team-DE5drjcl.mjs → project-team-DSUyjZFh.mjs} +7 -8
- package/dist/{project-token-XEYEXfiJ.mjs → project-token-wj09YQSB.mjs} +7 -8
- package/dist/{project-tsconfig-Itv1f4WC.mjs → project-tsconfig-Cf2NFjlM.mjs} +28 -8
- package/dist/{project-zero-trust-6VPU8zmV.mjs → project-zero-trust-BMHf2YF0.mjs} +7 -8
- package/dist/{protocol-DimNxVRr.mjs → protocol-0-lp9ZYx.mjs} +6 -7
- package/dist/{protocol-BekmFxCI.d.mts → protocol-xdrl-In0.d.mts} +3 -5
- package/dist/{providers-BNKRacMr.d.mts → providers-D5P8j_8D.d.mts} +0 -2
- package/dist/{providers-BUHwJlmM.mjs → providers-ZARwX2cL.mjs} +1 -2
- package/dist/{provision-B7UFrBH7.mjs → provision-CRiNnlfE.mjs} +29 -14
- package/dist/{provision-Chq0NRAV.mjs → provision-CxHIGBIZ.mjs} +1 -1
- package/dist/{queues-BWKt1Xo4.d.mts → queues-DdM42xXW.d.mts} +0 -2
- package/dist/{r2-conditions-B8xUgJRc.mjs → r2-conditions-BqkQNt2n.mjs} +1 -2
- package/dist/{requests-CG-Pj8ze.mjs → requests-DicgB5jU.mjs} +6 -7
- package/dist/resolve-project-CgfjtOwz.mjs +1 -0
- package/dist/{resolve-project-Xoi6eTWY.mjs → resolve-project-D0YNnJfm.mjs} +4 -5
- package/dist/{resource-name-C7LVpcRm.mjs → resource-name-DlJ9QXzg.mjs} +1 -2
- package/dist/{response-Tn7rU0MV.mjs → response-HmNjB30w.mjs} +1 -2
- package/dist/{rollback-CIrm2txZ.mjs → rollback-DrDZOKNE.mjs} +7 -8
- package/dist/{rolldown-runtime-3h0WiCiA.mjs → rolldown-runtime-uD8oG6U2.mjs} +1 -2
- package/dist/{route-types--PAOzHlH.mjs → route-types-irZc1txT.mjs} +100 -7
- package/dist/route-url-BGOiyKNz.d.mts +24 -0
- package/dist/route-url-CRDF-I0I.mjs +57 -0
- package/dist/routes-stub.d.mts +4 -3
- package/dist/routes-stub.mjs +1 -1
- package/dist/{routing-assets-DdSFxoLp.mjs → routing-assets-DJIVOrCh.mjs} +1 -2
- package/dist/{runner-3uGC-oLF.mjs → runner-5MCSimKx.mjs} +5 -6
- package/dist/{runner-WCdfeI0q.mjs → runner-QMeOpScZ.mjs} +1 -1
- package/dist/{runner-mysql-BcHnLUuM.mjs → runner-mysql-0zVmB1JW.mjs} +1 -1
- package/dist/{runner-mysql-BWmbk5IE.mjs → runner-mysql-Bdmsp_x4.mjs} +3 -4
- package/dist/{runner-pg-Cgp-cr_p.mjs → runner-pg-2pjltt0t.mjs} +1 -1
- package/dist/{runner-pg-Cr3qrqi4.mjs → runner-pg-mYc75KfH.mjs} +2 -3
- package/dist/runtime/ai.d.mts +0 -4
- package/dist/runtime/ai.mjs +6 -8
- package/dist/runtime/auth-client-react.d.mts +1 -1
- package/dist/runtime/auth-client-react.mjs +1 -1
- package/dist/runtime/auth-client-solid.d.mts +1 -1
- package/dist/runtime/auth-client-solid.mjs +1 -1
- package/dist/runtime/auth-client-svelte.d.mts +1 -1
- package/dist/runtime/auth-client-svelte.mjs +1 -1
- package/dist/runtime/auth-client-vue.d.mts +1 -1
- package/dist/runtime/auth-client-vue.mjs +1 -1
- package/dist/runtime/auth-client.d.mts +1 -1
- package/dist/runtime/auth-client.mjs +1 -1
- package/dist/runtime/auth.d.mts +2 -2
- package/dist/runtime/auth.mjs +1 -1
- package/dist/runtime/better-auth-mysql.d.mts +2 -4
- package/dist/runtime/better-auth-mysql.mjs +3 -4
- package/dist/runtime/better-auth-pg.d.mts +2 -4
- package/dist/runtime/better-auth-pg.mjs +4 -5
- package/dist/runtime/better-auth.d.mts +2 -4
- package/dist/runtime/better-auth.mjs +3 -4
- package/dist/runtime/client-react.d.mts +4 -4
- package/dist/runtime/client-react.mjs +4 -4
- package/dist/runtime/client-solid.d.mts +4 -4
- package/dist/runtime/client-solid.mjs +4 -4
- package/dist/runtime/client-svelte.d.mts +4 -4
- package/dist/runtime/client-svelte.mjs +4 -4
- package/dist/runtime/client-vue.d.mts +4 -4
- package/dist/runtime/client-vue.mjs +4 -4
- package/dist/runtime/client.d.mts +4 -4
- package/dist/runtime/client.mjs +4 -4
- package/dist/runtime/db.d.mts +0 -2
- package/dist/runtime/db.mjs +2 -3
- package/dist/runtime/durable.d.mts +0 -2
- package/dist/runtime/durable.mjs +3 -4
- package/dist/runtime/email/testing.d.mts +1 -5
- package/dist/runtime/email/testing.mjs +5 -6
- package/dist/runtime/email-protocol.d.mts +0 -2
- package/dist/runtime/email-protocol.mjs +1 -1
- package/dist/runtime/email.d.mts +1 -5
- package/dist/runtime/email.mjs +6 -7
- package/dist/runtime/env-public-client.d.mts +1 -3
- package/dist/runtime/env-public-client.mjs +2 -3
- package/dist/runtime/env-public.d.mts +2 -2
- package/dist/runtime/env-public.mjs +5 -7
- package/dist/runtime/env.d.mts +0 -4
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/fetch-server.d.mts +1 -3
- package/dist/runtime/fetch-server.mjs +3 -4
- package/dist/runtime/fetch-stream.d.mts +2 -2
- package/dist/runtime/fetch-stream.mjs +2 -2
- package/dist/runtime/fetch.d.mts +1 -1
- package/dist/runtime/fetch.mjs +2 -2
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +2 -2
- package/dist/runtime/isr.d.mts +1 -3
- package/dist/runtime/isr.mjs +2 -3
- package/dist/runtime/kv.d.mts +1 -3
- package/dist/runtime/kv.mjs +2 -3
- package/dist/runtime/limits.d.mts +1 -1
- package/dist/runtime/limits.mjs +1 -1
- package/dist/runtime/live-client.d.mts +1 -3
- package/dist/runtime/live-client.mjs +1 -2
- package/dist/runtime/live-server.d.mts +0 -2
- package/dist/runtime/live-server.mjs +3 -4
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/live.mjs +1 -1
- package/dist/runtime/log.d.mts +3 -3
- package/dist/runtime/log.mjs +26 -18
- package/dist/runtime/migration-handler-mysql.d.mts +2 -4
- package/dist/runtime/migration-handler-mysql.mjs +2 -3
- package/dist/runtime/migration-handler-pg.d.mts +2 -4
- package/dist/runtime/migration-handler-pg.mjs +2 -3
- package/dist/runtime/migration-handler.d.mts +1 -1
- package/dist/runtime/migration-handler.mjs +1 -1
- package/dist/runtime/queues.d.mts +1 -1
- package/dist/runtime/queues.mjs +2 -3
- package/dist/runtime/remote/binding-handler.d.mts +1 -3
- package/dist/runtime/remote/binding-handler.mjs +3 -4
- package/dist/runtime/remote/index.d.mts +1 -3
- package/dist/runtime/remote/index.mjs +8 -13
- package/dist/runtime/response.d.mts +1 -3
- package/dist/runtime/response.mjs +1 -1
- package/dist/runtime/route-url.d.mts +2 -2
- package/dist/runtime/route-url.mjs +1 -1
- package/dist/runtime/routing.d.mts +10 -12
- package/dist/runtime/routing.mjs +27 -88
- package/dist/runtime/sandbox-container.d.mts +1 -1
- package/dist/runtime/sandbox-container.mjs +1 -1
- package/dist/runtime/sandbox.d.mts +2 -2
- package/dist/runtime/sandbox.mjs +5 -6
- package/dist/runtime/seed.d.mts +0 -2
- package/dist/runtime/seed.mjs +1 -2
- package/dist/runtime/sse-client.d.mts +1 -3
- package/dist/runtime/sse-client.mjs +1 -2
- package/dist/runtime/sse.d.mts +1 -3
- package/dist/runtime/sse.mjs +1 -1
- package/dist/runtime/storage.d.mts +1 -3
- package/dist/runtime/storage.mjs +2 -3
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/validator.mjs +1 -1
- package/dist/runtime/ws-server.d.mts +3 -5
- package/dist/runtime/ws-server.mjs +3 -4
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/runtime/ws.mjs +7 -6
- package/dist/{sandbox-q3waMc2T.d.mts → sandbox-DE1WsxuB.d.mts} +2 -4
- package/dist/{sandbox-container-a9LRUtii.mjs → sandbox-container-BuxhwCgt.mjs} +1 -2
- package/dist/{sandbox-container-ChQRum-j.d.mts → sandbox-container-CZFZdMso.d.mts} +0 -2
- package/dist/{scan-N9WzdcAl.mjs → scan-DSQtH3oS.mjs} +31 -25
- package/dist/{secret-BL6g7mF5.mjs → secret-C_QtTzJG.mjs} +23 -24
- package/dist/{serialize-YHvlcG3Q.mjs → serialize-DUuYuaY3.mjs} +2 -4
- package/dist/{serialize-DtR8Vwa_.d.mts → serialize-I4EmS-Wf.d.mts} +0 -2
- package/dist/{skills-CrUO3PJ0.mjs → skills-D393E4lB.mjs} +4 -5
- package/dist/{sqlite-validation-BzKMWnO4.mjs → sqlite-validation-CLJXXN93.mjs} +1 -2
- package/dist/{sse-CMvCgjNk.mjs → sse-CxR30yMF.mjs} +1 -2
- package/dist/{standard-schema-Fo_vCAZh.d.mts → standard-schema-CuDawHOC.d.mts} +0 -2
- package/dist/{static-asset-marker-Btf-6oCD.mjs → static-asset-marker-NR1XS2z5.mjs} +1 -2
- package/dist/{subcommand-prompt-D9OhhbGG.mjs → subcommand-prompt-CxJXporl.mjs} +3 -4
- package/dist/sveltekit.d.mts +0 -2
- package/dist/sveltekit.mjs +2 -3
- package/dist/{terminal-log-text-D9ACPOuG.mjs → terminal-log-text-DNsWJREL.mjs} +1 -2
- package/dist/{types-w72dljaA.d.mts → types-agfx0alu.d.mts} +0 -4
- package/dist/validate-DY1U9rET.mjs +1 -0
- package/dist/{validate-CnZPMq4q.mjs → validate-Ddzl-IwT.mjs} +4 -5
- package/dist/{validation-error-Dg9Recn1.mjs → validation-error-rDVbUJet.mjs} +2 -4
- package/dist/{validator-BTOu0fB0.mjs → validator-CTfmzZYb.mjs} +2 -5
- package/dist/{version-metadata-DmaZNTYW.mjs → version-metadata-Blf5H9BQ.mjs} +5 -6
- package/dist/{worker-conditions-AWFRcFxR.mjs → worker-conditions-CBZ0RYsZ.mjs} +1 -2
- package/dist/wrangler-CPRX2d9A.mjs +1 -0
- package/dist/{wrangler-CDiEBCdS.mjs → wrangler-p-kLCJqF.mjs} +81 -15
- package/dist/{wrapper-CEiDeCqD.mjs → wrapper-iejSJDwL.mjs} +18 -15
- package/dist/{ws-D1zWiB_P.d.mts → ws-DzBD-NUj.d.mts} +4 -5
- package/dist/{yarn-pnp-DLbEFMT0.mjs → yarn-pnp-DgWbE7z5.mjs} +2 -3
- package/docs/guide/auth.md +1 -1
- package/docs/guide/database.md +4 -4
- package/docs/guide/deployment.md +1 -1
- package/docs/guide/edge/headers.md +2 -6
- package/docs/guide/edge/redirects.md +22 -0
- package/docs/guide/edge/static-assets.md +0 -10
- package/docs/guide/email/domains.md +3 -1
- package/docs/guide/email/receiving.md +3 -3
- package/docs/guide/email/sending.md +1 -1
- package/docs/guide/pages-routing/actions-and-forms.md +26 -5
- package/docs/guide/pages-routing/islands.md +2 -2
- package/docs/guide/pages-routing/loaders.md +3 -3
- package/docs/guide/pages-routing/markdown.md +6 -6
- package/docs/guide/pages-routing/overview.md +34 -27
- package/docs/guide/platform/administration/email.md +6 -8
- package/docs/guide/platform/installation/credentials.md +6 -6
- package/docs/guide/platform/installation/maintenance.md +10 -24
- package/docs/guide/platform/installation/prerequisites.md +1 -1
- package/docs/guide/platform/installation/setup.md +1 -1
- package/docs/guide/platform/installation/uninstall.md +1 -1
- package/docs/guide/queues.md +4 -8
- package/docs/guide/self-hosted-platform.md +3 -3
- package/docs/guide/server-routing.md +8 -6
- package/docs/guide/ssg.md +8 -0
- package/docs/guide/type-safety.md +42 -0
- package/docs/guide/typed-fetch.md +1 -1
- package/docs/guide/websockets.md +1 -1
- package/docs/integrations/cloudflare.md +17 -8
- package/docs/integrations/frameworks/analog.md +1 -1
- package/docs/integrations/frameworks/nuxt.md +1 -1
- package/docs/integrations/frameworks/sveltekit.md +1 -1
- package/docs/integrations/frameworks/tanstack-start.md +1 -1
- package/docs/integrations/hono.md +5 -5
- package/docs/reference/api/auth.md +6 -2
- package/docs/reference/api/deploy.md +15 -11
- package/docs/reference/api/pages.md +10 -0
- package/docs/reference/api/plugin.md +4 -4
- package/docs/reference/api/resources.md +4 -1
- package/docs/reference/api/rewrites.md +20 -2
- package/docs/reference/api/types.md +41 -0
- package/docs/reference/api.md +2 -2
- package/docs/reference/cli/database.md +15 -9
- package/docs/reference/cli/deploy.md +10 -9
- package/docs/reference/cli/email.md +4 -2
- package/docs/reference/cli/platform-installation.md +2 -2
- package/docs/reference/cli/project.md +2 -2
- package/docs/reference/cli/secrets.md +3 -1
- package/docs/reference/cli/setup.md +3 -3
- package/docs/reference/cli.md +1 -1
- package/docs/reference/config.md +12 -2
- package/package.json +35 -31
- package/sandbox.Dockerfile +1 -1
- package/schema.json +4 -0
- package/skills/void/SKILL.md +1 -1
- package/dist/auth-DkcFflXV.d.mts +0 -42
- package/dist/cf-build-output-DlBkWdNU.mjs +0 -1
- package/dist/client-DyxPQnF_.mjs +0 -1
- package/dist/collect-BWhkgtAn.mjs +0 -1
- package/dist/config-BTu1o3Dc.mjs +0 -49
- package/dist/deploy-CtHE2A3R.mjs +0 -2
- package/dist/discover-D4TPKo57.mjs +0 -1
- package/dist/gen-TgXy93Rr.mjs +0 -1
- package/dist/help-qOZr3wng.mjs +0 -1
- package/dist/login-Cdo8Aco1.mjs +0 -1
- package/dist/migrate-COPncCGx.mjs +0 -1
- package/dist/operator-cmd-DDiX7Y3f.mjs +0 -1
- package/dist/output-BW9uK099.mjs +0 -1
- package/dist/plan-CKX_jWnD.mjs +0 -1
- package/dist/platform-args-BC8_hsDj.mjs +0 -1
- package/dist/prepare-B3VrSF1Z.mjs +0 -1
- package/dist/project-slug-6cyz8E7k.mjs +0 -1
- package/dist/resolve-project-DD1vu8s9.mjs +0 -1
- package/dist/route-url-BgPja1GS.d.mts +0 -5
- package/dist/route-url-BjGv_KKY.mjs +0 -28
- package/dist/validate-D7Wn8PUX.mjs +0 -1
- package/dist/wrangler-DOPr4jyI.mjs +0 -1
|
@@ -10,7 +10,25 @@ URL rewrites re-dispatch a request at a different internal path without changing
|
|
|
10
10
|
|
|
11
11
|
Re-dispatches the current request at `destination` and returns the resulting `Response`. The browser URL does not change — this is a server-side hop. If `destination` has no query string, the original request query is preserved. If `destination` includes a query string, it replaces the original query. `destination` must start with `/`; known generated routes autocomplete via [`RewriteDestination`](#rewritedestination), while arbitrary strings remain accepted for dynamic paths.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Pass a [`RouteDestination`](./types.md#route-types) object to check the route pattern and its parameters:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
return c.rewrite({
|
|
17
|
+
pathname: '/users/:id',
|
|
18
|
+
params: { id: 42 },
|
|
19
|
+
query: { tab: 'activity' },
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
For a typed redirect, build the URL with [`routeUrl()`](./types.md#routeurl-path-options):
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { routeUrl } from 'void/routes';
|
|
27
|
+
|
|
28
|
+
return c.redirect(routeUrl('/users/:id', { params: { id: 42 } }));
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`c.redirect()` merges request query parameters into internal destinations, with destination values taking precedence. Redirecting a [named action](../../guide/pages-routing/actions-and-forms.md#named-actions) to a GET page drops the action key: `POST /users/42?delete&tab=profile` redirects to `/users/42?tab=profile`. Redirects that preserve the request method keep the action key: `307` and `308`, or `301` and `302` after a `PUT`, `PATCH`, or `DELETE`.
|
|
14
32
|
|
|
15
33
|
```ts
|
|
16
34
|
import { defineHandler } from 'void';
|
|
@@ -25,7 +43,7 @@ export const GET = defineHandler((c) => {
|
|
|
25
43
|
|
|
26
44
|
```ts
|
|
27
45
|
interface CloudContext {
|
|
28
|
-
rewrite(destination: RewriteDestination): Promise<Response>;
|
|
46
|
+
rewrite(destination: RewriteDestination | RouteDestination): Promise<Response>;
|
|
29
47
|
}
|
|
30
48
|
```
|
|
31
49
|
|
|
@@ -91,3 +91,44 @@ Generated route types used by the typed `fetch` client. Contains each route’s
|
|
|
91
91
|
```ts
|
|
92
92
|
import type { RouteMap } from 'void/routes';
|
|
93
93
|
```
|
|
94
|
+
|
|
95
|
+
## `void/routes` {#void-routes}
|
|
96
|
+
|
|
97
|
+
### `routeUrl(path, options?)` {#routeurl-path-options}
|
|
98
|
+
|
|
99
|
+
Build a relative URL string from a known page, HTTP, or WebSocket route pattern:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
import { routeUrl } from 'void/routes';
|
|
103
|
+
|
|
104
|
+
routeUrl('/users/:id', {
|
|
105
|
+
params: { id: 42 },
|
|
106
|
+
query: { tab: 'activity' },
|
|
107
|
+
hash: 'details',
|
|
108
|
+
});
|
|
109
|
+
// /users/42?tab=activity#details
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
| Option | Type | Description |
|
|
113
|
+
| -------- | -------------- | ---------------------------------------------------------------------------------- |
|
|
114
|
+
| `params` | Route-specific | Required for dynamic routes. Each parameter accepts a `string` or `number`. |
|
|
115
|
+
| `query` | `RouteQuery` | Query parameters. Arrays become repeated keys; `null` and `undefined` are omitted. |
|
|
116
|
+
| `hash` | `string` | URL fragment, such as `'details'` or `'#details'`. |
|
|
117
|
+
|
|
118
|
+
Static routes accept optional `query` and `hash` options. Pass raw parameter values for URL encoding. Catch-all parameters preserve `/` separators between segments. Invalid or missing path parameters throw a `TypeError`.
|
|
119
|
+
|
|
120
|
+
Use the returned string with `Link`, `<a>`, and `c.redirect()`. See [Typed URLs and Navigation](../../guide/type-safety.md#typed-urls-and-navigation) for setup and examples.
|
|
121
|
+
|
|
122
|
+
### Route types {#route-types}
|
|
123
|
+
|
|
124
|
+
Import these types from `void/routes`:
|
|
125
|
+
|
|
126
|
+
| Type | Description |
|
|
127
|
+
| --------------------- | ----------------------------------------------------------------------------------------------- |
|
|
128
|
+
| `RoutePathMap` | Generated map of page, HTTP, and WebSocket route patterns to their parameter names. |
|
|
129
|
+
| `RoutePath` | Union of the known route patterns in `RoutePathMap`. |
|
|
130
|
+
| `RouteOptions<P>` | Options for a route pattern `P`, including its required `params`, optional `query`, and `hash`. |
|
|
131
|
+
| `RouteDestination<P>` | `{ pathname: P }` with `RouteOptions<P>`. Defaults to all known routes when `P` is omitted. |
|
|
132
|
+
| `RouteUrlInput` | `string`, `URL`, or `RouteDestination`; accepted by router navigation methods. |
|
|
133
|
+
| `RouteQuery` | Query keys mapped to `RouteQueryValue` or readonly arrays of those values. |
|
|
134
|
+
| `RouteQueryValue` | `string`, `number`, `boolean`, `null`, or `undefined`. |
|
package/docs/reference/api.md
CHANGED
|
@@ -26,7 +26,7 @@ Use this reference to find public imports, signatures, and return types. For set
|
|
|
26
26
|
| [Database and seeding](./api/database.md) | Queries, operators, and seed scripts. |
|
|
27
27
|
| [KV, storage, AI, and logging](./api/resources.md) | Resource clients, cache revalidation, and logs. |
|
|
28
28
|
| [Deployment artifacts](./api/deploy.md) | Package built apps for managed deployment. |
|
|
29
|
-
| [Types](./api/types.md) |
|
|
29
|
+
| [Types](./api/types.md) | Typed URLs, route types, handler context, and head metadata. |
|
|
30
30
|
| [Environment variables](./api/env.md) | Validated environment values and binding types. |
|
|
31
31
|
| [Pages adapters](./api/pages.md) | React, Vue, Svelte, Solid, and Markdown. |
|
|
32
32
|
|
|
@@ -64,7 +64,7 @@ Import Void's app-facing APIs from these paths:
|
|
|
64
64
|
| `void/limits` | `UsageLimit`, `UsageLimitData`, and `readUsageLimit`. AI and Sandbox limits reject with `UsageLimit`; uncaught limits in Void routes and Pages actions return structured HTTP 429 responses. |
|
|
65
65
|
| `void/isr` | `revalidate(options)` for on-demand ISR cache invalidation |
|
|
66
66
|
| `void/log` | `logger` structured logging helper |
|
|
67
|
-
| `void/routes` | `
|
|
67
|
+
| `void/routes` | [`routeUrl()`](./api/types.md#routeurl-path-options), `RouteDestination`, `RoutePath`, `RouteOptions`, `RouteUrlInput`, and generated route maps |
|
|
68
68
|
| `void/queues` | `queues` proxy for sending messages to typed queues |
|
|
69
69
|
| `void/email` | `sendEmail`, `createEmail`, `defineEmail`, `parseEmail`, `replyEmail`, `MimeError`, `ParseEmailError`, and address, attachment, result, and handler types. See [Email](../guide/email.md). |
|
|
70
70
|
| `void/email/testing` | `createEmailTestHarness` and `createInboundTestHarness` to capture sends and deliver test messages to `email/` handlers. |
|
|
@@ -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
|
|
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
|
-
|
|
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**:
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -86,15 +86,16 @@ void deploy --platform cloudflare --require-email # fail instead of deploying
|
|
|
86
86
|
|
|
87
87
|
Void signs you in through your browser when needed and saves the selected account. In CI, set `CLOUDFLARE_API_TOKEN` and, if the token can access several accounts, `CLOUDFLARE_ACCOUNT_ID`.
|
|
88
88
|
|
|
89
|
-
| Option or setting | Cloudflare behavior
|
|
90
|
-
| ------------------------------ |
|
|
91
|
-
| `--dir`, `--spa` | Deploy static output through a small Worker and Workers Assets
|
|
92
|
-
| `--skip-build` | Reuse existing static, SPA, or SSG output; unavailable for Worker apps
|
|
93
|
-
| `--project` | Unavailable; the Worker and account come from `void.config.ts` and `void.lock.json`
|
|
94
|
-
| Named environments | Unavailable; use the top-level `cloudflare` config
|
|
95
|
-
| `CLOUDFLARE_WORKERS_SUBDOMAIN` | Needed in fresh CI when versions have no preview URL; cached locally after a deploy
|
|
96
|
-
|
|
|
97
|
-
| `
|
|
89
|
+
| Option or setting | Cloudflare behavior |
|
|
90
|
+
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
|
|
91
|
+
| `--dir`, `--spa` | Deploy static output through a small Worker and Workers Assets |
|
|
92
|
+
| `--skip-build` | Reuse existing static, SPA, or SSG output; unavailable for Worker apps |
|
|
93
|
+
| `--project` | Unavailable; the Worker and account come from `void.config.ts` and `void.lock.json` |
|
|
94
|
+
| Named environments | Unavailable; use the top-level `cloudflare` config |
|
|
95
|
+
| `CLOUDFLARE_WORKERS_SUBDOMAIN` | Needed in fresh CI when versions have no preview URL; cached locally after a deploy |
|
|
96
|
+
| `CF_ACCESS_READINESS_ORIGIN` | Lets Access credentials reach the readiness check on a route or Custom Domain, for example `https://app.example.com` |
|
|
97
|
+
| `--require-email` | Fail instead of deploying without email when the email step cannot run, as in CI |
|
|
98
|
+
| `DATABASE_URL` | Required in the deploy environment for PostgreSQL or MySQL provisioning and migrations |
|
|
98
99
|
|
|
99
100
|
The token needs Workers Scripts: Edit, read access to bound resources, and edit access to products Void provisions. Commit `void.lock.json` after the first deploy before using other machines or CI.
|
|
100
101
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -41,7 +41,7 @@ The installed platform needs a separate runtime token to provision resources for
|
|
|
41
41
|
|
|
42
42
|
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
43
|
|
|
44
|
-
Use `--dashboard-url
|
|
44
|
+
Use `--dashboard-url https://dash.example.com` when deploying the optional user
|
|
45
45
|
dashboard separately. The URL must be an HTTPS origin without credentials, a
|
|
46
46
|
path, query, or fragment. Void permits that origin's login callbacks and saves
|
|
47
47
|
it for later maintenance; it does not deploy a dashboard Worker. Omission keeps
|
|
@@ -138,7 +138,7 @@ After discovery on another machine, set `VOID_PLATFORM_DATABASE_URL`. See [Manag
|
|
|
138
138
|
|
|
139
139
|
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
140
|
|
|
141
|
-
|
|
141
|
+
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
142
|
|
|
143
143
|
`--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
144
|
|
|
@@ -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
|
-
|
|
182
|
+
Pass `--platform cloudflare` to roll back a one-off Cloudflare deployment.
|
|
183
183
|
|
|
184
|
-
|
|
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`
|
|
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
|
|
|
@@ -34,7 +34,7 @@ void init [--tsconfig] [--github] [--git | --no-git]
|
|
|
34
34
|
|
|
35
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.
|
|
36
36
|
|
|
37
|
-
|
|
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
|
-
|
|
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
|
|
package/docs/reference/cli.md
CHANGED
|
@@ -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` |
|
|
79
|
+
| `void migrate` | Update project configuration |
|
|
80
80
|
|
|
81
81
|
## Binary Invocation {#binary-invocation}
|
|
82
82
|
|
package/docs/reference/config.md
CHANGED
|
@@ -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`
|
|
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
|
-
|
|
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
|
| --------------------- | ---------- | -------------------------------------- |
|
|
@@ -366,6 +366,16 @@ This choice applies to subsequent `void deploy` runs. Atomic deployment sends tr
|
|
|
366
366
|
|
|
367
367
|
Routing and edge configuration for headers, redirects, rewrites, and caching.
|
|
368
368
|
|
|
369
|
+
#### `routing.alwaysUseHttps`
|
|
370
|
+
|
|
371
|
+
Redirect HTTP requests to HTTPS with a permanent `308` redirect. Omitted or `false` means off. Requires the Cloudflare target. `localhost` stays on HTTP. See [HTTP to HTTPS](../guide/edge/redirects#http-to-https) for where it works.
|
|
372
|
+
|
|
373
|
+
```ts
|
|
374
|
+
routing: {
|
|
375
|
+
alwaysUseHttps: true,
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
|
|
369
379
|
#### `routing.headers`
|
|
370
380
|
|
|
371
381
|
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.
|
|
3
|
+
"version": "1.5.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,55 +343,57 @@
|
|
|
341
343
|
}
|
|
342
344
|
},
|
|
343
345
|
"dependencies": {
|
|
344
|
-
"@cloudflare/build-output-utils": "^0.9.
|
|
345
|
-
"@cloudflare/codemods": "^0.
|
|
346
|
-
"@cloudflare/config": "^0.
|
|
347
|
-
"@cloudflare/sandbox": "^1.0.
|
|
348
|
-
"@cloudflare/vite-plugin": "^
|
|
349
|
-
"@cloudflare/workers-auth": "^0.
|
|
350
|
-
"@cloudflare/workers-types": "^5.
|
|
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",
|
|
351
354
|
"@napi-rs/keyring": "^2.1.2",
|
|
352
|
-
"@void/deploy-cloudflare": "1.
|
|
353
|
-
"@void/deploy-core": "1.
|
|
354
|
-
"@void/edge": "1.
|
|
355
|
-
"@void/isr": "1.
|
|
356
|
-
"@void/platform": "1.
|
|
357
|
-
"better-auth": "^1.7.
|
|
355
|
+
"@void/deploy-cloudflare": "1.5.0",
|
|
356
|
+
"@void/deploy-core": "1.5.0",
|
|
357
|
+
"@void/edge": "1.5.0",
|
|
358
|
+
"@void/isr": "1.5.0",
|
|
359
|
+
"@void/platform": "1.5.0",
|
|
360
|
+
"better-auth": "^1.7.14",
|
|
358
361
|
"better-sqlite3": "^13.0.3",
|
|
359
362
|
"blake3-jit": "^1.1.0",
|
|
360
|
-
"cf": "
|
|
363
|
+
"cf": "^1.0.0-beta.26",
|
|
361
364
|
"drizzle-arktype": "^0.1.3",
|
|
362
365
|
"drizzle-kit": "^0.31.11",
|
|
363
366
|
"drizzle-orm": "^0.45.4",
|
|
364
367
|
"drizzle-valibot": "^0.4.2",
|
|
365
368
|
"drizzle-zod": "^0.8.3",
|
|
366
369
|
"email-validator": "^2.0.4",
|
|
367
|
-
"hono": "^4.13.
|
|
368
|
-
"ignore": "^7.0.
|
|
370
|
+
"hono": "^4.13.16",
|
|
371
|
+
"ignore": "^7.0.14",
|
|
369
372
|
"jiti": "^2.7.0",
|
|
370
373
|
"jsonc-parser": "^3.3.1",
|
|
371
|
-
"mime": "^4.1.
|
|
372
|
-
"miniflare": "^5.
|
|
373
|
-
"minimatch": "^
|
|
374
|
+
"mime": "^4.1.2",
|
|
375
|
+
"miniflare": "^5.20261101.0-beta",
|
|
376
|
+
"minimatch": "^11.0.3",
|
|
374
377
|
"mysql2": "^3.24.6",
|
|
375
378
|
"pg": "^8.23.1",
|
|
376
|
-
"postal-mime": "^4.0
|
|
379
|
+
"postal-mime": "^4.2.0",
|
|
377
380
|
"proper-lockfile": "^4.1.2",
|
|
381
|
+
"smol-toml": "^1.9.1",
|
|
378
382
|
"terminal-link": "^5.0.0",
|
|
379
383
|
"yaml": "^2.9.1"
|
|
380
384
|
},
|
|
381
385
|
"devDependencies": {
|
|
382
|
-
"@electric-sql/pglite": "0.5.
|
|
386
|
+
"@electric-sql/pglite": "0.5.14",
|
|
383
387
|
"@types/better-sqlite3": "^9.6.0",
|
|
384
|
-
"@types/node": "^26.6.
|
|
388
|
+
"@types/node": "^26.6.6",
|
|
385
389
|
"@types/pg": "^8.23.1",
|
|
386
390
|
"@types/proper-lockfile": "^4.1.4",
|
|
387
|
-
"@voidzero-dev/vite-plus-prompts": "1.
|
|
388
|
-
"arktype": "^2.2.
|
|
391
|
+
"@voidzero-dev/vite-plus-prompts": "1.4.0",
|
|
392
|
+
"arktype": "^2.2.9",
|
|
389
393
|
"ci-info": "^4.4.0",
|
|
390
394
|
"estree-walker": "^3.0.3",
|
|
391
395
|
"fast-wrap-ansi": "^0.2.2",
|
|
392
|
-
"magic-string": "^1.4.
|
|
396
|
+
"magic-string": "^1.4.5",
|
|
393
397
|
"ofetch": "2.0.0-alpha.3",
|
|
394
398
|
"pathslash": "^0.1.0",
|
|
395
399
|
"pglite-server": "0.1.5",
|
|
@@ -397,12 +401,12 @@
|
|
|
397
401
|
"tinyglobby": "^0.2.17",
|
|
398
402
|
"typescript": "7.0.2",
|
|
399
403
|
"valibot": "^1.5.0",
|
|
400
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@1.
|
|
401
|
-
"vite-plus": "1.
|
|
404
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@1.4.0",
|
|
405
|
+
"vite-plus": "1.4.0",
|
|
402
406
|
"zod": "^4.6.7"
|
|
403
407
|
},
|
|
404
408
|
"peerDependencies": {
|
|
405
|
-
"@void/md": "1.
|
|
409
|
+
"@void/md": "1.5.0",
|
|
406
410
|
"arktype": ">=2.0.0",
|
|
407
411
|
"valibot": ">=1.0.0-beta.7",
|
|
408
412
|
"vite": "^8.0.0",
|
|
@@ -423,7 +427,7 @@
|
|
|
423
427
|
}
|
|
424
428
|
},
|
|
425
429
|
"engines": {
|
|
426
|
-
"node": "
|
|
430
|
+
"node": "^24.22.0 || >=26.12.0"
|
|
427
431
|
},
|
|
428
432
|
"scripts": {
|
|
429
433
|
"build": "node scripts/sync-docs.mjs && vp pack",
|
package/sandbox.Dockerfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
FROM node:26.12.1-trixie-slim
|
|
2
|
-
COPY --from=docker.io/cloudflare/sandbox:1.0.
|
|
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
|
@@ -144,6 +144,10 @@
|
|
|
144
144
|
"type": "object",
|
|
145
145
|
"description": "Routing configuration — headers, redirects, rewrites, fallbacks, revalidation, prerendering.",
|
|
146
146
|
"properties": {
|
|
147
|
+
"alwaysUseHttps": {
|
|
148
|
+
"type": "boolean",
|
|
149
|
+
"description": "Redirect HTTP requests to HTTPS with a permanent 308 redirect. Omitted or false means off. Requires the Cloudflare target; localhost stays on HTTP."
|
|
150
|
+
},
|
|
147
151
|
"isr": {
|
|
148
152
|
"type": "boolean",
|
|
149
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."
|
package/skills/void/SKILL.md
CHANGED
|
@@ -49,7 +49,7 @@ the app's existing saved destination, including when the target project is new.
|
|
|
49
49
|
| Email | `docs/guide/email.md`, then the matching guide under `docs/guide/email/` |
|
|
50
50
|
| KV / storage / queues / cron jobs | `docs/guide/kv.md`, `docs/guide/storage.md`, `docs/guide/queues.md`, `docs/guide/jobs.md` |
|
|
51
51
|
| SSR and caching | `docs/guide/ssr.md`, `docs/guide/edge/*.md` |
|
|
52
|
-
|
|
|
52
|
+
| HTTPS, rewrites, redirects, fallbacks | `docs/guide/edge/rewrites.md`, `docs/guide/edge/redirects.md`, `docs/reference/config.md` |
|
|
53
53
|
| Static site generation | `docs/guide/ssg.md` |
|
|
54
54
|
| Connected apps and artifact preparation | `docs/guide/platform/administration/connected-apps.md`, `docs/reference/api/deploy.md` |
|
|
55
55
|
| Deployment and CI | `docs/guide/deployment.md`, `docs/reference/cli/deploy.md` |
|
package/dist/auth-DkcFflXV.d.mts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
import { BetterAuthOptions, Session, User } from "better-auth";
|
|
3
|
-
import { Context, Env } from "hono";
|
|
4
|
-
//#region src/runtime/auth.d.ts
|
|
5
|
-
type AuthUser = User;
|
|
6
|
-
type AuthSession = Session;
|
|
7
|
-
type AuthState = {
|
|
8
|
-
session: AuthSession;
|
|
9
|
-
user: AuthUser;
|
|
10
|
-
};
|
|
11
|
-
type VoidAuthConfigContext = {
|
|
12
|
-
defaults: BetterAuthOptions;
|
|
13
|
-
env: Record<string, unknown>;
|
|
14
|
-
dialect: "sqlite" | "postgresql" | "mysql";
|
|
15
|
-
request: Request;
|
|
16
|
-
};
|
|
17
|
-
type VoidAuthConfig = BetterAuthOptions | ((ctx: VoidAuthConfigContext) => BetterAuthOptions);
|
|
18
|
-
/**
|
|
19
|
-
* Shared AsyncLocalStorage that holds the authenticated Better Auth state for the
|
|
20
|
-
* current request.
|
|
21
|
-
*
|
|
22
|
-
* Stored on `globalThis` under a `Symbol.for` key so duplicate module loads
|
|
23
|
-
* (e.g. once by void's bundled runtime and once by Vite's SSR module runner
|
|
24
|
-
* when user code imports from `void/auth`) share a single ALS instance. Without
|
|
25
|
-
* this, the middleware writes to one instance and `getUser()` reads another,
|
|
26
|
-
* always returning null.
|
|
27
|
-
*/
|
|
28
|
-
type AuthContextStore = {
|
|
29
|
-
user: AuthUser | null;
|
|
30
|
-
state: AuthState | null;
|
|
31
|
-
};
|
|
32
|
-
declare const authContext: AsyncLocalStorage<AuthContextStore>;
|
|
33
|
-
declare function defineAuth<T extends VoidAuthConfig>(config: T): T;
|
|
34
|
-
declare function getUser(): AuthUser | null;
|
|
35
|
-
declare function getSession(): AuthState | null;
|
|
36
|
-
declare function requireAuth<E extends Env & {
|
|
37
|
-
Variables: {
|
|
38
|
-
user: AuthUser | null;
|
|
39
|
-
};
|
|
40
|
-
}>(c: Context<E>): AuthUser;
|
|
41
|
-
//#endregion
|
|
42
|
-
export { VoidAuthConfigContext as a, getSession as c, VoidAuthConfig as i, getUser as l, AuthState as n, authContext as o, AuthUser as r, defineAuth as s, AuthSession as t, requireAuth as u };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { t as prepareCfBuildOutput } from "./cf-build-output-Bapzc_8Z.mjs";
|
package/dist/client-DyxPQnF_.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { r as PlatformClient } from "./client-BEMtySaV.mjs";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { t as collectMigrations } from "./collect-Dew86qce.mjs";
|
package/dist/config-BTu1o3Dc.mjs
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
|
|
2
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
-
import { pathToFileURL } from "node:url";
|
|
4
|
-
import { isRunnableDevEnvironment, parseSync } from "vite";
|
|
5
|
-
//#region src/auth/config.ts
|
|
6
|
-
function isVoidAuthConfigSource(code, filename) {
|
|
7
|
-
if (!code.includes("void/auth")) return false;
|
|
8
|
-
let program;
|
|
9
|
-
try {
|
|
10
|
-
program = parseSync(filename, code).program;
|
|
11
|
-
} catch {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
return (program.body ?? []).some((node) => {
|
|
15
|
-
if (node.type !== "ImportDeclaration" && node.type !== "ExportNamedDeclaration" && node.type !== "ExportAllDeclaration") return false;
|
|
16
|
-
return node.source?.value === "void/auth";
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
function findVoidAuthConfig(root, paths = readProjectPaths(root)) {
|
|
20
|
-
for (const absPath of paths.authConfigCandidates) {
|
|
21
|
-
if (!existsSync(absPath)) continue;
|
|
22
|
-
if (isVoidAuthConfigSource(readFileSync(absPath, "utf-8"), absPath)) return absPath;
|
|
23
|
-
}
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* The dev server evaluates the auth config in this Node environment. A native
|
|
28
|
-
* `import()` would keep the first evaluation for the life of the process; the
|
|
29
|
-
* module runner reads the config again once its files are invalidated, and the
|
|
30
|
-
* module graph lists the local files the config imports.
|
|
31
|
-
*/
|
|
32
|
-
const AUTH_CONFIG_ENVIRONMENT = "void_auth_config";
|
|
33
|
-
/** The dev server's importer for the auth config, when it has the environment. */
|
|
34
|
-
function devAuthConfigImporter(server) {
|
|
35
|
-
const environment = server.environments[AUTH_CONFIG_ENVIRONMENT];
|
|
36
|
-
return environment && isRunnableDevEnvironment(environment) ? (path) => environment.runner.import(path) : void 0;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Evaluate the auth config. A native `import()` keeps its first evaluation for
|
|
40
|
-
* the life of the process, which suits one-off commands; the dev server passes
|
|
41
|
-
* its module runner.
|
|
42
|
-
*/
|
|
43
|
-
async function loadVoidAuthConfig(configPath, importModule = (path) => import(pathToFileURL(path).href)) {
|
|
44
|
-
if (!configPath) return;
|
|
45
|
-
const mod = await importModule(configPath);
|
|
46
|
-
return mod.default ?? mod.auth ?? mod.config;
|
|
47
|
-
}
|
|
48
|
-
//#endregion
|
|
49
|
-
export { loadVoidAuthConfig as i, devAuthConfigImporter as n, findVoidAuthConfig as r, AUTH_CONFIG_ENVIRONMENT as t };
|
package/dist/deploy-CtHE2A3R.mjs
DELETED