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
|
@@ -12,16 +12,7 @@ declare class UsageLimit extends Error {
|
|
|
12
12
|
}): Response;
|
|
13
13
|
getResponse(): Response;
|
|
14
14
|
}
|
|
15
|
-
type LimitHandlers<T, R, L> = {
|
|
16
|
-
ok(value: T): R | Promise<R>;
|
|
17
|
-
limited(limit: UsageLimit): L | Promise<L>;
|
|
18
|
-
};
|
|
19
|
-
interface LimitOperation<T> {
|
|
20
|
-
match<R, L>(handlers: LimitHandlers<T, R, L>): Promise<R | L>;
|
|
21
|
-
}
|
|
22
|
-
/** Lazy, single-execution operation. Quota callbacks never catch failures from the user's ok handler. */
|
|
23
|
-
declare function limitOperation<T>(execute: () => Promise<T>, classify?: (error: unknown) => UsageLimit | null, prepare?: (value: T, limited: (limit: UsageLimit) => unknown) => T): LimitOperation<T>;
|
|
24
15
|
declare function asUsageLimit(error: unknown): UsageLimit | null;
|
|
25
16
|
declare function limitFromResponse(response: Response, resource: UsageLimitData["resource"]): Promise<UsageLimit | null>;
|
|
26
17
|
//#endregion
|
|
27
|
-
export {
|
|
18
|
+
export { readUsageLimit$1 as a, limitFromResponse as i, UsageLimitData$1 as n, asUsageLimit as r, UsageLimit as t };
|
|
@@ -25,27 +25,6 @@ var UsageLimit = class extends Error {
|
|
|
25
25
|
return this.response();
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
|
-
/** Lazy, single-execution operation. Quota callbacks never catch failures from the user's ok handler. */
|
|
29
|
-
function limitOperation(execute, classify = asUsageLimit, prepare) {
|
|
30
|
-
let result;
|
|
31
|
-
return Object.freeze({
|
|
32
|
-
get then() {
|
|
33
|
-
throw new TypeError("Use .match({ ok, limited }) to execute this operation.");
|
|
34
|
-
},
|
|
35
|
-
async match(handlers) {
|
|
36
|
-
if (typeof handlers?.ok !== "function" || typeof handlers?.limited !== "function") throw new TypeError("Both ok and limited handlers are required.");
|
|
37
|
-
let value;
|
|
38
|
-
try {
|
|
39
|
-
value = await (result ??= Promise.resolve().then(execute));
|
|
40
|
-
} catch (error) {
|
|
41
|
-
const limit = classify(error);
|
|
42
|
-
if (limit) return handlers.limited(limit);
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
return handlers.ok(prepare ? prepare(value, handlers.limited) : value);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
28
|
function asUsageLimit(error) {
|
|
50
29
|
if (error instanceof UsageLimit) return error;
|
|
51
30
|
const data = readUsageLimit(error);
|
|
@@ -65,4 +44,4 @@ async function limitFromResponse(response, resource) {
|
|
|
65
44
|
});
|
|
66
45
|
}
|
|
67
46
|
//#endregion
|
|
68
|
-
export { readUsageLimit$1 as
|
|
47
|
+
export { readUsageLimit$1 as i, asUsageLimit as n, limitFromResponse as r, UsageLimit as t };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { l as writeProjectConfig, r as readProjectConfig, t as attachSelectedPlatform } from "./project-
|
|
2
|
-
import { c as getToken, s as getSiteDomain } from "./auth-
|
|
3
|
-
import { H as outro, L as log, O as cancel } from "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-
|
|
7
|
-
import {
|
|
1
|
+
import { l as writeProjectConfig, r as readProjectConfig, t as attachSelectedPlatform } from "./project-DQstYTxO.mjs";
|
|
2
|
+
import { c as getToken, s as getSiteDomain } from "./auth-B5_tZLxT.mjs";
|
|
3
|
+
import { H as outro, L as log, O as cancel } from "./dist-D3m88sjf.mjs";
|
|
4
|
+
import { d as printSuccess, l as import_picocolors } from "./output-C50ag2r3.mjs";
|
|
5
|
+
import { r as PlatformClient } from "./client-C2Prx_Bi.mjs";
|
|
6
|
+
import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-DxiyW6iX.mjs";
|
|
7
|
+
import { i as resolveProjectBySlug } from "./resolve-project-CP8rZs_p.mjs";
|
|
8
8
|
//#region src/cli/link.ts
|
|
9
9
|
function projectLabel(slug, root, url) {
|
|
10
10
|
if (url) return url;
|
|
@@ -34,20 +34,20 @@ async function runLink(root, slug) {
|
|
|
34
34
|
}
|
|
35
35
|
const config = attachSelectedPlatform(root, resolved, client.apiUrl);
|
|
36
36
|
writeProjectConfig(root, config);
|
|
37
|
-
|
|
37
|
+
printSuccess(`Linked to ${projectLabel(config.slug, root, projects.find((project) => project.id === config.projectId)?.url)}`);
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
40
|
const result = await promptProjectSelection(projects, "Select a project:", root, { confirmExisting: true });
|
|
41
41
|
if (result.action === "create") {
|
|
42
42
|
const config = await promptAndCreateProject(root, client);
|
|
43
|
-
|
|
43
|
+
printSuccess(`Created and linked to ${projectLabel(config.slug, root)}`);
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
writeProjectConfig(root, attachSelectedPlatform(root, {
|
|
47
47
|
projectId: result.project.id,
|
|
48
48
|
slug: result.project.slug
|
|
49
49
|
}, client.apiUrl));
|
|
50
|
-
|
|
50
|
+
printSuccess(`Linked to ${projectLabel(result.project.slug, root, result.project.url)}`);
|
|
51
51
|
}
|
|
52
52
|
//#endregion
|
|
53
53
|
export { runLink };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-
|
|
2
|
-
import { c as getToken } from "./auth-
|
|
3
|
-
import { H as outro, L as log } from "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
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 { H as outro, L as log } from "./dist-D3m88sjf.mjs";
|
|
4
|
+
import { a as ensureUtc, f as sanitizeTerminalText, i as dim, l as import_picocolors, m as tablePrefix, s as formatCount } from "./output-C50ag2r3.mjs";
|
|
5
|
+
import { r as PlatformClient } from "./client-C2Prx_Bi.mjs";
|
|
6
|
+
import { i as resolveProjectBySlug } from "./resolve-project-CP8rZs_p.mjs";
|
|
7
7
|
//#region src/cli/list.ts
|
|
8
8
|
async function runListCommand(root, slug) {
|
|
9
9
|
console.log();
|
|
@@ -42,7 +42,7 @@ async function runListCommand(root, slug) {
|
|
|
42
42
|
}
|
|
43
43
|
async function showCloudflareDeployments(root, slug) {
|
|
44
44
|
if (slug) throw new Error("project: A project name selects a Void platform project and is not used for direct Cloudflare apps.");
|
|
45
|
-
const { readCloudflareWorkerStatus, resolveCloudflareOperationContext } = await import("./cloudflare-operations-
|
|
45
|
+
const { readCloudflareWorkerStatus, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BlYLlowZ.mjs");
|
|
46
46
|
const status = await readCloudflareWorkerStatus(resolveCloudflareOperationContext(root));
|
|
47
47
|
if (status.versions.length === 0) {
|
|
48
48
|
outro(`No deployments for ${status.workerName}.`);
|
|
@@ -66,7 +66,8 @@ async function showCloudflareDeployments(root, slug) {
|
|
|
66
66
|
outro(`${status.workerName} — ${formatCount(rows.length, "version")}`);
|
|
67
67
|
}
|
|
68
68
|
async function showDeployments(client, projectId, slug) {
|
|
69
|
-
const { deployments, activeDeploymentId } = await client.listDeployments(projectId);
|
|
69
|
+
const { deployments, activeDeploymentId, warnings } = await client.listDeployments(projectId);
|
|
70
|
+
for (const warning of warnings ?? []) log.warn(sanitizeTerminalText(warning));
|
|
70
71
|
if (deployments.length === 0) {
|
|
71
72
|
outro(`No deployments for ${slug}.`);
|
|
72
73
|
return;
|
|
@@ -112,7 +113,8 @@ function formatDeploymentRow(d, activeDeploymentId) {
|
|
|
112
113
|
manifest = JSON.parse(d.manifest);
|
|
113
114
|
} catch {}
|
|
114
115
|
const appType = manifest?.type ?? (manifest?.framework ? "framework" : "void");
|
|
115
|
-
const
|
|
116
|
+
const pathRuleCount = Object.keys(manifest?.pathRevalidate ?? {}).length;
|
|
117
|
+
const isr = manifest?.revalidate && manifest.revalidate > 0 ? `${manifest.revalidate}s` : pathRuleCount > 0 ? formatCount(pathRuleCount, "rule") : "-";
|
|
116
118
|
const source = d.source ?? "-";
|
|
117
119
|
const commit = d.commit ? d.commit.slice(0, 7) : "-";
|
|
118
120
|
const statusRaw = computeDisplayStatus(d, activeDeploymentId);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { a as getRawRuntimeEnv } from "./env-raw-
|
|
1
|
+
import { a as getRawRuntimeEnv } from "./env-raw-jZpP5n47.mjs";
|
|
2
2
|
import { i as getUser } from "./auth-3sGB0zJ1.mjs";
|
|
3
3
|
//#region src/runtime/live.ts
|
|
4
4
|
let liveBindingName = "VOID_LIVE";
|
|
5
|
+
let liveDev = false;
|
|
5
6
|
const registeredStreamIds = /* @__PURE__ */ new Set();
|
|
6
7
|
const DEFAULT_LIMITS = {
|
|
7
8
|
maxSubscriptionsPerConnection: 256,
|
|
@@ -18,6 +19,9 @@ function __setLiveBindingName(name) {
|
|
|
18
19
|
function __getLiveBindingName() {
|
|
19
20
|
return liveBindingName;
|
|
20
21
|
}
|
|
22
|
+
function __setLiveDev(dev) {
|
|
23
|
+
liveDev = dev === true;
|
|
24
|
+
}
|
|
21
25
|
function defineLiveStream(options) {
|
|
22
26
|
const streamId = assertStreamId(options.id);
|
|
23
27
|
const limits = resolveLiveLimits(options.limits);
|
|
@@ -271,6 +275,11 @@ function parseOperation(value, index) {
|
|
|
271
275
|
}
|
|
272
276
|
throw liveResponseError("BAD_REQUEST", "live: operation kind is invalid.", 400);
|
|
273
277
|
}
|
|
278
|
+
const INVALID_OPERATION_MESSAGES = {
|
|
279
|
+
BAD_REQUEST: "live: invalid control operation.",
|
|
280
|
+
INVALID_SUBSCRIPTION_ID: "live: invalid subscription id.",
|
|
281
|
+
INVALID_TOPIC: "live: invalid topic."
|
|
282
|
+
};
|
|
274
283
|
function invalidOperation(index, kind, id, code) {
|
|
275
284
|
return {
|
|
276
285
|
ok: false,
|
|
@@ -281,19 +290,7 @@ function invalidOperation(index, kind, id, code) {
|
|
|
281
290
|
id: typeof id === "string" ? id : "",
|
|
282
291
|
error: {
|
|
283
292
|
code,
|
|
284
|
-
message:
|
|
285
|
-
BAD_REQUEST: "live: invalid control operation.",
|
|
286
|
-
CONNECTION_CLOSED: "live: connection closed.",
|
|
287
|
-
CONNECTION_NOT_FOUND: "live: connection not found.",
|
|
288
|
-
FORBIDDEN: "Forbidden",
|
|
289
|
-
INVALID_SUBSCRIPTION_ID: "live: invalid subscription id.",
|
|
290
|
-
INVALID_TOPIC: "live: invalid topic.",
|
|
291
|
-
OWNER_MISMATCH: "live: owner mismatch.",
|
|
292
|
-
SUBSCRIPTION_LIMIT: "live: subscription limit reached.",
|
|
293
|
-
TOPIC_FULL: "live: topic subscription limit reached.",
|
|
294
|
-
PAYLOAD_TOO_LARGE: "live: payload too large.",
|
|
295
|
-
INTERNAL_ERROR: "live: internal error."
|
|
296
|
-
}[code]
|
|
293
|
+
message: INVALID_OPERATION_MESSAGES[code]
|
|
297
294
|
}
|
|
298
295
|
}
|
|
299
296
|
};
|
|
@@ -388,11 +385,13 @@ function errorToResponse(error) {
|
|
|
388
385
|
message: error.message
|
|
389
386
|
}
|
|
390
387
|
}, { status: error.status });
|
|
388
|
+
console.error(error);
|
|
389
|
+
const message = liveDev ? error instanceof Error ? error.message : String(error) : "live: internal error.";
|
|
391
390
|
return Response.json({
|
|
392
391
|
accepted: false,
|
|
393
392
|
error: {
|
|
394
393
|
code: "INTERNAL_ERROR",
|
|
395
|
-
message
|
|
394
|
+
message
|
|
396
395
|
}
|
|
397
396
|
}, { status: 500 });
|
|
398
397
|
}
|
|
@@ -408,4 +407,4 @@ async function responseToControlError(response) {
|
|
|
408
407
|
};
|
|
409
408
|
}
|
|
410
409
|
//#endregion
|
|
411
|
-
export { __setLiveBindingName as n,
|
|
410
|
+
export { defineLiveStream as i, __setLiveBindingName as n, __setLiveDev as r, __getLiveBindingName as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as AuthUser } from "./auth-DkcFflXV.mjs";
|
|
2
|
-
import { a as CloudEnv, r as CloudContext } from "./handler-
|
|
2
|
+
import { a as CloudEnv, r as CloudContext } from "./handler-CNAwjRcW.mjs";
|
|
3
3
|
//#region src/runtime/live.d.ts
|
|
4
4
|
type MaybePromise<T> = T | Promise<T>;
|
|
5
5
|
type LiveControlRequest = {
|
|
@@ -81,6 +81,7 @@ type LiveStreamOptions = {
|
|
|
81
81
|
allowAnonymousControl?: boolean;
|
|
82
82
|
identifyConnection?: (ctx: LiveHookContext) => MaybePromise<string | null | undefined>;
|
|
83
83
|
onConnect?: (ctx: LiveConnectHookContext) => MaybePromise<Response | void>;
|
|
84
|
+
/** Decides who can read each topic. Without it, any connection that passes the owner check can subscribe to any topic. Return a Response to reject. */
|
|
84
85
|
onSubscribe?: (ctx: LiveSubscribeHookContext) => MaybePromise<Response | void>;
|
|
85
86
|
limits?: Partial<LiveLimits>;
|
|
86
87
|
};
|
|
@@ -100,6 +101,7 @@ type LiveStream = {
|
|
|
100
101
|
};
|
|
101
102
|
declare function __setLiveBindingName(name: string): void;
|
|
102
103
|
declare function __getLiveBindingName(): string;
|
|
104
|
+
declare function __setLiveDev(dev: boolean): void;
|
|
103
105
|
declare function defineLiveStream(options: LiveStreamOptions): LiveStream;
|
|
104
106
|
//#endregion
|
|
105
|
-
export { __getLiveBindingName as _, LiveControlErrorCode as a, LiveControlOptions as c, LiveHookContext as d, LiveLimits as f, LiveSubscribeHookContext as g, LiveStreamOptions as h, LiveControlError as i, LiveControlRequest as l, LiveStream as m, LiveConnectHookContext as n, LiveControlOperation as o, LivePublishOptions as p, LiveConnectOptions as r, LiveControlOperationResult as s, LiveClientEvent as t, LiveControlResponse as u, __setLiveBindingName as v,
|
|
107
|
+
export { __getLiveBindingName as _, LiveControlErrorCode as a, defineLiveStream as b, LiveControlOptions as c, LiveHookContext as d, LiveLimits as f, LiveSubscribeHookContext as g, LiveStreamOptions as h, LiveControlError as i, LiveControlRequest as l, LiveStream as m, LiveConnectHookContext as n, LiveControlOperation as o, LivePublishOptions as p, LiveConnectOptions as r, LiveControlOperationResult as s, LiveClientEvent as t, LiveControlResponse as u, __setLiveBindingName as v, __setLiveDev as y };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as join, i as isAbsolute, u as resolve } from "./dist-BVqXeR_h.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { r as getMiniflareDatabasePath } from "./runner-
|
|
2
|
+
import { b as readRootWranglerConfig } from "./wrangler-D9KTuqnv.mjs";
|
|
3
|
+
import { r as getMiniflareDatabasePath } from "./runner-DMBKSrRk.mjs";
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
//#region src/local-d1.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as getApiUrl, c as getToken, f as removeToken, g as saveToken, h as savePlatformToken, l as getTokenSource, m as runPlatformLogin, p as runLogin } from "./auth-
|
|
2
|
-
import { H as outro, K as select, L as log, O as cancel, tt as isCancel } from "./
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { a as getApiUrl, c as getToken, f as removeToken, g as saveToken, h as savePlatformToken, l as getTokenSource, m as runPlatformLogin, p as runLogin } from "./auth-B5_tZLxT.mjs";
|
|
2
|
+
import { H as outro, K as select, L as log, O as cancel, tt as isCancel } from "./dist-D3m88sjf.mjs";
|
|
3
|
+
import { d as printSuccess, l as import_picocolors, r as createSpinner } from "./output-C50ag2r3.mjs";
|
|
4
|
+
import { a as isExpiredTokenError, r as PlatformClient } from "./client-C2Prx_Bi.mjs";
|
|
5
5
|
//#region src/cli/login.ts
|
|
6
6
|
async function selectPlatformLoginMethod(platform, requestedId) {
|
|
7
7
|
const providers = platform?.authenticationProviders ?? ["github", "google"];
|
|
@@ -29,7 +29,7 @@ async function selectPlatformLoginMethod(platform, requestedId) {
|
|
|
29
29
|
return methods.find((method) => method.id === provider);
|
|
30
30
|
}
|
|
31
31
|
async function promptForLoginToken(root = process.cwd(), platform) {
|
|
32
|
-
const { id: provider, label: providerName } = await selectPlatformLoginMethod(platform ?? await import("./platform-cmd-
|
|
32
|
+
const { id: provider, label: providerName } = await selectPlatformLoginMethod(platform ?? await import("./platform-cmd-C00YM14r.mjs").then(({ discoverPlatform }) => discoverPlatform(getApiUrl(root))));
|
|
33
33
|
const s = createSpinner();
|
|
34
34
|
s.start(`Opening browser for ${providerName} login...`);
|
|
35
35
|
try {
|
|
@@ -79,10 +79,10 @@ async function runLoginCommand(root = process.cwd()) {
|
|
|
79
79
|
}
|
|
80
80
|
await promptForLoginToken(root);
|
|
81
81
|
if (expiredEnvToken) {
|
|
82
|
-
|
|
82
|
+
printSuccess("Token saved. Unset `VOID_TOKEN` to use it.");
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
printSuccess("Token saved.");
|
|
86
86
|
}
|
|
87
87
|
//#endregion
|
|
88
88
|
export { runLoginCommand as n, selectPlatformLoginMethod as r, promptForLoginToken as t };
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-
|
|
2
|
-
import { c as getToken } from "./auth-
|
|
3
|
-
import { $ as wrapTextWithPrefix, H as outro, L as log } from "./
|
|
4
|
-
import {
|
|
5
|
-
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 { $ as wrapTextWithPrefix, H as outro, L as log } from "./dist-D3m88sjf.mjs";
|
|
4
|
+
import { i as dim, l as import_picocolors, o as errorStackFrames, s as formatCount } from "./output-C50ag2r3.mjs";
|
|
5
|
+
import { r as PlatformClient } from "./client-C2Prx_Bi.mjs";
|
|
6
|
+
import { t as sanitizeTerminalLogText } from "./terminal-log-text-D9ACPOuG.mjs";
|
|
6
7
|
//#region src/cli/logs.ts
|
|
7
8
|
async function runLogsCommand(root, filter, range, deployment, level) {
|
|
8
9
|
console.log();
|
|
9
10
|
const platform = readDeploymentPlatform(root);
|
|
10
11
|
if (platform === "cloudflare") {
|
|
11
|
-
const { resolveCloudflareOperationContext, tailCloudflareWorker } = await import("./cloudflare-operations-
|
|
12
|
+
const { resolveCloudflareOperationContext, tailCloudflareWorker } = await import("./cloudflare-operations-BlYLlowZ.mjs");
|
|
12
13
|
if (range !== "1h") log.warn("Cloudflare tail streams live logs; --range does not select historical entries.");
|
|
13
14
|
if (level && level !== "all" && level !== "error") log.warn("Cloudflare tail cannot filter individual console levels; showing all invocation logs.");
|
|
14
15
|
await tailCloudflareWorker(resolveCloudflareOperationContext(root), {
|
|
@@ -51,19 +52,35 @@ async function runLogsCommand(root, filter, range, deployment, level) {
|
|
|
51
52
|
}
|
|
52
53
|
function printEntry(entry) {
|
|
53
54
|
const time = formatTime(entry.timestamp);
|
|
54
|
-
const method = entry.method || "-";
|
|
55
|
-
const url = entry.url || "-";
|
|
56
|
-
const status = entry.status || "-";
|
|
55
|
+
const method = sanitizeTerminalLogText(entry.method || "-");
|
|
56
|
+
const url = sanitizeTerminalLogText(entry.url || "-");
|
|
57
|
+
const status = sanitizeTerminalLogText(entry.status || "-");
|
|
57
58
|
const statusNum = parseInt(status, 10);
|
|
58
59
|
const coloredStatus = entry.outcome === "exception" || statusNum >= 500 ? import_picocolors.default.red(status) : statusNum >= 400 ? import_picocolors.default.yellow(status) : status;
|
|
59
60
|
console.log(wrapTextWithPrefix(process.stdout, `${method} ${url} ${coloredStatus}`, " ".repeat(time.length + 1), `${dim(time)} `));
|
|
60
61
|
for (const l of entry.logs) {
|
|
61
|
-
const text = l
|
|
62
|
+
const text = formatLogMessage(l);
|
|
62
63
|
const level = l.level ?? "log";
|
|
63
64
|
const marker = level === "error" ? import_picocolors.default.red(`[${level}]`) : level === "warn" ? import_picocolors.default.yellow(`[${level}]`) : dim(`[${level}]`);
|
|
64
65
|
console.log(wrapTextWithPrefix(process.stdout, text, " ".repeat(level.length + 5), ` ${marker} `));
|
|
65
66
|
}
|
|
66
|
-
for (const ex of entry.exceptions) console.log(wrapTextWithPrefix(process.stdout, `${ex.name}: ${ex.message}
|
|
67
|
+
for (const ex of entry.exceptions) console.log(wrapTextWithPrefix(process.stdout, [sanitizeTerminalLogText(`${ex.name}: ${ex.message}`), ...errorStackFrames(ex).map((frame) => dim(sanitizeTerminalLogText(frame)))].join("\n"), " ".repeat(14), ` ${import_picocolors.default.red("[exception]")} `));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Join a console call's arguments; an argument that was an `Error` is followed
|
|
71
|
+
* by its dimmed stack frames. Arguments and frames are app data, so each is
|
|
72
|
+
* sanitized before the dim style is added.
|
|
73
|
+
*/
|
|
74
|
+
function formatLogMessage(log) {
|
|
75
|
+
let text = "";
|
|
76
|
+
let separator = "";
|
|
77
|
+
for (const [index, value] of log.message.entries()) {
|
|
78
|
+
text += `${separator}${sanitizeTerminalLogText(String(value))}`;
|
|
79
|
+
const frames = errorStackFrames(log.errorInfo?.[index]);
|
|
80
|
+
if (frames.length > 0) text += `\n${frames.map((frame) => dim(sanitizeTerminalLogText(frame))).join("\n")}`;
|
|
81
|
+
separator = frames.length > 0 ? "\n" : " ";
|
|
82
|
+
}
|
|
83
|
+
return text;
|
|
67
84
|
}
|
|
68
85
|
function formatTime(ts) {
|
|
69
86
|
return new Date(ts).toLocaleTimeString("en-GB", { hour12: false });
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { a as join, n as dirname } from "./dist-BVqXeR_h.mjs";
|
|
2
2
|
import { o as TYPED_CONFIG_FILE, s as loadTypedVoidConfigFile } from "./project-paths-GgcMozYz.mjs";
|
|
3
|
-
import { g as validateConfig } from "./config-
|
|
4
|
-
import { n as VOID_LOCK_FILE, o as seedCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-
|
|
5
|
-
import "./wrangler-
|
|
6
|
-
import {
|
|
3
|
+
import { g as validateConfig } from "./config-DiowPT80.mjs";
|
|
4
|
+
import { n as VOID_LOCK_FILE, o as seedCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-BmhBv3HV.mjs";
|
|
5
|
+
import "./wrangler-D9KTuqnv.mjs";
|
|
6
|
+
import { L as log } from "./dist-D3m88sjf.mjs";
|
|
7
|
+
import { d as printSuccess } from "./output-C50ag2r3.mjs";
|
|
7
8
|
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
8
9
|
import { parseSync } from "vite";
|
|
9
10
|
import { randomUUID } from "node:crypto";
|
|
@@ -29,6 +30,18 @@ const CONFIG_FILES = [
|
|
|
29
30
|
"nuxt.config.js",
|
|
30
31
|
"nuxt.config.mts"
|
|
31
32
|
];
|
|
33
|
+
function adapterPathError(file) {
|
|
34
|
+
return /* @__PURE__ */ new Error(`migrate: Update ${file} to pass ${GENERATED_PATH} to its Cloudflare adapter before removing the root Wrangler config.`);
|
|
35
|
+
}
|
|
36
|
+
function nitroPathError(file) {
|
|
37
|
+
return /* @__PURE__ */ new Error(`migrate: Set nitro.cloudflareDev.configPath to ${GENERATED_PATH} in ${file} before removing the root Wrangler config.`);
|
|
38
|
+
}
|
|
39
|
+
function mentionsCloudflareAdapter(source) {
|
|
40
|
+
return source.includes("@sveltejs/adapter-cloudflare") || source.includes("@astrojs/cloudflare") || source.includes("nitro-cloudflare-dev");
|
|
41
|
+
}
|
|
42
|
+
function applyEdits$1(source, edits) {
|
|
43
|
+
return edits.sort((a, b) => b.start - a.start).reduce((result, edit) => `${result.slice(0, edit.start)}${edit.text}${result.slice(edit.end)}`, source);
|
|
44
|
+
}
|
|
32
45
|
function parseSource(source, file) {
|
|
33
46
|
return parseSync(file, source).program;
|
|
34
47
|
}
|
|
@@ -50,11 +63,11 @@ function walk(root) {
|
|
|
50
63
|
function adapterImport(program, packageName, file) {
|
|
51
64
|
const imports = (program.body ?? []).filter((node) => node.type === "ImportDeclaration" && node.source?.value === packageName);
|
|
52
65
|
if (imports.length === 0) {
|
|
53
|
-
if (walk(program).some((node) => node.type === "CallExpression" && (node.callee?.name === "require" || node.callee?.type === "Import") && node.arguments?.[0]?.value === packageName)) throw
|
|
66
|
+
if (walk(program).some((node) => node.type === "CallExpression" && (node.callee?.name === "require" || node.callee?.type === "Import") && node.arguments?.[0]?.value === packageName)) throw adapterPathError(file);
|
|
54
67
|
return;
|
|
55
68
|
}
|
|
56
69
|
const defaultImport = imports[0]?.specifiers?.find((specifier) => specifier.type === "ImportDefaultSpecifier");
|
|
57
|
-
if (imports.length !== 1 || imports[0]?.specifiers?.length !== 1 || !defaultImport?.local?.name) throw
|
|
70
|
+
if (imports.length !== 1 || imports[0]?.specifiers?.length !== 1 || !defaultImport?.local?.name) throw adapterPathError(file);
|
|
58
71
|
return defaultImport.local.name;
|
|
59
72
|
}
|
|
60
73
|
/** Find an adapter's explicit root Wrangler JSON file, including custom build filenames. */
|
|
@@ -64,7 +77,7 @@ function discoverFrameworkWranglerFiles(root) {
|
|
|
64
77
|
const path = join(root, file);
|
|
65
78
|
if (!existsSync(path)) continue;
|
|
66
79
|
const source = readFileSync(path, "utf8");
|
|
67
|
-
if (!
|
|
80
|
+
if (!mentionsCloudflareAdapter(source)) continue;
|
|
68
81
|
const program = parseSource(source, file);
|
|
69
82
|
const hasAdapter = walk(program).some((node) => node.type === "ImportDeclaration" && (node.source?.value === "@sveltejs/adapter-cloudflare" || node.source?.value === "@astrojs/cloudflare"));
|
|
70
83
|
const hasNitro = walk(program).some((node) => node.type === "Literal" && node.value === "nitro-cloudflare-dev");
|
|
@@ -97,14 +110,14 @@ function setPath(object, key, file, edits, legacyName) {
|
|
|
97
110
|
end: value.end,
|
|
98
111
|
text: `'${GENERATED_PATH}'`
|
|
99
112
|
});
|
|
100
|
-
else throw
|
|
113
|
+
else throw adapterPathError(file);
|
|
101
114
|
}
|
|
102
115
|
function patchAdapterCall(source, identifier, file, kind, legacyName) {
|
|
103
116
|
const calls = walk(parseSource(source, file)).filter((node) => node.type === "CallExpression" && node.callee?.name === identifier);
|
|
104
|
-
if (calls.length !== 1) throw
|
|
117
|
+
if (calls.length !== 1) throw adapterPathError(file);
|
|
105
118
|
const call = calls[0];
|
|
106
119
|
const args = call.arguments ?? [];
|
|
107
|
-
if (args.length > 1 || args.length === 1 && args[0]?.type !== "ObjectExpression") throw
|
|
120
|
+
if (args.length > 1 || args.length === 1 && args[0]?.type !== "ObjectExpression") throw adapterPathError(file);
|
|
108
121
|
if (args.length === 0) {
|
|
109
122
|
const options = kind === "svelte" ? `{ config: '${GENERATED_PATH}', platformProxy: { configPath: '${GENERATED_PATH}' } }` : `{ configPath: '${GENERATED_PATH}' }`;
|
|
110
123
|
return `${source.slice(0, call.end - 1)}${options}${source.slice(call.end - 1)}`;
|
|
@@ -121,9 +134,9 @@ function patchAdapterCall(source, identifier, file, kind, legacyName) {
|
|
|
121
134
|
text: `platformProxy: { configPath: '${GENERATED_PATH}' }, `
|
|
122
135
|
});
|
|
123
136
|
else if (proxy.type === "ObjectExpression") setPath(proxy, "configPath", file, edits, legacyName);
|
|
124
|
-
else throw
|
|
137
|
+
else throw adapterPathError(file);
|
|
125
138
|
}
|
|
126
|
-
return
|
|
139
|
+
return applyEdits$1(source, edits);
|
|
127
140
|
}
|
|
128
141
|
/** Plan only edits whose adapter call can be identified without changing authored options. */
|
|
129
142
|
function planFrameworkConfigMigration(root, legacyName) {
|
|
@@ -133,7 +146,7 @@ function planFrameworkConfigMigration(root, legacyName) {
|
|
|
133
146
|
if (!existsSync(path)) continue;
|
|
134
147
|
const original = readFileSync(path, "utf8");
|
|
135
148
|
let updated = original;
|
|
136
|
-
if (!
|
|
149
|
+
if (!mentionsCloudflareAdapter(original)) continue;
|
|
137
150
|
const program = parseSource(original, file);
|
|
138
151
|
const svelteIdentifier = adapterImport(program, "@sveltejs/adapter-cloudflare", file);
|
|
139
152
|
if (svelteIdentifier) updated = patchAdapterCall(updated, svelteIdentifier, file, "svelte", legacyName);
|
|
@@ -146,9 +159,9 @@ function planFrameworkConfigMigration(root, legacyName) {
|
|
|
146
159
|
return modules?.type === "ArrayExpression" && modules.elements?.some((entry) => entry?.value === "nitro-cloudflare-dev");
|
|
147
160
|
});
|
|
148
161
|
if (nitroConfigurations.length > 0) {
|
|
149
|
-
if (nitroConfigurations.length !== 1) throw
|
|
162
|
+
if (nitroConfigurations.length !== 1) throw nitroPathError(file);
|
|
150
163
|
const nitro = asNode(nitroConfigurations[0].value);
|
|
151
|
-
if (property(nitro, "preset")?.value !== "cloudflare-module") throw
|
|
164
|
+
if (property(nitro, "preset")?.value !== "cloudflare-module") throw nitroPathError(file);
|
|
152
165
|
const dev = property(nitro, "cloudflareDev");
|
|
153
166
|
const edits = [];
|
|
154
167
|
if (!dev) edits.push({
|
|
@@ -157,8 +170,8 @@ function planFrameworkConfigMigration(root, legacyName) {
|
|
|
157
170
|
text: `cloudflareDev: { configPath: '${GENERATED_PATH}' }, `
|
|
158
171
|
});
|
|
159
172
|
else if (dev.type === "ObjectExpression") setPath(dev, "configPath", file, edits, legacyName);
|
|
160
|
-
else throw
|
|
161
|
-
updated =
|
|
173
|
+
else throw nitroPathError(file);
|
|
174
|
+
updated = applyEdits$1(updated, edits);
|
|
162
175
|
}
|
|
163
176
|
if (updated !== original) patches.push({
|
|
164
177
|
file,
|
|
@@ -301,9 +314,10 @@ function migrateLegacyVoidConfig(root) {
|
|
|
301
314
|
}
|
|
302
315
|
async function runMigrateCommand(root) {
|
|
303
316
|
console.log();
|
|
304
|
-
if (migrateLegacyVoidConfig(root))
|
|
305
|
-
|
|
306
|
-
|
|
317
|
+
if (migrateLegacyVoidConfig(root)) {
|
|
318
|
+
log.step(`Migrated project settings to ${TYPED_CONFIG_FILE}. Commit it and ${VOID_LOCK_FILE} when present.`);
|
|
319
|
+
printSuccess("Configuration migration complete.");
|
|
320
|
+
} else log.info("No legacy project configuration found.");
|
|
307
321
|
}
|
|
308
322
|
//#endregion
|
|
309
323
|
export { migrateFrameworkAdapterPaths as i, runMigrateCommand as n, discoverFrameworkWranglerFiles as r, migrateLegacyVoidConfig as t };
|