void 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{account-cmd-HP8bixYo.mjs → account-cmd-DRhmCWcm.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-DDOQwiXk.mjs → application-analysis-HRFsZOv3.mjs} +18 -24
- package/dist/{application-routing-4719u_kf.mjs → application-routing-P4TggvWp.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-g2TQbDLD.d.mts → auth-CH4PLAX1.d.mts} +0 -2
- 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-CedYpDCy.mjs → auth-link-CVXP1G6G.mjs} +7 -8
- package/dist/{auth-migrations-BO27GDNr.mjs → auth-migrations-DDeifS3v.mjs} +1 -2
- package/dist/{auth-router-vafo7x8w.mjs → auth-router-D1pGdbvB.mjs} +6 -7
- package/dist/{base64-DVrOndmI.mjs → base64-ikl9yBy3.mjs} +1 -2
- package/dist/{better-auth-shared-BHB8kiTE.d.mts → better-auth-shared-BJyG2mH0.d.mts} +2 -6
- package/dist/{better-auth-shared-7FM3Uk2N.mjs → better-auth-shared-C958aM7W.mjs} +31 -7
- package/dist/{build-cmd-9vUAQ1_V.mjs → build-cmd-DmjbuT6d.mjs} +7 -8
- package/dist/{cache-jvwLNb0h.mjs → cache-2khBO1MR.mjs} +7 -8
- package/dist/{cancel-deploy-Dw0UmWKO.mjs → cancel-deploy-_itbbvY3.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-XpNR9zoh.mjs → cf-build-output-B1C8U83u.mjs} +41 -314
- 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-Dg27RzyT.mjs → cf-worker-settings-CARs4Wy9.mjs} +3 -5
- package/dist/cli/cli.mjs +66 -76
- package/dist/cli/cloudflare-operation-process.mjs +14 -18
- package/dist/cli/env-schema-probe.d.mts +1 -5
- package/dist/cli/env-schema-probe.mjs +4 -5
- package/dist/client-CEtr5UOR.mjs +1 -0
- package/dist/{client-B3LnB_bE.mjs → client-CoxPEhJq.mjs} +15 -13
- package/dist/{cloudflare-auth-DyD_kVFr.mjs → cloudflare-auth-CEu-1Ps_.mjs} +2 -3
- package/dist/{cloudflare-cmd-D-b_u3T4.mjs → cloudflare-cmd-fZ6AMSWk.mjs} +7 -8
- package/dist/{cloudflare-config-CH1AylZT.mjs → cloudflare-config-eQunqX6A.mjs} +22 -17
- package/dist/{cloudflare-connect-zTJh8UnN.mjs → cloudflare-connect-9OZe4XVQ.mjs} +5 -6
- package/dist/{cloudflare-operations-Bc-7fN44.mjs → cloudflare-operations-CrskD4_O.mjs} +8 -9
- package/dist/{cloudflare-operations-BtulCNOg.mjs → cloudflare-operations-oLvAd9Nd.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-tqMM6DwY.mjs → config-BBlVXZCU.mjs} +5 -6
- package/dist/{config-OFOAimzt.mjs → config-BITKQ3O6.mjs} +5 -5
- package/dist/{config-BV2ASlpn.mjs → config-BgysUhnm.mjs} +1 -1
- package/dist/{config-CAdZVTLN.d.mts → config-CPxJmt4M.d.mts} +4 -6
- package/dist/{config-D-6q7EBH.mjs → config-WlvEcL82.mjs} +3 -4
- package/dist/config-entry.d.mts +1 -3
- package/dist/config-entry.mjs +1 -2
- package/dist/{connect-BOM6zvFX.mjs → connect-CKvmkl2R.mjs} +10 -11
- package/dist/{create-project-C2K0DN2O.mjs → create-project-BiMmR5wA.mjs} +1 -1
- package/dist/{create-project-Bxd02EHN.mjs → create-project-Bq0M8MtO.mjs} +9 -11
- 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-Cdvr3zwG.mjs → db-cq5RW4Vy.mjs} +52 -54
- package/dist/{db-types-0eCiqYb1.mjs → db-types-C_8amnB0.mjs} +3 -4
- package/dist/{delete-lETE6Tpt.mjs → delete-CY4L8fi2.mjs} +7 -8
- package/dist/deploy-B029oHlE.mjs +2 -0
- package/dist/{deploy-CdM-LAxX.mjs → deploy-D_gEojD2.mjs} +144 -136
- package/dist/{deploy-managed-static-DjeBFG2c.mjs → deploy-managed-static-BHVbB_-A.mjs} +33 -40
- package/dist/{deploy-transport-DIq_gFTP.mjs → deploy-transport-DEyOUfac.mjs} +6 -7
- package/dist/deploy.d.mts +1 -3
- package/dist/deploy.mjs +11 -11
- package/dist/{dev-inbox-D0jxye_D.mjs → dev-inbox-CUUS6iUg.mjs} +3 -4
- package/dist/discover-D4mQthao.mjs +1 -0
- package/dist/{discover-LaV0tbIu.mjs → discover-Dhkzxgdt.mjs} +3 -4
- package/dist/{dispatch-CLa2LThw.mjs → dispatch-BNLB5_Gm.mjs} +12 -15
- 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-DyhNtdYf.mjs → domain-BlH90Ods.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-DM2wDcBN.mjs → email-Bkq8ZL1p.mjs} +14 -15
- package/dist/{email-cloudflare-PMbAev9Q.mjs → email-cloudflare-MvJIxrwx.mjs} +18 -123
- 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-78hbN-oI.mjs → env-AvuCSeCH.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-BUfFZ6bt.mjs → env-validation-C8Cmvas0.mjs} +1 -1
- package/dist/{env-validation-B3VobvXm.mjs → env-validation-GV1oD4EV.mjs} +9 -10
- package/dist/{error-pages-CLIJ7aYq.mjs → error-pages-COVBnzK7.mjs} +6 -12
- 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-CFmsUsW1.mjs → gen-BD-dfjxY.mjs} +12 -13
- package/dist/gen-CIHXh9I8.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-De-_IWbM.mjs → github-cmd-CA-lBdkn.mjs} +8 -9
- package/dist/{handler-BHktmuTL.d.mts → handler-BR6Tvjkp.d.mts} +18 -26
- package/dist/{handler-BZ1t7-Rv.mjs → handler-CKeTtYID.mjs} +6 -17
- 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-CuTEdP9C.mjs +445 -0
- package/dist/{help-CKbrhZha.mjs → help-1OCFDsRr.mjs} +28 -12
- package/dist/help-Ba8Dq5-r.mjs +1 -0
- package/dist/{inbound-Da7XsjH3.d.mts → inbound-BHt4dIlL.d.mts} +16 -9
- package/dist/{inbound-VrOLqwZY.mjs → inbound-CdO-qY0w.mjs} +6 -81
- package/dist/index.d.mts +23 -13
- package/dist/index.mjs +495 -223
- package/dist/{info-Yg0-V5Rs.mjs → info-CJxua_db.mjs} +6 -7
- package/dist/{init-CDiJQycf.mjs → init-B-4CluYx.mjs} +43 -59
- package/dist/{isr-config-fZaJJ8t7.mjs → isr-config-Czzb4mIq.mjs} +5 -55
- 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-Dllip08S.mjs → link-DAXOT-G_.mjs} +8 -9
- package/dist/{list-BYRP6am0.mjs → list-BYSOo9fm.mjs} +8 -9
- package/dist/{live-BllfDuzA.d.mts → live-0xrcVpyq.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-CAwAs9GH.mjs → local-d1-BLgsNUj9.mjs} +4 -5
- package/dist/{log-BMwmN5Ae.mjs → log-D9hwSySP.mjs} +3 -4
- package/dist/login-BpbYeu-n.mjs +1 -0
- package/dist/{login-PcFy5mlC.mjs → login-CJopTWX4.mjs} +6 -7
- package/dist/{logs-DmJTBhed.mjs → logs-DE0weBsR.mjs} +19 -18
- package/dist/{migrate-B8S2xTcb.mjs → migrate-ChHHZBTi.mjs} +20 -16
- package/dist/migrate-HdA6Kh2p.mjs +1 -0
- 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-CtP6-qAF.mjs} +145 -18
- 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 +5 -6
- package/dist/{node-CDOPrGSl.mjs → node-CZ6lGNLn.mjs} +8 -9
- 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-DmkmS2wL.mjs → operator-cmd-BUqsdk2K.mjs} +32 -15
- package/dist/operator-cmd-wBYyp8iQ.mjs +1 -0
- 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 +147 -31
- package/dist/pages/client.mjs +199 -43
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/head.mjs +1 -1
- package/dist/pages/index.d.mts +25 -18
- package/dist/pages/index.mjs +24 -12
- package/dist/pages/islands-plugin.d.mts +75 -13
- package/dist/pages/islands-plugin.mjs +92 -7
- package/dist/pages/prefetch.d.mts +2 -2
- 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-C7XUw9mw.mjs +1 -0
- package/dist/{platform-args-BMD2gjc_.mjs → platform-args-Cx1M-7bq.mjs} +22 -11
- package/dist/{platform-auth-config-CImnfohz.mjs → platform-auth-config-K4m_LE8b.mjs} +10 -11
- package/dist/{platform-auth-protection-BogLhtHi.mjs → platform-auth-protection-KF5Vo-1I.mjs} +10 -11
- package/dist/{platform-auth-recovery-B-mEaWEi.mjs → platform-auth-recovery-BOdFrl7R.mjs} +9 -11
- package/dist/{platform-cmd-CV8NxIIn.mjs → platform-cmd-DpCHawGF.mjs} +1 -1
- package/dist/{platform-cmd-DZK2ixMl.mjs → platform-cmd-Ds3EAV5t.mjs} +13 -13
- package/dist/{platform-discovery-CHhNs8Nn.mjs → platform-discovery-B0eZjZ3B.mjs} +2 -3
- package/dist/{platform-domain-CRvelPGE.mjs → platform-domain-rWJshybd.mjs} +7 -8
- package/dist/{platform-lifecycle-DwXq7kZt.mjs → platform-lifecycle-BH34I0rh.mjs} +1 -1
- package/dist/{platform-lifecycle-CPYY7E9B.mjs → platform-lifecycle-D9RdGub1.mjs} +110 -110
- package/dist/{platform-management-BOnGbMSM.mjs → platform-management-BRefdHGD.mjs} +27 -11
- package/dist/{platform-management-lXdgGgAM.mjs → platform-management-BfLW0Zlo.mjs} +1 -1
- package/dist/{platform-plans-config-CeydDSj0.mjs → platform-plans-config-Dx1agneU.mjs} +5 -6
- package/dist/{platform-recovery-noaALXnE.mjs → platform-recovery-DZuZGJtt.mjs} +5 -6
- package/dist/{platform-registry-B9mWX9LO.mjs → platform-registry-DZ_2Xuqd.mjs} +4 -6
- package/dist/platform-runtime-logs-CdJGnk3f.mjs +68 -0
- package/dist/{platform-setup-Ca53gtt0.mjs → platform-setup-Vw1AaUN8.mjs} +19 -7
- package/dist/{plugin-inference-CeiB6BG5.mjs → plugin-inference-CdLbxZL_.mjs} +16 -24
- package/dist/{prefetch-Bsc_Pb6c.mjs → prefetch-Dx2jIbtg.mjs} +20 -3
- package/dist/{prefetch-Ce6la4EI.d.mts → prefetch-NdNeubbH.d.mts} +7 -3
- package/dist/{prepare-D604Yiyr.mjs → prepare-BJW-f1f1.mjs} +13 -14
- package/dist/{prepare-BuOS18AM.mjs → prepare-BMGeKL16.mjs} +4 -5
- package/dist/prepare-BdxJJCMv.mjs +1 -0
- 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-DBYqAIbe.mjs → project-cmd-B_bUyZ3J.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-BjCLgTRC.mjs → project-team-MjT5K4rQ.mjs} +7 -8
- package/dist/{project-token-BB6PwaA9.mjs → project-token-BKHGwY3k.mjs} +7 -8
- package/dist/{project-tsconfig-CVvk6Z_e.mjs → project-tsconfig-Cf2NFjlM.mjs} +4 -6
- package/dist/{project-zero-trust-CWDh1P_t.mjs → project-zero-trust-Bzdd05-h.mjs} +7 -8
- package/dist/{protocol-DimNxVRr.mjs → protocol-COyySMki.mjs} +135 -113
- package/dist/{protocol-D5XDySYu.d.mts → protocol-CkwjASep.d.mts} +4 -6
- 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-DztLJ97X.mjs → provision-BbCzpbXs.mjs} +6 -7
- package/dist/{provision-DfxLCg-d.mjs → provision-DQF6Kw-6.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-D_pbzDyz.mjs → requests-daJmVpjk.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-CjfIYsJx.mjs → rollback-BgL0wY1J.mjs} +7 -8
- package/dist/{rolldown-runtime-3h0WiCiA.mjs → rolldown-runtime-uD8oG6U2.mjs} +1 -2
- package/dist/{route-types-DvEGmPif.mjs → route-types-CZc1YXjF.mjs} +80 -9
- package/dist/route-url-CRDF-I0I.mjs +57 -0
- package/dist/route-url-C_YIH_zO.d.mts +37 -0
- package/dist/routes-stub.d.mts +8 -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 +1 -1
- 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 +8 -11
- package/dist/runtime/routing.mjs +52 -32
- 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 +3 -4
- 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-X2rDDRNa.mjs} +49 -35
- package/dist/{secret-3X0PxmuX.mjs → secret-CPq-B_vp.mjs} +17 -15
- 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-DsQKz6lt.mjs} +9 -3
- 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-uAAjlsiW.mjs +82 -0
- package/dist/{validator-BTOu0fB0.mjs → validator-CTfmzZYb.mjs} +2 -5
- package/dist/{version-metadata-D2vfMQzv.mjs → version-metadata-C8hLzQkv.mjs} +4 -6
- package/dist/{worker-conditions-AWFRcFxR.mjs → worker-conditions-CBZ0RYsZ.mjs} +1 -2
- package/dist/{wrangler-I-scB_1t.mjs → wrangler-DESSbN8L.mjs} +6 -8
- package/dist/wrangler-DUB3MGHV.mjs +1 -0
- package/dist/{wrapper-BBl1rC32.mjs → wrapper-C9SUxoj7.mjs} +17 -14
- package/dist/{ws-B3ClMVDh.d.mts → ws-Dmjg5NH2.d.mts} +3 -5
- package/dist/{yarn-pnp-DLbEFMT0.mjs → yarn-pnp-DgWbE7z5.mjs} +2 -3
- package/docs/guide/database.md +4 -4
- package/docs/guide/deployment.md +1 -1
- package/docs/guide/edge/headers.md +4 -6
- package/docs/guide/edge/redirects.md +4 -4
- package/docs/guide/edge/rewrites.md +1 -1
- package/docs/guide/edge/static-assets.md +0 -10
- package/docs/guide/email/domains.md +3 -1
- package/docs/guide/email/receiving.md +4 -4
- package/docs/guide/email/sending.md +43 -13
- package/docs/guide/pages-routing/actions-and-forms.md +26 -9
- package/docs/guide/pages-routing/islands.md +5 -5
- package/docs/guide/pages-routing/layouts.md +16 -2
- package/docs/guide/pages-routing/loaders.md +5 -5
- package/docs/guide/pages-routing/markdown.md +7 -7
- package/docs/guide/pages-routing/overview.md +137 -27
- package/docs/guide/platform/administration/connected-apps.md +4 -2
- package/docs/guide/platform/administration/email.md +6 -8
- package/docs/guide/platform/installation/credentials.md +12 -10
- package/docs/guide/platform/installation/maintenance.md +18 -21
- package/docs/guide/platform/installation/prerequisites.md +1 -1
- package/docs/guide/platform/installation/setup.md +23 -2
- 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 +7 -7
- package/docs/guide/ssg.md +3 -3
- package/docs/guide/type-safety.md +84 -1
- package/docs/guide/typed-fetch.md +1 -1
- package/docs/guide/websockets.md +1 -1
- package/docs/integrations/cloudflare.md +2 -2
- package/docs/integrations/frameworks/analog.md +1 -1
- package/docs/integrations/frameworks/astro.md +17 -12
- package/docs/integrations/frameworks/nuxt.md +1 -1
- package/docs/integrations/frameworks/overview.md +2 -2
- 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 +1 -1
- package/docs/reference/api/deploy.md +6 -6
- package/docs/reference/api/pages.md +109 -50
- package/docs/reference/api/plugin.md +4 -4
- package/docs/reference/api/resources.md +4 -1
- package/docs/reference/api/rewrites.md +24 -3
- package/docs/reference/api/types.md +45 -0
- package/docs/reference/api.md +2 -2
- package/docs/reference/cli/database.md +15 -9
- package/docs/reference/cli/email.md +4 -2
- package/docs/reference/cli/platform-installation.md +6 -3
- package/docs/reference/cli/project.md +2 -2
- package/docs/reference/cli/secrets.md +3 -1
- package/docs/reference/cli/setup.md +4 -4
- package/docs/reference/cli.md +1 -1
- package/docs/reference/config.md +12 -2
- package/package.json +36 -32
- package/sandbox.Dockerfile +1 -1
- package/schema.json +4 -0
- package/skills/void/SKILL.md +5 -0
- package/dist/cf-build-output-bd8Uwv1P.mjs +0 -1
- package/dist/client-BZb9j66F.mjs +0 -1
- package/dist/collect-BWhkgtAn.mjs +0 -1
- package/dist/deploy-CX94CmKa.mjs +0 -2
- package/dist/discover-D4TPKo57.mjs +0 -1
- package/dist/gen-BhWBT4iu.mjs +0 -1
- package/dist/headers--vaK_chu.mjs +0 -226
- package/dist/help-qOZr3wng.mjs +0 -1
- package/dist/login-BAPmYnb7.mjs +0 -1
- package/dist/migrate-BIYTPQE6.mjs +0 -1
- package/dist/operator-cmd-CjazwOyb.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-DU-tOpS5.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/validation-error-Dg9Recn1.mjs +0 -49
- package/dist/wrangler-UnwdISay.mjs +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { n as readDeploymentPlatform } from "./project-
|
|
2
|
-
import { c as getToken, s as getSiteDomain } from "./auth-
|
|
3
|
-
import { H as outro, L as log } from "./dist-
|
|
4
|
-
import { r as PlatformClient } from "./client-
|
|
5
|
-
import { _ as tablePrefix, f as import_picocolors, i as dim, l as formatUrl, o as formatCount } from "./output-
|
|
6
|
-
|
|
1
|
+
import { n as readDeploymentPlatform } from "./project-CLwxcEdq.mjs";
|
|
2
|
+
import { c as getToken, s as getSiteDomain } from "./auth-Dy8svcqQ.mjs";
|
|
3
|
+
import { H as outro, L as log } from "./dist-D23AAMxT.mjs";
|
|
4
|
+
import { r as PlatformClient } from "./client-CoxPEhJq.mjs";
|
|
5
|
+
import { _ as tablePrefix, f as import_picocolors, i as dim, l as formatUrl, o as formatCount } from "./output-BCdLioKP.mjs";
|
|
6
|
+
// src/cli/projects.ts
|
|
7
7
|
async function runProjectsCommand(root) {
|
|
8
8
|
console.log();
|
|
9
9
|
const token = getToken(root);
|
|
@@ -33,84 +33,82 @@ async function runProjectsCommand(root) {
|
|
|
33
33
|
for (const line of lines) console.log(line);
|
|
34
34
|
outro(formatCount(projects.length, "project"));
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
//#region src/cli/project-cmd.ts
|
|
36
|
+
// src/cli/project-cmd.ts
|
|
38
37
|
async function runProjectCommand(root, args) {
|
|
39
38
|
const cloudflare = readDeploymentPlatform(root) === "cloudflare";
|
|
40
39
|
if (args.subcommand === "status") {
|
|
41
|
-
const { runListCommand } = await import("./list-
|
|
40
|
+
const { runListCommand } = await import("./list-BYSOo9fm.mjs");
|
|
42
41
|
return runListCommand(root, args.name || void 0);
|
|
43
42
|
}
|
|
44
43
|
if (args.subcommand === "link") {
|
|
45
44
|
if (cloudflare) throw new Error("project: Direct Cloudflare apps are identified by cloudflare.name in void.config.ts and do not need linking.");
|
|
46
|
-
const { runLink } = await import("./link-
|
|
45
|
+
const { runLink } = await import("./link-DAXOT-G_.mjs");
|
|
47
46
|
return runLink(root, args.name || void 0);
|
|
48
47
|
}
|
|
49
48
|
if (args.subcommand === "list") {
|
|
50
49
|
if (cloudflare) {
|
|
51
|
-
const { runListCommand } = await import("./list-
|
|
50
|
+
const { runListCommand } = await import("./list-BYSOo9fm.mjs");
|
|
52
51
|
return runListCommand(root);
|
|
53
52
|
}
|
|
54
53
|
return runProjectsCommand(root);
|
|
55
54
|
}
|
|
56
55
|
if (args.subcommand === "token") {
|
|
57
56
|
if (cloudflare) throw new Error("project: CI deploy credentials are available only for Void platform projects.");
|
|
58
|
-
const { runProjectTokenCommand } = await import("./project-token-
|
|
57
|
+
const { runProjectTokenCommand } = await import("./project-token-BKHGwY3k.mjs");
|
|
59
58
|
return runProjectTokenCommand(root, args);
|
|
60
59
|
}
|
|
61
60
|
if (args.subcommand === "team") {
|
|
62
61
|
if (args.action === "") {
|
|
63
|
-
const { printHelpPage } = await import("./help-
|
|
62
|
+
const { printHelpPage } = await import("./help-Ba8Dq5-r.mjs");
|
|
64
63
|
printHelpPage(["project", "team"]);
|
|
65
64
|
return;
|
|
66
65
|
}
|
|
67
66
|
const accountInvitationAction = args.action === "pending" || args.action === "accept" || args.action === "decline";
|
|
68
67
|
if (cloudflare && !accountInvitationAction) throw new Error("project: Teams are available only for projects hosted on a Void platform, not direct Cloudflare deployments.");
|
|
69
|
-
const { runProjectTeamCommand } = await import("./project-team-
|
|
68
|
+
const { runProjectTeamCommand } = await import("./project-team-MjT5K4rQ.mjs");
|
|
70
69
|
return runProjectTeamCommand(root, args);
|
|
71
70
|
}
|
|
72
71
|
if (args.subcommand === "zero-trust") {
|
|
73
72
|
if (cloudflare) throw new Error("project: Zero Trust overrides are available only for projects hosted on a Void platform.");
|
|
74
73
|
if (args.action === "") {
|
|
75
|
-
const { printHelpPage } = await import("./help-
|
|
74
|
+
const { printHelpPage } = await import("./help-Ba8Dq5-r.mjs");
|
|
76
75
|
printHelpPage(["project", "zero-trust"]);
|
|
77
76
|
return;
|
|
78
77
|
}
|
|
79
78
|
const action = args.action;
|
|
80
|
-
const { runProjectZeroTrustCommand } = await import("./project-zero-trust-
|
|
79
|
+
const { runProjectZeroTrustCommand } = await import("./project-zero-trust-Bzdd05-h.mjs");
|
|
81
80
|
return runProjectZeroTrustCommand(root, {
|
|
82
81
|
...args,
|
|
83
82
|
action
|
|
84
83
|
});
|
|
85
84
|
}
|
|
86
85
|
if (args.subcommand === "logs") {
|
|
87
|
-
const { runLogsCommand } = await import("./logs-
|
|
86
|
+
const { runLogsCommand } = await import("./logs-DE0weBsR.mjs");
|
|
88
87
|
return runLogsCommand(root, args.filter, args.range, args.deployment || void 0, args.level || void 0);
|
|
89
88
|
}
|
|
90
89
|
if (args.subcommand === "requests") {
|
|
91
90
|
if (cloudflare) throw new Error("project: Historical request analytics require the Void platform. Use `void project logs` for a live Cloudflare tail.");
|
|
92
|
-
const { runRequestsCommand } = await import("./requests-
|
|
91
|
+
const { runRequestsCommand } = await import("./requests-daJmVpjk.mjs");
|
|
93
92
|
return runRequestsCommand(root, args.range, args.status || void 0);
|
|
94
93
|
}
|
|
95
94
|
if (args.subcommand === "rollback") {
|
|
96
|
-
const { runRollbackCommand } = await import("./rollback-
|
|
95
|
+
const { runRollbackCommand } = await import("./rollback-BgL0wY1J.mjs");
|
|
97
96
|
return runRollbackCommand(root, args.deployId || void 0, args.platform);
|
|
98
97
|
}
|
|
99
98
|
if (args.subcommand === "cancel") {
|
|
100
99
|
if (cloudflare) throw new Error("project: Direct Cloudflare deploys activate only after readiness succeeds, so there is no remote build to cancel.");
|
|
101
|
-
const { runCancelDeployCommand } = await import("./cancel-deploy-
|
|
100
|
+
const { runCancelDeployCommand } = await import("./cancel-deploy-_itbbvY3.mjs");
|
|
102
101
|
return runCancelDeployCommand(root, args.deployId || void 0);
|
|
103
102
|
}
|
|
104
103
|
if (args.subcommand === "delete") {
|
|
105
104
|
if (cloudflare) throw new Error("project: Refusing to delete Cloudflare resources through this command. Direct deployments are additive and existing resources may be shared.");
|
|
106
|
-
const { runDeleteCommand } = await import("./delete-
|
|
105
|
+
const { runDeleteCommand } = await import("./delete-CY4L8fi2.mjs");
|
|
107
106
|
return runDeleteCommand(root, args.name || void 0, { force: args.force });
|
|
108
107
|
}
|
|
109
108
|
if (args.subcommand === "purge-cache") {
|
|
110
109
|
if (cloudflare) throw new Error("project: `void project purge-cache` is available only for projects hosted on a Void platform. For a direct Cloudflare deploy, redeploy or purge the configured ISR KV namespace.");
|
|
111
|
-
const { runPurgeCacheCommand } = await import("./cache-
|
|
110
|
+
const { runPurgeCacheCommand } = await import("./cache-2khBO1MR.mjs");
|
|
112
111
|
return runPurgeCacheCommand(root, args.projectSlug || void 0);
|
|
113
112
|
}
|
|
114
113
|
}
|
|
115
|
-
//#endregion
|
|
116
114
|
export { runProjectCommand };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as join, i as isAbsolute, o as normalize } from "./dist-
|
|
1
|
+
import { a as join, i as isAbsolute, o as normalize } from "./dist-DMYe8CZJ.mjs";
|
|
2
2
|
import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { createJiti } from "jiti";
|
|
5
|
-
|
|
5
|
+
// src/config-loader.ts
|
|
6
6
|
const LEGACY_CONFIG_FILE = "void.json";
|
|
7
7
|
const TYPED_CONFIG_FILE = "void.config.ts";
|
|
8
8
|
/** Evaluate a TypeScript config without requiring Void to be installed in the target project. */
|
|
@@ -43,8 +43,7 @@ function loadVoidConfig(root) {
|
|
|
43
43
|
throw new Error(`config: Invalid JSON in ${LEGACY_CONFIG_FILE}.`, { cause: error });
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
//#region src/project-paths.ts
|
|
46
|
+
// src/project-paths.ts
|
|
48
47
|
const SOURCE_CONVENTION_DIRECTORIES = [
|
|
49
48
|
"routes",
|
|
50
49
|
"pages",
|
|
@@ -126,5 +125,4 @@ function assertNoRootSourceConventionConflicts(paths) {
|
|
|
126
125
|
if (conflicts.length === 0) return;
|
|
127
126
|
throw new Error(`sourceDir: void.json sets "sourceDir": "${paths.sourceDir}", but convention path(s) also exist at the project root: ${conflicts.join(", ")}. Move them under "${paths.sourceDir}" or remove the root copy.`);
|
|
128
127
|
}
|
|
129
|
-
//#endregion
|
|
130
128
|
export { validateSourceDir as a, loadVoidConfig as c, resolveProjectPaths as i, readProjectPaths as n, TYPED_CONFIG_FILE as o, resolvePagesDir as r, loadTypedVoidConfigFile as s, assertNoRootSourceConventionConflicts as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as validateProjectSlug } from "./project-slug-CO6ci9XG.mjs";
|
|
@@ -4,5 +4,4 @@ function validateProjectSlug(value) {
|
|
|
4
4
|
if (!(slug.length === 1 ? /^[a-z0-9]$/.test(slug) : /^[a-z0-9][a-z0-9-]*[a-z0-9]$/.test(slug))) return "Slug must be lowercase alphanumeric with dashes.";
|
|
5
5
|
if (slug.length > 56) return `Slug must be at most 56 characters (it forms the email sender <slug>+noreply@).`;
|
|
6
6
|
}
|
|
7
|
-
//#endregion
|
|
8
7
|
export { validateProjectSlug as t };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as readProjectConfig } from "./project-
|
|
2
|
-
import { c as getToken, i as getAccountCredential } from "./auth-
|
|
3
|
-
import { H as outro, L as log } from "./dist-
|
|
4
|
-
import { c as platformErrorMessage, n as PlatformApiError, r as PlatformClient, s as parsePlatformErrorBody } from "./client-
|
|
5
|
-
import { h as sanitizeTerminalText, l as formatUrl, m as printSuccess, o as formatCount, p as note } from "./output-
|
|
6
|
-
import { r as requireProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-
|
|
7
|
-
|
|
1
|
+
import { r as readProjectConfig } from "./project-CLwxcEdq.mjs";
|
|
2
|
+
import { c as getToken, i as getAccountCredential } from "./auth-Dy8svcqQ.mjs";
|
|
3
|
+
import { H as outro, L as log } from "./dist-D23AAMxT.mjs";
|
|
4
|
+
import { c as platformErrorMessage, n as PlatformApiError, r as PlatformClient, s as parsePlatformErrorBody } from "./client-CoxPEhJq.mjs";
|
|
5
|
+
import { h as sanitizeTerminalText, l as formatUrl, m as printSuccess, o as formatCount, p as note } from "./output-BCdLioKP.mjs";
|
|
6
|
+
import { r as requireProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D0YNnJfm.mjs";
|
|
7
|
+
// src/cli/project-team.ts
|
|
8
8
|
function clean(value) {
|
|
9
9
|
return (value ?? "—").replace(/[\u0000-\u001f\u007f]/g, " ");
|
|
10
10
|
}
|
|
@@ -126,5 +126,4 @@ async function runProjectTeamCommand(root, args) {
|
|
|
126
126
|
await client.leaveProject(projectId);
|
|
127
127
|
printSuccess("Left the project.");
|
|
128
128
|
}
|
|
129
|
-
//#endregion
|
|
130
129
|
export { runProjectTeamCommand };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as readProjectConfig } from "./project-
|
|
2
|
-
import { c as getToken } from "./auth-
|
|
3
|
-
import { H as outro, L as log } from "./dist-
|
|
4
|
-
import { r as PlatformClient } from "./client-
|
|
5
|
-
import { _ as tablePrefix, i as dim, m as printSuccess } from "./output-
|
|
6
|
-
import { r as requireProjectBySlug } from "./resolve-project-
|
|
7
|
-
|
|
1
|
+
import { r as readProjectConfig } from "./project-CLwxcEdq.mjs";
|
|
2
|
+
import { c as getToken } from "./auth-Dy8svcqQ.mjs";
|
|
3
|
+
import { H as outro, L as log } from "./dist-D23AAMxT.mjs";
|
|
4
|
+
import { r as PlatformClient } from "./client-CoxPEhJq.mjs";
|
|
5
|
+
import { _ as tablePrefix, i as dim, m as printSuccess } from "./output-BCdLioKP.mjs";
|
|
6
|
+
import { r as requireProjectBySlug } from "./resolve-project-D0YNnJfm.mjs";
|
|
7
|
+
// src/cli/project-token.ts
|
|
8
8
|
async function resolveTarget(root, args) {
|
|
9
9
|
const humanToken = getToken(root);
|
|
10
10
|
if (!humanToken) throw new Error("project: Sign in with a human account before managing CI credentials.");
|
|
@@ -67,5 +67,4 @@ async function runProjectTokenCommand(root, args) {
|
|
|
67
67
|
}
|
|
68
68
|
if (!args.json) outro(`${slug} — project-scoped deploy access only`);
|
|
69
69
|
}
|
|
70
|
-
//#endregion
|
|
71
70
|
export { runProjectTokenCommand };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as join, n as dirname, s as relative } from "./dist-
|
|
2
|
-
import { n as readProjectPaths } from "./project-paths-
|
|
1
|
+
import { a as join, n as dirname, s as relative } from "./dist-DMYe8CZJ.mjs";
|
|
2
|
+
import { n as readProjectPaths } from "./project-paths-CdGv9Tmi.mjs";
|
|
3
3
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
|
-
|
|
4
|
+
// src/codegen/write-if-changed.ts
|
|
5
5
|
function writeFileIfChanged(path, content) {
|
|
6
6
|
let existing = null;
|
|
7
7
|
try {
|
|
@@ -14,8 +14,7 @@ function writeFileIfChanged(path, content) {
|
|
|
14
14
|
writeFileSync(path, content);
|
|
15
15
|
return true;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
//#region src/codegen/project-tsconfig.ts
|
|
17
|
+
// src/codegen/project-tsconfig.ts
|
|
19
18
|
/**
|
|
20
19
|
* Build the generated .void/tsconfig.json contents. Lists the generated
|
|
21
20
|
* declaration files so TypeScript discovers them via the `files` field
|
|
@@ -99,5 +98,4 @@ function syncAuthTypesInProjectTsconfig(root) {
|
|
|
99
98
|
tsconfig.files = existsSync(join(outDir, "auth.d.ts")) ? [...others, "auth.d.ts"] : others;
|
|
100
99
|
return writeFileIfChanged(tsconfigPath, JSON.stringify(tsconfig, null, 2) + "\n");
|
|
101
100
|
}
|
|
102
|
-
//#endregion
|
|
103
101
|
export { writeFileIfChanged as i, ensureProjectTsconfig as n, syncAuthTypesInProjectTsconfig as r, createProjectTsconfig as t };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as readProjectConfig } from "./project-
|
|
2
|
-
import { c as getToken } from "./auth-
|
|
3
|
-
import { H as outro, L as log } from "./dist-
|
|
4
|
-
import { r as PlatformClient } from "./client-
|
|
5
|
-
import { h as sanitizeTerminalText, m as printSuccess, p as note } from "./output-
|
|
6
|
-
import { r as requireProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-
|
|
7
|
-
|
|
1
|
+
import { r as readProjectConfig } from "./project-CLwxcEdq.mjs";
|
|
2
|
+
import { c as getToken } from "./auth-Dy8svcqQ.mjs";
|
|
3
|
+
import { H as outro, L as log } from "./dist-D23AAMxT.mjs";
|
|
4
|
+
import { r as PlatformClient } from "./client-CoxPEhJq.mjs";
|
|
5
|
+
import { h as sanitizeTerminalText, m as printSuccess, p as note } from "./output-BCdLioKP.mjs";
|
|
6
|
+
import { r as requireProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D0YNnJfm.mjs";
|
|
7
|
+
// src/cli/project-zero-trust.ts
|
|
8
8
|
async function resolveTarget(root, args) {
|
|
9
9
|
const token = getToken(root);
|
|
10
10
|
if (!token) throw new Error("project: Not logged in. Run `void account login` first.");
|
|
@@ -61,5 +61,4 @@ async function runProjectZeroTrustCommand(root, args) {
|
|
|
61
61
|
}
|
|
62
62
|
printSuccess(args.action === "protect" ? `${slug} is protected by Zero Trust.` : args.action === "public" ? `${slug} is public.` : `${slug} Zero Trust reconciled (${result.project.state}).`);
|
|
63
63
|
}
|
|
64
|
-
//#endregion
|
|
65
64
|
export { runProjectZeroTrustCommand };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { n as
|
|
2
|
-
import {
|
|
3
|
-
import { i as
|
|
4
|
-
import { i as resolveHead, n as renderHeadToString, r as renderHtmlAttrs, t as renderBodyAttrs } from "./head-
|
|
5
|
-
import { i as escapeScriptJson, r as serializePageData } from "./serialize-
|
|
6
|
-
|
|
1
|
+
import { a as executeComposedHandler, i as separateDeferred, n as DEFERRED, o as getHandlerComposition, t as ValidationError } from "./validation-error-uAAjlsiW.mjs";
|
|
2
|
+
import { n as isConvertedResponse } from "./response-HmNjB30w.mjs";
|
|
3
|
+
import { i as searchWithoutActionKey, n as hasActionKey } from "./action-key-XtKKbbsi.mjs";
|
|
4
|
+
import { i as resolveHead, n as renderHeadToString, r as renderHtmlAttrs, t as renderBodyAttrs } from "./head-5XPcnG-j.mjs";
|
|
5
|
+
import { i as escapeScriptJson, r as serializePageData } from "./serialize-DUuYuaY3.mjs";
|
|
6
|
+
// src/pages/protocol.ts
|
|
7
7
|
const POWERED_BY = { "X-Powered-By": "Void" };
|
|
8
8
|
const RENDER_ERROR_ASSET_TAGS_KEY = "__voidPageAssetTags";
|
|
9
9
|
/** Escape characters that are unsafe inside inline <script> tags to prevent XSS. */
|
|
@@ -82,9 +82,9 @@ function attachRenderErrorAssetTags(error, assetTags) {
|
|
|
82
82
|
});
|
|
83
83
|
throw error;
|
|
84
84
|
}
|
|
85
|
-
async function renderWithAssetTags(renderFn, pageObj, assetTags) {
|
|
85
|
+
async function renderWithAssetTags(renderFn, pageObj, assetTags, requestUrl) {
|
|
86
86
|
try {
|
|
87
|
-
return await renderFn(pageObj, assetTags);
|
|
87
|
+
return await renderFn(pageObj, assetTags, requestUrl);
|
|
88
88
|
} catch (error) {
|
|
89
89
|
attachRenderErrorAssetTags(error, assetTags);
|
|
90
90
|
}
|
|
@@ -107,7 +107,7 @@ function renderClientOnlyPage(pageObj, assetTags, renderFn) {
|
|
|
107
107
|
async function renderPageHtml(c, pageObj, componentId, renderMode, renderFn, getAssetTags) {
|
|
108
108
|
const assetTags = prepareAssetTags(await getAssetTags(c.req.raw, c.env, componentId));
|
|
109
109
|
return {
|
|
110
|
-
html: renderMode === "client" ? renderClientOnlyPage(pageObj, assetTags, renderFn) : await renderWithAssetTags(renderFn, pageObj, assetTags),
|
|
110
|
+
html: renderMode === "client" ? renderClientOnlyPage(pageObj, assetTags, renderFn) : await renderWithAssetTags(renderFn, pageObj, assetTags, c.req.url),
|
|
111
111
|
assetTags
|
|
112
112
|
};
|
|
113
113
|
}
|
|
@@ -133,8 +133,8 @@ async function extractProps(result) {
|
|
|
133
133
|
return result ?? {};
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
136
|
-
* Run a page loader. Responses from convertReturnValue
|
|
137
|
-
*
|
|
136
|
+
* Run a page loader and `render` its props. Responses from convertReturnValue
|
|
137
|
+
* (withValidator) always flow through to extractProps — they wrap plain return values
|
|
138
138
|
* (objects as 200 JSON, null/undefined as 204, strings as text/html) and must be
|
|
139
139
|
* unwrapped as page props.
|
|
140
140
|
*
|
|
@@ -142,13 +142,25 @@ async function extractProps(result) {
|
|
|
142
142
|
* 200s (file downloads, streams). JSON 200s are still extracted as props for
|
|
143
143
|
* backward compat with loaders using c.json().
|
|
144
144
|
*/
|
|
145
|
-
async function runLoader(handler, c) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
if (result
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
async function runLoader(handler, c, render) {
|
|
146
|
+
if (!handler) return render({});
|
|
147
|
+
return runPageHandler(handler, c, async (leaf) => {
|
|
148
|
+
const result = await leaf(c);
|
|
149
|
+
if (result instanceof Response && !isConvertedResponse(result)) {
|
|
150
|
+
const contentType = result.headers.get("content-type") || "";
|
|
151
|
+
if (result.status >= 300 || !contentType.includes("application/json")) return result;
|
|
152
|
+
}
|
|
153
|
+
return render(await extractProps(result));
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Per-route middleware from `defineHandler(middleware..., handler)` wraps the
|
|
158
|
+
* response `endpoint` builds from the leaf handler, as it wraps a route's
|
|
159
|
+
* response, so it sees and may edit the rendered page after `next()`.
|
|
160
|
+
*/
|
|
161
|
+
function runPageHandler(handler, c, endpoint) {
|
|
162
|
+
const composition = getHandlerComposition(handler);
|
|
163
|
+
return composition ? executeComposedHandler(c, composition.middlewares, () => endpoint(composition.leaf)) : endpoint(handler);
|
|
152
164
|
}
|
|
153
165
|
/** Flatten withValidator's { issues: [{ slot, issues: [{ message, path }] }] } into { field: message } */
|
|
154
166
|
function flattenValidationErrors(body) {
|
|
@@ -215,79 +227,75 @@ function streamDeferredResponse(initialChunk, deferredMap, c, contentType, dev,
|
|
|
215
227
|
/** Handle GET page request — run handler, return page object or SSR HTML */
|
|
216
228
|
async function handlePageGet(handler, headFn, c, componentId, renderFn, getAssetTags, configHead, options) {
|
|
217
229
|
const renderMode = options?.renderMode ?? "server";
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
-
for (const key of keys) resolvedProps[key] = obj[key];
|
|
230
|
+
return runLoader(handler, c, async (props) => {
|
|
231
|
+
const shared = c.get("shared") ?? {};
|
|
232
|
+
const pageHead = headFn ? headFn(c, props) : void 0;
|
|
233
|
+
const middlewareHead = c.get("headDefaults");
|
|
234
|
+
const head = resolveHead(configHead, middlewareHead, pageHead);
|
|
235
|
+
const { immediateProps, deferredMap } = separateDeferred(props);
|
|
236
|
+
const hasDeferred = Object.keys(deferredMap).length > 0;
|
|
237
|
+
const deferredKeys = {};
|
|
238
|
+
for (const [group, { keys }] of Object.entries(deferredMap)) for (const key of keys) deferredKeys[key] = group;
|
|
239
|
+
const pageObj = {
|
|
240
|
+
component: componentId,
|
|
241
|
+
props: immediateProps,
|
|
242
|
+
params: requestParams(c),
|
|
243
|
+
shared,
|
|
244
|
+
url: requestPathWithSearch(c),
|
|
245
|
+
errors: null,
|
|
246
|
+
...head && { head },
|
|
247
|
+
...hasDeferred && {
|
|
248
|
+
deferred: Object.keys(deferredMap),
|
|
249
|
+
deferredKeys
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
if (renderMode !== "island" && isPagesRequest(c)) {
|
|
253
|
+
if (c.req.header("purpose") === "prefetch" && hasDeferred) {
|
|
254
|
+
const resolvedProps = { ...immediateProps };
|
|
255
|
+
let deferredErrors;
|
|
256
|
+
await Promise.all(Object.entries(deferredMap).map(async ([group, { resolver, keys }]) => {
|
|
257
|
+
try {
|
|
258
|
+
const data = await resolver(c);
|
|
259
|
+
if (keys.length === 1) resolvedProps[keys[0]] = data ?? null;
|
|
260
|
+
else {
|
|
261
|
+
const obj = typeof data === "object" && data !== null ? data : {};
|
|
262
|
+
for (const key of keys) resolvedProps[key] = obj[key];
|
|
263
|
+
}
|
|
264
|
+
} catch (err) {
|
|
265
|
+
(deferredErrors ??= {})[group] = deferredErrorMessage(err, options?.dev === true);
|
|
266
|
+
for (const key of keys) delete resolvedProps[key];
|
|
256
267
|
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
+
}));
|
|
269
|
+
return pageJsonResponse(c, {
|
|
270
|
+
...pageObj,
|
|
271
|
+
props: resolvedProps,
|
|
272
|
+
deferred: void 0,
|
|
273
|
+
...deferredErrors && { deferredErrors }
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
if (!hasDeferred) return pageJsonResponse(c, pageObj);
|
|
277
|
+
c.header("X-VoidPages", "true");
|
|
278
|
+
const headers = new Headers(c.res.headers);
|
|
279
|
+
appendVary(headers, "X-VoidPages");
|
|
280
|
+
c.header("Vary", headers.get("Vary"));
|
|
281
|
+
return streamDeferredResponse(JSON.stringify(pageObj) + "\n", deferredMap, c, "application/x-ndjson", options?.dev === true, (group, data) => JSON.stringify({
|
|
282
|
+
__deferred: group,
|
|
283
|
+
data: data ?? null
|
|
284
|
+
}) + "\n", (group, error) => JSON.stringify({
|
|
285
|
+
__deferred: group,
|
|
286
|
+
error
|
|
287
|
+
}) + "\n");
|
|
268
288
|
}
|
|
269
|
-
|
|
270
|
-
c
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
error
|
|
280
|
-
}) + "\n");
|
|
281
|
-
}
|
|
282
|
-
const { html, assetTags } = await renderPageHtml(c, pageObj, componentId, renderMode, renderFn, getAssetTags);
|
|
283
|
-
if (!hasDeferred) return renderedResponse(c, html, "text/html; charset=utf-8", assetTags);
|
|
284
|
-
return streamDeferredResponse(html, deferredMap, c, "text/html; charset=utf-8", options?.dev === true, (group, data) => {
|
|
285
|
-
const g = safeJsonStringify(group);
|
|
286
|
-
return `\n<script>(function(d){window.__resolveDeferred?window.__resolveDeferred(${g},d):(window.__deferredQueue??=[]).push([${g},d])})(${safeJsonStringify(data)})<\/script>`;
|
|
287
|
-
}, (group, error) => {
|
|
288
|
-
const g = safeJsonStringify(group);
|
|
289
|
-
return `\n<script>(function(e){window.__rejectDeferred?window.__rejectDeferred(${g},e):(window.__deferredQueue??=[]).push([${g},0,e])})(${safeJsonStringify(error)})<\/script>`;
|
|
290
|
-
}, assetTags);
|
|
289
|
+
const { html, assetTags } = await renderPageHtml(c, pageObj, componentId, renderMode, renderFn, getAssetTags);
|
|
290
|
+
if (!hasDeferred) return renderedResponse(c, html, "text/html; charset=utf-8", assetTags);
|
|
291
|
+
return streamDeferredResponse(html, deferredMap, c, "text/html; charset=utf-8", options?.dev === true, (group, data) => {
|
|
292
|
+
const g = safeJsonStringify(group);
|
|
293
|
+
return `\n<script>(function(d){window.__resolveDeferred?window.__resolveDeferred(${g},d):(window.__deferredQueue??=[]).push([${g},d])})(${safeJsonStringify(data)})<\/script>`;
|
|
294
|
+
}, (group, error) => {
|
|
295
|
+
const g = safeJsonStringify(group);
|
|
296
|
+
return `\n<script>(function(e){window.__rejectDeferred?window.__rejectDeferred(${g},e):(window.__deferredQueue??=[]).push([${g},0,e])})(${safeJsonStringify(error)})<\/script>`;
|
|
297
|
+
}, assetTags);
|
|
298
|
+
});
|
|
291
299
|
}
|
|
292
300
|
function isSameOriginAction(request) {
|
|
293
301
|
const origin = new URL(request.url).origin;
|
|
@@ -307,9 +315,9 @@ function isSameOriginAction(request) {
|
|
|
307
315
|
async function handlePageMutation(mutationHandler, getHandler, headFn, c, componentId, renderFn, getAssetTags, configHead, options) {
|
|
308
316
|
if (!isSameOriginAction(c.req.raw)) return new Response("Cross-origin page actions are not allowed.", { status: 403 });
|
|
309
317
|
const renderMode = options?.renderMode ?? "server";
|
|
310
|
-
const shared = c.get("shared") ?? {};
|
|
311
|
-
const middlewareHead = c.get("headDefaults");
|
|
312
318
|
function buildMutationPageObj(props, errors) {
|
|
319
|
+
const shared = c.get("shared") ?? {};
|
|
320
|
+
const middlewareHead = c.get("headDefaults");
|
|
313
321
|
const pageHead = headFn ? headFn(c, props) : void 0;
|
|
314
322
|
const head = resolveHead(configHead, middlewareHead, pageHead);
|
|
315
323
|
return {
|
|
@@ -322,38 +330,52 @@ async function handlePageMutation(mutationHandler, getHandler, headFn, c, compon
|
|
|
322
330
|
...head && { head }
|
|
323
331
|
};
|
|
324
332
|
}
|
|
333
|
+
const rerenderErrors = /* @__PURE__ */ new WeakSet();
|
|
325
334
|
/** Re-run the GET loader and respond with the page, optionally carrying validation errors. */
|
|
326
335
|
async function respondWithPage(errors) {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
336
|
+
try {
|
|
337
|
+
return await runLoader(getHandler, c, async (props) => {
|
|
338
|
+
const pageObj = buildMutationPageObj(stripDeferred(props), errors);
|
|
339
|
+
if (isPagesRequest(c)) return pageJsonResponse(c, pageObj);
|
|
340
|
+
const { html, assetTags } = await renderPageHtml(c, pageObj, componentId, renderMode, renderFn, getAssetTags);
|
|
341
|
+
return renderedResponse(c, html, "text/html; charset=utf-8", assetTags);
|
|
342
|
+
});
|
|
343
|
+
} catch (e) {
|
|
344
|
+
if (e instanceof Error) rerenderErrors.add(e);
|
|
345
|
+
throw e;
|
|
346
|
+
}
|
|
333
347
|
}
|
|
334
348
|
function respondWithErrors(errors) {
|
|
335
349
|
if (renderMode === "island") return Promise.resolve(Response.json({ errors }, { status: 422 }));
|
|
336
350
|
return respondWithPage(errors);
|
|
337
351
|
}
|
|
338
|
-
|
|
352
|
+
/** Respond to the action's result: a redirect, an error, or the re-rendered page. */
|
|
353
|
+
async function respondToAction(leaf) {
|
|
354
|
+
let result;
|
|
355
|
+
try {
|
|
356
|
+
result = await leaf(c);
|
|
357
|
+
} catch (e) {
|
|
358
|
+
if (e instanceof ValidationError) return respondWithErrors(e.errors);
|
|
359
|
+
throw e;
|
|
360
|
+
}
|
|
361
|
+
if (result instanceof Response) {
|
|
362
|
+
const status = result.status;
|
|
363
|
+
if (status >= 300 && status < 400) return result;
|
|
364
|
+
if (status === 400) {
|
|
365
|
+
const body = await result.clone().json().catch(() => null);
|
|
366
|
+
if (Array.isArray(body?.issues)) return respondWithErrors(flattenValidationErrors(body));
|
|
367
|
+
return result;
|
|
368
|
+
}
|
|
369
|
+
if (status !== 204) return result;
|
|
370
|
+
}
|
|
371
|
+
if (renderMode === "island") return Response.json({ success: true });
|
|
372
|
+
return respondWithPage(null);
|
|
373
|
+
}
|
|
339
374
|
try {
|
|
340
|
-
|
|
375
|
+
return await runPageHandler(mutationHandler ?? (() => void 0), c, respondToAction);
|
|
341
376
|
} catch (e) {
|
|
342
|
-
if (e instanceof ValidationError) return respondWithErrors(e.errors);
|
|
377
|
+
if (e instanceof ValidationError && !rerenderErrors.has(e) && !c.finalized) return respondWithErrors(e.errors);
|
|
343
378
|
throw e;
|
|
344
379
|
}
|
|
345
|
-
if (result instanceof Response) {
|
|
346
|
-
const status = result.status;
|
|
347
|
-
if (status >= 300 && status < 400) return result;
|
|
348
|
-
if (status === 400) {
|
|
349
|
-
const body = await result.clone().json().catch(() => null);
|
|
350
|
-
if (Array.isArray(body?.issues)) return respondWithErrors(flattenValidationErrors(body));
|
|
351
|
-
return result;
|
|
352
|
-
}
|
|
353
|
-
if (status !== 204) return result;
|
|
354
|
-
}
|
|
355
|
-
if (renderMode === "island") return Response.json({ success: true });
|
|
356
|
-
return respondWithPage(null);
|
|
357
380
|
}
|
|
358
|
-
//#endregion
|
|
359
381
|
export { safeJsonStringify as i, handlePageGet as n, handlePageMutation as r, flattenValidationErrors as t };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { n as HeadDescriptor, t as HeadConfig } from "./head-
|
|
2
|
-
import { a as PageRenderMode, t as DevCssAsset } from "./types-
|
|
3
|
-
import { n as CloudBindings, r as CloudContext } from "./handler-
|
|
4
|
-
//#region src/pages/protocol.d.ts
|
|
1
|
+
import { n as HeadDescriptor, t as HeadConfig } from "./head-MeF_5M_3.mjs";
|
|
2
|
+
import { a as PageRenderMode, t as DevCssAsset } from "./types-agfx0alu.mjs";
|
|
3
|
+
import { n as CloudBindings, r as CloudContext } from "./handler-BR6Tvjkp.mjs";
|
|
5
4
|
/** Escape characters that are unsafe inside inline <script> tags to prevent XSS. */
|
|
6
5
|
declare function safeJsonStringify(value: unknown): string;
|
|
7
6
|
type PageObject = {
|
|
@@ -32,7 +31,7 @@ type AssetTags = {
|
|
|
32
31
|
devCss?: Array<DevCssAsset>;
|
|
33
32
|
devCssNonce?: string;
|
|
34
33
|
};
|
|
35
|
-
type RenderPage = (pageObj: PageObject, assetTags: AssetTags) => Promise<PageRenderResult>;
|
|
34
|
+
type RenderPage = (pageObj: PageObject, assetTags: AssetTags, requestUrl: string) => Promise<PageRenderResult>;
|
|
36
35
|
type GetAssetTags = (req: Request, env: CloudBindings, componentId: string) => Promise<AssetTags>;
|
|
37
36
|
/** Flatten withValidator's { issues: [{ slot, issues: [{ message, path }] }] } into { field: message } */
|
|
38
37
|
declare function flattenValidationErrors(body: unknown): Record<string, string>;
|
|
@@ -40,5 +39,4 @@ declare function flattenValidationErrors(body: unknown): Record<string, string>;
|
|
|
40
39
|
declare function handlePageGet(handler: PageHandler, headFn: PageHeadHandler, c: CloudContext, componentId: string, renderFn: RenderPage, getAssetTags: GetAssetTags, configHead?: HeadConfig, options?: PageRenderOptions): Promise<Response>;
|
|
41
40
|
/** Handle POST/PUT/PATCH/DELETE page request — run mutation, then re-run GET or redirect */
|
|
42
41
|
declare function handlePageMutation(mutationHandler: PageHandler, getHandler: PageHandler, headFn: PageHeadHandler, c: CloudContext, componentId: string, renderFn: RenderPage, getAssetTags: GetAssetTags, configHead?: HeadConfig, options?: PageRenderOptions): Promise<Response>;
|
|
43
|
-
//#endregion
|
|
44
42
|
export { handlePageMutation as a, handlePageGet as i, PageRenderResult as n, safeJsonStringify as o, flattenValidationErrors as r, PageObject as t };
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
//#region src/auth/providers.d.ts
|
|
2
1
|
declare const VOID_SOCIAL_AUTH_PROVIDERS: readonly ["apple", "atlassian", "cognito", "discord", "dropbox", "facebook", "figma", "github", "gitlab", "google", "huggingface", "kakao", "kick", "line", "linear", "linkedin", "microsoft", "naver", "notion", "paybin", "paypal", "polar", "railway", "reddit", "roblox", "salesforce", "slack", "spotify", "tiktok", "twitch", "twitter", "vercel", "vk", "zoom"];
|
|
3
2
|
declare const VOID_EMAIL_AUTH_PROVIDER = "email";
|
|
4
3
|
declare const VOID_AUTH_PROVIDERS: readonly [typeof VOID_EMAIL_AUTH_PROVIDER, ...typeof VOID_SOCIAL_AUTH_PROVIDERS];
|
|
5
4
|
type VoidAuthProvider = (typeof VOID_AUTH_PROVIDERS)[number];
|
|
6
|
-
//#endregion
|
|
7
5
|
export { VoidAuthProvider as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/auth/providers.ts
|
|
2
2
|
const VOID_SOCIAL_AUTH_PROVIDERS = [
|
|
3
3
|
"apple",
|
|
4
4
|
"atlassian",
|
|
@@ -61,5 +61,4 @@ function getVoidAuthProviderEnvNames(provider) {
|
|
|
61
61
|
clientSecret: `AUTH_${normalized}_CLIENT_SECRET`
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
//#endregion
|
|
65
64
|
export { isVoidAuthProvider as a, getVoidAuthProviderSettingEnvNames as i, VOID_EMAIL_AUTH_PROVIDER as n, isVoidSocialAuthProvider as o, getVoidAuthProviderEnvNames as r, VOID_AUTH_PROVIDERS as t };
|