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
package/dist/index.mjs
CHANGED
|
@@ -1,55 +1,61 @@
|
|
|
1
|
-
import { n as __toESM } from "./rolldown-runtime-
|
|
2
|
-
import { a as join, c as resolve, i as isAbsolute, n as dirname, o as normalize, s as relative } from "./dist-
|
|
3
|
-
import { t as require_picocolors } from "./picocolors-
|
|
4
|
-
import { l as inferBindingsFromSource, m as applyBindingOverrides, n as FRAMEWORK_SCAN_DIRS, t as DEFAULT_SCAN_DIRS, u as staticModuleReferences } from "./plugin-inference-
|
|
5
|
-
import { n as readProjectPaths, t as assertNoRootSourceConventionConflicts } from "./project-paths-
|
|
6
|
-
import { i as loadVoidAuthConfig, n as devAuthConfigImporter, t as AUTH_CONFIG_ENVIRONMENT } from "./config-
|
|
7
|
-
import { c as getDatabaseCasing, l as getDatabaseDialect, p as readConfig, u as isNodeTarget } from "./config-
|
|
8
|
-
import { f as invalidateSourceAnalysis, o as resolveLayoutIds, p as isRouteEnabledForEnvironment } from "./scan-
|
|
9
|
-
import { i as isMemberExpression, n as isIdentifier, r as isLiteral } from "./ast-
|
|
10
|
-
import { n as bindingResolver } from "./ast-bindings-
|
|
11
|
-
import { a as hasSandboxSqliteMigration, c as sandboxContainerConfig, i as assertSandboxNamespaceConfig, n as DEFAULT_SANDBOX_CLASS_NAME, p as scanJobsSync, r as SANDBOX_MIGRATION_TAG, s as resolveSandboxConfig, t as analyzeApplicationSync, u as scanQueuesSync } from "./application-analysis-
|
|
12
|
-
import { i as voidWarn, n as voidError, r as voidLog, t as setShowTimestamp } from "./log-
|
|
13
|
-
import { t as MagicString } from "./dist-
|
|
14
|
-
import { a as validateSsrEntries, n as SSR_SERVER_ENTRY_RELATIVE_PATHS, o as validateSsrEntry, t as SSR_CLIENT_ENTRY_RELATIVE_PATHS } from "./entry-
|
|
15
|
-
import { r as hasEmailHandlers } from "./email-
|
|
16
|
-
import { a as resolveDistDir, c as hasDocumentRoutes, n as collectRevalidate, o as resolveWorkerDirName, r as hasRevalidate, s as hasApiRoutes, t as collectPages, u as resolveAssetRoutingPolicy } from "./isr-config-
|
|
17
|
-
import { n as mergeRoutingRules, t as lintRoutingPhases } from "./headers-
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import { n as
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import { a as
|
|
27
|
-
import {
|
|
28
|
-
import { n as scanWranglerDotenvKeys } from "./dotenv-
|
|
29
|
-
import { a as findReservedEnvKeys, c as reservedEnvKeysMessage, i as findLegacyEnvFiles, l as resolveRemoteMode, o as isClientEnvKey, r as LOCAL_ENV_FILE, s as loadLocalEnv } from "./env-
|
|
30
|
-
import {
|
|
31
|
-
import { t as
|
|
32
|
-
import { n as
|
|
33
|
-
import { t as
|
|
34
|
-
import { t as
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import { n as
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
1
|
+
import { n as __toESM } from "./rolldown-runtime-uD8oG6U2.mjs";
|
|
2
|
+
import { a as join, c as resolve, i as isAbsolute, n as dirname, o as normalize, s as relative, t as basename } from "./dist-DMYe8CZJ.mjs";
|
|
3
|
+
import { t as require_picocolors } from "./picocolors-D1NxSLw-.mjs";
|
|
4
|
+
import { l as inferBindingsFromSource, m as applyBindingOverrides, n as FRAMEWORK_SCAN_DIRS, t as DEFAULT_SCAN_DIRS, u as staticModuleReferences } from "./plugin-inference-DmwjC3y2.mjs";
|
|
5
|
+
import { n as readProjectPaths, t as assertNoRootSourceConventionConflicts } from "./project-paths-CdGv9Tmi.mjs";
|
|
6
|
+
import { i as loadVoidAuthConfig, n as devAuthConfigImporter, o as viteAuthConfigImporter, t as AUTH_CONFIG_ENVIRONMENT } from "./config-WlvEcL82.mjs";
|
|
7
|
+
import { c as getDatabaseCasing, l as getDatabaseDialect, p as readConfig, u as isNodeTarget } from "./config-DkA9jYF2.mjs";
|
|
8
|
+
import { f as invalidateSourceAnalysis, o as resolveLayoutIds, p as isRouteEnabledForEnvironment } from "./scan-DSQtH3oS.mjs";
|
|
9
|
+
import { i as isMemberExpression, n as isIdentifier, r as isLiteral } from "./ast-Cv0JwXqb.mjs";
|
|
10
|
+
import { n as bindingResolver } from "./ast-bindings-BkivMJIo.mjs";
|
|
11
|
+
import { a as hasSandboxSqliteMigration, c as sandboxContainerConfig, i as assertSandboxNamespaceConfig, n as DEFAULT_SANDBOX_CLASS_NAME, p as scanJobsSync, r as SANDBOX_MIGRATION_TAG, s as resolveSandboxConfig, t as analyzeApplicationSync, u as scanQueuesSync } from "./application-analysis-2vGZrKzg.mjs";
|
|
12
|
+
import { i as voidWarn, n as voidError, r as voidLog, t as setShowTimestamp } from "./log-D9hwSySP.mjs";
|
|
13
|
+
import { t as MagicString } from "./dist-B6eN80gc.mjs";
|
|
14
|
+
import { a as validateSsrEntries, n as SSR_SERVER_ENTRY_RELATIVE_PATHS, o as validateSsrEntry, t as SSR_CLIENT_ENTRY_RELATIVE_PATHS } from "./entry-CBZsCy3O.mjs";
|
|
15
|
+
import { r as hasEmailHandlers } from "./email-BHY72ixO.mjs";
|
|
16
|
+
import { a as resolveDistDir, c as hasDocumentRoutes, n as collectRevalidate, o as resolveWorkerDirName, r as hasRevalidate, s as hasApiRoutes, t as collectPages, u as resolveAssetRoutingPolicy } from "./isr-config-DhBkzCdY.mjs";
|
|
17
|
+
import { n as mergeRoutingRules, t as lintRoutingPhases } from "./headers-DEUBAM6W.mjs";
|
|
18
|
+
import { t as writeFileAtomic } from "./atomic-write-DA6eD1Kp.mjs";
|
|
19
|
+
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-CLwxcEdq.mjs";
|
|
20
|
+
import { n as readGeneratedWranglerConfigFile } from "./generated-wrangler-config-CoDaaFsA.mjs";
|
|
21
|
+
import { c as stashCloudflareDeployPointer, i as materializeCloudflareConfig, l as ensureGitignoreLines, o as restoreCloudflarePreviewPointer } from "./cloudflare-config-Chet188_.mjs";
|
|
22
|
+
import { A as syncWranglerWebSockets, E as resolveLiveBindingConfig, O as syncWranglerBindings, T as readWranglerWebSocketTombstones, a as LIVE_MIGRATION_TAG, b as readRootWranglerConfig, d as ensureWranglerCompatibilityDate, f as ensureWranglerNodejsAlsFlag, g as normalizeWranglerCompatibilityFlags, h as nextDurableObjectMigrationTag, k as syncWranglerDurableObjects, m as hasDurableObjectSqliteMigration, p as findBindingNameOwner, u as ensureWranglerCompat, v as readExistingLiveBindingConfig, x as readWranglerCompat } from "./wrangler-p-kLCJqF.mjs";
|
|
23
|
+
import { n as writeLocalD1PersistState, t as resolveLocalD1Target } from "./local-d1-CKfek6Z4.mjs";
|
|
24
|
+
import { n as scopedAccessCredentials } from "./cf-access-pejlJmuy.mjs";
|
|
25
|
+
import { n as ensurePlatformProxyAccess } from "./cf-access-BmBT2h8_.mjs";
|
|
26
|
+
import { a as getApiUrl, c as getToken, o as getProxyUrl } from "./auth-Dy8svcqQ.mjs";
|
|
27
|
+
import { t as migrateBuiltWranglerConfig } from "./cf-config-migrate-Dy8MrKgF.mjs";
|
|
28
|
+
import { n as scanWranglerDotenvKeys } from "./dotenv-CEI8hapP.mjs";
|
|
29
|
+
import { a as findReservedEnvKeys, c as reservedEnvKeysMessage, i as findLegacyEnvFiles, l as resolveRemoteMode, o as isClientEnvKey, r as LOCAL_ENV_FILE, s as loadLocalEnv } from "./env-CuzZZyjB.mjs";
|
|
30
|
+
import { i as writeFileIfChanged, r as syncAuthTypesInProjectTsconfig } from "./project-tsconfig-Cf2NFjlM.mjs";
|
|
31
|
+
import { a as readDeployBuildQueueNames, r as cloudflareQueueName, s as drizzlePlugin, t as generateQueueResolverSource } from "./dispatch-CiJ1Xrba.mjs";
|
|
32
|
+
import { _ as parseCapturedMessage, a as DEV_INBOX_ENV_VAR, c as DEV_INBOX_TOKEN_ENV_VAR, f as clearDevBuffer, g as listDevMessages, l as DEV_INBOX_TOKEN_HEADER, m as findDevMessage, n as DEV_INBOX_ACK_VALUE, o as DEV_INBOX_MAX_CAPTURE_BYTES, s as DEV_INBOX_PREFIX, t as DEV_INBOX_ACK_HEADER, u as DEV_INBOX_TOKEN_QUERY, v as pushToDevBuffer } from "./dev-inbox-CwH5VuZj.mjs";
|
|
33
|
+
import { n as findEnvFileForPaths, r as generateEnvTypes, t as findEnvFile } from "./env-types-DqzVBKnS.mjs";
|
|
34
|
+
import { t as loadUserEnvFile } from "./load-user-env-CSwdofj0.mjs";
|
|
35
|
+
import { n as INTERNAL_BINDING_PREFIXES, t as INTERNAL_BINDING_EXACT_NAMES } from "./env-raw-e8qgqAzQ.mjs";
|
|
36
|
+
import { t as ASSET_EXTENSIONS } from "./routing-assets-DJIVOrCh.mjs";
|
|
37
|
+
import { t as assertNoPrerenderFailures } from "./prerender-render-RlAj6hh8.mjs";
|
|
38
|
+
import { r as selectNativeVersionMetadataBinding, t as CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV } from "./version-metadata-Blf5H9BQ.mjs";
|
|
39
|
+
import { d as isGeneratedAssetHeaders, f as resolveAssetWorkerBypass, g as prerenderPagesNode, h as prerenderPages, n as SEND_EMAIL_BINDING, u as isAssetBypassRule } from "./email-cloudflare-CtD8qE13.mjs";
|
|
40
|
+
import { r as defer } from "./validation-error-rDVbUJet.mjs";
|
|
41
|
+
import { i as safeJsonStringify } from "./protocol-0-lp9ZYx.mjs";
|
|
42
|
+
import { n as completeApplicationAnalysis } from "./application-routing-DnUQoOJD.mjs";
|
|
43
|
+
import { a as syncAuthTypesFile, i as removeAuthTypesIfPresent, n as generateQueueTypes, t as generateRouteTypes } from "./route-types-irZc1txT.mjs";
|
|
44
|
+
import { a as defineMiddleware, c as defineScheduled, i as defineHead, n as basicAuth, o as defineQueue, r as defineHandler, s as defineRender, t as VoidAssetRewriteError } from "./handler-xmzz0U38.mjs";
|
|
42
45
|
import module, { builtinModules, createRequire } from "node:module";
|
|
43
|
-
import { chmodSync, closeSync, existsSync, mkdirSync, openSync, readFileSync, realpathSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
|
|
44
|
-
import { cloudflare } from "@cloudflare/vite-plugin";
|
|
45
|
-
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
46
|
+
import { chmodSync, closeSync, cpSync, existsSync, mkdirSync, mkdtempSync, openSync, readFileSync, realpathSync, rmSync, statSync, writeFileSync, writeSync } from "node:fs";
|
|
46
47
|
import { createRunnableDevEnvironment, defaultServerConditions, isRunnableDevEnvironment, loadEnv, normalizePath, parseSync, resolveEnvPrefix } from "vite";
|
|
48
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
47
49
|
import { appendSqliteClassMigration } from "@void/deploy-core";
|
|
48
50
|
import { randomBytes, timingSafeEqual } from "node:crypto";
|
|
49
51
|
import { homedir } from "node:os";
|
|
50
52
|
import { isDeepStrictEqual, parseEnv } from "node:util";
|
|
53
|
+
import { getRootConfigPath, getWorkerAssetsDir, getWorkerConfigPath, readBuildOutput } from "@cloudflare/build-output-utils";
|
|
54
|
+
import { convertToWranglerConfig } from "@cloudflare/config";
|
|
55
|
+
import { cloudflare } from "@cloudflare/vite-plugin";
|
|
56
|
+
import { parse } from "smol-toml";
|
|
51
57
|
import { compilePattern, matchPattern } from "@void/edge";
|
|
52
|
-
|
|
58
|
+
// src/pages/dev-css-assets.ts
|
|
53
59
|
var import_picocolors = /* @__PURE__ */ __toESM(require_picocolors(), 1);
|
|
54
60
|
const DEV_CSS_ASSET_MODULE_ID = "virtual:void-pages-dev-assets";
|
|
55
61
|
const DEV_CSS_ASSET_ENDPOINT = "/__void/dev/pages-css";
|
|
@@ -432,8 +438,7 @@ export async function getVoidPagesDevCss(request, env, payload) {
|
|
|
432
438
|
}
|
|
433
439
|
}];
|
|
434
440
|
}
|
|
435
|
-
|
|
436
|
-
//#region src/plugin-ai-setup.ts
|
|
441
|
+
// src/plugin-ai-setup.ts
|
|
437
442
|
/**
|
|
438
443
|
* Decide whether to inject a Workers AI binding into the built wrangler config.
|
|
439
444
|
*
|
|
@@ -488,11 +493,11 @@ function readVoidDevCredentials(root) {
|
|
|
488
493
|
* block the server. On completion, writes project.json and restarts the server.
|
|
489
494
|
*/
|
|
490
495
|
async function runAiSetupPrompt(root, token, apiUrl, server) {
|
|
491
|
-
const { select, text, isCancel, log } = await import("./dist-
|
|
492
|
-
const { PlatformClient } = await import("./client-
|
|
493
|
-
const { attachSelectedPlatform, writeProjectConfig } = await import("./project-
|
|
494
|
-
const { inferDefaultSlug } = await import("./resolve-project-
|
|
495
|
-
const { printSuccess } = await import("./output-
|
|
496
|
+
const { select, text, isCancel, log } = await import("./dist-eV_Ep60B.mjs");
|
|
497
|
+
const { PlatformClient } = await import("./client-DVtAKeUm.mjs");
|
|
498
|
+
const { attachSelectedPlatform, writeProjectConfig } = await import("./project-DVsTAWFh.mjs");
|
|
499
|
+
const { inferDefaultSlug } = await import("./resolve-project-CgfjtOwz.mjs");
|
|
500
|
+
const { printSuccess } = await import("./output-E6gecbbV.mjs");
|
|
496
501
|
const client = new PlatformClient(token, { apiUrl });
|
|
497
502
|
let projects;
|
|
498
503
|
try {
|
|
@@ -518,8 +523,8 @@ async function runAiSetupPrompt(root, token, apiUrl, server) {
|
|
|
518
523
|
let projectId;
|
|
519
524
|
let slug;
|
|
520
525
|
if (result === "__create__") {
|
|
521
|
-
const { validateProjectSlug } = await import("./project-slug-
|
|
522
|
-
const { createProjectWithSlugRetry } = await import("./create-project-
|
|
526
|
+
const { validateProjectSlug } = await import("./project-slug-BUy0lmyR.mjs");
|
|
527
|
+
const { createProjectWithSlugRetry } = await import("./create-project-rnjum4_V.mjs");
|
|
523
528
|
let created;
|
|
524
529
|
try {
|
|
525
530
|
created = await createProjectWithSlugRetry(client, inferDefaultSlug(root), async (defaultSlug) => {
|
|
@@ -551,8 +556,7 @@ async function runAiSetupPrompt(root, token, apiUrl, server) {
|
|
|
551
556
|
await server.restart();
|
|
552
557
|
printSuccess(`Linked to ${slug}.`);
|
|
553
558
|
}
|
|
554
|
-
|
|
555
|
-
//#region src/plugin-binding-runtime.ts
|
|
559
|
+
// src/plugin-binding-runtime.ts
|
|
556
560
|
const envModuleResolved = fileURLToPath(import.meta.resolve("#self/_env"));
|
|
557
561
|
const kvModuleResolved = fileURLToPath(import.meta.resolve("void/kv"));
|
|
558
562
|
const storageModuleResolved = fileURLToPath(import.meta.resolve("void/storage"));
|
|
@@ -604,8 +608,7 @@ export const storage = new Proxy({}, {
|
|
|
604
608
|
}
|
|
605
609
|
};
|
|
606
610
|
}
|
|
607
|
-
|
|
608
|
-
//#region src/plugin-client-stubs.ts
|
|
611
|
+
// src/plugin-client-stubs.ts
|
|
609
612
|
function createClientStubsPlugin() {
|
|
610
613
|
const STUB_PREFIX = "\0void-client-stub:";
|
|
611
614
|
const SERVER_ONLY_STUBS = {
|
|
@@ -677,8 +680,258 @@ function createClientStubsPlugin() {
|
|
|
677
680
|
}
|
|
678
681
|
};
|
|
679
682
|
}
|
|
680
|
-
|
|
681
|
-
|
|
683
|
+
// src/plugin-cloudflare-config.ts
|
|
684
|
+
/** Match the old plugin's patch semantics, including its array concatenation. */
|
|
685
|
+
function mergeCloudflareConfig(patch, fallback) {
|
|
686
|
+
const result = { ...fallback };
|
|
687
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
688
|
+
if (value === void 0) continue;
|
|
689
|
+
const previous = result[key];
|
|
690
|
+
result[key] = Array.isArray(value) && Array.isArray(previous) ? [...value, ...previous] : value && previous && typeof value === "object" && typeof previous === "object" && !Array.isArray(value) && !Array.isArray(previous) ? mergeCloudflareConfig(value, previous) : value;
|
|
691
|
+
}
|
|
692
|
+
return result;
|
|
693
|
+
}
|
|
694
|
+
/** Use Cloudflare's public migration API rather than maintaining a second binding translator. */
|
|
695
|
+
function toNativeCloudflareConfig(raw, root) {
|
|
696
|
+
const packagePath = join(root, "package.json");
|
|
697
|
+
const packageName = existsSync(packagePath) ? JSON.parse(readFileSync(packagePath, "utf8")).name : void 0;
|
|
698
|
+
const name = String(packageName ?? basename(root)).replaceAll("_", "-").replace(/[^a-z0-9- ]/g, "-").replace(/^(-+)|(-+)$/g, "").slice(0, 63) || "my-worker";
|
|
699
|
+
const { env, vars, ...base } = raw;
|
|
700
|
+
const selected = process.env.CLOUDFLARE_ENV ? env?.[process.env.CLOUDFLARE_ENV] : void 0;
|
|
701
|
+
const values = selected ? selected.vars : vars;
|
|
702
|
+
const environments = env && Object.fromEntries(Object.entries(env).map(([name, { vars: _vars, ...config }]) => [`void-environment-${name}`, config]));
|
|
703
|
+
const config = migrateBuiltWranglerConfig({
|
|
704
|
+
name,
|
|
705
|
+
compatibility_date: "2026-02-24",
|
|
706
|
+
...base,
|
|
707
|
+
...environments && process.env.CLOUDFLARE_ENV ? { env: environments } : {}
|
|
708
|
+
}, process.env.CLOUDFLARE_ENV ? `void-environment-${process.env.CLOUDFLARE_ENV}` : "void-top-level");
|
|
709
|
+
if (!config.worker) throw new Error("Void requires a Cloudflare Worker configuration.");
|
|
710
|
+
for (const [name, value] of Object.entries(values ?? {})) {
|
|
711
|
+
config.worker.env ??= {};
|
|
712
|
+
config.worker.env[name] = typeof value === "string" ? {
|
|
713
|
+
type: "text",
|
|
714
|
+
value
|
|
715
|
+
} : {
|
|
716
|
+
type: "json",
|
|
717
|
+
value
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
const main = selected?.main ?? raw.main;
|
|
721
|
+
if (main) config.worker.entrypoint = main.startsWith("virtual:") ? main : resolve(root, main);
|
|
722
|
+
return {
|
|
723
|
+
...config,
|
|
724
|
+
worker: config.worker
|
|
725
|
+
};
|
|
726
|
+
}
|
|
727
|
+
function nativeAuxiliaryWorkers(workers, root) {
|
|
728
|
+
return workers?.map(({ configPath, config, ...options }) => ({
|
|
729
|
+
...options,
|
|
730
|
+
config({ entryWorkerConfig }) {
|
|
731
|
+
const path = configPath ? resolve(root, configPath) : void 0;
|
|
732
|
+
const base = path ? path.endsWith(".toml") ? parse(readFileSync(path, "utf8")) : readGeneratedWranglerConfigFile(path) : {};
|
|
733
|
+
return toNativeCloudflareConfig(mergeCloudflareConfig((typeof config === "function" ? config(base, { entryWorkerConfig: convertToWranglerConfig({
|
|
734
|
+
worker: entryWorkerConfig,
|
|
735
|
+
containers: []
|
|
736
|
+
}) }) : config) ?? {}, base), path ? dirname(path) : root).worker;
|
|
737
|
+
}
|
|
738
|
+
}));
|
|
739
|
+
}
|
|
740
|
+
// src/plugin-cloudflare-preview.ts
|
|
741
|
+
/** Give preview local bindings without changing the deployable build or storing their values. */
|
|
742
|
+
function withLocalPreviewBindings(plugins, root) {
|
|
743
|
+
let directory;
|
|
744
|
+
const cleanup = () => {
|
|
745
|
+
if (directory) {
|
|
746
|
+
rmSync(directory, {
|
|
747
|
+
recursive: true,
|
|
748
|
+
force: true
|
|
749
|
+
});
|
|
750
|
+
directory = void 0;
|
|
751
|
+
}
|
|
752
|
+
process.removeListener("exit", cleanup);
|
|
753
|
+
};
|
|
754
|
+
const entry = plugins.find((plugin) => plugin.name === "vite-plugin-cloudflare");
|
|
755
|
+
if (!entry?.config) throw new Error("The Cloudflare plugin no longer exposes its configuration hook.");
|
|
756
|
+
const hook = typeof entry.config === "function" ? entry.config : entry.config.handler;
|
|
757
|
+
entry.config = async function(config, environment) {
|
|
758
|
+
if (!environment.isPreview) return hook.call(this, config, environment);
|
|
759
|
+
cleanup();
|
|
760
|
+
const parent = join(root, ".void");
|
|
761
|
+
mkdirSync(parent, { recursive: true });
|
|
762
|
+
directory = mkdtempSync(join(parent, "preview-"));
|
|
763
|
+
process.once("exit", cleanup);
|
|
764
|
+
try {
|
|
765
|
+
const output = dirname(getRootConfigPath(root));
|
|
766
|
+
cpSync(output, dirname(getRootConfigPath(directory)), { recursive: true });
|
|
767
|
+
const path = getWorkerConfigPath(directory);
|
|
768
|
+
const worker = JSON.parse(readFileSync(path, "utf8"));
|
|
769
|
+
worker.env ??= {};
|
|
770
|
+
for (const name of Object.keys(loadLocalEnv(root))) {
|
|
771
|
+
const binding = worker.env[name];
|
|
772
|
+
if (!binding || [
|
|
773
|
+
"text",
|
|
774
|
+
"json",
|
|
775
|
+
"secret"
|
|
776
|
+
].includes(binding.type)) worker.env[name] = { type: "secret" };
|
|
777
|
+
}
|
|
778
|
+
writeFileAtomic(path, JSON.stringify(worker));
|
|
779
|
+
return await hook.call(this, {
|
|
780
|
+
...config,
|
|
781
|
+
root: directory,
|
|
782
|
+
envDir: root
|
|
783
|
+
}, environment);
|
|
784
|
+
} catch (error) {
|
|
785
|
+
cleanup();
|
|
786
|
+
throw error;
|
|
787
|
+
}
|
|
788
|
+
};
|
|
789
|
+
return [...plugins, {
|
|
790
|
+
name: "void:cloudflare-preview-cleanup",
|
|
791
|
+
configurePreviewServer(server) {
|
|
792
|
+
server.httpServer.once("close", cleanup);
|
|
793
|
+
}
|
|
794
|
+
}];
|
|
795
|
+
}
|
|
796
|
+
// src/plugin-cloudflare.ts
|
|
797
|
+
function isInside(directory, path) {
|
|
798
|
+
const child = relative(directory, path);
|
|
799
|
+
return child !== ".." && !child.startsWith("../") && !isAbsolute(child);
|
|
800
|
+
}
|
|
801
|
+
/** Keep Void's public configuration and artifact layout while running the v2 plugin. */
|
|
802
|
+
function cloudflare$1(options) {
|
|
803
|
+
const root = process.cwd();
|
|
804
|
+
let workerConfig;
|
|
805
|
+
let native;
|
|
806
|
+
let pluginNative;
|
|
807
|
+
const outputDirectories = /* @__PURE__ */ new Map();
|
|
808
|
+
const bridge = {
|
|
809
|
+
name: "void:cloudflare-config",
|
|
810
|
+
config(_userConfig, environment) {
|
|
811
|
+
if (environment.isPreview) return;
|
|
812
|
+
let base = options.configPath ? readGeneratedWranglerConfigFile(options.configPath) : {};
|
|
813
|
+
if (process.env.CLOUDFLARE_ENV && base.env) {
|
|
814
|
+
const selected = base.env[process.env.CLOUDFLARE_ENV];
|
|
815
|
+
if (!selected) throw new Error(`Cloudflare environment ${process.env.CLOUDFLARE_ENV} is not configured.`);
|
|
816
|
+
const original = base;
|
|
817
|
+
base = convertToWranglerConfig(toNativeCloudflareConfig(base, root));
|
|
818
|
+
base.main = selected.main ?? original.main;
|
|
819
|
+
base.migrations = selected.migrations ?? original.migrations;
|
|
820
|
+
base.assets = {
|
|
821
|
+
...base.assets,
|
|
822
|
+
directory: selected.assets?.directory ?? original.assets?.directory
|
|
823
|
+
};
|
|
824
|
+
}
|
|
825
|
+
workerConfig = mergeCloudflareConfig(options.config(base), base);
|
|
826
|
+
native = toNativeCloudflareConfig(workerConfig, root);
|
|
827
|
+
pluginNative = structuredClone(native);
|
|
828
|
+
if (environment.command === "build" && native.containers.length > 0) {
|
|
829
|
+
pluginNative.containers = [];
|
|
830
|
+
for (const declaration of Object.values(pluginNative.worker?.exports ?? {})) if ("container" in declaration) delete declaration.container;
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
};
|
|
834
|
+
const directories = {
|
|
835
|
+
name: "void:cloudflare-output-directories",
|
|
836
|
+
enforce: "post",
|
|
837
|
+
config(userConfig) {
|
|
838
|
+
const environmentNames = [options.viteEnvironment.name ?? "ssr", ...options.viteEnvironment.childEnvironments ?? []];
|
|
839
|
+
for (const name of [...environmentNames, "client"]) outputDirectories.set(name, resolve(root, userConfig.environments?.[name]?.build?.outDir ?? join(userConfig.build?.outDir ?? "dist", name)));
|
|
840
|
+
}
|
|
841
|
+
};
|
|
842
|
+
const output = {
|
|
843
|
+
name: "void:cloudflare-build-output",
|
|
844
|
+
enforce: "post",
|
|
845
|
+
writeBundle: {
|
|
846
|
+
order: "post",
|
|
847
|
+
handler() {
|
|
848
|
+
if (this.environment?.name !== "client") return;
|
|
849
|
+
const source = resolve(root, this.environment.config.build.outDir);
|
|
850
|
+
const destination = outputDirectories.get("client");
|
|
851
|
+
if (destination && source !== destination && existsSync(source)) {
|
|
852
|
+
mkdirSync(destination, { recursive: true });
|
|
853
|
+
cpSync(source, destination, { recursive: true });
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
},
|
|
857
|
+
buildApp: {
|
|
858
|
+
order: "post",
|
|
859
|
+
async handler(builder) {
|
|
860
|
+
if (Object.values(native.worker?.env ?? {}).some((binding) => binding.type === "assets")) mkdirSync(getWorkerAssetsDir(root), { recursive: true });
|
|
861
|
+
const worker = (await readBuildOutput(root)).workers.default;
|
|
862
|
+
const environment = options.viteEnvironment.name ?? "ssr";
|
|
863
|
+
const destination = outputDirectories.get(environment);
|
|
864
|
+
const client = outputDirectories.get("client");
|
|
865
|
+
if (!worker.bundleDir || !worker.config.manifest) throw new Error("Void requires a built Cloudflare Worker.");
|
|
866
|
+
for (const directory of [destination, client]) if (directory !== root && isInside(root, directory) && !isInside(directory, worker.bundleDir)) rmSync(directory, {
|
|
867
|
+
recursive: true,
|
|
868
|
+
force: true
|
|
869
|
+
});
|
|
870
|
+
mkdirSync(destination, { recursive: true });
|
|
871
|
+
cpSync(worker.bundleDir, destination, { recursive: true });
|
|
872
|
+
if (worker.assetsDir) {
|
|
873
|
+
mkdirSync(client, { recursive: true });
|
|
874
|
+
cpSync(worker.assetsDir, client, { recursive: true });
|
|
875
|
+
}
|
|
876
|
+
const config = {
|
|
877
|
+
...workerConfig,
|
|
878
|
+
name: worker.config.name,
|
|
879
|
+
account_id: native.accountId,
|
|
880
|
+
compatibility_date: worker.config.compatibilityDate,
|
|
881
|
+
compatibility_flags: worker.config.compatibilityFlags,
|
|
882
|
+
main: worker.config.manifest.mainModule,
|
|
883
|
+
no_bundle: true,
|
|
884
|
+
rules: [{
|
|
885
|
+
type: "ESModule",
|
|
886
|
+
globs: ["**/*.js", "**/*.mjs"]
|
|
887
|
+
}],
|
|
888
|
+
...process.env.CLOUDFLARE_ENV ? { targetEnvironment: process.env.CLOUDFLARE_ENV } : {},
|
|
889
|
+
...workerConfig.assets || worker.assetsDir ? { assets: {
|
|
890
|
+
...workerConfig.assets,
|
|
891
|
+
directory: relative(destination, client)
|
|
892
|
+
} } : {}
|
|
893
|
+
};
|
|
894
|
+
delete config.env;
|
|
895
|
+
writeFileAtomic(join(destination, "wrangler.json"), `${JSON.stringify(config, null, 2)}\n`);
|
|
896
|
+
if (options.finalizeAssets) {
|
|
897
|
+
options.finalizeAssets(client, builder.environments.client);
|
|
898
|
+
const finalized = JSON.parse(readFileSync(join(destination, "wrangler.json"), "utf8"));
|
|
899
|
+
if (worker.config.assets && finalized.assets) {
|
|
900
|
+
worker.config.assets.runWorkerFirst = finalized.assets.run_worker_first;
|
|
901
|
+
writeFileAtomic(worker.configPath, JSON.stringify(worker.config));
|
|
902
|
+
}
|
|
903
|
+
if (worker.assetsDir && existsSync(client)) cpSync(client, worker.assetsDir, { recursive: true });
|
|
904
|
+
}
|
|
905
|
+
if (native.containers.length > 0) writeFileAtomic(join(dirname(getRootConfigPath(root)), "void-containers.json"), JSON.stringify({ workerDirectory: relative(root, destination) }));
|
|
906
|
+
const pointer = join(root, ".wrangler/deploy/config.json");
|
|
907
|
+
const pointerDestination = existsSync(join(root, "void.config.ts")) && process.env["VOID_CLOUDFLARE_DEPLOY_BUILD"] !== "1" ? join(root, ".void/preview-deploy-config.json") : pointer;
|
|
908
|
+
mkdirSync(dirname(pointerDestination), { recursive: true });
|
|
909
|
+
writeFileAtomic(pointerDestination, JSON.stringify({ configPath: relative(dirname(pointer), join(destination, "wrangler.json")) }));
|
|
910
|
+
for (const name of options.viteEnvironment.childEnvironments ?? []) {
|
|
911
|
+
const source = builder.environments[name]?.config.build.outDir;
|
|
912
|
+
const target = outputDirectories.get(name);
|
|
913
|
+
if (source && target && existsSync(source)) cpSync(source, target, { recursive: true });
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
};
|
|
918
|
+
return [
|
|
919
|
+
bridge,
|
|
920
|
+
directories,
|
|
921
|
+
...withLocalPreviewBindings(cloudflare({
|
|
922
|
+
inspectorPort: options.inspectorPort,
|
|
923
|
+
persistState: options.persistState,
|
|
924
|
+
viteEnvironment: options.viteEnvironment,
|
|
925
|
+
auxiliaryWorkers: nativeAuxiliaryWorkers(options.auxiliaryWorkers, root),
|
|
926
|
+
types: { generate: false },
|
|
927
|
+
config() {
|
|
928
|
+
return pluginNative;
|
|
929
|
+
}
|
|
930
|
+
}), root),
|
|
931
|
+
output
|
|
932
|
+
];
|
|
933
|
+
}
|
|
934
|
+
// src/plugin-dev-config.ts
|
|
682
935
|
/** Run `fn` shortly after Vite prints "ready" so dev messages stay visible. */
|
|
683
936
|
function afterServerReady(server, fn) {
|
|
684
937
|
if (server.httpServer) server.httpServer.once("listening", () => setTimeout(fn, 100));
|
|
@@ -835,8 +1088,7 @@ function warnIfPackageJsonIsNotEsm(root) {
|
|
|
835
1088
|
if (pkg.type === "module") return;
|
|
836
1089
|
voidWarn("package.json is missing `\"type\": \"module\"`. Vite's default config loader will fail with ERR_REQUIRE_ASYNC_MODULE on transitive top-level await (e.g. @cloudflare/vite-plugin). Add `\"type\": \"module\"` to package.json, or run vite build with `--configLoader runner`.");
|
|
837
1090
|
}
|
|
838
|
-
|
|
839
|
-
//#region src/plugin-dev-triggers-hint.ts
|
|
1091
|
+
// src/plugin-dev-triggers-hint.ts
|
|
840
1092
|
/**
|
|
841
1093
|
* Prints a one-shot hint on dev server start when the project has crons
|
|
842
1094
|
* or queues, explaining how to trigger them locally. Both default Void mode
|
|
@@ -875,8 +1127,7 @@ function devTriggersHintPlugin(root, devTriggerToken) {
|
|
|
875
1127
|
}
|
|
876
1128
|
};
|
|
877
1129
|
}
|
|
878
|
-
|
|
879
|
-
//#region src/plugin-email-dev-inbox.ts
|
|
1130
|
+
// src/plugin-email-dev-inbox.ts
|
|
880
1131
|
const SECURITY_HEADERS = {
|
|
881
1132
|
"Cache-Control": "no-store",
|
|
882
1133
|
"X-Content-Type-Options": "nosniff",
|
|
@@ -1111,8 +1362,7 @@ function renderDetailHtml(m, href) {
|
|
|
1111
1362
|
${bodyHtml}
|
|
1112
1363
|
</body></html>`;
|
|
1113
1364
|
}
|
|
1114
|
-
|
|
1115
|
-
//#region src/plugin-env-client-guard.ts
|
|
1365
|
+
// src/plugin-env-client-guard.ts
|
|
1116
1366
|
let cachedModule = null;
|
|
1117
1367
|
async function loadEnvPublic() {
|
|
1118
1368
|
if (cachedModule) return cachedModule;
|
|
@@ -1301,8 +1551,7 @@ function envClientGuardPlugin(root) {
|
|
|
1301
1551
|
}
|
|
1302
1552
|
};
|
|
1303
1553
|
}
|
|
1304
|
-
|
|
1305
|
-
//#region src/plugin-env-client-fold.ts
|
|
1554
|
+
// src/plugin-env-client-fold.ts
|
|
1306
1555
|
/**
|
|
1307
1556
|
* Walk the AST and collect every static `env.FOO` / `env["FOO"]` (or
|
|
1308
1557
|
* `<ns>.env.FOO`) read. Dynamic keys (`env[variable]`) are intentionally
|
|
@@ -1397,8 +1646,7 @@ function envClientFoldPlugin() {
|
|
|
1397
1646
|
}
|
|
1398
1647
|
};
|
|
1399
1648
|
}
|
|
1400
|
-
|
|
1401
|
-
//#region src/plugin-env-schema.ts
|
|
1649
|
+
// src/plugin-env-schema.ts
|
|
1402
1650
|
/**
|
|
1403
1651
|
* Variables Vite's `loadEnv` copies from env files into `process.env` when
|
|
1404
1652
|
* they are unset, as `[file key, process.env key]`.
|
|
@@ -1634,8 +1882,7 @@ function envSchemaPlugin(root, options = {}) {
|
|
|
1634
1882
|
}
|
|
1635
1883
|
};
|
|
1636
1884
|
}
|
|
1637
|
-
|
|
1638
|
-
//#region src/plugin-framework-triggers.ts
|
|
1885
|
+
// src/plugin-framework-triggers.ts
|
|
1639
1886
|
const DISPATCH_FILE_MODE = 384;
|
|
1640
1887
|
/** Absolute path of the generated dispatch file. Stable across the dev process. */
|
|
1641
1888
|
function frameworkTriggersDispatchPath(root) {
|
|
@@ -1825,18 +2072,6 @@ export async function handleDevTrigger(request, env, ctx) {
|
|
|
1825
2072
|
}
|
|
1826
2073
|
`;
|
|
1827
2074
|
}
|
|
1828
|
-
/** Append any missing `lines` to the project's `.gitignore` and return the appended ones. */
|
|
1829
|
-
function ensureGitignoreLines(root, lines) {
|
|
1830
|
-
const gitignorePath = join(root, ".gitignore");
|
|
1831
|
-
let contents = "";
|
|
1832
|
-
if (existsSync(gitignorePath)) contents = readFileSync(gitignorePath, "utf-8");
|
|
1833
|
-
const existing = new Set(contents.split("\n").map((line) => line.trim()));
|
|
1834
|
-
const missing = lines.filter((line) => !existing.has(line));
|
|
1835
|
-
if (missing.length === 0) return [];
|
|
1836
|
-
const sep = contents.length === 0 || contents.endsWith("\n") ? "" : "\n";
|
|
1837
|
-
writeFileSync(gitignorePath, `${contents}${sep}${missing.join("\n")}\n`);
|
|
1838
|
-
return missing;
|
|
1839
|
-
}
|
|
1840
2075
|
/** Remove `lines` from the project's `.gitignore`, if it still exists. */
|
|
1841
2076
|
function removeGitignoreLines(root, lines) {
|
|
1842
2077
|
const gitignorePath = join(root, ".gitignore");
|
|
@@ -2141,8 +2376,7 @@ function astroDevTriggerInjectPlugin(root) {
|
|
|
2141
2376
|
}
|
|
2142
2377
|
};
|
|
2143
2378
|
}
|
|
2144
|
-
|
|
2145
|
-
//#region src/router/compile.ts
|
|
2379
|
+
// src/router/compile.ts
|
|
2146
2380
|
const FETCH_SERVER_PATH = fileURLToPath(import.meta.resolve("#self/runtime/fetch-server"));
|
|
2147
2381
|
const ROUTING_RUNTIME_PATH = fileURLToPath(import.meta.resolve("#self/runtime/routing"));
|
|
2148
2382
|
function pushDefaultErrorPageHelpers(lines, options) {
|
|
@@ -2154,6 +2388,27 @@ function pushDefaultErrorPageHelpers(lines, options) {
|
|
|
2154
2388
|
lines.push("app.onError(__errorRenderer.onError);");
|
|
2155
2389
|
}
|
|
2156
2390
|
/**
|
|
2391
|
+
* Returns a lookup that gives each key its own identifier suffix. The suffix
|
|
2392
|
+
* keeps the key's ASCII letters and digits; keys that clean up to the same
|
|
2393
|
+
* text (user-list.ts and user_list.ts, or two CJK names of one length) get a
|
|
2394
|
+
* counter so the generated consts never clash.
|
|
2395
|
+
*/
|
|
2396
|
+
function createIdentifierNames() {
|
|
2397
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
2398
|
+
const used = /* @__PURE__ */ new Set();
|
|
2399
|
+
return (key) => {
|
|
2400
|
+
const known = byKey.get(key);
|
|
2401
|
+
if (known !== void 0) return known;
|
|
2402
|
+
let base = "";
|
|
2403
|
+
for (const char of key.split("")) base += char >= "0" && char <= "9" || char >= "a" && char <= "z" || char >= "A" && char <= "Z" ? char : "_";
|
|
2404
|
+
let name = base;
|
|
2405
|
+
for (let n = 2; used.has(name); n++) name = `${base}_${n}`;
|
|
2406
|
+
used.add(name);
|
|
2407
|
+
byKey.set(key, name);
|
|
2408
|
+
return name;
|
|
2409
|
+
};
|
|
2410
|
+
}
|
|
2411
|
+
/**
|
|
2157
2412
|
* Generate the code for the virtual route table module (virtual:void-routes).
|
|
2158
2413
|
* This module creates a Hono app with:
|
|
2159
2414
|
* - Middleware registered via app.use()
|
|
@@ -2253,9 +2508,10 @@ function compileRouteTable(scan, routesDir, middlewareDir, jobsDir, queuesDir, s
|
|
|
2253
2508
|
lines.push("");
|
|
2254
2509
|
}
|
|
2255
2510
|
const seenFiles = /* @__PURE__ */ new Set();
|
|
2511
|
+
const routeNames = createIdentifierNames();
|
|
2256
2512
|
for (const route of scan.routes) {
|
|
2257
2513
|
const filePath = `${routesDir}/${route.filePath}`;
|
|
2258
|
-
const loaderName = `_load_${route.filePath
|
|
2514
|
+
const loaderName = `_load_${routeNames(route.filePath)}`;
|
|
2259
2515
|
if (!seenFiles.has(route.filePath)) {
|
|
2260
2516
|
seenFiles.add(route.filePath);
|
|
2261
2517
|
lines.push(`const ${loaderName} = __createModuleLoader(() => import(${JSON.stringify(filePath)}), ${JSON.stringify(options.dev !== true)});`);
|
|
@@ -2295,11 +2551,12 @@ function compileRouteTable(scan, routesDir, middlewareDir, jobsDir, queuesDir, s
|
|
|
2295
2551
|
lines.push("export const VoidLiveStreamDurableObject = __createLiveDurableObject();");
|
|
2296
2552
|
lines.push("");
|
|
2297
2553
|
}
|
|
2298
|
-
|
|
2554
|
+
const pageNames = createIdentifierNames();
|
|
2555
|
+
if (pages && scan.pages.pages.length > 0) compilePageRoutes(lines, scan, pages, options, pageNames);
|
|
2299
2556
|
for (let i = 0; i < webSockets.length; i++) lines.push(`app.all(${JSON.stringify(webSockets[i].pattern)}, __markRouteHandler((c) => __forwardWebSocketRequest(c.req.raw, c.env, __voidWebSocketRoutes[${i}])));`);
|
|
2300
2557
|
if (webSockets.length > 0) lines.push("");
|
|
2301
2558
|
if (pages && scan.pages.pages.length > 0) lines.push(`app.notFound(__createPagesFallback({ routing: __routingRuntime, errors: __errorRenderer, assetsDir: ${JSON.stringify(options.assetsDir)}, fallbackRules: ${fallbackRulesJson} }));`);
|
|
2302
|
-
compilePrerenderCollector(lines, scan, ssr, options);
|
|
2559
|
+
compilePrerenderCollector(lines, scan, ssr, options, pageNames);
|
|
2303
2560
|
if (ssr) {
|
|
2304
2561
|
lines.push(`const getClientAssetTags = __createClientAssetTags(${JSON.stringify({
|
|
2305
2562
|
entryId: ssr.clientEntryRelativePath,
|
|
@@ -2368,11 +2625,15 @@ function compileRouteTable(scan, routesDir, middlewareDir, jobsDir, queuesDir, s
|
|
|
2368
2625
|
const cloudflareNames = options.cloudflareQueueNames;
|
|
2369
2626
|
lines.push(generateQueueResolverSource(queueNames, cloudflareNames && queueNames.map((name) => cloudflareQueueName(name, cloudflareNames))));
|
|
2370
2627
|
lines.push("");
|
|
2628
|
+
const queueLabels = scan.queues.map((queue) => relative(options.projectRoot, `${queuesDir}/${queue.filePath}`));
|
|
2629
|
+
lines.push(`const __queueLabels = ${JSON.stringify(queueLabels)};`);
|
|
2371
2630
|
lines.push("export async function __processQueue(payload, env) {");
|
|
2372
2631
|
lines.push(" const queueSuffix = payload.queue;");
|
|
2373
2632
|
lines.push(" const __queueIndex = __resolveQueueIndex(queueSuffix);");
|
|
2374
2633
|
lines.push(" if (__queueIndex === -1) {");
|
|
2375
|
-
lines.push("
|
|
2634
|
+
lines.push(" const __error = `No unambiguous queue handler matches \"${String(queueSuffix)}\"`;");
|
|
2635
|
+
lines.push(" console.error(`[void] ${__error}`);");
|
|
2636
|
+
lines.push(" return { ok: false, error: __error };");
|
|
2376
2637
|
lines.push(" }");
|
|
2377
2638
|
lines.push(" const __decisions = new Map();");
|
|
2378
2639
|
lines.push(" function __wrapMsg(m) {");
|
|
@@ -2402,7 +2663,10 @@ function compileRouteTable(scan, routesDir, middlewareDir, jobsDir, queuesDir, s
|
|
|
2402
2663
|
lines.push(" }");
|
|
2403
2664
|
}
|
|
2404
2665
|
lines.push(" }");
|
|
2405
|
-
lines.push(" } catch {
|
|
2666
|
+
lines.push(" } catch (error) {");
|
|
2667
|
+
lines.push(" console.error(`[void] Queue handler ${__queueLabels[__queueIndex]} failed for queue \"${String(queueSuffix)}\":`, error);");
|
|
2668
|
+
lines.push(" __ok = false;");
|
|
2669
|
+
lines.push(" }");
|
|
2406
2670
|
lines.push(" return { ok: __ok, ...(__decisions.size > 0 ? { decisions: Object.fromEntries(__decisions) } : {}) };");
|
|
2407
2671
|
lines.push("}");
|
|
2408
2672
|
lines.push("");
|
|
@@ -2548,7 +2812,7 @@ function compileRouteTable(scan, routesDir, middlewareDir, jobsDir, queuesDir, s
|
|
|
2548
2812
|
lines.push(`export default app;`);
|
|
2549
2813
|
return lines.join("\n");
|
|
2550
2814
|
}
|
|
2551
|
-
function compilePrerenderCollector(lines, scan, ssr, options) {
|
|
2815
|
+
function compilePrerenderCollector(lines, scan, ssr, options, pageNames) {
|
|
2552
2816
|
const staticPaths = scan.pages.pages.filter((page) => page.shouldPrerender && page.params.length === 0 && !page.catchAll).map((page) => page.pattern);
|
|
2553
2817
|
const dynamicPages = scan.pages.pages.filter((page) => page.shouldPrerender && page.hasGetPrerenderPaths && (page.params.length > 0 || page.catchAll));
|
|
2554
2818
|
const explicitPaths = options.explicitPrerenderPaths ?? [];
|
|
@@ -2568,7 +2832,7 @@ function compilePrerenderCollector(lines, scan, ssr, options) {
|
|
|
2568
2832
|
lines.push(` const paths = [];`);
|
|
2569
2833
|
for (const path of staticPaths) lines.push(` paths.push(${JSON.stringify(path)});`);
|
|
2570
2834
|
for (const page of dynamicPages) {
|
|
2571
|
-
const loaderName = `_pload_${page.componentId
|
|
2835
|
+
const loaderName = `_pload_${pageNames(page.componentId)}`;
|
|
2572
2836
|
lines.push(` {`);
|
|
2573
2837
|
lines.push(` const mod = await ${loaderName}();`);
|
|
2574
2838
|
lines.push(` if (typeof mod.getPrerenderPaths === "function") {`);
|
|
@@ -2601,7 +2865,7 @@ function compilePrerenderCollector(lines, scan, ssr, options) {
|
|
|
2601
2865
|
lines.push(`}`);
|
|
2602
2866
|
lines.push("");
|
|
2603
2867
|
}
|
|
2604
|
-
function compilePageRoutes(lines, scan, pages, options) {
|
|
2868
|
+
function compilePageRoutes(lines, scan, pages, options, pageNames) {
|
|
2605
2869
|
lines.push(`import { renderPage } from "virtual:void-pages-renderer";`);
|
|
2606
2870
|
if (options.dev) lines.push(`import { getVoidPagesDevCss } from "virtual:void-pages-dev-assets";`);
|
|
2607
2871
|
const hasIslandPages = scan.pages.pages.some((p) => p.renderMode === "island");
|
|
@@ -2666,7 +2930,7 @@ function compilePageRoutes(lines, scan, pages, options) {
|
|
|
2666
2930
|
})}${devCssOption} }, __loadPagesManifest);`);
|
|
2667
2931
|
const seenServerFiles = /* @__PURE__ */ new Set();
|
|
2668
2932
|
for (const page of scan.pages.pages) {
|
|
2669
|
-
const safeId = page.componentId
|
|
2933
|
+
const safeId = pageNames(page.componentId);
|
|
2670
2934
|
let serverImportPath = null;
|
|
2671
2935
|
if (page.serverPath) serverImportPath = `${pages.pagesDir}/${page.serverPath}`;
|
|
2672
2936
|
if (serverImportPath && !seenServerFiles.has(serverImportPath)) {
|
|
@@ -2722,7 +2986,7 @@ const serveWithAssets = __createAssetFallback(${JSON.stringify({
|
|
|
2722
2986
|
* proxy-backed versions.
|
|
2723
2987
|
*/
|
|
2724
2988
|
function compileWorkerEntry(options = {}) {
|
|
2725
|
-
const { hasQueues = false, versionMetadataBinding, remote, assetsDir = "assets", webSocketClasses = [], runtimeEnvPath = "void/_env", runtimeEmailPath = "void/email", envSchemaModule, sandbox, serveSpaFallback = false, hasEmail = false, live, dev = false, isr, notFound = "none", durableObjects = [] } = options;
|
|
2989
|
+
const { hasQueues = false, versionMetadataBinding, alwaysUseHttps = false, remote, assetsDir = "assets", webSocketClasses = [], runtimeEnvPath = "void/_env", runtimeEmailPath = "void/email", envSchemaModule, sandbox, serveSpaFallback = false, hasEmail = false, live, dev = false, isr, notFound = "none", durableObjects = [] } = options;
|
|
2726
2990
|
const remotePath = remote?.remotePath;
|
|
2727
2991
|
const remoteBindingNames = JSON.stringify(remote?.bindingNames);
|
|
2728
2992
|
const createRemoteEnvCall = `createRemoteEnv(env${remote?.bindingNames ? `, ${remoteBindingNames}` : ""})`;
|
|
@@ -2758,7 +3022,7 @@ const __filterInternalBindings = (env) => __filterBindings(env, ${JSON.stringify
|
|
|
2758
3022
|
app, assets: serveWithAssets, withRawEnv: __withRawEnv, withRuntimeEnv,
|
|
2759
3023
|
filterBindings: __filterInternalBindings,
|
|
2760
3024
|
internalRoute: __voidHandleInternalRoute,
|
|
2761
|
-
collectPrerenderPaths: __voidCollectPrerenderPaths${versionMetadataBinding ? ", versionMetadataBinding: " + JSON.stringify(versionMetadataBinding) : ""}${envSchemaModule ? ", validateEnv: _validateEnvOnce" : ""}${remotePath ? ", remoteEnv: (env) => " + createRemoteEnvCall : ""}${hasEmail ? ", emailReceipt: __handleEmailReceipt" : ""}${isr ? ", isr: { deploymentId: __VOID_ISR_DEPLOYMENT_ID, handle: (request, env, ctx, render) => handleIsr(request, env, ctx, { revalidate: __VOID_ISR_REVALIDATE, pages: __VOID_ISR_PAGES, pathRevalidate: __VOID_ISR_PATH_REVALIDATE, deploymentId: __VOID_ISR_DEPLOYMENT_ID, queryAllowlist: " + JSON.stringify(isr.queryAllowlist) + " }, render) }" : ""}
|
|
3025
|
+
collectPrerenderPaths: __voidCollectPrerenderPaths${alwaysUseHttps ? ", alwaysUseHttps: true" : ""}${versionMetadataBinding ? ", versionMetadataBinding: " + JSON.stringify(versionMetadataBinding) : ""}${envSchemaModule ? ", validateEnv: _validateEnvOnce" : ""}${remotePath ? ", remoteEnv: (env) => " + createRemoteEnvCall : ""}${hasEmail ? ", emailReceipt: __handleEmailReceipt" : ""}${isr ? ", isr: { deploymentId: __VOID_ISR_DEPLOYMENT_ID, handle: (request, env, ctx, render) => handleIsr(request, env, ctx, { revalidate: __VOID_ISR_REVALIDATE, pages: __VOID_ISR_PAGES, pathRevalidate: __VOID_ISR_PATH_REVALIDATE, deploymentId: __VOID_ISR_DEPLOYMENT_ID, queryAllowlist: " + JSON.stringify(isr.queryAllowlist) + " }, render) }" : ""}
|
|
2762
3026
|
})`;
|
|
2763
3027
|
const remoteEnvSwap = remotePath ? ` if (env.__VOID_REMOTE === "1") env = ${createRemoteEnvCall};\n` : "";
|
|
2764
3028
|
const scheduledHandler = `async function handleScheduled(controller, env, ctx) {
|
|
@@ -2931,8 +3195,7 @@ export const fetch = createServerFetch(
|
|
|
2931
3195
|
);
|
|
2932
3196
|
`;
|
|
2933
3197
|
}
|
|
2934
|
-
|
|
2935
|
-
//#region src/plugin-framework-entry.ts
|
|
3198
|
+
// src/plugin-framework-entry.ts
|
|
2936
3199
|
/**
|
|
2937
3200
|
* Resolve the server entry module for a Class A framework. We always wrap
|
|
2938
3201
|
* the framework's own entry with a tiny shim that intercepts
|
|
@@ -3076,8 +3339,7 @@ export default {
|
|
|
3076
3339
|
`);
|
|
3077
3340
|
return entryPath;
|
|
3078
3341
|
}
|
|
3079
|
-
|
|
3080
|
-
//#region src/installed-packages.ts
|
|
3342
|
+
// src/installed-packages.ts
|
|
3081
3343
|
function readManifest(dir) {
|
|
3082
3344
|
try {
|
|
3083
3345
|
return JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
@@ -3269,8 +3531,7 @@ function findDependencyClosure(name, fromDir) {
|
|
|
3269
3531
|
visit(name, fromDir);
|
|
3270
3532
|
return [...found].sort();
|
|
3271
3533
|
}
|
|
3272
|
-
|
|
3273
|
-
//#region src/plugin-migration.ts
|
|
3534
|
+
// src/plugin-migration.ts
|
|
3274
3535
|
function readDatabaseUrl(root) {
|
|
3275
3536
|
return loadLocalEnv(root).DATABASE_URL;
|
|
3276
3537
|
}
|
|
@@ -3296,7 +3557,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
|
|
|
3296
3557
|
const hasSqlMigrations = existsSync(migrationsDir);
|
|
3297
3558
|
if (!hasSqlMigrations && !auth?.enabled) return;
|
|
3298
3559
|
const migrateAuth = async (databaseUrl) => {
|
|
3299
|
-
const { runLocalVoidAuthMigrations } = await import("./node-
|
|
3560
|
+
const { runLocalVoidAuthMigrations } = await import("./node-BfAt2rz8.mjs");
|
|
3300
3561
|
await runLocalVoidAuthMigrations(root, dialect, persistRoot, databaseId, auth?.configPath, databaseUrl, devAuthConfigImporter(server));
|
|
3301
3562
|
};
|
|
3302
3563
|
const mysqlAuth = dialect === "mysql" && auth?.enabled === true;
|
|
@@ -3311,7 +3572,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
|
|
|
3311
3572
|
};
|
|
3312
3573
|
try {
|
|
3313
3574
|
if (dialect !== "sqlite") {
|
|
3314
|
-
const { collectMigrations } = await import("./collect-
|
|
3575
|
+
const { collectMigrations } = await import("./collect-8i0wU63d.mjs");
|
|
3315
3576
|
const allMigrations = collectMigrations(migrationsDir);
|
|
3316
3577
|
const runFiles = dialect === "mysql" ? allMigrations.length > 0 : hasSqlMigrations;
|
|
3317
3578
|
const url = runFiles ? readDatabaseUrl(root) : void 0;
|
|
@@ -3325,8 +3586,8 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
|
|
|
3325
3586
|
}
|
|
3326
3587
|
const authWithFiles = authUrl !== void 0 && authUrl === url;
|
|
3327
3588
|
if (url) {
|
|
3328
|
-
const { validateMigrations } = await import("./validate-
|
|
3329
|
-
const appliedNames = dialect === "mysql" ? await import("./runner-mysql-
|
|
3589
|
+
const { validateMigrations } = await import("./validate-DY1U9rET.mjs");
|
|
3590
|
+
const appliedNames = dialect === "mysql" ? await import("./runner-mysql-0zVmB1JW.mjs").then((runner) => runner.getMySqlAppliedMigrations(url)) : await import("./runner-pg-2pjltt0t.mjs").then((runner) => runner.getPgAppliedMigrations(url));
|
|
3330
3591
|
const appliedSet = new Set(appliedNames);
|
|
3331
3592
|
const pending = allMigrations.filter((migration) => !appliedSet.has(migration.name));
|
|
3332
3593
|
if (pending.length > 0) try {
|
|
@@ -3335,20 +3596,20 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
|
|
|
3335
3596
|
refuse(err);
|
|
3336
3597
|
return;
|
|
3337
3598
|
}
|
|
3338
|
-
const applied = dialect === "mysql" ? await import("./runner-mysql-
|
|
3599
|
+
const applied = dialect === "mysql" ? await import("./runner-mysql-0zVmB1JW.mjs").then((runner) => runner.runMySqlMigrations(migrationsDir, url, authWithFiles ? async (names) => {
|
|
3339
3600
|
logApplied(names);
|
|
3340
3601
|
await migrateAuth(url);
|
|
3341
|
-
} : void 0)) : await import("./runner-pg-
|
|
3602
|
+
} : void 0)) : await import("./runner-pg-2pjltt0t.mjs").then((runner) => runner.runPgMigrations(migrationsDir, url));
|
|
3342
3603
|
if (!authWithFiles) logApplied(applied);
|
|
3343
3604
|
}
|
|
3344
3605
|
if (authUrl && !authWithFiles) {
|
|
3345
|
-
const { withMySqlMigrationLockAt } = await import("./runner-mysql-
|
|
3606
|
+
const { withMySqlMigrationLockAt } = await import("./runner-mysql-0zVmB1JW.mjs");
|
|
3346
3607
|
await withMySqlMigrationLockAt(authUrl, () => migrateAuth(authUrl));
|
|
3347
3608
|
}
|
|
3348
3609
|
} else if (hasSqlMigrations) {
|
|
3349
|
-
const { runMigrations, getMiniflareDatabasePath, getAppliedMigrations } = await import("./runner-
|
|
3350
|
-
const { collectMigrations } = await import("./collect-
|
|
3351
|
-
const { validateMigrations } = await import("./validate-
|
|
3610
|
+
const { runMigrations, getMiniflareDatabasePath, getAppliedMigrations } = await import("./runner-QMeOpScZ.mjs");
|
|
3611
|
+
const { collectMigrations } = await import("./collect-8i0wU63d.mjs");
|
|
3612
|
+
const { validateMigrations } = await import("./validate-DY1U9rET.mjs");
|
|
3352
3613
|
const dbPath = getMiniflareDatabasePath(persistRoot, databaseId);
|
|
3353
3614
|
const allMigrations = collectMigrations(migrationsDir);
|
|
3354
3615
|
const appliedRows = await getAppliedMigrations(dbPath);
|
|
@@ -3373,8 +3634,7 @@ function migrationPlugin(root, dialect, databaseId = "local", persistRoot = join
|
|
|
3373
3634
|
}
|
|
3374
3635
|
};
|
|
3375
3636
|
}
|
|
3376
|
-
|
|
3377
|
-
//#region src/plugin-worker-environment.ts
|
|
3637
|
+
// src/plugin-worker-environment.ts
|
|
3378
3638
|
const CLOUDFLARE_BUILTIN_IMPORT = /^cloudflare:/;
|
|
3379
3639
|
const SANDBOX_SDK_IMPORT = "@cloudflare/sandbox";
|
|
3380
3640
|
const SANDBOX_SDK_IMPORT_FILTER = /^@cloudflare\/sandbox$/;
|
|
@@ -3536,8 +3796,7 @@ function createServerRuntimeOptimizerPlugin(dialect, readCompat) {
|
|
|
3536
3796
|
}
|
|
3537
3797
|
};
|
|
3538
3798
|
}
|
|
3539
|
-
|
|
3540
|
-
//#region src/sveltekit-hooks-transform.ts
|
|
3799
|
+
// src/sveltekit-hooks-transform.ts
|
|
3541
3800
|
/** Add Void's dev bindings to SvelteKit's generated get_hooks function. */
|
|
3542
3801
|
function injectSvelteKitHooks(code, id, dispatchPath) {
|
|
3543
3802
|
return editGetHooks(code, id, `\n const { withRuntimeEnv } = await import("void/_env");\n const { handleDevTrigger } = await import(${JSON.stringify(dispatchPath)});`, "const __origHandle = handle ?? (({ event, resolve }) => resolve(event));\n handle = async ({ event, resolve }) => {\n const __voidEnv = event.platform?.env ?? (await import('cloudflare:workers')).env;\n return withRuntimeEnv(__voidEnv, async () => {\n const __triggerResp = await handleDevTrigger(event.request, __voidEnv, undefined);\n if (__triggerResp) return __triggerResp;\n return __origHandle({ event, resolve });\n });\n };\n ");
|
|
@@ -3568,8 +3827,7 @@ function editGetHooks(code, id, prologue, handleWrapper) {
|
|
|
3568
3827
|
map: ms.generateMap({ hires: true })
|
|
3569
3828
|
};
|
|
3570
3829
|
}
|
|
3571
|
-
|
|
3572
|
-
//#region src/plugin-framework.ts
|
|
3830
|
+
// src/plugin-framework.ts
|
|
3573
3831
|
const handlerFile = fileURLToPath(import.meta.resolve("#self/handler"));
|
|
3574
3832
|
const envModuleFile = fileURLToPath(import.meta.resolve("#self/_env"));
|
|
3575
3833
|
const voidDir = dirname(fileURLToPath(import.meta.url));
|
|
@@ -3581,19 +3839,20 @@ function createFrameworkPlugins(input) {
|
|
|
3581
3839
|
const syncFrameworkCompat = (compat) => {
|
|
3582
3840
|
if (ensureWranglerCompatibilityDate(root, compat.compatibilityDate)) voidLog("Synced compatibility_date to Cloudflare config");
|
|
3583
3841
|
};
|
|
3842
|
+
const ensureFrameworkCompat = () => ensureWranglerCompat(root, config, void 0, { rootWrangler: true });
|
|
3584
3843
|
const wranglerCompatPlugin = {
|
|
3585
3844
|
name: "void:wrangler-compat",
|
|
3586
3845
|
enforce: "pre",
|
|
3587
3846
|
config(_, env) {
|
|
3588
|
-
syncFrameworkCompat(
|
|
3847
|
+
syncFrameworkCompat(ensureFrameworkCompat());
|
|
3589
3848
|
if (env.command !== "serve") return;
|
|
3590
3849
|
if (ensureWranglerNodejsAlsFlag(root)) voidLog("Synced nodejs_als to Cloudflare config");
|
|
3591
3850
|
},
|
|
3592
3851
|
buildStart() {
|
|
3593
|
-
syncFrameworkCompat(
|
|
3852
|
+
syncFrameworkCompat(ensureFrameworkCompat());
|
|
3594
3853
|
},
|
|
3595
3854
|
configureServer() {
|
|
3596
|
-
syncFrameworkCompat(
|
|
3855
|
+
syncFrameworkCompat(ensureFrameworkCompat());
|
|
3597
3856
|
}
|
|
3598
3857
|
};
|
|
3599
3858
|
const syncFrameworkBindings = (command) => {
|
|
@@ -3808,6 +4067,7 @@ function honoMiddleware(getApp) {
|
|
|
3808
4067
|
response.headers.forEach((value, key) => {
|
|
3809
4068
|
res.setHeader(key, value);
|
|
3810
4069
|
});
|
|
4070
|
+
res.setHeader("set-cookie", response.headers.getSetCookie());
|
|
3811
4071
|
if (response.body) {
|
|
3812
4072
|
const reader = response.body.getReader();
|
|
3813
4073
|
while (true) {
|
|
@@ -3927,54 +4187,67 @@ function nodeTargetPlugin(target) {
|
|
|
3927
4187
|
}
|
|
3928
4188
|
}];
|
|
3929
4189
|
}
|
|
3930
|
-
|
|
3931
|
-
//#region src/plugin-prerender.ts
|
|
4190
|
+
// src/plugin-prerender.ts
|
|
3932
4191
|
/**
|
|
3933
4192
|
* Vite plugin that prerenders pages at build time when `output: "static"`.
|
|
3934
4193
|
*
|
|
3935
|
-
*
|
|
3936
|
-
*
|
|
4194
|
+
* Cloudflare prerender runs after Build Output and the compatible dist artifacts
|
|
4195
|
+
* are complete. Other targets run once when the client bundle closes.
|
|
3937
4196
|
*/
|
|
3938
4197
|
function prerenderPlugin(root, config) {
|
|
4198
|
+
const run = async () => {
|
|
4199
|
+
if (config.output !== "static") return;
|
|
4200
|
+
if (process.env.VOID_DEPLOY_BUILD === "1") return;
|
|
4201
|
+
setShowTimestamp(false);
|
|
4202
|
+
const distDir = resolveDistDir(root);
|
|
4203
|
+
const clientDir = join(distDir, "client");
|
|
4204
|
+
let result;
|
|
4205
|
+
if (isNodeTarget(config.target)) result = await prerenderPagesNode({
|
|
4206
|
+
root,
|
|
4207
|
+
ssrDir: join(distDir, "ssr"),
|
|
4208
|
+
clientDir
|
|
4209
|
+
});
|
|
4210
|
+
else {
|
|
4211
|
+
const persistDir = join(root, ".void");
|
|
4212
|
+
const workerDirName = resolveWorkerDirName(distDir);
|
|
4213
|
+
const workerDir = join(distDir, workerDirName);
|
|
4214
|
+
const remoteMode = resolveRemoteMode(config.remote);
|
|
4215
|
+
result = await prerenderPages({
|
|
4216
|
+
root,
|
|
4217
|
+
workerDir,
|
|
4218
|
+
clientDir,
|
|
4219
|
+
persistDir,
|
|
4220
|
+
remoteMode
|
|
4221
|
+
});
|
|
4222
|
+
}
|
|
4223
|
+
if (result.paths.length === 0) {
|
|
4224
|
+
voidLog("No pages to prerender");
|
|
4225
|
+
return;
|
|
4226
|
+
}
|
|
4227
|
+
assertNoPrerenderFailures(result.failed);
|
|
4228
|
+
};
|
|
3939
4229
|
return {
|
|
3940
4230
|
name: "void:prerender",
|
|
4231
|
+
enforce: "post",
|
|
3941
4232
|
apply: "build",
|
|
3942
4233
|
async closeBundle() {
|
|
3943
|
-
if (config.
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
else {
|
|
3956
|
-
const persistDir = join(root, ".void");
|
|
3957
|
-
const workerDirName = resolveWorkerDirName(distDir);
|
|
3958
|
-
const workerDir = join(distDir, workerDirName);
|
|
3959
|
-
const remoteMode = resolveRemoteMode(config.remote);
|
|
3960
|
-
result = await prerenderPages({
|
|
3961
|
-
root,
|
|
3962
|
-
workerDir,
|
|
3963
|
-
clientDir,
|
|
3964
|
-
persistDir,
|
|
3965
|
-
remoteMode
|
|
3966
|
-
});
|
|
3967
|
-
}
|
|
3968
|
-
if (result.paths.length === 0) {
|
|
3969
|
-
voidLog("No pages to prerender");
|
|
3970
|
-
return;
|
|
4234
|
+
if (isNodeTarget(config.target) && this.environment?.name === "client") await run();
|
|
4235
|
+
},
|
|
4236
|
+
buildApp: {
|
|
4237
|
+
order: "post",
|
|
4238
|
+
async handler() {
|
|
4239
|
+
if (isNodeTarget(config.target)) return;
|
|
4240
|
+
await run();
|
|
4241
|
+
if (config.output === "static" && process.env.VOID_DEPLOY_BUILD !== "1") {
|
|
4242
|
+
const assets = getWorkerAssetsDir(root);
|
|
4243
|
+
mkdirSync(assets, { recursive: true });
|
|
4244
|
+
cpSync(join(resolveDistDir(root), "client"), assets, { recursive: true });
|
|
4245
|
+
}
|
|
3971
4246
|
}
|
|
3972
|
-
assertNoPrerenderFailures(result.failed);
|
|
3973
4247
|
}
|
|
3974
4248
|
};
|
|
3975
4249
|
}
|
|
3976
|
-
|
|
3977
|
-
//#region src/plugin-restart.ts
|
|
4250
|
+
// src/plugin-restart.ts
|
|
3978
4251
|
const BINDING_HINT_RESOLVED = "\0virtual:void/binding-hint";
|
|
3979
4252
|
const RESTARTING_HTML_HEAD = `<!DOCTYPE html>
|
|
3980
4253
|
<html lang="en">
|
|
@@ -4159,8 +4432,7 @@ function restartPlugin() {
|
|
|
4159
4432
|
}
|
|
4160
4433
|
};
|
|
4161
4434
|
}
|
|
4162
|
-
|
|
4163
|
-
//#region src/client-asset-manifest.ts
|
|
4435
|
+
// src/client-asset-manifest.ts
|
|
4164
4436
|
/**
|
|
4165
4437
|
* Attach cache provenance to the existing manifest without changing its entry inventory.
|
|
4166
4438
|
* Returns the stamped immutable files, sorted, relative to the client root.
|
|
@@ -4183,8 +4455,7 @@ function stampClientAssetCachePolicy(bundle, manifestPath, headerRules = []) {
|
|
|
4183
4455
|
asset.source = JSON.stringify(manifest, null, 2);
|
|
4184
4456
|
return [...stamped].sort();
|
|
4185
4457
|
}
|
|
4186
|
-
|
|
4187
|
-
//#region src/plugin-routing.ts
|
|
4458
|
+
// src/plugin-routing.ts
|
|
4188
4459
|
const VIRTUAL_ROUTES_ID = "virtual:void-routes";
|
|
4189
4460
|
const VIRTUAL_CLIENT_WORKER_ID = "virtual:void-client-worker";
|
|
4190
4461
|
const VIRTUAL_CLIENT_BROWSER_ID = "virtual:void-client-browser";
|
|
@@ -4357,7 +4628,11 @@ function routingPlugin(root, options) {
|
|
|
4357
4628
|
"routes.d.ts",
|
|
4358
4629
|
"queues.d.ts",
|
|
4359
4630
|
...options.target ? ["app.ts", "index.ts"] : ["entry.ts"],
|
|
4360
|
-
...compileOptions.auth ? [
|
|
4631
|
+
...compileOptions.auth ? [
|
|
4632
|
+
"better-auth-db.ts",
|
|
4633
|
+
"better-auth-schema.ts",
|
|
4634
|
+
...compileOptions.auth.authConfigPath ? ["auth.d.ts"] : []
|
|
4635
|
+
] : []
|
|
4361
4636
|
];
|
|
4362
4637
|
const parts = [];
|
|
4363
4638
|
for (const file of files) {
|
|
@@ -4372,15 +4647,18 @@ function routingPlugin(root, options) {
|
|
|
4372
4647
|
if (authConfigStale && environment) environment.moduleGraph.invalidateAll();
|
|
4373
4648
|
authConfigStale = false;
|
|
4374
4649
|
try {
|
|
4375
|
-
return await loadVoidAuthConfig(configPath, environment
|
|
4650
|
+
return await loadVoidAuthConfig(configPath, environment ? (path) => environment.runner.import(path) : viteAuthConfigImporter(root, resolvedConfig?.mode, resolvedConfig?.resolve));
|
|
4376
4651
|
} catch (error) {
|
|
4377
4652
|
authConfigStale = true;
|
|
4378
4653
|
throw error;
|
|
4379
4654
|
}
|
|
4380
4655
|
}
|
|
4381
4656
|
async function writeAuthDatabaseFiles() {
|
|
4382
|
-
if (!compileOptions.auth)
|
|
4383
|
-
|
|
4657
|
+
if (!compileOptions.auth) {
|
|
4658
|
+
if (removeAuthTypesIfPresent(outDir)) syncAuthTypesInProjectTsconfig(root);
|
|
4659
|
+
return;
|
|
4660
|
+
}
|
|
4661
|
+
const { generateVoidAuthDatabaseModule, generateVoidAuthDrizzleSchema } = await import("./drizzle-C8MPqt5m.mjs");
|
|
4384
4662
|
const authRuntime = {
|
|
4385
4663
|
dialect: compileOptions.auth.dialect,
|
|
4386
4664
|
providers: compileOptions.auth.providers,
|
|
@@ -4397,6 +4675,8 @@ function routingPlugin(root, options) {
|
|
|
4397
4675
|
schemaImportPath: authSchemaPath,
|
|
4398
4676
|
drizzleAdapterPath
|
|
4399
4677
|
}));
|
|
4678
|
+
syncAuthTypesFile(compileOptions.auth.authConfigPath, outDir);
|
|
4679
|
+
syncAuthTypesInProjectTsconfig(root);
|
|
4400
4680
|
}
|
|
4401
4681
|
let resolvedConfig = null;
|
|
4402
4682
|
let isrRevalidate;
|
|
@@ -4508,6 +4788,24 @@ function routingPlugin(root, options) {
|
|
|
4508
4788
|
})
|
|
4509
4789
|
};
|
|
4510
4790
|
}
|
|
4791
|
+
function finalizeCloudflareAssets(clientDir, assetsDir) {
|
|
4792
|
+
if (!options.assetWorkerBypass || options.target || resolvedConfig?.command !== "build") return;
|
|
4793
|
+
const headersPath = join(clientDir, "_headers");
|
|
4794
|
+
let generatedHeaders = false;
|
|
4795
|
+
let userHeaders = false;
|
|
4796
|
+
if (existsSync(headersPath)) {
|
|
4797
|
+
try {
|
|
4798
|
+
generatedHeaders = isGeneratedAssetHeaders(readFileSync(headersPath, "utf8"));
|
|
4799
|
+
} catch {
|
|
4800
|
+
return;
|
|
4801
|
+
}
|
|
4802
|
+
userHeaders = !generatedHeaders;
|
|
4803
|
+
}
|
|
4804
|
+
const plan = planAssetWorkerBypass(clientDir, assetsDir, userHeaders);
|
|
4805
|
+
if (plan?.headers) writeFileSync(headersPath, plan.headers);
|
|
4806
|
+
else if (generatedHeaders) rmSync(headersPath);
|
|
4807
|
+
if (plan?.wranglerText) writeFileSync(plan.wranglerPath, plan.wranglerText);
|
|
4808
|
+
}
|
|
4511
4809
|
const sandboxEntry = options.hasSandbox ? {
|
|
4512
4810
|
bindingName: options.sandboxBindingName,
|
|
4513
4811
|
className: options.sandboxClassName,
|
|
@@ -4523,6 +4821,7 @@ function routingPlugin(root, options) {
|
|
|
4523
4821
|
const policy = resolveCurrentAssetRoutingPolicy();
|
|
4524
4822
|
writeFileIfChanged(join(outDir, "entry.ts"), compileWorkerEntry({
|
|
4525
4823
|
versionMetadataBinding: options.getVersionMetadataBinding?.(),
|
|
4824
|
+
alwaysUseHttps: options.routing?.alwaysUseHttps === true && resolvedConfig?.command === "build" && !compileOptions.managedDispatch,
|
|
4526
4825
|
hasQueues: scan.queues.length > 0,
|
|
4527
4826
|
remote,
|
|
4528
4827
|
assetsDir: resolvedConfig?.build.assetsDir,
|
|
@@ -4556,6 +4855,7 @@ function routingPlugin(root, options) {
|
|
|
4556
4855
|
}));
|
|
4557
4856
|
return {
|
|
4558
4857
|
name: "void:routing",
|
|
4858
|
+
api: { finalizeCloudflareAssets },
|
|
4559
4859
|
enforce: "pre",
|
|
4560
4860
|
configResolved(config) {
|
|
4561
4861
|
resolvedConfig = config;
|
|
@@ -4618,26 +4918,6 @@ function routingPlugin(root, options) {
|
|
|
4618
4918
|
if (this.environment.name === "client") clientImmutableFiles = manifest ? stampClientAssetCachePolicy(bundle, typeof manifest === "string" ? manifest : ".vite/manifest.json", compileOptions.headerRules) : [];
|
|
4619
4919
|
}
|
|
4620
4920
|
},
|
|
4621
|
-
writeBundle() {
|
|
4622
|
-
if (!options.assetWorkerBypass || options.target || resolvedConfig?.command !== "build" || this.environment.name !== "client") return;
|
|
4623
|
-
const { outDir, assetsDir } = this.environment.config.build;
|
|
4624
|
-
const clientDir = resolve(resolvedConfig.root, outDir);
|
|
4625
|
-
const headersPath = join(clientDir, "_headers");
|
|
4626
|
-
let generatedHeaders = false;
|
|
4627
|
-
let userHeaders = false;
|
|
4628
|
-
if (existsSync(headersPath)) {
|
|
4629
|
-
try {
|
|
4630
|
-
generatedHeaders = isGeneratedAssetHeaders(readFileSync(headersPath, "utf8"));
|
|
4631
|
-
} catch {
|
|
4632
|
-
return;
|
|
4633
|
-
}
|
|
4634
|
-
userHeaders = !generatedHeaders;
|
|
4635
|
-
}
|
|
4636
|
-
const plan = planAssetWorkerBypass(clientDir, assetsDir, userHeaders);
|
|
4637
|
-
if (plan?.headers) writeFileSync(headersPath, plan.headers);
|
|
4638
|
-
else if (generatedHeaders) rmSync(headersPath);
|
|
4639
|
-
if (plan?.wranglerText) writeFileSync(plan.wranglerPath, plan.wranglerText);
|
|
4640
|
-
},
|
|
4641
4921
|
buildStart() {
|
|
4642
4922
|
return regenerateInOrder(async () => {
|
|
4643
4923
|
generatedRouteInputs = void 0;
|
|
@@ -4651,8 +4931,8 @@ function routingPlugin(root, options) {
|
|
|
4651
4931
|
if (!options.target) {
|
|
4652
4932
|
const migrationsDir = paths.migrationsDir;
|
|
4653
4933
|
if (existsSync(migrationsDir) || compileOptions.auth) {
|
|
4654
|
-
const { collectMigrations } = await import("./collect-
|
|
4655
|
-
const { buildMigrationPlanBundle } = await import("./plan-
|
|
4934
|
+
const { collectMigrations } = await import("./collect-8i0wU63d.mjs");
|
|
4935
|
+
const { buildMigrationPlanBundle } = await import("./plan-CQ-N4gws.mjs");
|
|
4656
4936
|
const migrations = existsSync(migrationsDir) ? collectMigrations(migrationsDir) : [];
|
|
4657
4937
|
const dialect = getDatabaseDialect(readConfig(root));
|
|
4658
4938
|
compileOptions.migrationHandlerPath = resolveFile(dialect === "postgresql" ? "#self/runtime/migration-handler-pg" : dialect === "mysql" ? "#self/runtime/migration-handler-mysql" : "#self/runtime/migration-handler");
|
|
@@ -4794,8 +5074,7 @@ function routingPlugin(root, options) {
|
|
|
4794
5074
|
}
|
|
4795
5075
|
};
|
|
4796
5076
|
}
|
|
4797
|
-
|
|
4798
|
-
//#region src/cloudflare-durable-patch.ts
|
|
5077
|
+
// src/cloudflare-durable-patch.ts
|
|
4799
5078
|
function entries(value, label) {
|
|
4800
5079
|
if (value === void 0) return [];
|
|
4801
5080
|
if (!Array.isArray(value) || value.some((entry) => !entry || typeof entry !== "object" || Array.isArray(entry))) throw new Error(`Cloudflare ${label} configuration must be an array of objects.`);
|
|
@@ -4849,8 +5128,7 @@ function finalizeDurableObjectPatch(resolved, patch, generatedLocalBindings) {
|
|
|
4849
5128
|
resolved.migrations = [];
|
|
4850
5129
|
}
|
|
4851
5130
|
}
|
|
4852
|
-
|
|
4853
|
-
//#region src/plugin-binding-utils.ts
|
|
5131
|
+
// src/plugin-binding-utils.ts
|
|
4854
5132
|
/** Check whether a binding name already exists in a resolved bindings array. */
|
|
4855
5133
|
function hasBinding(list, name) {
|
|
4856
5134
|
return Array.isArray(list) && list.some((b) => b.binding === name);
|
|
@@ -4879,8 +5157,7 @@ function hasBinding(list, name) {
|
|
|
4879
5157
|
function shouldInjectEmailDevInboxVar(routeEnvironment, needsEmail, assetsBinding) {
|
|
4880
5158
|
return routeEnvironment === "dev" && !!needsEmail && typeof assetsBinding === "string" && !!assetsBinding;
|
|
4881
5159
|
}
|
|
4882
|
-
|
|
4883
|
-
//#region src/plugin-worker-bindings.ts
|
|
5160
|
+
// src/plugin-worker-bindings.ts
|
|
4884
5161
|
/** Durable Object bindings already in the patch, else in the resolved config. */
|
|
4885
5162
|
function currentDurableObjectBindings(result, resolved) {
|
|
4886
5163
|
return (result.durable_objects ?? resolved.durable_objects)?.bindings ?? [];
|
|
@@ -5106,8 +5383,7 @@ function mergeWorkerBindings(resolved, input) {
|
|
|
5106
5383
|
versionMetadataBinding
|
|
5107
5384
|
};
|
|
5108
5385
|
}
|
|
5109
|
-
|
|
5110
|
-
//#region src/index.ts
|
|
5386
|
+
// src/index.ts
|
|
5111
5387
|
const scheduledPointerCleanups = /* @__PURE__ */ new Set();
|
|
5112
5388
|
const scheduledPreviewPointerCleanups = /* @__PURE__ */ new Set();
|
|
5113
5389
|
/** Returns the Vite plugins that build and serve a Void app for its configured target. */
|
|
@@ -5475,7 +5751,7 @@ function voidPlugin(options) {
|
|
|
5475
5751
|
frameworkBuildWrapperPlugin,
|
|
5476
5752
|
frameworkTriggersPlugin(root, { devTriggerToken }),
|
|
5477
5753
|
devTriggersHintPlugin(root, devTriggerToken),
|
|
5478
|
-
...cloudflare({
|
|
5754
|
+
...cloudflare$1({
|
|
5479
5755
|
configPath: cloudflareConfigPath,
|
|
5480
5756
|
...inspectorPortOption,
|
|
5481
5757
|
persistState: { path: localD1.persistRoot },
|
|
@@ -5543,7 +5819,7 @@ function voidPlugin(options) {
|
|
|
5543
5819
|
dir: assetRoutingPublicDir,
|
|
5544
5820
|
routing: config.routing
|
|
5545
5821
|
});
|
|
5546
|
-
if (!managedCloudflareBuild && (rules.headerRules.length > 0 || rules.redirectRules.length > 0 || (rules.fallbackRules?.length ?? 0) > 0)) {
|
|
5822
|
+
if (!managedCloudflareBuild && (config.routing?.alwaysUseHttps === true || rules.headerRules.length > 0 || rules.redirectRules.length > 0 || (rules.fallbackRules?.length ?? 0) > 0)) {
|
|
5547
5823
|
policy.assetConfig.run_worker_first = ["/**"];
|
|
5548
5824
|
if (rules.fallbackRules?.length && policy.assetConfig.not_found_handling === "single-page-application") {
|
|
5549
5825
|
policy.assetConfig.not_found_handling = "none";
|
|
@@ -5568,6 +5844,30 @@ function voidPlugin(options) {
|
|
|
5568
5844
|
return requiresRestart;
|
|
5569
5845
|
}
|
|
5570
5846
|
applyAssetRoutingPolicy(assetRouting);
|
|
5847
|
+
const routes = routingPlugin(root, {
|
|
5848
|
+
getApplicationAnalysis,
|
|
5849
|
+
isAuthEnabled: () => authEnabled,
|
|
5850
|
+
getVersionMetadataBinding: () => versionMetadataBinding,
|
|
5851
|
+
devTriggerToken,
|
|
5852
|
+
headConfig: config.head,
|
|
5853
|
+
prerenderPaths: config.routing?.prerender,
|
|
5854
|
+
remoteMode,
|
|
5855
|
+
routing: config.routing,
|
|
5856
|
+
bindingNames,
|
|
5857
|
+
get hasSandbox() {
|
|
5858
|
+
return bindings.needsSandbox;
|
|
5859
|
+
},
|
|
5860
|
+
sandboxBindingName: sandboxConfig?.binding,
|
|
5861
|
+
sandboxClassName: sandboxConfig?.className,
|
|
5862
|
+
sandboxInstanceType: sandboxConfig?.instanceType,
|
|
5863
|
+
get live() {
|
|
5864
|
+
return shouldEmitLive() ? liveConfig : void 0;
|
|
5865
|
+
},
|
|
5866
|
+
durableObjects,
|
|
5867
|
+
websocketTombstones,
|
|
5868
|
+
onDevAssetRoutingPolicyChange: updateDevAssetRoutingPolicy,
|
|
5869
|
+
assetWorkerBypass: true
|
|
5870
|
+
});
|
|
5571
5871
|
return [
|
|
5572
5872
|
createCloudflareBuiltinsExternalPlugin(),
|
|
5573
5873
|
createDefaultWorkerEnvironmentPlugin(),
|
|
@@ -5586,30 +5886,7 @@ function voidPlugin(options) {
|
|
|
5586
5886
|
bindingRuntimePlugin(bindingNames),
|
|
5587
5887
|
...bindings.needsSandbox ? [createSandboxSdkResolvePlugin()] : [],
|
|
5588
5888
|
...pagesDevCssAssetsPlugin(root, devTriggerToken),
|
|
5589
|
-
|
|
5590
|
-
getApplicationAnalysis,
|
|
5591
|
-
isAuthEnabled: () => authEnabled,
|
|
5592
|
-
getVersionMetadataBinding: () => versionMetadataBinding,
|
|
5593
|
-
devTriggerToken,
|
|
5594
|
-
headConfig: config.head,
|
|
5595
|
-
prerenderPaths: config.routing?.prerender,
|
|
5596
|
-
remoteMode,
|
|
5597
|
-
routing: config.routing,
|
|
5598
|
-
bindingNames,
|
|
5599
|
-
get hasSandbox() {
|
|
5600
|
-
return bindings.needsSandbox;
|
|
5601
|
-
},
|
|
5602
|
-
sandboxBindingName: sandboxConfig?.binding,
|
|
5603
|
-
sandboxClassName: sandboxConfig?.className,
|
|
5604
|
-
sandboxInstanceType: sandboxConfig?.instanceType,
|
|
5605
|
-
get live() {
|
|
5606
|
-
return shouldEmitLive() ? liveConfig : void 0;
|
|
5607
|
-
},
|
|
5608
|
-
durableObjects,
|
|
5609
|
-
websocketTombstones,
|
|
5610
|
-
onDevAssetRoutingPolicyChange: updateDevAssetRoutingPolicy,
|
|
5611
|
-
assetWorkerBypass: true
|
|
5612
|
-
}),
|
|
5889
|
+
routes,
|
|
5613
5890
|
drizzlePlugin(root, true, dialect, {
|
|
5614
5891
|
d1BindingName: bindingNames?.d1,
|
|
5615
5892
|
forceVirtualDb: authEnabled || bindingNames?.d1 !== void 0,
|
|
@@ -5621,18 +5898,20 @@ function voidPlugin(options) {
|
|
|
5621
5898
|
enabled: authEnabled,
|
|
5622
5899
|
configPath: authConfigPath
|
|
5623
5900
|
}),
|
|
5624
|
-
prerenderPlugin(root, config),
|
|
5625
5901
|
devTriggersHintPlugin(root, devTriggerToken),
|
|
5626
|
-
...cloudflare({
|
|
5902
|
+
...cloudflare$1({
|
|
5627
5903
|
configPath: cloudflareConfigPath,
|
|
5628
5904
|
...inspectorPortOption,
|
|
5629
5905
|
persistState: { path: localD1.persistRoot },
|
|
5630
5906
|
auxiliaryWorkers: options?.auxiliaryWorkers,
|
|
5631
5907
|
viteEnvironment: { name: DEFAULT_WORKER_ENVIRONMENT_NAME },
|
|
5632
|
-
config: mergeBindings
|
|
5908
|
+
config: mergeBindings,
|
|
5909
|
+
finalizeAssets(clientDir, environment) {
|
|
5910
|
+
(environment?.config.plugins.find((plugin) => plugin.name === routes.name))?.api.finalizeCloudflareAssets(clientDir, environment.config.build.assetsDir);
|
|
5911
|
+
}
|
|
5633
5912
|
}),
|
|
5913
|
+
prerenderPlugin(root, config),
|
|
5634
5914
|
implicitDeployGuard
|
|
5635
5915
|
];
|
|
5636
5916
|
}
|
|
5637
|
-
//#endregion
|
|
5638
5917
|
export { VoidAssetRewriteError, basicAuth, defer, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled, resolveWorkersAiBindingName, shouldBindWorkersAi, shouldInjectEmailDevInboxVar, voidPlugin };
|