void 0.25.0 → 0.26.1
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/AGENTS_TEMPLATE.md +1 -3
- package/README.md +19 -9
- package/dist/{account-cmd-DcR1ywt8.mjs → account-cmd-CfUXh_nU.mjs} +8 -7
- package/dist/{application-analysis-BVsVqc11.mjs → application-analysis-DKy02UY0.mjs} +21 -32
- package/dist/{application-routing-B7QEjqSR.mjs → application-routing-DQyUh_5S.mjs} +1 -1
- package/dist/{auth-7wuZ5ob8.mjs → auth-B5_tZLxT.mjs} +9 -9
- package/dist/{auth-CdgZ9uag.mjs → auth-BgX2qYSY.mjs} +1 -1
- package/dist/{auth-link-Z6E5DYvM.mjs → auth-link-D5RmKnzh.mjs} +5 -5
- package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
- package/dist/{auth-router-BdM4avI8.mjs → auth-router-Bap-pvbn.mjs} +6 -19
- package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
- package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
- package/dist/{build-cmd-CEE7D-hM.mjs → build-cmd-B58c8iS8.mjs} +8 -7
- package/dist/{cache-TcZnBLtH.mjs → cache-Bo52trKF.mjs} +8 -8
- package/dist/{cancel-deploy-CYoZmcmR.mjs → cancel-deploy-BZNz3Q26.mjs} +6 -5
- package/dist/{cf-access-AHKBzmuu.mjs → cf-access-ngGqZpHZ.mjs} +11 -12
- package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
- package/dist/cf-build-output-H9a97vME.mjs +2 -0
- package/dist/cli/cli.mjs +48 -83
- package/dist/cli/cloudflare-operation-process.mjs +71 -77
- package/dist/cli/env-schema-probe.d.mts +1 -1
- package/dist/cli/env-schema-probe.mjs +5 -6
- package/dist/client-By4JjMw_.mjs +2 -0
- package/dist/{client-RsPo8wsP.mjs → client-C2Prx_Bi.mjs} +30 -8
- package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
- package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
- package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
- package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
- package/dist/{cloudflare-operations-BhbK6yTq.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
- package/dist/{cloudflare-operations-CjaV4lZi.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
- package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
- package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
- package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
- package/dist/config-BtSFvXZx.mjs +2 -0
- package/dist/config-CLYAosnQ.mjs +78 -0
- package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
- package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
- package/dist/config-entry.d.mts +1 -1
- package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
- package/dist/{connect-DCvUmPXY.mjs → connect-X0MUA1gk.mjs} +12 -11
- package/dist/{create-project-eAPgYq35.mjs → create-project-DxiyW6iX.mjs} +7 -7
- package/dist/{create-project-C734I-Mu.mjs → create-project-iwkbqiBU.mjs} +1 -1
- package/dist/{db-C07GEdKF.mjs → db-XnVMHzoV.mjs} +101 -133
- package/dist/{delete-pKMVsrpJ.mjs → delete-esYlMiSJ.mjs} +8 -8
- package/dist/{deploy-DfsAe-T0.mjs → deploy-BsEvnlJl.mjs} +2377 -2512
- package/dist/deploy-C1d-YTfp.mjs +2 -0
- package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
- package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
- package/dist/discover-EDUf6JJw.mjs +2 -0
- package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
- package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
- package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
- package/dist/{domain-D3uA9ize.mjs → domain-CbbBWhWE.mjs} +29 -30
- package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
- package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
- package/dist/{email-z3o2cwjH.mjs → email-CpuT42g7.mjs} +24 -19
- package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
- package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
- package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
- package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
- package/dist/{env-public-BX_r8HR6.d.mts → env-public-DR7ZM6d-.d.mts} +1 -1
- package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
- package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
- package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
- package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
- package/dist/{env-3Q8-_2IH.mjs → env-w9jOyGZn.mjs} +10 -9
- package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
- package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
- package/dist/{fetch-stream-IvCYKyQL.mjs → fetch-stream-PGgz4uGz.mjs} +26 -24
- package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
- package/dist/{gen-NjwoG9FK.mjs → gen-DtkQhvQg.mjs} +40 -57
- package/dist/gen-dA9hW7AV.mjs +2 -0
- package/dist/{github-cmd-DquUq-b1.mjs → github-cmd-D_FsOFxq.mjs} +65 -164
- package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
- package/dist/{handler-CZ4nAylQ.d.mts → handler-CNAwjRcW.d.mts} +5 -12
- package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
- package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
- package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
- package/dist/{help-DRZXC4fj.mjs → help-CVFBTmBx.mjs} +23 -38
- package/dist/help-DzKUrQvk.mjs +2 -0
- package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
- package/dist/index.d.mts +19 -2
- package/dist/index.mjs +632 -532
- package/dist/{info-BmA3_IFZ.mjs → info-PYWwkWyt.mjs} +4 -4
- package/dist/{init-DT7yuuyl.mjs → init-Bw-fRKGp.mjs} +161 -197
- package/dist/{limits-Bq5LG8Id.d.mts → limits-CFsDKQvU.d.mts} +1 -10
- package/dist/{limits-Cjuk2VPm.mjs → limits-D0vD1M9A.mjs} +1 -22
- package/dist/{link-CXOlqh2F.mjs → link-DlPG8iX3.mjs} +10 -10
- package/dist/{list-eEWVJEPn.mjs → list-2GN7_ueV.mjs} +11 -9
- package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
- package/dist/{live-Chw1eIMv.d.mts → live-Du8jXwOW.d.mts} +4 -2
- package/dist/{local-d1-Df4XpwhW.mjs → local-d1-ga5O_idV.mjs} +2 -2
- package/dist/{login-pWQHYVu2.mjs → login-D-Q4xw3Q.mjs} +7 -7
- package/dist/login-Dc-wuTDq.mjs +2 -0
- package/dist/{logs-DnxVX7TR.mjs → logs-rd8J-OFh.mjs} +28 -11
- package/dist/migrate-BHp07yJE.mjs +2 -0
- package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
- package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
- package/dist/{node-BkyRWRx8.mjs → node-DJicPvPj.mjs} +5 -5
- package/dist/{operator-args-CAVcmwUt.mjs → operator-args-BNsW5gfp.mjs} +10 -1
- package/dist/{operator-auth-CkmTE3rt.mjs → operator-auth-AzVLbrr3.mjs} +4 -8
- package/dist/{operator-client-LmwjxT6q.mjs → operator-client-BQtzyG-g.mjs} +3 -3
- package/dist/{operator-cmd-d-IEKgNk.mjs → operator-cmd-B6f6Cg9Z.mjs} +45 -14
- package/dist/operator-cmd-Cwn50lOV.mjs +2 -0
- package/dist/{output-BBsUwdyT.mjs → output-C50ag2r3.mjs} +44 -2
- package/dist/pages/client.d.mts +19 -51
- package/dist/pages/client.mjs +204 -225
- package/dist/pages/head-client.d.mts +1 -1
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/head.mjs +1 -1
- package/dist/pages/index.d.mts +2 -2
- package/dist/pages/index.mjs +6 -12
- package/dist/pages/islands-plugin.d.mts +1 -1
- package/dist/pages/islands-plugin.mjs +21 -25
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -2
- package/dist/{plan-NPpwZ_kc.mjs → plan-BhLO2p4w.mjs} +4 -3
- package/dist/plan-CH2G51je.mjs +2 -0
- package/dist/{platform-args-Bzf8JPc2.mjs → platform-args-BoZkWQnJ.mjs} +4 -2
- package/dist/platform-args-DYgITk0D.mjs +2 -0
- package/dist/{platform-auth-config-0V0lA3pF.mjs → platform-auth-config-n603OANg.mjs} +45 -40
- package/dist/{platform-auth-protection-DFeJ-JkK.mjs → platform-auth-protection-zxDr0hWW.mjs} +9 -8
- package/dist/{platform-auth-recovery-ICy4muq6.mjs → platform-auth-recovery-tw9lgtgE.mjs} +8 -7
- package/dist/{platform-cmd-D7vSWMvV.mjs → platform-cmd-B8-bCb7t.mjs} +48 -23
- package/dist/{platform-cmd-BPySFOew.mjs → platform-cmd-C00YM14r.mjs} +1 -1
- package/dist/{platform-discovery-DDDUvnqp.mjs → platform-discovery-BC0HCKYt.mjs} +18 -4
- package/dist/{platform-domain-CUdY064e.mjs → platform-domain-p0kobLV8.mjs} +6 -5
- package/dist/{platform-lifecycle-Dm09JNkn.mjs → platform-lifecycle-D_QEY32D.mjs} +906 -389
- package/dist/{platform-lifecycle-BaUdTRPU.mjs → platform-lifecycle-vFqtNPPa.mjs} +1 -1
- package/dist/{platform-management-BSEc_ZeG.mjs → platform-management-BdYblvvE.mjs} +175 -32
- package/dist/{platform-management-Bp6aoH2C.mjs → platform-management-oi-SvI3f.mjs} +1 -1
- package/dist/{platform-plans-config-B0pOVQyW.mjs → platform-plans-config-CjiFv5J4.mjs} +5 -4
- package/dist/{platform-recovery-WOZ95Uze.mjs → platform-recovery-PvNS9Nl2.mjs} +3 -3
- package/dist/{platform-registry-KfNEF84O.mjs → platform-registry-P387v42A.mjs} +17 -10
- package/dist/platform-setup-DVe42Ws7.mjs +299 -0
- package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
- package/dist/prepare-DRUV-g3X.mjs +2 -0
- package/dist/{prepare-DnaKBi--.mjs → prepare-Do96654b.mjs} +8 -8
- package/dist/{prepare-39EvOhI6.mjs → prepare-Dq9hTIbo.mjs} +4 -3
- package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
- package/dist/prerender-render.mjs +1 -1
- package/dist/{project-IOjBU8R6.mjs → project-BiaPQ7ur.mjs} +1 -1
- package/dist/{project-BkbfDs0V.mjs → project-DQstYTxO.mjs} +1 -1
- package/dist/{project-cmd-Bs5A392E.mjs → project-cmd-ti8_yTcA.mjs} +19 -19
- package/dist/{project-team-ohAWWaew.mjs → project-team-CDPE1Tsg.mjs} +15 -18
- package/dist/{project-token-CP01Jna6.mjs → project-token-CkZ1cN0Z.mjs} +14 -17
- package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
- package/dist/{project-zero-trust-BzkVgx35.mjs → project-zero-trust-DdjLR61k.mjs} +12 -9
- package/dist/{protocol-CjF_iI9X.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
- package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
- package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
- package/dist/{provision-Btj1jppf.mjs → provision-BfaLiWbj.mjs} +51 -42
- package/dist/{provision-BEv0k-qz.mjs → provision-Wu9ZBk9L.mjs} +2 -3
- package/dist/{requests-B3PBuGlX.mjs → requests-DFAqyYy8.mjs} +5 -5
- package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
- package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
- package/dist/{rollback-DDub9GsO.mjs → rollback-BKYXBduI.mjs} +30 -37
- package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
- package/dist/route-url-BgPja1GS.d.mts +5 -0
- package/dist/route-url-BjGv_KKY.mjs +28 -0
- package/dist/runner-9wjsSZx-.mjs +2 -0
- package/dist/{runner-Ol0TNjk6.mjs → runner-DMBKSrRk.mjs} +2 -2
- package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
- package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
- package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
- package/dist/runtime/ai.d.mts +11 -12
- package/dist/runtime/ai.mjs +47 -113
- package/dist/runtime/better-auth-mysql.d.mts +1 -1
- package/dist/runtime/better-auth-mysql.mjs +4 -9
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth-pg.mjs +5 -10
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/better-auth.mjs +3 -3
- package/dist/runtime/client-react.d.mts +2 -3
- package/dist/runtime/client-react.mjs +2 -2
- package/dist/runtime/client-solid.d.mts +2 -3
- package/dist/runtime/client-solid.mjs +2 -2
- package/dist/runtime/client-svelte.d.mts +2 -3
- package/dist/runtime/client-svelte.mjs +2 -2
- package/dist/runtime/client-vue.d.mts +2 -3
- package/dist/runtime/client-vue.mjs +2 -2
- package/dist/runtime/client.d.mts +2 -3
- package/dist/runtime/client.mjs +2 -2
- package/dist/runtime/db.mjs +1 -1
- package/dist/runtime/durable.mjs +3 -10
- package/dist/runtime/email/testing.mjs +5 -5
- package/dist/runtime/email.d.mts +2 -1
- package/dist/runtime/email.mjs +11 -27
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/env-public.mjs +15 -20
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/fetch-stream.d.mts +2 -2
- package/dist/runtime/fetch-stream.mjs +1 -1
- package/dist/runtime/fetch.d.mts +2 -3
- package/dist/runtime/fetch.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +2 -2
- package/dist/runtime/isr.mjs +1 -1
- package/dist/runtime/kv.mjs +10 -11
- package/dist/runtime/limits.d.mts +2 -2
- package/dist/runtime/limits.mjs +2 -2
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-client.mjs +12 -22
- package/dist/runtime/live-server.mjs +27 -35
- package/dist/runtime/live.d.mts +2 -2
- package/dist/runtime/live.mjs +2 -2
- package/dist/runtime/migration-handler.mjs +35 -86
- package/dist/runtime/queues.mjs +1 -1
- package/dist/runtime/remote/binding-handler.d.mts +2 -2
- package/dist/runtime/remote/binding-handler.mjs +8 -9
- package/dist/runtime/remote/index.mjs +27 -77
- package/dist/runtime/route-url.d.mts +2 -4
- package/dist/runtime/route-url.mjs +1 -1
- package/dist/runtime/routing.d.mts +1 -1
- package/dist/runtime/routing.mjs +15 -26
- package/dist/runtime/sandbox.d.mts +1 -1
- package/dist/runtime/sandbox.mjs +14 -24
- package/dist/runtime/sse.mjs +1 -1
- package/dist/runtime/storage.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws-server.mjs +30 -61
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/runtime/ws.mjs +1 -1
- package/dist/{sandbox-XZAqzFlG.d.mts → sandbox-C5LFoJMf.d.mts} +7 -7
- package/dist/{scan-C7okrLyM.mjs → scan-C3uDzz6J.mjs} +21 -18
- package/dist/{secret-3c72lY1U.mjs → secret-BAt2KMmO.mjs} +15 -15
- package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
- package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
- package/dist/{subcommand-prompt-Dhom39bd.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
- package/dist/sveltekit.d.mts +0 -2
- package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
- package/dist/validate-BJr9LfXy.mjs +2 -0
- package/dist/{validate-ctOrgiS3.mjs → validate-C9qJArv7.mjs} +9 -28
- package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
- package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
- package/dist/{ws-CL1w7GXU.d.mts → ws-CChrrAU-.d.mts} +1 -1
- package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
- package/{skills/void/docs → docs}/guide/ai.md +69 -64
- package/{skills/void/docs → docs}/guide/app-types.md +1 -1
- package/{skills/void/docs → docs}/guide/auth.md +37 -1
- package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
- package/{skills/void/docs → docs}/guide/database.md +23 -8
- package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
- package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
- package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
- package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
- package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
- package/{skills/void/docs → docs}/guide/jobs.md +2 -2
- package/{skills/void/docs → docs}/guide/live.md +12 -5
- package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +21 -9
- package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
- package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
- package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
- package/{skills/void/docs → docs}/guide/platform/administration/access.md +2 -10
- package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
- package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
- package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
- package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
- package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
- package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +2 -2
- package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
- package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +8 -2
- package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +7 -1
- package/{skills/void/docs → docs}/guide/platform/installation/setup.md +1 -1
- package/docs/guide/platform/installation/uninstall.md +102 -0
- package/{skills/void/docs → docs}/guide/project-collaboration.md +6 -2
- package/{skills/void/docs → docs}/guide/queues.md +0 -2
- package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
- package/{skills/void/docs → docs}/guide/sandboxes.md +41 -22
- package/{skills/void/docs → docs}/guide/sse.md +0 -2
- package/{skills/void/docs → docs}/guide/storage.md +7 -2
- package/{skills/void/docs → docs}/guide/websockets.md +4 -0
- package/docs/integrations/agents.md +37 -0
- package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
- package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
- package/{skills/void/docs → docs}/integrations/hono.md +15 -7
- package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
- package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
- package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
- package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
- package/{skills/void/docs → docs}/reference/api/resources.md +11 -14
- package/{skills/void/docs → docs}/reference/api.md +35 -34
- package/{skills/void/docs → docs}/reference/cli/auth.md +3 -6
- package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
- package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
- package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
- package/{skills/void/docs → docs}/reference/cli/platform-config.md +3 -3
- package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
- package/{skills/void/docs → docs}/reference/cli/platform-installation.md +15 -13
- package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
- package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
- package/{skills/void/docs → docs}/reference/cli/platform.md +4 -2
- package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
- package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
- package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
- package/{skills/void/docs → docs}/reference/cli.md +2 -2
- package/{skills/void/docs → docs}/reference/config.md +13 -13
- package/{skills/void/docs → docs}/reference/resource-inference.md +2 -16
- package/package.json +34 -30
- package/schema.json +1 -1
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
- package/skills/void/SKILL.md +11 -5
- package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
- package/dist/client-B4Me-9HE.mjs +0 -2
- package/dist/config-0acf1oys.mjs +0 -2
- package/dist/config-D8MOgiQV.mjs +0 -32
- package/dist/deploy-BDu1vhSH.mjs +0 -2
- package/dist/discover-AMCBXivQ.mjs +0 -2
- package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
- package/dist/gen-ById9r2j.mjs +0 -2
- package/dist/help-DPGBwomV.mjs +0 -2
- package/dist/login-C98-sw79.mjs +0 -2
- package/dist/migrate-CEu2X5DB.mjs +0 -2
- package/dist/plan-D1Q5rf-r.mjs +0 -2
- package/dist/platform-args-Cq6EjQro.mjs +0 -2
- package/dist/prepare-CnjcTV2s.mjs +0 -2
- package/dist/resolve-project-DtbidV4y.mjs +0 -2
- package/dist/route-url-CG7U-cRN.mjs +0 -15
- package/dist/runner-CXA9Fh8h.mjs +0 -2
- package/dist/validate-Dq_L3s0S.mjs +0 -2
- package/skills/void/docs/guide/platform/installation/uninstall.md +0 -69
- package/skills/void/docs/integrations/agents.md +0 -26
- package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
- package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
- package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
- package/{skills/void/docs → docs}/guide/deployment.md +0 -0
- package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
- package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
- package/{skills/void/docs → docs}/guide/email.md +0 -0
- package/{skills/void/docs → docs}/guide/index.md +0 -0
- package/{skills/void/docs → docs}/guide/kv.md +0 -0
- package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
- package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
- package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
- package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
- package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
- package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
- package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
- package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
- package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
- package/{skills/void/docs → docs}/guide/ssg.md +0 -0
- package/{skills/void/docs → docs}/guide/ssr.md +0 -0
- package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
- package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
- package/{skills/void/docs → docs}/index.md +0 -0
- package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
- package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
- package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
- package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
- package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
- package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
- package/{skills/void/docs → docs}/reference/api/client.md +0 -0
- package/{skills/void/docs → docs}/reference/api/database.md +2 -2
- /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/deploy.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
- /package/{skills/void/docs → docs}/reference/structure.md +0 -0
package/dist/runtime/sandbox.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as getRawRuntimeEnv } from "../env-raw-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { a as getRawRuntimeEnv } from "../env-raw-jZpP5n47.mjs";
|
|
2
|
+
import { t as UsageLimit } from "../limits-D0vD1M9A.mjs";
|
|
3
|
+
import { a as requireRuntimeBinding } from "../env-DMA3cXZt.mjs";
|
|
4
4
|
import { n as SandboxContainer, r as validateSandboxOptions } from "../sandbox-container-C6ItmVuN.mjs";
|
|
5
5
|
export * from "@cloudflare/sandbox";
|
|
6
6
|
//#region src/runtime/sandbox.ts
|
|
@@ -95,7 +95,7 @@ function client(capability) {
|
|
|
95
95
|
if (typeof method !== "string" || method === "then") return;
|
|
96
96
|
return (...args) => {
|
|
97
97
|
const index = method === "writeFile" || method === "rename" ? 3 : 2;
|
|
98
|
-
return
|
|
98
|
+
return callWithOptions("files", [method, ...args], index);
|
|
99
99
|
};
|
|
100
100
|
} });
|
|
101
101
|
const execute = async (argv, options) => {
|
|
@@ -109,26 +109,21 @@ function client(capability) {
|
|
|
109
109
|
stdout: wire.stdout,
|
|
110
110
|
stderr: wire.stderr,
|
|
111
111
|
get exitCode() {
|
|
112
|
-
return exitCode ??=
|
|
112
|
+
return exitCode ??= (async () => {
|
|
113
113
|
try {
|
|
114
114
|
return await wire.capability.invoke("exitCode", []);
|
|
115
115
|
} catch (error) {
|
|
116
116
|
rethrowSandboxError(error);
|
|
117
117
|
}
|
|
118
|
-
});
|
|
118
|
+
})();
|
|
119
119
|
},
|
|
120
120
|
output() {
|
|
121
|
-
return output ??=
|
|
121
|
+
return output ??= (async () => {
|
|
122
122
|
try {
|
|
123
123
|
return await Promise.all([
|
|
124
124
|
wire.stdout ? new Response(wire.stdout).arrayBuffer() : /* @__PURE__ */ new ArrayBuffer(0),
|
|
125
125
|
wire.stderr ? new Response(wire.stderr).arrayBuffer() : /* @__PURE__ */ new ArrayBuffer(0),
|
|
126
|
-
process.exitCode
|
|
127
|
-
ok: (code) => code,
|
|
128
|
-
limited: (limit) => {
|
|
129
|
-
throw limit;
|
|
130
|
-
}
|
|
131
|
-
})
|
|
126
|
+
process.exitCode
|
|
132
127
|
]).then(([stdout, stderr, exitCode]) => ({
|
|
133
128
|
stdout,
|
|
134
129
|
stderr,
|
|
@@ -137,7 +132,7 @@ function client(capability) {
|
|
|
137
132
|
} catch (error) {
|
|
138
133
|
rethrowSandboxError(error);
|
|
139
134
|
}
|
|
140
|
-
});
|
|
135
|
+
})();
|
|
141
136
|
},
|
|
142
137
|
kill: async (signal) => {
|
|
143
138
|
await wire.capability.invoke("kill", [signal]);
|
|
@@ -150,16 +145,11 @@ function client(capability) {
|
|
|
150
145
|
};
|
|
151
146
|
return {
|
|
152
147
|
files,
|
|
153
|
-
exec:
|
|
154
|
-
run: (argv, options) =>
|
|
155
|
-
return (await execute(argv, options)).output()
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
throw limit;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
}),
|
|
162
|
-
fetch: (port, request) => limitOperation(async () => await call("fetch", [port, request])),
|
|
148
|
+
exec: execute,
|
|
149
|
+
run: async (argv, options) => {
|
|
150
|
+
return (await execute(argv, options)).output();
|
|
151
|
+
},
|
|
152
|
+
fetch: async (port, request) => await call("fetch", [port, request]),
|
|
163
153
|
running: async () => await call("running", []),
|
|
164
154
|
destroy: async () => {
|
|
165
155
|
await call("destroy", []);
|
package/dist/runtime/sse.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getLastEventId, i as formatSseText, n as eventStream, r as formatSse, t as SseStreamClosedError } from "../sse-
|
|
1
|
+
import { a as getLastEventId, i as formatSseText, n as eventStream, r as formatSse, t as SseStreamClosedError } from "../sse-CMvCgjNk.mjs";
|
|
2
2
|
export { SseStreamClosedError, eventStream, formatSse, formatSseText, getLastEventId };
|
package/dist/runtime/storage.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { D as runValidation, E as ValidatorSlots, T as HandlerInput } from "../handler-
|
|
1
|
+
import { D as runValidation, E as ValidatorSlots, T as HandlerInput } from "../handler-CNAwjRcW.mjs";
|
|
2
2
|
export { HandlerInput, ValidatorSlots, runValidation };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as AuthState } from "../auth-DkcFflXV.mjs";
|
|
2
|
-
import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-
|
|
3
|
-
import { f as WebSocketInstanceKey, t as AnyWebSocketDefinition } from "../ws-
|
|
2
|
+
import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-CPvWD3nG.mjs";
|
|
3
|
+
import { f as WebSocketInstanceKey, t as AnyWebSocketDefinition } from "../ws-CChrrAU-.mjs";
|
|
4
4
|
//#region src/runtime/ws-server.d.ts
|
|
5
5
|
export type WebSocketRouteMeta = {
|
|
6
6
|
name?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as authContext } from "../auth-3sGB0zJ1.mjs";
|
|
2
|
-
import { o as withRuntimeEnv } from "../env-
|
|
2
|
+
import { o as withRuntimeEnv } from "../env-DMA3cXZt.mjs";
|
|
3
3
|
//#region src/runtime/ws-server.ts
|
|
4
4
|
function matchRoute(pattern, pathname) {
|
|
5
5
|
const patternSegments = pattern.split("/").filter(Boolean);
|
|
@@ -153,27 +153,24 @@ function createRoomController(state, serverSchema) {
|
|
|
153
153
|
}
|
|
154
154
|
};
|
|
155
155
|
}
|
|
156
|
-
function
|
|
157
|
-
|
|
156
|
+
function createHookContext(definition, state, env, request, webSocket, stored) {
|
|
157
|
+
const serverSchema = definition.messages.server;
|
|
158
|
+
const base = {
|
|
158
159
|
id: stored.roomId,
|
|
159
160
|
params: stored.params,
|
|
160
161
|
user: stored.user,
|
|
161
162
|
request,
|
|
162
163
|
env,
|
|
163
|
-
storage: state.storage
|
|
164
|
-
room: createRoomController(state, serverSchema),
|
|
165
|
-
connection: createConnection(webSocket, serverSchema)
|
|
164
|
+
storage: state.storage
|
|
166
165
|
};
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
storage: state.storage,
|
|
176
|
-
socket: createConnection(webSocket, serverSchema)
|
|
166
|
+
const connection = createConnection(webSocket, serverSchema);
|
|
167
|
+
return definition.__kind === "room" ? {
|
|
168
|
+
...base,
|
|
169
|
+
room: createRoomController(state, serverSchema),
|
|
170
|
+
connection
|
|
171
|
+
} : {
|
|
172
|
+
...base,
|
|
173
|
+
socket: connection
|
|
177
174
|
};
|
|
178
175
|
}
|
|
179
176
|
function assertDefinition(definition) {
|
|
@@ -196,6 +193,9 @@ function createWebSocketDurableObject(definition, route, authRuntime, resolveAut
|
|
|
196
193
|
fetch(request) {
|
|
197
194
|
return withRuntimeEnv(this.env, () => this.handleFetch(request));
|
|
198
195
|
}
|
|
196
|
+
context(request, webSocket, stored) {
|
|
197
|
+
return createHookContext(definition, this.state, this.env, request, webSocket, stored);
|
|
198
|
+
}
|
|
199
199
|
async handleFetch(request) {
|
|
200
200
|
const params = getRouteMatch(request, route) ?? {};
|
|
201
201
|
const roomId = buildWebSocketInstanceId(instanceRoute, params);
|
|
@@ -213,23 +213,12 @@ function createWebSocketDurableObject(definition, route, authRuntime, resolveAut
|
|
|
213
213
|
authState
|
|
214
214
|
};
|
|
215
215
|
setStoredConnection(server, stored);
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
if (decision instanceof Response) return decision;
|
|
220
|
-
} else {
|
|
221
|
-
const ctx = createSocketContext(this.state, this.env, request, server, stored, definition.messages.server);
|
|
222
|
-
const decision = await withAuthState(authState, () => definition.onBeforeConnect?.(ctx));
|
|
223
|
-
if (decision instanceof Response) return decision;
|
|
224
|
-
}
|
|
216
|
+
const beforeConnectCtx = this.context(request, server, stored);
|
|
217
|
+
const decision = await withAuthState(authState, () => definition.onBeforeConnect?.(beforeConnectCtx));
|
|
218
|
+
if (decision instanceof Response) return decision;
|
|
225
219
|
this.state.acceptWebSocket(server);
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
await withAuthState(authState, () => definition.onConnect?.(ctx));
|
|
229
|
-
} else {
|
|
230
|
-
const ctx = createSocketContext(this.state, this.env, request, server, stored, definition.messages.server);
|
|
231
|
-
await withAuthState(authState, () => definition.onConnect?.(ctx));
|
|
232
|
-
}
|
|
220
|
+
const connectCtx = this.context(request, server, stored);
|
|
221
|
+
await withAuthState(authState, () => definition.onConnect?.(connectCtx));
|
|
233
222
|
return new Response(null, {
|
|
234
223
|
status: 101,
|
|
235
224
|
webSocket: client
|
|
@@ -243,13 +232,7 @@ function createWebSocketDurableObject(definition, route, authRuntime, resolveAut
|
|
|
243
232
|
user,
|
|
244
233
|
authState
|
|
245
234
|
};
|
|
246
|
-
|
|
247
|
-
const fakeSocket = new WebSocketPair()[1];
|
|
248
|
-
const ctx = createRoomContext(this.state, this.env, request, fakeSocket, stored, definition.messages.server);
|
|
249
|
-
return withAuthState(authState, () => definition.onRequest(ctx));
|
|
250
|
-
}
|
|
251
|
-
const fakeSocket = new WebSocketPair()[1];
|
|
252
|
-
const ctx = createSocketContext(this.state, this.env, request, fakeSocket, stored, definition.messages.server);
|
|
235
|
+
const ctx = this.context(request, new WebSocketPair()[1], stored);
|
|
253
236
|
return withAuthState(authState, () => definition.onRequest(ctx));
|
|
254
237
|
}
|
|
255
238
|
webSocketMessage(webSocket, message) {
|
|
@@ -271,13 +254,8 @@ function createWebSocketDurableObject(definition, route, authRuntime, resolveAut
|
|
|
271
254
|
return;
|
|
272
255
|
}
|
|
273
256
|
const request = new Request(`https://void.local${route.pattern}`);
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
await withAuthState(stored.authState ?? null, () => definition.onMessage?.(ctx, result.value));
|
|
277
|
-
} else {
|
|
278
|
-
const ctx = createSocketContext(this.state, this.env, request, webSocket, stored, definition.messages.server);
|
|
279
|
-
await withAuthState(stored.authState ?? null, () => definition.onMessage?.(ctx, result.value));
|
|
280
|
-
}
|
|
257
|
+
const ctx = this.context(request, webSocket, stored);
|
|
258
|
+
await withAuthState(stored.authState ?? null, () => definition.onMessage?.(ctx, result.value));
|
|
281
259
|
}
|
|
282
260
|
webSocketClose(webSocket, code, reason, wasClean) {
|
|
283
261
|
return withRuntimeEnv(this.env, () => this.handleWebSocketClose(webSocket, code, reason, wasClean));
|
|
@@ -286,21 +264,12 @@ function createWebSocketDurableObject(definition, route, authRuntime, resolveAut
|
|
|
286
264
|
completeWebSocketClose(webSocket, code, reason);
|
|
287
265
|
const stored = getStoredConnection(webSocket);
|
|
288
266
|
const request = new Request(`https://void.local${route.pattern}`);
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}));
|
|
296
|
-
} else {
|
|
297
|
-
const ctx = createSocketContext(this.state, this.env, request, webSocket, stored, definition.messages.server);
|
|
298
|
-
await withAuthState(stored.authState ?? null, () => definition.onClose?.(ctx, {
|
|
299
|
-
code,
|
|
300
|
-
reason,
|
|
301
|
-
wasClean
|
|
302
|
-
}));
|
|
303
|
-
}
|
|
267
|
+
const ctx = this.context(request, webSocket, stored);
|
|
268
|
+
await withAuthState(stored.authState ?? null, () => definition.onClose?.(ctx, {
|
|
269
|
+
code,
|
|
270
|
+
reason,
|
|
271
|
+
wasClean
|
|
272
|
+
}));
|
|
304
273
|
}
|
|
305
274
|
}
|
|
306
275
|
return VoidWebSocketDurableObject;
|
package/dist/runtime/ws.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as RoomDefinition, c as VoidSocket, d as WebSocketConnection, f as WebSocketInstanceKey, h as defineWebSocket, i as RoomController, l as VoidSocketCloseEvent, m as defineRoom, n as ConnectCommonOptions, o as SocketContext, p as connect, r as RoomContext, s as SocketDefinition, t as AnyWebSocketDefinition, u as WebSocketBaseContext } from "../ws-
|
|
1
|
+
import { a as RoomDefinition, c as VoidSocket, d as WebSocketConnection, f as WebSocketInstanceKey, h as defineWebSocket, i as RoomController, l as VoidSocketCloseEvent, m as defineRoom, n as ConnectCommonOptions, o as SocketContext, p as connect, r as RoomContext, s as SocketDefinition, t as AnyWebSocketDefinition, u as WebSocketBaseContext } from "../ws-CChrrAU-.mjs";
|
|
2
2
|
export { AnyWebSocketDefinition, ConnectCommonOptions, RoomContext, RoomController, RoomDefinition, SocketContext, SocketDefinition, VoidSocket, VoidSocketCloseEvent, WebSocketBaseContext, WebSocketConnection, WebSocketInstanceKey, connect, defineRoom, defineWebSocket };
|
package/dist/runtime/ws.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as isResourceName } from "../resource-name-C7LVpcRm.mjs";
|
|
2
|
-
import { t as interpolateRouteParams } from "../route-url-
|
|
2
|
+
import { t as interpolateRouteParams } from "../route-url-BjGv_KKY.mjs";
|
|
3
3
|
//#region src/runtime/ws.ts
|
|
4
4
|
function defineRoom(definition) {
|
|
5
5
|
assertResourceName(definition.name);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as UsageLimit } from "./limits-CFsDKQvU.mjs";
|
|
2
2
|
import { i as SandboxExecOptions, r as SandboxContainer, s as SandboxOptions } from "./sandbox-container-Bo0eiFKz.mjs";
|
|
3
3
|
import { Files } from "@cloudflare/sandbox";
|
|
4
4
|
//#region src/runtime/sandbox.d.ts
|
|
@@ -15,17 +15,17 @@ type SandboxProcess = {
|
|
|
15
15
|
stdin: WritableStream | null;
|
|
16
16
|
stdout: ReadableStream | null;
|
|
17
17
|
stderr: ReadableStream | null;
|
|
18
|
-
readonly exitCode:
|
|
19
|
-
output():
|
|
18
|
+
readonly exitCode: Promise<number>;
|
|
19
|
+
output(): Promise<ExecOutput>;
|
|
20
20
|
kill(signal?: number): Promise<void>;
|
|
21
21
|
resize(cols: number, rows: number): Promise<void>;
|
|
22
22
|
};
|
|
23
|
-
type SandboxFiles = { [K in keyof Files]: Files[K] extends ((...args: infer A) => Promise<infer R>) ? (...args: A) =>
|
|
23
|
+
type SandboxFiles = { [K in keyof Files]: Files[K] extends ((...args: infer A) => Promise<infer R>) ? (...args: A) => Promise<R> : never; };
|
|
24
24
|
type SandboxClient = {
|
|
25
|
-
exec(argv: Array<string>, options?: SandboxExecOptions):
|
|
26
|
-
run(argv: Array<string>, options?: SandboxExecOptions):
|
|
25
|
+
exec(argv: Array<string>, options?: SandboxExecOptions): Promise<SandboxProcess>;
|
|
26
|
+
run(argv: Array<string>, options?: SandboxExecOptions): Promise<ExecOutput>;
|
|
27
27
|
files: SandboxFiles;
|
|
28
|
-
fetch(port: number, request: Request):
|
|
28
|
+
fetch(port: number, request: Request): Promise<Response>;
|
|
29
29
|
running(): Promise<boolean>;
|
|
30
30
|
destroy(): Promise<void>;
|
|
31
31
|
};
|
|
@@ -59,8 +59,7 @@ function resolveEffectiveLayoutEntries(page, layouts, namedLayouts) {
|
|
|
59
59
|
id: toLayoutId(resolved),
|
|
60
60
|
definition: resolved
|
|
61
61
|
};
|
|
62
|
-
if (isExclusive) return [namedEntry];
|
|
63
|
-
if (defaultChain.length === 0) return [namedEntry];
|
|
62
|
+
if (isExclusive || defaultChain.length === 0) return [namedEntry];
|
|
64
63
|
const chain = [...defaultChain];
|
|
65
64
|
chain[chain.length - 1] = namedEntry;
|
|
66
65
|
return chain;
|
|
@@ -209,7 +208,7 @@ async function scanPages(root, options) {
|
|
|
209
208
|
if (layoutsDirIdx !== -1) {
|
|
210
209
|
if (layoutsDirIdx === segments.length - 2) namedLayouts.push({
|
|
211
210
|
name: base,
|
|
212
|
-
directory: segments.slice(0, layoutsDirIdx).join("/")
|
|
211
|
+
directory: segments.slice(0, layoutsDirIdx).join("/"),
|
|
213
212
|
filePath: file,
|
|
214
213
|
island
|
|
215
214
|
});
|
|
@@ -293,12 +292,8 @@ async function scanPages(root, options) {
|
|
|
293
292
|
if (page.island) continue;
|
|
294
293
|
const dir = dirname(page.componentPath);
|
|
295
294
|
const segments = dir === "." ? [] : dir.split("/");
|
|
296
|
-
|
|
297
|
-
if (layouts.some((l) => l.
|
|
298
|
-
for (const seg of segments) {
|
|
299
|
-
current = current ? `${current}/${seg}` : seg;
|
|
300
|
-
if (layouts.some((l) => l.directory === current && l.island)) throw new Error(`pages: Regular page '${page.componentPath}' is under an island layout. Add a .island suffix.`);
|
|
301
|
-
}
|
|
295
|
+
const ancestors = ["", ...segments.map((_, index) => segments.slice(0, index + 1).join("/"))];
|
|
296
|
+
if (layouts.some((l) => l.island && ancestors.includes(l.directory))) throw new Error(`pages: Regular page '${page.componentPath}' is under an island layout. Add a .island suffix.`);
|
|
302
297
|
}
|
|
303
298
|
for (const page of pages) {
|
|
304
299
|
if (page.layout === void 0 || page.layout === false) continue;
|
|
@@ -312,13 +307,21 @@ async function scanPages(root, options) {
|
|
|
312
307
|
namedLayouts
|
|
313
308
|
};
|
|
314
309
|
}
|
|
310
|
+
const LEADING_SCRIPT_RE = /^<script\b[^>]*>[\s\S]*?<\/script>\s*\n?/;
|
|
311
|
+
/** Return the raw YAML frontmatter of markdown source, after any leading <script> block. */
|
|
312
|
+
function markdownFrontmatter(source) {
|
|
313
|
+
return source.replace(LEADING_SCRIPT_RE, "").match(/^---\r?\n([\s\S]*?)\r?\n---/)?.[1];
|
|
314
|
+
}
|
|
315
|
+
/** Read a single-line `key: value` field, stripping surrounding quotes. */
|
|
316
|
+
function frontmatterField(yaml, key) {
|
|
317
|
+
return yaml.match(new RegExp(`^${key}:\\s*(.+)$`, "m"))?.[1]?.trim().replace(/^["']|["']$/g, "");
|
|
318
|
+
}
|
|
315
319
|
/** Extract title and description from YAML frontmatter in markdown source. */
|
|
316
320
|
function extractFrontmatterMeta(source) {
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
319
|
-
const
|
|
320
|
-
const
|
|
321
|
-
const description = yaml.match(/^description:\s*(.+)$/m)?.[1]?.trim().replace(/^["']|["']$/g, "");
|
|
321
|
+
const yaml = markdownFrontmatter(source);
|
|
322
|
+
if (yaml === void 0) return;
|
|
323
|
+
const title = frontmatterField(yaml, "title");
|
|
324
|
+
const description = frontmatterField(yaml, "description");
|
|
322
325
|
if (!title && !description) return;
|
|
323
326
|
return {
|
|
324
327
|
title,
|
|
@@ -327,12 +330,12 @@ function extractFrontmatterMeta(source) {
|
|
|
327
330
|
}
|
|
328
331
|
/** Extract layout field from YAML frontmatter in markdown source. */
|
|
329
332
|
function extractFrontmatterLayout(source) {
|
|
330
|
-
const
|
|
331
|
-
if (
|
|
332
|
-
const value =
|
|
333
|
+
const yaml = markdownFrontmatter(source);
|
|
334
|
+
if (yaml === void 0) return;
|
|
335
|
+
const value = frontmatterField(yaml, "layout");
|
|
333
336
|
if (!value) return;
|
|
334
337
|
if (value === "false") return false;
|
|
335
338
|
return value;
|
|
336
339
|
}
|
|
337
340
|
//#endregion
|
|
338
|
-
export { resolveNamedLayout as a, resolveLayoutIds as i, resolveEffectiveLayoutChain as n, resolveLayoutChain as r, scanPages as t };
|
|
341
|
+
export { resolveNamedLayout as a, resolveLayoutIds as i, resolveEffectiveLayoutChain as n, toLayoutId as o, resolveLayoutChain as r, scanPages as t };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-
|
|
2
|
-
import { c as getToken } from "./auth-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-DQstYTxO.mjs";
|
|
2
|
+
import { c as getToken } from "./auth-B5_tZLxT.mjs";
|
|
3
|
+
import { A as confirm, H as outro, L as log, O as cancel, U as password, tt as isCancel } from "./dist-D3m88sjf.mjs";
|
|
4
|
+
import { d as printSuccess, s as formatCount, u as note } from "./output-C50ag2r3.mjs";
|
|
5
|
+
import { _ as validateSecretValues } from "./env-validation-Dxdx_5wo.mjs";
|
|
6
|
+
import { r as PlatformClient } from "./client-C2Prx_Bi.mjs";
|
|
7
|
+
import { i as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-CP8rZs_p.mjs";
|
|
8
8
|
import { readFileSync } from "node:fs";
|
|
9
9
|
//#region src/cli/secret.ts
|
|
10
10
|
async function runSecretCommand(root, args) {
|
|
@@ -47,7 +47,7 @@ async function runSecretCommand(root, args) {
|
|
|
47
47
|
value
|
|
48
48
|
}]);
|
|
49
49
|
await client.setSecret(projectId, args.name, value);
|
|
50
|
-
|
|
50
|
+
printSuccess(`Secret ${args.name} set.`);
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
if (args.action === "sync") {
|
|
@@ -67,17 +67,17 @@ async function runSecretCommand(root, args) {
|
|
|
67
67
|
}
|
|
68
68
|
for (const s of secrets) {
|
|
69
69
|
await client.setSecret(projectId, s.name, s.value);
|
|
70
|
-
log.
|
|
70
|
+
log.step(`Set ${s.name}`);
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
printSuccess(`Synced ${formatCount(secrets.length, "secret")}.`);
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
await client.deleteSecret(projectId, args.name);
|
|
76
|
-
|
|
76
|
+
printSuccess(`Secret ${args.name} deleted.`);
|
|
77
77
|
}
|
|
78
78
|
async function runCloudflareSecretCommand(root, args) {
|
|
79
79
|
if (args.projectName) throw new Error("secret: --project selects a Void platform project and is not used for direct Cloudflare apps.");
|
|
80
|
-
const { deleteCloudflareSecret, listCloudflareSecrets, putCloudflareSecret, resolveCloudflareOperationContext, syncCloudflareSecrets } = await import("./cloudflare-operations-
|
|
80
|
+
const { deleteCloudflareSecret, listCloudflareSecrets, putCloudflareSecret, resolveCloudflareOperationContext, syncCloudflareSecrets } = await import("./cloudflare-operations-BlYLlowZ.mjs");
|
|
81
81
|
const context = resolveCloudflareOperationContext(root);
|
|
82
82
|
if (args.action === "list") {
|
|
83
83
|
const secrets = await listCloudflareSecrets(context);
|
|
@@ -96,7 +96,7 @@ async function runCloudflareSecretCommand(root, args) {
|
|
|
96
96
|
value
|
|
97
97
|
}]);
|
|
98
98
|
await putCloudflareSecret(context, args.name, value);
|
|
99
|
-
|
|
99
|
+
printSuccess(`Secret ${args.name} set.`);
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
if (args.action === "sync") {
|
|
@@ -115,11 +115,11 @@ async function runCloudflareSecretCommand(root, args) {
|
|
|
115
115
|
process.exit(0);
|
|
116
116
|
}
|
|
117
117
|
await syncCloudflareSecrets(context, secrets);
|
|
118
|
-
|
|
118
|
+
printSuccess(`Synced ${formatCount(secrets.length, "secret")}.`);
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
121
|
await deleteCloudflareSecret(context, args.name);
|
|
122
|
-
|
|
122
|
+
printSuccess(`Secret ${args.name} deleted.`);
|
|
123
123
|
}
|
|
124
124
|
const SECRET_KEY_RE = /^[A-Z][A-Z0-9_]*$/;
|
|
125
125
|
function parseDotenvFile(filePath) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as join, l as relative } from "./dist-BVqXeR_h.mjs";
|
|
2
|
-
import { L as log } from "./
|
|
2
|
+
import { L as log } from "./dist-D3m88sjf.mjs";
|
|
3
3
|
import { n as getPackageDir } from "./agents-B_pX_HmQ.mjs";
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, readdirSync, readlinkSync, symlinkSync } from "node:fs";
|
|
5
5
|
//#region src/cli/skills.ts
|
|
@@ -42,7 +42,7 @@ function linkSkills(root, skillsDir, skills, agentSkillsDir) {
|
|
|
42
42
|
continue;
|
|
43
43
|
}
|
|
44
44
|
symlinkSync(relativeTarget, linkPath, process.platform === "win32" ? "junction" : "dir");
|
|
45
|
-
log.
|
|
45
|
+
log.step(` ${skill.name} — linked`);
|
|
46
46
|
linked++;
|
|
47
47
|
}
|
|
48
48
|
return linked;
|
|
@@ -150,7 +150,7 @@ function assertRetry(value) {
|
|
|
150
150
|
if (!Number.isInteger(value) || value < 0) throw new Error("sse: retry must be a non-negative integer.");
|
|
151
151
|
}
|
|
152
152
|
function isBinaryData(data) {
|
|
153
|
-
return data instanceof ArrayBuffer || ArrayBuffer.isView(data) || typeof Blob !== "undefined" && data instanceof Blob
|
|
153
|
+
return data instanceof ArrayBuffer || ArrayBuffer.isView(data) || typeof Blob !== "undefined" && data instanceof Blob;
|
|
154
154
|
}
|
|
155
155
|
function serializeData(data) {
|
|
156
156
|
if (typeof data === "string") return data;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as wrapTextWithPrefix, G as promptTitle, M as getGuide, V as optionText, b as S_RADIO_ACTIVE, d as S_CHECKBOX_SELECTED, i as S_BAR_END, it as wrapAnsi, j as formatInstructionFooter, n as SELECT_INSTRUCTIONS, r as S_BAR, t as MULTISELECT_INSTRUCTIONS, u as S_CHECKBOX_INACTIVE, w as S_STEP_SUBMIT } from "./
|
|
2
|
-
import {
|
|
1
|
+
import { $ as wrapTextWithPrefix, G as promptTitle, M as getGuide, V as optionText, b as S_RADIO_ACTIVE, d as S_CHECKBOX_SELECTED, i as S_BAR_END, it as wrapAnsi, j as formatInstructionFooter, n as SELECT_INSTRUCTIONS, r as S_BAR, t as MULTISELECT_INSTRUCTIONS, u as S_CHECKBOX_INACTIVE, w as S_STEP_SUBMIT } from "./dist-D3m88sjf.mjs";
|
|
2
|
+
import { l as import_picocolors } from "./output-C50ag2r3.mjs";
|
|
3
3
|
//#region src/cli/subcommand-prompt.ts
|
|
4
4
|
function promptSubcommand(command, subcommands) {
|
|
5
5
|
return new Promise((resolve) => {
|
package/dist/sveltekit.d.mts
CHANGED
|
@@ -4,8 +4,6 @@ type TsconfigHook = (config: Tsconfig) => Tsconfig | void;
|
|
|
4
4
|
export type VoidSvelteKitTsconfigOptions = {
|
|
5
5
|
/** Project root. Defaults to process.cwd(). */
|
|
6
6
|
root?: string;
|
|
7
|
-
/** @deprecated Generated paths no longer depend on SvelteKit's output directory. */
|
|
8
|
-
outDir?: string;
|
|
9
7
|
};
|
|
10
8
|
/**
|
|
11
9
|
* Merge Void's generated tsconfig fragment into SvelteKit's generated
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/cli/terminal-log-text.ts
|
|
2
|
+
const TERMINAL_CONTROL = /\u001b\[[0-?]*[ -/]*[@-~]|\u001b\][^\u0000-\u001f\u007f-\u009f]*(?:\u0007|\u001b\\)|[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g;
|
|
3
|
+
const SGR = /^\u001b\[[0-9;:]*m$/;
|
|
4
|
+
/**
|
|
5
|
+
* Make app log text safe to print to a terminal. App logs often echo request
|
|
6
|
+
* data from anonymous visitors, so escape sequences in them must not reach the
|
|
7
|
+
* terminal as commands (clipboard writes, hyperlinks, screen clears, cursor
|
|
8
|
+
* moves or carriage-return overwrites).
|
|
9
|
+
*
|
|
10
|
+
* SGR color codes, newlines and tabs are kept so ordinary colored or
|
|
11
|
+
* multi-line logs read the same. A text that keeps any SGR code ends with a
|
|
12
|
+
* reset, so styles such as conceal cannot hide the lines printed after it.
|
|
13
|
+
* Every other complete CSI or OSC sequence is removed whole, so a hyperlink
|
|
14
|
+
* shows only its visible text and a line clear leaves no stray "[K". Every
|
|
15
|
+
* other C0/C1 control character is dropped on its own; an escape sequence that
|
|
16
|
+
* is incomplete, such as an OSC with no terminator, loses only its control
|
|
17
|
+
* characters and the rest prints as plain text instead of being swallowed.
|
|
18
|
+
*
|
|
19
|
+
* Keep this module free of imports: the Cloudflare operation process is a
|
|
20
|
+
* separate bundle entry that must stay small.
|
|
21
|
+
*/
|
|
22
|
+
function sanitizeTerminalLogText(value) {
|
|
23
|
+
let keptStyle = false;
|
|
24
|
+
const text = value.replace(TERMINAL_CONTROL, (match) => {
|
|
25
|
+
if (!SGR.test(match)) return "";
|
|
26
|
+
keptStyle = true;
|
|
27
|
+
return match;
|
|
28
|
+
});
|
|
29
|
+
return keptStyle ? `${text}\u001b[0m` : text;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { sanitizeTerminalLogText as t };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { a as join } from "./dist-BVqXeR_h.mjs";
|
|
2
2
|
import { n as readJournal, r as stripSqlExt } from "./collect-DiTn9yr6.mjs";
|
|
3
|
-
import { t as DESTRUCTIVE_PRAGMA } from "./plan-
|
|
3
|
+
import { i as getExecutableSql, t as DESTRUCTIVE_PRAGMA } from "./plan-BhLO2p4w.mjs";
|
|
4
4
|
import { existsSync, readdirSync } from "node:fs";
|
|
5
|
-
import { tokenizeSql } from "@void/deploy-core";
|
|
6
5
|
//#region src/migrations/validate.ts
|
|
7
6
|
/**
|
|
8
7
|
* Destructive SQL patterns that are rejected unless the migration
|
|
@@ -50,11 +49,7 @@ function hasUnboundedWrite(statement) {
|
|
|
50
49
|
* Check if a SQL migration contains destructive operations.
|
|
51
50
|
*/
|
|
52
51
|
function isDestructive(sql) {
|
|
53
|
-
|
|
54
|
-
let executable = "";
|
|
55
|
-
for (const segment of tokenizeSql(normalized)) if (segment.kind === "sql") executable += normalized.slice(segment.start, segment.end);
|
|
56
|
-
else executable += " ".repeat(segment.end - segment.start);
|
|
57
|
-
return splitExecutableStatements(executable).some((statement) => {
|
|
52
|
+
return splitExecutableStatements(getExecutableSql(sql.replace(/\r\n?/g, "\n"))).some((statement) => {
|
|
58
53
|
return DESTRUCTIVE_PATTERNS.some((pattern) => pattern.test(statement)) || hasUnboundedWrite(statement);
|
|
59
54
|
});
|
|
60
55
|
}
|
|
@@ -102,27 +97,13 @@ function listDrizzleArtifacts(migrationsDir) {
|
|
|
102
97
|
* Assert that every `.sql` file under `migrationsDir` has a matching entry
|
|
103
98
|
* in `meta/_journal.json`, and vice versa.
|
|
104
99
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* An orphan file created by hand (or by a botched scaffold/merge) gets
|
|
108
|
-
* applied to D1 without Drizzle ever acknowledging it, and a failed
|
|
109
|
-
* deploy can leave the database in a state that is impossible to recover
|
|
110
|
-
* from without manual SQL edits.
|
|
100
|
+
* The runners apply files from disk, but `drizzle-kit generate` only sees the
|
|
101
|
+
* journal, so an orphan file would reach D1 without Drizzle knowing about it.
|
|
111
102
|
*
|
|
112
|
-
* A missing journal
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
* `db
|
|
116
|
-
* before this check existed, and the local/remote runners still track
|
|
117
|
-
* applied migrations by filename via `_void_migrations`. Gating those
|
|
118
|
-
* projects here would break `void deploy`, `void db migrate`, `void db
|
|
119
|
-
* reset`, and `void db status` for a valid path with no migration path
|
|
120
|
-
* forward (they cannot run `void db generate` because it requires
|
|
121
|
-
* `db/schema.ts`). We skip the check silently and let the filename-based
|
|
122
|
-
* runners take over.
|
|
123
|
-
*
|
|
124
|
-
* Throws a user-facing error when any mismatch is detected between the
|
|
125
|
-
* journal and disk. Returns silently otherwise.
|
|
103
|
+
* A missing journal (with no other drizzle-kit artifacts) is not drift:
|
|
104
|
+
* hand-written `.sql` projects without `db/schema.ts` are supported and are
|
|
105
|
+
* tracked by filename in `_void_migrations`. They cannot run
|
|
106
|
+
* `void db generate`, so the check is skipped for them.
|
|
126
107
|
*/
|
|
127
108
|
function assertJournalCoherence(migrationsDir, collected) {
|
|
128
109
|
const journal = readJournal(migrationsDir);
|
|
@@ -162,7 +143,7 @@ function assertJournalCoherence(migrationsDir, collected) {
|
|
|
162
143
|
const journalTags = new Set(journal.entries.map((e) => e.tag));
|
|
163
144
|
const collectedTags = new Set(collected.map((m) => stripSqlExt(m.name)));
|
|
164
145
|
const orphans = collected.map((m) => m.name).filter((name) => !journalTags.has(stripSqlExt(name)));
|
|
165
|
-
const missing = journal.entries.
|
|
146
|
+
const missing = journal.entries.filter((e) => !collectedTags.has(e.tag)).map((e) => `${e.tag}.sql`);
|
|
166
147
|
if (orphans.length === 0 && missing.length === 0) return;
|
|
167
148
|
const lines = ["Migration drift detected between db/migrations/ and db/migrations/meta/_journal.json."];
|
|
168
149
|
if (orphans.length > 0) {
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
//#region src/pages/validation-error.ts
|
|
2
|
-
var ValidationError = class extends Error {
|
|
3
|
-
errors;
|
|
4
|
-
constructor(errors) {
|
|
5
|
-
super("Validation failed");
|
|
6
|
-
this.name = "ValidationError";
|
|
7
|
-
this.errors = errors;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
//#endregion
|
|
11
1
|
//#region src/pages/defer.ts
|
|
12
2
|
const DEFERRED = Symbol("deferred");
|
|
13
3
|
function defer(groupOrResolver, maybeResolver) {
|
|
@@ -46,4 +36,14 @@ function separateDeferred(props) {
|
|
|
46
36
|
};
|
|
47
37
|
}
|
|
48
38
|
//#endregion
|
|
49
|
-
|
|
39
|
+
//#region src/pages/validation-error.ts
|
|
40
|
+
var ValidationError = class extends Error {
|
|
41
|
+
errors;
|
|
42
|
+
constructor(errors) {
|
|
43
|
+
super("Validation failed");
|
|
44
|
+
this.name = "ValidationError";
|
|
45
|
+
this.errors = errors;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { separateDeferred as i, DEFERRED as n, defer as r, ValidationError as t };
|