void 0.26.1 → 0.28.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 +3 -1
- package/dist/{account-cmd-CfUXh_nU.mjs → account-cmd-Ci00cncT.mjs} +5 -5
- package/dist/{agents-B_pX_HmQ.mjs → agents-CuNtT0D_.mjs} +5 -2
- package/dist/{application-analysis-DKy02UY0.mjs → application-analysis-D72ZQfMZ.mjs} +118 -135
- package/dist/{application-routing-DQyUh_5S.mjs → application-routing-Dy589Vgn.mjs} +1 -2
- package/dist/atomic-write-Dq6R0BPN.mjs +18 -0
- package/dist/{auth-B5_tZLxT.mjs → auth-B6iOCjKI.mjs} +23 -56
- package/dist/{auth-link-D5RmKnzh.mjs → auth-link-DWr6Afao.mjs} +10 -10
- package/dist/{auth-migrations-BwHgeEsD.mjs → auth-migrations-Cgs0k6lS.mjs} +28 -5
- package/dist/{auth-router-Bap-pvbn.mjs → auth-router-DP14wVkZ.mjs} +4 -4
- package/dist/auth-wn6F8dB8.mjs +2 -0
- package/dist/base64-DVrOndmI.mjs +16 -0
- package/dist/{better-auth-shared-CPvWD3nG.d.mts → better-auth-shared-B74NJIus.d.mts} +8 -13
- package/dist/{better-auth-shared-DPpj8zxc.mjs → better-auth-shared-CMXlZG7W.mjs} +56 -68
- package/dist/{build-cmd-B58c8iS8.mjs → build-cmd-Cr3FJxv0.mjs} +5 -5
- package/dist/{cache-Bo52trKF.mjs → cache-D0Tt28cn.mjs} +5 -5
- package/dist/{cancel-deploy-BZNz3Q26.mjs → cancel-deploy-CJKvk7AN.mjs} +4 -4
- package/dist/{cf-access-TWNzXltp.mjs → cf-access-BM9G0lhO.mjs} +4 -3
- package/dist/{cf-access-ngGqZpHZ.mjs → cf-access-CWP4avfP.mjs} +3 -7
- package/dist/cf-build-output-2u583yJK.mjs +2 -0
- package/dist/{cf-build-output-DjvB_872.mjs → cf-build-output-Bc8i3dzE.mjs} +2 -2
- package/dist/cf-user-agent-ChjQp2MU.mjs +33 -0
- package/dist/cli/cli.mjs +198 -311
- package/dist/cli/cloudflare-operation-process.mjs +46 -14
- package/dist/cli/env-schema-probe.d.mts +5 -43
- package/dist/cli/env-schema-probe.mjs +14 -80
- package/dist/client-C1BjRn3g.mjs +2 -0
- package/dist/{client-C2Prx_Bi.mjs → client-DM9Kcf4e.mjs} +161 -415
- package/dist/{cloudflare-auth-CuxfF6OA.mjs → cloudflare-auth-CqFBDo52.mjs} +12 -39
- package/dist/{cloudflare-cmd-lHqNlJGW.mjs → cloudflare-cmd-CTrn-lXJ.mjs} +6 -5
- package/dist/{cloudflare-config-BmhBv3HV.mjs → cloudflare-config-DV60XFFK.mjs} +16 -28
- package/dist/{cloudflare-connect-2G3rL2rP.mjs → cloudflare-connect-BosmCNlq.mjs} +3 -3
- package/dist/{cloudflare-operations-CwI1bChl.mjs → cloudflare-operations-BKdSfNBN.mjs} +26 -34
- package/dist/{cloudflare-operations-BlYLlowZ.mjs → cloudflare-operations-Ds-lX3Ts.mjs} +1 -1
- package/dist/{cloudflare-process-2-TfIEzB.mjs → cloudflare-process-CeDWJRhj.mjs} +12 -7
- package/dist/collect-NUlJMpLY.mjs +2 -0
- package/dist/{collect-DiTn9yr6.mjs → collect-xjffdCdk.mjs} +1 -1
- package/dist/{config-CSa15FvD.d.mts → config-7qoq2p9v.d.mts} +2 -2
- package/dist/{config-CLYAosnQ.mjs → config-BEm9vRvS.mjs} +11 -5
- package/dist/{config-DiowPT80.mjs → config-Bx_1SpnO.mjs} +87 -177
- package/dist/config-CNnrSMYm.mjs +2 -0
- package/dist/{config-DPByhVck.mjs → config-D0GY5ItR.mjs} +1 -1
- package/dist/config-entry.d.mts +1 -1
- package/dist/{connect-X0MUA1gk.mjs → connect-nukQSoEO.mjs} +8 -8
- package/dist/{create-project-DxiyW6iX.mjs → create-project-D4APeBwX.mjs} +7 -7
- package/dist/{create-project-iwkbqiBU.mjs → create-project-DL7YXpjj.mjs} +1 -1
- package/dist/{db-XnVMHzoV.mjs → db-27RztQLy.mjs} +173 -263
- package/dist/{delete-esYlMiSJ.mjs → delete-BbsZFZIw.mjs} +5 -5
- package/dist/deploy-B06EQq4t.mjs +6009 -0
- package/dist/deploy-Db2ALnQP.mjs +3 -0
- package/dist/deploy-managed-static-CGswbcay.mjs +2277 -0
- package/dist/deploy-transport-BiicfoQW.mjs +180 -0
- package/dist/deploy.d.mts +10 -0
- package/dist/deploy.mjs +82 -0
- package/dist/dev-inbox-Rd6j_8vM.mjs +217 -0
- package/dist/discover-CTUiSsfG.mjs +2 -0
- package/dist/{discover-CkCYv9T_.mjs → discover-D2PGT63u.mjs} +2 -2
- package/dist/{dist-BVqXeR_h.mjs → dist-ipQi0Q8y.mjs} +2 -3
- package/dist/{domain-CbbBWhWE.mjs → domain-Bfq9n03H.mjs} +7 -22
- package/dist/{dotenv-BfU6eqFt.mjs → dotenv-CNazY3-w.mjs} +4 -16
- package/dist/{email-d_Aux1vM.mjs → email-BcjSyAL0.mjs} +4 -20
- package/dist/{email-CpuT42g7.mjs → email-DIwaQU4P.mjs} +99 -191
- package/dist/email-cloudflare-CH053RxK.mjs +1096 -0
- package/dist/email-protocol-D9nTvhCp.mjs +82 -0
- package/dist/{entry-CMAkqBmU.mjs → entry-ehmBvs5w.mjs} +2 -2
- package/dist/{env-BxocywBB.mjs → env-BJjULvL0.mjs} +2 -2
- package/dist/{env-DMA3cXZt.mjs → env-BhdWMrNy.mjs} +2 -13
- package/dist/{env-w9jOyGZn.mjs → env-C6ipBLp3.mjs} +8 -8
- package/dist/{env-public-DR7ZM6d-.d.mts → env-public-CCdykygU.d.mts} +6 -23
- package/dist/{env-raw-jZpP5n47.mjs → env-raw-Cklzcde3.mjs} +3 -20
- package/dist/{env-types-CwXgeMgL.mjs → env-types-DS2_y4X8.mjs} +2 -2
- package/dist/{env-validation-CrVNjsPm.mjs → env-validation-CTn-HhG1.mjs} +1 -1
- package/dist/env-validation-cE0zcmzO.mjs +486 -0
- package/dist/{gen-DtkQhvQg.mjs → gen-CnN1Xidx.mjs} +131 -253
- package/dist/gen-F8pSZnhc.mjs +2 -0
- package/dist/{generate-GDbL7sUr.mjs → generate-Dat0UTry.mjs} +38 -4
- package/dist/generate-Rii9klHB.mjs +2 -0
- package/dist/generated-wrangler-config-DeWj5F9Y.mjs +18 -0
- package/dist/{github-cmd-D_FsOFxq.mjs → github-cmd-BdkU4Nhe.mjs} +27 -71
- package/dist/{handler-BHAn2fZJ.mjs → handler-BZ1t7-Rv.mjs} +2 -2
- package/dist/{handler-CNAwjRcW.d.mts → handler-_PqY82xe.d.mts} +1 -1
- package/dist/{headers-DlfR78Nu.mjs → headers-Di1FsD3e.mjs} +26 -81
- package/dist/{help-CVFBTmBx.mjs → help-Bug7pyK_.mjs} +18 -10
- package/dist/help-s9q7LTcu.mjs +2 -0
- package/dist/{inbound-PfQDLXc5.mjs → inbound-DmkTQeWp.mjs} +71 -222
- package/dist/{inbound-CH5Mksyy.d.mts → inbound-brj2-TM5.d.mts} +19 -58
- package/dist/index.d.mts +2 -18
- package/dist/index.mjs +200 -496
- package/dist/{info-PYWwkWyt.mjs → info-CujPwtMe.mjs} +5 -5
- package/dist/{init-Bw-fRKGp.mjs → init-ZWOJvc-Z.mjs} +179 -388
- package/dist/isr-config-DPjXM8J2.mjs +194 -0
- package/dist/{link-DlPG8iX3.mjs → link-UEc7bnF4.mjs} +8 -8
- package/dist/{list-2GN7_ueV.mjs → list-CuWeOnzk.mjs} +6 -17
- package/dist/{live-CgQuTpqD.mjs → live-BxLX-JqJ.mjs} +19 -17
- package/dist/{live-Du8jXwOW.d.mts → live-DJONVlQK.d.mts} +1 -1
- package/dist/load-user-env-DD5qveNU.mjs +49 -0
- package/dist/{local-d1-ga5O_idV.mjs → local-d1-BM3p74mm.mjs} +6 -6
- package/dist/{login-D-Q4xw3Q.mjs → login-CZ2Cqa-D.mjs} +11 -11
- package/dist/login-DhK7o1oJ.mjs +2 -0
- package/dist/{logs-rd8J-OFh.mjs → logs-TihRcLTk.mjs} +5 -5
- package/dist/migrate-BgT-hmu8.mjs +2 -0
- package/dist/{migrate-NLsjBbuM.mjs → migrate-uFwojusJ.mjs} +69 -21
- package/dist/migration-handler-Cg0Y4EPu.mjs +470 -0
- package/dist/{migration-handler-DM4clYj5.d.mts → migration-handler-CwlEQUoo.d.mts} +17 -26
- package/dist/{mime-DxCznlJq.mjs → mime-srOklVVv.mjs} +92 -395
- package/dist/{node-DJicPvPj.mjs → node-DoKbo1SZ.mjs} +8 -24
- package/dist/{operator-args-BNsW5gfp.mjs → operator-args-UnE8Y2eK.mjs} +27 -26
- package/dist/{operator-auth-AzVLbrr3.mjs → operator-auth-Cr2zCc-J.mjs} +2 -2
- package/dist/{operator-client-BQtzyG-g.mjs → operator-client-C-ROjk1I.mjs} +4 -4
- package/dist/{operator-cmd-B6f6Cg9Z.mjs → operator-cmd-C5lCctnc.mjs} +8 -8
- package/dist/operator-cmd-Cjk5DiRx.mjs +2 -0
- package/dist/{output-C50ag2r3.mjs → output-FNHKw5Ac.mjs} +36 -5
- package/dist/{package-json-DXfiT1jV.mjs → package-json-BjYqR-So.mjs} +1 -1
- package/dist/pages/client.d.mts +1 -1
- package/dist/pages/client.mjs +91 -5
- package/dist/pages/index.d.mts +1 -2
- package/dist/pages/index.mjs +6 -6
- package/dist/pages/islands-plugin.mjs +5 -83
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +1 -1
- package/dist/pages/serialize.mjs +1 -1
- package/dist/{platform-args-BoZkWQnJ.mjs → platform-args-C6Mb_I3a.mjs} +34 -58
- package/dist/platform-args-Cm7x-fot.mjs +2 -0
- package/dist/{platform-auth-config-n603OANg.mjs → platform-auth-config-CJmNkFT2.mjs} +10 -11
- package/dist/{platform-auth-protection-zxDr0hWW.mjs → platform-auth-protection-D5wvsI-Y.mjs} +36 -26
- package/dist/{platform-auth-recovery-tw9lgtgE.mjs → platform-auth-recovery-D_0I3n-1.mjs} +8 -9
- package/dist/{platform-cmd-C00YM14r.mjs → platform-cmd-Cuj4oUVo.mjs} +1 -1
- package/dist/{platform-cmd-B8-bCb7t.mjs → platform-cmd-DxxZO6e5.mjs} +17 -16
- package/dist/{platform-discovery-BC0HCKYt.mjs → platform-discovery-CHhNs8Nn.mjs} +1 -1
- package/dist/{platform-domain-p0kobLV8.mjs → platform-domain-zLXnW1G_.mjs} +5 -5
- package/dist/{platform-lifecycle-D_QEY32D.mjs → platform-lifecycle-DOW-wLfx.mjs} +1398 -2043
- package/dist/{platform-lifecycle-vFqtNPPa.mjs → platform-lifecycle-_gfnjUBr.mjs} +1 -1
- package/dist/{platform-management-oi-SvI3f.mjs → platform-management-CYrLvTGH.mjs} +1 -1
- package/dist/{platform-management-BdYblvvE.mjs → platform-management-t7HKy4-U.mjs} +632 -124
- package/dist/{platform-plans-config-CjiFv5J4.mjs → platform-plans-config-CNH6zbPX.mjs} +15 -11
- package/dist/{platform-recovery-PvNS9Nl2.mjs → platform-recovery-DeucI7A9.mjs} +6 -9
- package/dist/{platform-registry-P387v42A.mjs → platform-registry-B9mWX9LO.mjs} +18 -19
- package/dist/{platform-setup-DVe42Ws7.mjs → platform-setup-CTf6MMT9.mjs} +19 -26
- package/dist/{plugin-inference-BlQbOL0P.mjs → plugin-inference-DsARdQKE.mjs} +18 -33
- package/dist/{prepare-Dq9hTIbo.mjs → prepare-C4zfwks4.mjs} +3 -3
- package/dist/{prepare-Do96654b.mjs → prepare-CSH9dKTI.mjs} +11 -13
- package/dist/prepare-dr9uxQSV.mjs +2 -0
- package/dist/{prerender-render-Ct20jftc.mjs → prerender-render-Bfsumdkv.mjs} +8 -2
- package/dist/prerender-render.d.mts +2 -0
- package/dist/prerender-render.mjs +2 -2
- package/dist/project-DiiOBZPF.mjs +2 -0
- package/dist/{project-cmd-ti8_yTcA.mjs → project-cmd-Dq75AXzy.mjs} +19 -19
- package/dist/{project-paths-GgcMozYz.mjs → project-paths-DMvEeSau.mjs} +9 -14
- package/dist/{project-DQstYTxO.mjs → project-rqDnVsJN.mjs} +8 -4
- package/dist/{project-team-CDPE1Tsg.mjs → project-team-B3_QcStG.mjs} +6 -6
- package/dist/{project-token-CkZ1cN0Z.mjs → project-token-CvsRvv2I.mjs} +5 -5
- package/dist/{project-tsconfig-CVJhNMxs.mjs → project-tsconfig-bveqhlYA.mjs} +3 -5
- package/dist/{project-zero-trust-DdjLR61k.mjs → project-zero-trust-D1ICiwN_.mjs} +5 -5
- package/dist/{protocol-BPZaNqBo.d.mts → protocol-4H7V_3Os.d.mts} +1 -1
- package/dist/{protocol-CfaUwNs8.mjs → protocol-RNP0u7UY.mjs} +9 -3
- package/dist/{provision-BfaLiWbj.mjs → provision-DDh7ITVS.mjs} +118 -865
- package/dist/{requests-DFAqyYy8.mjs → requests-3CL3BuZh.mjs} +4 -4
- package/dist/resolve-project-B9Hr0D3n.mjs +2 -0
- package/dist/resolve-project-C_Cu7E8a.mjs +48 -0
- package/dist/{rollback-BKYXBduI.mjs → rollback-Ce1d_0J9.mjs} +7 -17
- package/dist/{route-types-CbtsIeFn.mjs → route-types-IrBuwJ7u.mjs} +35 -70
- package/dist/routing-assets-VkrKIbxE.mjs +139 -0
- package/dist/{runner-9wjsSZx-.mjs → runner-B5huK2eC.mjs} +1 -1
- package/dist/{runner-DMBKSrRk.mjs → runner-DcVDrzuR.mjs} +7 -28
- package/dist/{runner-mysql-CEzKtmFb.mjs → runner-mysql-CCtyI0p6.mjs} +4 -3
- package/dist/runner-mysql-CaJq-hd6.mjs +2 -0
- package/dist/runner-pg-BJhFZZG4.mjs +2 -0
- package/dist/{runner-pg-DV8p_zjA.mjs → runner-pg-CPd-CB_F.mjs} +1 -1
- package/dist/runtime/ai.mjs +9 -22
- package/dist/runtime/better-auth-mysql.d.mts +2 -5
- package/dist/runtime/better-auth-mysql.mjs +6 -31
- package/dist/runtime/better-auth-pg.d.mts +2 -5
- package/dist/runtime/better-auth-pg.mjs +6 -32
- package/dist/runtime/better-auth.d.mts +2 -4
- package/dist/runtime/better-auth.mjs +9 -19
- package/dist/runtime/db.mjs +1 -1
- package/dist/runtime/durable.d.mts +16 -0
- package/dist/runtime/durable.mjs +26 -2
- package/dist/runtime/email/testing.d.mts +1 -1
- package/dist/runtime/email/testing.mjs +9 -23
- package/dist/runtime/email-protocol.d.mts +12 -0
- package/dist/runtime/email-protocol.mjs +2 -70
- package/dist/runtime/email.d.mts +1 -1
- package/dist/runtime/email.mjs +79 -221
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/env-public.mjs +12 -38
- package/dist/runtime/env.d.mts +1 -12
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +1 -1
- package/dist/runtime/isr.mjs +1 -1
- package/dist/runtime/kv.mjs +1 -1
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-server.mjs +1 -16
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/live.mjs +1 -1
- package/dist/runtime/migration-handler-mysql.d.mts +2 -2
- package/dist/runtime/migration-handler-mysql.mjs +3 -2
- package/dist/runtime/migration-handler-pg.d.mts +2 -2
- package/dist/runtime/migration-handler-pg.mjs +1 -1
- package/dist/runtime/migration-handler.d.mts +2 -2
- package/dist/runtime/migration-handler.mjs +2 -470
- package/dist/runtime/queues.mjs +1 -1
- package/dist/runtime/remote/binding-handler.mjs +62 -62
- package/dist/runtime/remote/index.mjs +16 -77
- package/dist/runtime/routing.d.mts +1 -4
- package/dist/runtime/routing.mjs +82 -218
- package/dist/runtime/sandbox-container.d.mts +2 -2
- package/dist/runtime/sandbox-container.mjs +2 -2
- package/dist/runtime/sandbox.d.mts +2 -2
- package/dist/runtime/sandbox.mjs +13 -6
- package/dist/runtime/storage.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -3
- package/dist/runtime/ws-server.mjs +6 -28
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/{sandbox-container-Bo0eiFKz.d.mts → sandbox-container-ChQRum-j.d.mts} +3 -1
- package/dist/{sandbox-container-C6ItmVuN.mjs → sandbox-container-DBKIqDEK.mjs} +12 -1
- package/dist/{sandbox-C5LFoJMf.d.mts → sandbox-q3waMc2T.d.mts} +1 -1
- package/dist/{scan-C3uDzz6J.mjs → scan-C0BMdmEd.mjs} +84 -7
- package/dist/{secret-BAt2KMmO.mjs → secret-B5J8bBsI.mjs} +62 -80
- package/dist/{serialize-BPvnNQuA.mjs → serialize-BtQyaYoC.mjs} +10 -4
- package/dist/{skills-BgVMvQdy.mjs → skills-BJsan98C.mjs} +2 -2
- package/dist/{subcommand-prompt-BSlnD1fI.mjs → subcommand-prompt-gQ-NDA-u.mjs} +38 -43
- package/dist/sveltekit.mjs +1 -1
- package/dist/validate-C9xtFOYR.mjs +2 -0
- package/dist/{validate-C9qJArv7.mjs → validate-CheZGRE7.mjs} +4 -8
- package/dist/version-metadata-DIrqEHQo.mjs +73 -0
- package/dist/{wrangler-D9KTuqnv.mjs → wrangler-BYs07Rxy.mjs} +119 -378
- package/dist/{ws-CChrrAU-.d.mts → ws-aKVYB-fA.d.mts} +1 -1
- package/dist/yarn-pnp-DLbEFMT0.mjs +92 -0
- package/docs/guide/auth.md +2 -0
- package/docs/guide/database/postgresql.md +2 -0
- package/docs/guide/database.md +2 -0
- package/docs/guide/deployment.md +2 -2
- package/docs/guide/durable-state.md +24 -0
- package/docs/guide/platform/administration/access.md +5 -1
- package/docs/guide/platform/administration/connected-apps.md +55 -0
- package/docs/guide/platform/installation/credentials.md +3 -1
- package/docs/guide/platform/installation/first-deployment.md +1 -1
- package/docs/guide/project-collaboration.md +1 -1
- package/docs/guide/quickstart.md +2 -0
- package/docs/guide/sandboxes.md +2 -0
- package/docs/reference/api/deploy.md +23 -0
- package/docs/reference/api/pages.md +2 -0
- package/docs/reference/api.md +2 -1
- package/docs/reference/cli/auth.md +1 -1
- package/docs/reference/cli/database.md +9 -3
- package/docs/reference/cli/deploy.md +1 -1
- package/docs/reference/cli/platform-installation.md +1 -1
- package/docs/reference/cli/setup.md +2 -0
- package/package.json +14 -17
- package/skills/void/SKILL.md +4 -2
- package/dist/auth-BgX2qYSY.mjs +0 -2
- package/dist/cf-build-output-H9a97vME.mjs +0 -2
- package/dist/client-By4JjMw_.mjs +0 -2
- package/dist/collect-DLyFDiKW.mjs +0 -2
- package/dist/config-5r-YpMC-.mjs +0 -2
- package/dist/config-B_ggY-IO.mjs +0 -89
- package/dist/config-BtSFvXZx.mjs +0 -2
- package/dist/config-write-AHGesphx.mjs +0 -61
- package/dist/deploy-BsEvnlJl.mjs +0 -10455
- package/dist/deploy-C1d-YTfp.mjs +0 -2
- package/dist/dev-inbox-CK-UuPob.mjs +0 -297
- package/dist/discover-EDUf6JJw.mjs +0 -2
- package/dist/dist-_UUlL6bg.mjs +0 -2
- package/dist/env-validation-Dxdx_5wo.mjs +0 -951
- package/dist/gen-dA9hW7AV.mjs +0 -2
- package/dist/head-client-DzmJGN4C.mjs +0 -90
- package/dist/help-DzKUrQvk.mjs +0 -2
- package/dist/login-Dc-wuTDq.mjs +0 -2
- package/dist/migrate-BHp07yJE.mjs +0 -2
- package/dist/operator-cmd-Cwn50lOV.mjs +0 -2
- package/dist/pages/head-client.d.mts +0 -13
- package/dist/pages/head-client.mjs +0 -2
- package/dist/platform-args-DYgITk0D.mjs +0 -2
- package/dist/prepare-DRUV-g3X.mjs +0 -2
- package/dist/project-BiaPQ7ur.mjs +0 -2
- package/dist/provision-Wu9ZBk9L.mjs +0 -2
- package/dist/resolve-project-BIeYs9Cw.mjs +0 -2
- package/dist/resolve-project-CP8rZs_p.mjs +0 -28
- package/dist/runner-mysql-CkFqZ6CE.mjs +0 -2
- package/dist/runner-pg-BGYRFdRp.mjs +0 -2
- package/dist/runtime/env-helpers.d.mts +0 -2
- package/dist/runtime/env-helpers.mjs +0 -2
- package/dist/validate-BJr9LfXy.mjs +0 -2
- package/dist/yarn-pnp-CUX_iTPA.mjs +0 -188
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { EMAIL_PROTOCOL_VERSION, encodeEmailActions, readEmailEnvelope } from "@void/platform/email-protocol";
|
|
2
|
+
//#region src/runtime/email-protocol.ts
|
|
3
|
+
const RECEIPT_VERIFICATION_DEADLINE_MS = 5e3;
|
|
4
|
+
const MAX_RECEIPT_VERIFICATION_BYTES = 2048;
|
|
5
|
+
const decoder = new TextDecoder("utf-8", {
|
|
6
|
+
fatal: true,
|
|
7
|
+
ignoreBOM: false
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Settle `run()` within `ms`, or reject with `onTimeout()`. `run` is not
|
|
11
|
+
* called when `ms` has already elapsed.
|
|
12
|
+
*/
|
|
13
|
+
async function withTimeout(ms, run, onTimeout) {
|
|
14
|
+
if (ms <= 0) throw onTimeout();
|
|
15
|
+
let timer;
|
|
16
|
+
try {
|
|
17
|
+
return await Promise.race([run(), new Promise((_, reject) => {
|
|
18
|
+
timer = setTimeout(() => reject(onTimeout()), ms);
|
|
19
|
+
})]);
|
|
20
|
+
} finally {
|
|
21
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Read a JSON body of at most `maxBytes`, each read bounded by `race`. A
|
|
26
|
+
* declared length must be exact.
|
|
27
|
+
*/
|
|
28
|
+
async function readBoundedJson(response, maxBytes, race, { rejectEncoding = false } = {}) {
|
|
29
|
+
const declared = response.headers.get("content-length");
|
|
30
|
+
if (rejectEncoding && response.headers.has("content-encoding") || declared !== null && (!/^\d+$/.test(declared) || Number(declared) > maxBytes)) {
|
|
31
|
+
response.body?.cancel().catch(() => {});
|
|
32
|
+
throw new Error("email response refused before reading");
|
|
33
|
+
}
|
|
34
|
+
const reader = response.body?.getReader();
|
|
35
|
+
if (!reader) throw new Error("email response is empty");
|
|
36
|
+
const bytes = new Uint8Array(maxBytes);
|
|
37
|
+
let size = 0;
|
|
38
|
+
try {
|
|
39
|
+
for (;;) {
|
|
40
|
+
const chunk = await race(() => reader.read());
|
|
41
|
+
if (chunk.done) break;
|
|
42
|
+
if (size + chunk.value.byteLength > maxBytes) throw new Error("email response too large");
|
|
43
|
+
bytes.set(chunk.value, size);
|
|
44
|
+
size += chunk.value.byteLength;
|
|
45
|
+
}
|
|
46
|
+
} finally {
|
|
47
|
+
reader.cancel().catch(() => {});
|
|
48
|
+
try {
|
|
49
|
+
reader.releaseLock();
|
|
50
|
+
} catch {}
|
|
51
|
+
}
|
|
52
|
+
if (declared !== null && size !== Number(declared)) throw new Error("email response length mismatch");
|
|
53
|
+
return JSON.parse(decoder.decode(bytes.subarray(0, size)));
|
|
54
|
+
}
|
|
55
|
+
/** Validate a gateway receipt without exposing the signing secret to the tenant worker. */
|
|
56
|
+
async function verifyEmailReceiptThroughProxy(proxy, projectToken, input) {
|
|
57
|
+
const deadline = Date.now() + RECEIPT_VERIFICATION_DEADLINE_MS;
|
|
58
|
+
const beforeDeadline = (run) => withTimeout(deadline - Date.now(), run, () => /* @__PURE__ */ new Error("email receipt verification timeout"));
|
|
59
|
+
const controller = new AbortController();
|
|
60
|
+
let response;
|
|
61
|
+
try {
|
|
62
|
+
response = await beforeDeadline(() => proxy.fetch("https://proxy/email/verify-receipt", {
|
|
63
|
+
method: "POST",
|
|
64
|
+
headers: {
|
|
65
|
+
"content-type": "application/json",
|
|
66
|
+
"x-void-internal": projectToken
|
|
67
|
+
},
|
|
68
|
+
body: JSON.stringify(input),
|
|
69
|
+
signal: controller.signal
|
|
70
|
+
}));
|
|
71
|
+
if (!response.ok) return false;
|
|
72
|
+
const body = await readBoundedJson(response, MAX_RECEIPT_VERIFICATION_BYTES, beforeDeadline, { rejectEncoding: true });
|
|
73
|
+
return !!body && typeof body === "object" && !Array.isArray(body) && body.valid === true;
|
|
74
|
+
} catch {
|
|
75
|
+
return false;
|
|
76
|
+
} finally {
|
|
77
|
+
controller.abort();
|
|
78
|
+
response?.body?.cancel().catch(() => {});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
82
|
+
export { verifyEmailReceiptThroughProxy as a, readEmailEnvelope as i, encodeEmailActions as n, withTimeout as o, readBoundedJson as r, EMAIL_PROTOCOL_VERSION as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as join,
|
|
2
|
-
import { n as readProjectPaths } from "./project-paths-
|
|
1
|
+
import { a as join, s as relative } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
+
import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
|
|
3
3
|
import { n as isIdentifier } from "./ast-CPGPjb0V.mjs";
|
|
4
4
|
import { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
import { parseSync } from "vite";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as join } from "./dist-
|
|
2
|
-
import { t as parseDotenvFile } from "./dotenv-
|
|
1
|
+
import { a as join } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
+
import { t as parseDotenvFile } from "./dotenv-CNazY3-w.mjs";
|
|
3
3
|
import { readdirSync } from "node:fs";
|
|
4
4
|
//#region src/shared/env.ts
|
|
5
5
|
/** Void's single local dotenv file. It is never a production configuration source. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as getRawRuntimeEnv, i as envContext, n as INTERNAL_BINDING_PREFIXES, o as isIsrActive, r as asEnv, t as INTERNAL_BINDING_EXACT_NAMES } from "./env-raw-
|
|
1
|
+
import { a as getRawRuntimeEnv, i as envContext, n as INTERNAL_BINDING_PREFIXES, o as isIsrActive, r as asEnv, t as INTERNAL_BINDING_EXACT_NAMES } from "./env-raw-Cklzcde3.mjs";
|
|
2
2
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
3
|
//#region src/runtime/env.ts
|
|
4
4
|
/**
|
|
@@ -28,18 +28,7 @@ function withRuntimeEnv(env, fn) {
|
|
|
28
28
|
const scope = { resources: /* @__PURE__ */ new Map() };
|
|
29
29
|
return envContext.run(resolved, () => runtimeRequestContext.run(scope, fn));
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Shared internal-binding predicate. A binding is framework-internal — and must
|
|
33
|
-
* never be exposed to user code — when it carries an internal prefix
|
|
34
|
-
* (`__VOID_`, `__PROJECT_`; always hidden) or is an exact-name internal (e.g.
|
|
35
|
-
* `ISR_CACHE`; hidden ONLY while ISR is active for the isolate). `rawEnv` is the
|
|
36
|
-
* unfiltered runtime env, consulted via {@link isIsrActive} to gate the
|
|
37
|
-
* exact-name check so a non-ISR app's own `ISR_CACHE` binding stays visible —
|
|
38
|
-
* matching the build-time `isr` gate on the generated `c.env` filter.
|
|
39
|
-
*
|
|
40
|
-
* Single source of truth for the runtime `env` filter here and the public
|
|
41
|
-
* `void/env` proxy (`env-public.ts`).
|
|
42
|
-
*/
|
|
31
|
+
/** Whether `name` is a framework binding hidden from user code; `rawEnv` is the unfiltered env. */
|
|
43
32
|
function isInternalBinding(name, rawEnv) {
|
|
44
33
|
if (INTERNAL_BINDING_PREFIXES.some((p) => name.startsWith(p))) return true;
|
|
45
34
|
return isIsrActive(rawEnv) && INTERNAL_BINDING_EXACT_NAMES.includes(name);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { a as join } from "./dist-
|
|
2
|
-
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-
|
|
3
|
-
import { c as getToken } from "./auth-
|
|
1
|
+
import { a as join } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
+
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-rqDnVsJN.mjs";
|
|
3
|
+
import { c as getToken } from "./auth-B6iOCjKI.mjs";
|
|
4
4
|
import { H as outro, L as log } from "./dist-D3m88sjf.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { r as generateEnvTypes, t as findEnvFile } from "./env-types-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { m as printSuccess, p as note } from "./output-FNHKw5Ac.mjs";
|
|
6
|
+
import { r as generateEnvTypes, t as findEnvFile } from "./env-types-DS2_y4X8.mjs";
|
|
7
|
+
import { r as PlatformClient } from "./client-DM9Kcf4e.mjs";
|
|
8
|
+
import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-cE0zcmzO.mjs";
|
|
9
9
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
10
10
|
//#region src/cli/env.ts
|
|
11
11
|
async function runEnvCommand(root, args) {
|
|
@@ -25,7 +25,7 @@ async function runCheck(root, useRemoteSecrets) {
|
|
|
25
25
|
const platform = readDeploymentPlatform(root);
|
|
26
26
|
if (platform === "none") throw new Error("env: Deployment is disabled. Run `void init` to choose a platform.");
|
|
27
27
|
if (platform === "cloudflare") {
|
|
28
|
-
const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-
|
|
28
|
+
const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-Ds-lX3Ts.mjs");
|
|
29
29
|
remoteSecrets = await listCloudflareSecrets(resolveCloudflareOperationContext(root));
|
|
30
30
|
} else {
|
|
31
31
|
const token = getToken(root);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as VoidPlatformSandbox } from "./sandbox-
|
|
1
|
+
import { l as VoidPlatformSandbox } from "./sandbox-q3waMc2T.mjs";
|
|
2
2
|
import { t as StandardSchemaV1 } from "./standard-schema-Fo_vCAZh.mjs";
|
|
3
3
|
//#region src/runtime/env-public.d.ts
|
|
4
4
|
type AnyValidator = StandardSchemaV1<unknown, unknown>;
|
|
@@ -26,21 +26,10 @@ type InferEnv<S extends AnySchema> = { readonly [K in keyof S]: StandardSchemaV1
|
|
|
26
26
|
*/
|
|
27
27
|
declare function defineEnv<S extends AnySchema>(schema: S): InferEnv<S>;
|
|
28
28
|
/**
|
|
29
|
-
* Internal: validate the
|
|
30
|
-
* the
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* Spliced into the generated worker entry by `compileWorkerEntry`. Cached
|
|
35
|
-
* after the first call so subsequent requests pay no cost.
|
|
36
|
-
*
|
|
37
|
-
* Async lifecycle: this function awaits any async Standard Schema
|
|
38
|
-
* validators (zod `refine`, arktype async narrows, etc.) and seeds the
|
|
39
|
-
* per-key cache with the resolved values. Subsequent reads via `env.X`
|
|
40
|
-
* hit the sync cache — async work only happens here, at boot. If a user
|
|
41
|
-
* accesses `env.X` for a key with an async validator *before* this
|
|
42
|
-
* function has run (e.g. during module-top-level code), the proxy will
|
|
43
|
-
* throw with guidance pointing back to this boot-time pre-validation.
|
|
29
|
+
* Internal: validate the whole schema against the worker env once per isolate,
|
|
30
|
+
* from the generated worker entry. Catches remote-secret values the deploy CLI
|
|
31
|
+
* cannot see. Async validators are awaited here and their values cached, so
|
|
32
|
+
* later synchronous `env.X` reads can serve them.
|
|
44
33
|
*/
|
|
45
34
|
declare function _validateEnvOnce(envValues: unknown): Promise<void>;
|
|
46
35
|
/** Internal: framework-only access to the registered schema (for plugin/CLI). */
|
|
@@ -73,13 +62,7 @@ declare class EnvValidationError extends Error {
|
|
|
73
62
|
/**
|
|
74
63
|
* Typed env proxy. Reads from the runtime env, validating declared keys
|
|
75
64
|
* on first access and passing through bindings / unknown keys unchanged.
|
|
76
|
-
*
|
|
77
|
-
* Sync-only: the `get` trap must be synchronous, so validators that return
|
|
78
|
-
* a `Promise` cannot be awaited here. For async Standard Schema validators,
|
|
79
|
-
* `_validateEnvOnce()` pre-resolves them at worker boot and seeds the
|
|
80
|
-
* per-env cache; property reads then serve the cached value synchronously.
|
|
81
|
-
* If an async validator is encountered here without a prior pre-validation,
|
|
82
|
-
* the trap throws with guidance on how to resolve it.
|
|
65
|
+
* Async validators must be resolved first by `_validateEnvOnce()`.
|
|
83
66
|
*/
|
|
84
67
|
declare const env: ValidatedEnv;
|
|
85
68
|
/** Aggregate report from validating an entire env object against the schema. */
|
|
@@ -9,28 +9,11 @@ import { AsyncLocalStorage } from "node:async_hooks";
|
|
|
9
9
|
/** Prefixes for platform-internal bindings that must be hidden from user code. */
|
|
10
10
|
const INTERNAL_BINDING_PREFIXES = ["__VOID_", "__PROJECT_"];
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* binding name, but it is a framework internal — route handlers read the ISR
|
|
15
|
-
* cache through `handleIsr`/`revalidate()` on the raw env, never via `c.env` or
|
|
16
|
-
* the public `void/env` API. Single source of truth shared by the generated
|
|
17
|
-
* `c.env` filter (`router/compile.ts`) and the runtime `env` filter (`env.ts`).
|
|
18
|
-
*
|
|
19
|
-
* Unlike the prefix internals, these are hidden ONLY when ISR is active for the
|
|
20
|
-
* isolate (see {@link isIsrActive}). In a non-ISR app, `ISR_CACHE` is an
|
|
21
|
-
* ordinary user binding and stays visible everywhere — matching the build-time
|
|
22
|
-
* `isr` gate on the generated `c.env` filter.
|
|
12
|
+
* Framework bindings hidden from user code only while ISR is active, so a non-ISR
|
|
13
|
+
* app keeps its own `ISR_CACHE`. Shared with the generated `c.env` filter.
|
|
23
14
|
*/
|
|
24
15
|
const INTERNAL_BINDING_EXACT_NAMES = ["ISR_CACHE"];
|
|
25
|
-
/**
|
|
26
|
-
* ISR is active for this isolate iff the framework has stamped the compile-time
|
|
27
|
-
* deployment id onto the raw env (`__VOID_ISR_DEPLOYMENT_ID`). The generated
|
|
28
|
-
* worker entry stamps it at the top of `fetch()` (and in cron/queue handlers)
|
|
29
|
-
* only for ISR-emitting builds, so its presence is a reliable runtime signal
|
|
30
|
-
* that `ISR_CACHE` should be treated as a framework internal. The id itself is a
|
|
31
|
-
* `__VOID_`-prefixed binding that is always hidden and framework-controlled, so
|
|
32
|
-
* a user cannot forge it.
|
|
33
|
-
*/
|
|
16
|
+
/** Only ISR builds stamp the `__VOID_ISR_DEPLOYMENT_ID` binding onto the raw env. */
|
|
34
17
|
function isIsrActive(rawEnv) {
|
|
35
18
|
return rawEnv.__VOID_ISR_DEPLOYMENT_ID != null;
|
|
36
19
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as readProjectPaths } from "./project-paths-
|
|
1
|
+
import { s as relative } from "./dist-ipQi0Q8y.mjs";
|
|
2
|
+
import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
|
|
3
3
|
import { i as voidWarn } from "./log-vqY3pqwI.mjs";
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
//#region src/codegen/env-types.ts
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-
|
|
1
|
+
import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-cE0zcmzO.mjs";
|
|
2
2
|
export { SelfHostSchemaError, computeInvalidEmittedKeys, deriveSelfHostSchemaFacts, readEmittedWorkerVars };
|